1.已知int a,b;下列switch语句中正确的是(  b  )。 
A. switch(a)
{case a: a++;break;
case b: b++;break;}
B. switch(a+b)
{case 1: a+b;break;
case 2: a-b;break;}
C. switch(a*a)
{case 1,2:++a;
case 3,4:--b;}
D. switch(a/0.5+b)
{case 5-a:a/5;break;
default:a+b;}
2.若有如下语句,则下面正确的描述是 (    b  )。
char  x[ ]="12345";
char  y[ ]={'1','2','3','4','5'};
A. 数组x和数组y的长度相同 
B. 数组x的长度大于y数组的长度
C. 数组x等价于数组y 
D. 数组x的长度小于数组y的长度
3.scanf ( ) 函数的正确调用形式是(  d  )。
A.scanf(格式控制串,输出项表列);
B.scanf(格式控制串,输出项地址表列);
C.scanf(格式控制串,输入项表列);
D.scanf(格式控制串,输入项地址表列);
4.下列说法正确的是( c    )。
A. C 语言的主函数不允许有参数         
B. C 语言的主函数最多允许 1 个参数
C. C 语言的主函数可以无参数   
D. C 语言的主函数允许任意个参数
5.表达式 (!'1'||'1')+5 的值是( c    )。
A. 不确定  B. 5  C. 6      D. 7
7.若有以下定义和语句, char  s1[]="12345", s2[]="1234";则函数strcmp(s1,s2)的值为(        a  )。   
A. 大于0  B. 小于 0  C. 等于0  D. 等于1
8.选出表达式结果为假的一项(  b  )。
A. 1<4&&5>=4 
B. (2>5==5)
C. (3<=3)&&(2<5) 
D. !(4<=8)||(3<=7)
9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( a    )。
A. auto  B. static  C. extern  D. register
10.下列表达式中,(    a )是非法的。
已知float a=5;int b=4;
A. a%3+b      B. b*b&a||b  C. (a>b)+(int)b%2  D. --b+a
11.下列运算符中,优先级别最高的是( b    )。
A. <=      B. %  C. ||      D. +
12.关于下列语句描述正确的是(  b    )。
union
{ unsigned int n;
unsigned char c; }u1;
A. u1是共用体类型名
B. u1是共用体变量名
C. u1是结构体类型名
D. u1占用内存空间3字节
13.设有int x,y;正确的输入语句是(  c    )。
A. scanf("%d%d",x,y);
B. scanf("x=%f,y=%f",&x,&y);
C. scanf("%d,%d",&x,&y);
D. scanf("x=%d,y=%d",x,y);
14.在一个C语言程序中(    b  )。
A. main函数必须出现在所有函数之前
B. main函数可以在任何地方出现
C. main函数必须出现在所有函数之后
D. main函数必须出现在固定位置
15.有关预处理命令#define N 10,以下描述正确的是(  c    )。
A. N在程序运行时可以被改变
B. N是个整型变量
C. N没有值和类型的含义
D. N是个标识符,称为宏体
16.当调用函数时,实参是一个数组名,则向函数传送的是(  b  )。
A. 数组的长度 
B. 数组的首地址
C. 数组每一个元素
的地址 
D. 数组每个元素中的值
17.有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是 (  a  )。
A. 011122      B. 012   
C. 012020      D. 120
18.以下程序的输出结果是(  d    )。
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2, c=3;
printf("%d\n", M(a+b,b+c, c+a));
}
A. 19          B. 17   
C. 15          D. 12
19.下列程序的输出结果是(  d  )。
main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*p);
}
A. 非法        B. a[4]的地址 
C. 5            D. 4 
20.函数fun(float x)的函数类型是(  a  )。
A. int    B. void 
C. float      D. 不确定
21.关于C程序说法正确的是(  c    )。
A. 一行只能写一条语句
B. 一个语句不可以分写在多行上
C. C语言本身没有输入输出语句
D. 分号不是C语句的必要组成部分
22.关于语句FILE *fp;描述错误的是(  c    )。
A. fp是一个指向FILE类型的指针变量
B. 通过fp可以实现对与它相关文件的访问
C. fp指向与它相关文件的地址
D. 函数fclose(fp)可关闭fp指针指向的文件
23.假定x和y为double型,则表达式x=2,y=x+3/2的值是(  d    )。
A. 3.500000    B. 3   
C. 2.000000    D. 3.000000
24.下列运算符结合方向是右结合的是(  d  )。
A. +            B. &&
C. >=          D. ?:
25.以下语句中不正确的是(  a    )。
A. char s[10];s="test";
B. char s[]={'t','e','s','t'};
C. char s[20]="test";
D. char *s="test\n";
26.有以下程序段
int k=0;
while(k=1)  k++;
while 循环执行的次数是(  a  )。
A.无限次           
B.有语法错,不能执行
C.一次也不执行   
D.执行1次
27.关于else语句描述正确的是(  c  )。
A. 不可缺少 
B. 必须与离之最近的if语句配对使用
C. 不可以单独使用
D. 必须使用缩进格式表示
28.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(  c    )。
A.  0          B.  1     
C.  2          D.  3
29.合法的赋值语句是(  b  )。
A. x=y=100 
B. d--; 
C. x+y; 
D. c=int(a+b);
30.以下程序段的输出结果是(  c  )。
int x=3;
do
{ printf("%3d",x-=2);
}while(!(--x));
A. 1        B. 3  0 
C. 1  -2  D. 死循环
31.只有当整数x为奇数时,表达式为逻辑“真”的是(  b  )。
A. x%2==0
B. !(x%2==0)
C. (x-x/2*2)==0
D. !(x%2)
31.下列程序段的输出结果是(  a    )。
for(a=1;a<=10;a++)
if(a%3==1)break;
printf("%d\n",a);
A. 1      B. 2 
C. 3      D. 4
32.以下叙述中正确的是(  b    )。
A. 全局变量的作用域一定比局部变量的作用域范围大
B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间
C. 函数的形参都属于全局变量
D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值
33.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));  ,该函数调用语句中,含有的实参个数是(  a    )。
A. 3      B. 4 
C. 5      D. 有语法错误
34.与y=(x!=0?1:-1);功能相同的if语句是(  b    )。
A.if(x<>0) y=1;
else y=-1;
B.if(x) y=1;
else y=-1;
C.if(x) y=-1;
else y=1;
D.if(x>=0) y=1;
35.以下能正确定义数组并正确赋初值的语句是(  d  )。
A. int N=5,b[N][N];
B. int a[0][2]={{1},{3}};
C. int c[2][]={{1,2},{3,4}};
D. int d[3][2]={{1,2},{3,4}};
36.下列选项中合法的字符常量是  (  b  )
A. "&"  B.  'R' 
C.  "ABC"  D.  "\n"
37.若有如下定义:
    int  a[10];
则下面不能正确表示 a[1]地址的 表达式是(  d    )。
A.  &a[1]  B.  &a[0]+1
C.  a+1  D.  a++
38.若有以下程序:
main (  )
{ int a[3][3]={1,2,3,4,5,6,7,8,9} , i=0,sum=0;
do
{ sum+=a[i][i];
i++;
} while(i<3); 
printf( "%d" , sum ); }
则程序运行后的输出结果是 (    a    )。
A. 15      B. 12 
C. 16      D. 18
39.下列数组声明中不正确的是(  c    )。
A.char a[4] ;
B. char a[ ][4]={"aa",""}; 
C. char a[4][ ];
D.char a[5][4];
40.有以下声明语句:
struct  x
{ int a ; float  b; char  c; }  y ; 则下列叙述中不正确的是  (  b    )。
A. x 是定义的结构体名. 
B. y 是定义的结构体类型名.
C. struct是结构体类型的关键字.
D. a,b,c 都是结构体成员名.
41.已知int t=0;则以下关于 while(t=1){. . .}的说法正确的是( c  )。
A. 循环控制表达式不正确 
B. 循环控制表达式的值永远为1
C. 死循环,永远无法结束 
D. 一次循环体都不会执行.
42.int  x=3,y=4,a=5,b=6;  则表达式(a=x) &&(b=y)的值是 ( b )。
A. 0  B.  1 
C. 2  D.  不确定
43.执行以下程序后的输出结果为(    b  )。
  # include <stdio.h>
main()
{ int i;
for (i='A'; i<'I';i++,i++)
printf("%c",i+32);  printf("\n"); }
A. abcdefghi B. aceg 
C. acegi  D.编译出错,无输出。
44.以下关于宏替换的叙述不正确的是(  d    )。
A. 宏替换不占用运行时间
B. 宏替换只是字符替换,不作语法检查
C. 宏名称无类型
D. 宏名称必须用大写字母表示
45.一个C语言程序由若干个函数组成,其中唯一不可缺少的函数是(  d  )。
A. 库函数  B. scanf 函数
C. printf函数 D. main函数
46.下面程序的输出是(  a  )。
main()
{  int a[10]={1,2,3,4,5};
      pr
intf("%d\n",a[6]);
}
A. 0  B. 1      C. 2  D. 3
47.若有 static char  s[10 ]="abcdefg"; 则数组 s 所占的字节数是(  b    )。
A.7      B. 10 
C.  11  D.  8
48.下列程序的功能是 (  a  )
main ( )
{
int s[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int m,n;
for (m=0;m<4;m++)
{  for (n=0;n<=m;n++)
printf("%d",s[m][n]);
printf("\n");
}  }
A.输出4×4矩阵的下三角的元素.   
B.输出4×4矩阵的上三角的元素.
C.输出4×4矩阵的对角线上的元素. 
D.输出4×4矩阵的全部元素.
49.执行语句for ( x=4; x-->0 ;  );后,变量x 的值是 (  a        )。
A.  -1  B.  0 
C.  1      D.不确定
50.若有以下程序:
main (  )
{  int  x[6]={11,16,17,28,20}, *t=x+3;
printf ("%d" ,*t-2);
}
则程序运行后的输出结果是 (    d      )。
A. 18      B. 14 
C. 29      D. 26
51.表达式x 和y 的取值同时在 ( 0, +∞) 或 同时在 (-∞, 0) "的表达式是 (    c      ) 。
A.  (x+y>0)  && (x+y<=0) 
B.  (x>=0 | | y>=0) && (x<0 ||y<0)           
C.  x>0&&y>0 || x<0 && y<0
D.  (x>=0&&y>=0) &&(x<0&&y<0)
52.有以下程序:
main( )
{ int  n,s[8];
for ( n=1; n<=8;n++)
s[8-n]=n;
printf ("%d%d%d" ,s[2],s[4],s[6] );    }
则程序运行后的输出结果是 (  c  )。
A. 246  B. 741                   
C. 642  D. 147
53.设int x=12,y=12345;则执行语句printf("x=%4d,y=%4d",x,y);的结果是(  c  )。
A.  x=  12,y=1234 
B.  x=12,y=12345
C.  x=  12,y=12345 
D.  x=  12,y=2345
54.C 语言规定函数返回值的类型由(  a  )。
A.在定义函数时所指定的函数类型所决定。
B.调用该函数时 的主调函数的类型所决定。
D.调用该函数时系统临时决定。
switch语句表示范围55.while  循环和 do -while 循环的区别是(  c  )
A. while  循环和 do -while 循环的循环体都可以不执行;
B. while  循环的循环体将至少执行一次,而do -while 循环的循环体可以不执行;
C. do- while  循环的循环体将至少执行一次,而while 循环的循环体可以不执行;
D. while  循环和 do -while 循环的循环体都将至少执行一次。
56.下列程序的执行结果是(  c  )。
main()
{  int n=9; while(n>6) printf("%d",n--);}
A. 9876  B. 876 
C. 987  D. 8765
57.下列说法正确的是(    d        )。
A. C 语言能嵌套定义函数,但不能嵌套调用函数   
B. C 语言不能嵌套定义函数,也不能嵌套调用函数 
C. C 语言能嵌套定义函数,也能嵌套调用函数
D. C 语言不能嵌套定义函数,但能嵌套调用函数 
58.a,b,c,d  都为float 型,且已正确赋值,则与数学表达式2ab/(5cd)等
价的 C语言表达式是( a  )。
A. a/c*b/d*2/5      B. a/(5*c*d)/2*b
C. 2*a*b/5*c*d  D. 2/5*a*b*(1/c*d)
59.下列程序的执行结果是(  b  )。
main()
{ int a,b,c;  c=(a=3,b=a--);
 printf("%d,%d,%d",c,a,b);  }
A. 3,3,3  B. 3,2,3 
C. 2,3,3  D. 2,2,3
60.有如下定义:int a=3,b=-4; long  c=5;  float x; double  y ; 则下列选项中不符合C语言语法的表达式是(      c  )。
A. a+=a-=a*b B. a%b 
C. y=2*x;      D. y=(float)c
1.在C语言中函数的隐含存储类型是(  a  )。
A. auto    B. static
C. extern        D. 无存储类型
2.执行语句for(i=1;i++<4;);后,变量i的值为(  c    )。
A. 3      B. 4
C. 5      D. 不定
3.以下说法不正确的是(  c    )。
A. C语言中函数和变量一样有数据类型
B. 函数即使没有参数,也不可以缺少函数名后的一对圆括号
C. 函数带有形参时,形参必须是变量
D. 对不需要函数返回值的函数,应定义为void类型
4.以下所列的各函数原型中,正确的是(  c  )。
A. void fun(var a:int,var b:int);
B. void fun(int a,b);
C. void fun(int a,int b);
D. void fun(a as int ,b as int);
5.若有定义和语句:char s[10];s="abcd";printf("%s\n",s);则结果是(  d  )。
A. 输出abcd  B. 输出a
C. 输出abcd\n  D. 编译不通过
6.关于数组元素的下标描述正确的是(  c  )。
A. 必须是常量;
B. 只能从0开始;
C. 必须是整型表达式
D. 下标的个数表示数组的长度
7.下列常数中哪个是不合法的C常量(  c    )。
A. -0.  B. 0003 
C. 3e+2.3      D. "105"
8.在C程序中,设有说明: static int a[2][3]={ 1,2,3,4,5,6 }; 则下列表达式对a数组中的元素值引用正确的是(  b  )。
A. a(1)(2)      B. **a 
C. a[1,2]      D. a[0][3]
9.下列运算符中,优先级别最高的是(  c  )。
A. <=      B. = 
C. %      D. &&
10.关于C程序说法正确的是(  c  )。
A. 一行只能写一条语句
B. 一个语句不可以分写在多行上
C. C语言本身没有输入输出语句
D. 分号不是C语句的必要组成部分
11.C语言中的if(表达式)语句里,表达式可以是(  b  )。
A. 逻辑表达式、关系表达式
B. 任何合法的表达式
C. 赋值表达式
D. 逻辑、关系和赋值表达式
12.float  i,j,下列可以正确表示把i,j之和转换成整型的C语言表达式(    c  )。
A. int(i+j)      B. int(i)+int(j)
C. (int)(i+j)  D. (int)i+j
13.下列标识符中非法的是(    a  )。
A. FILE      B. temp 
C. stu_ave      D. sum5
14.程序段:int  x=10, y=3,z;
printf("%d\n",z=(x%y,x/y));的输出结果是:(  c  )。
A. 1            B. 0   
C. 3            D. 4
15.以下程序的输出结果是(    c  )。
main()
{ int i,a[10]
;
for(i=9;i>=0;i--)
a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258    B. 741
C. 852    D.369
16.下列说法正确的是(  a  )。
A. continue语句只能用于循环语句中
B. switch语句中必须有default语句
C. break语句只用于循环语句内 
D. break终止本次循环 ,continue终止本重循环
17.关于函数的说法不正确的是(  a  )。
A. 被调用函数的定义必须放在主调函数之前
B. 函数调用可以嵌套 
C. 程序的入口是从main()开始
D. 各函数之间是平行的,相互独立的
18.已知int  a,b;则下列表达式不合法的是 (  b  )。
A. a/b          B. (a+b)++
C. a+=b          D. a*=b+3
19.C语言中do {循环体}while( 表达式);语句中,说法正确的是(  b    )。
A. 循环体可能一次也不执行 
B. 循环体会至少执行一次
C. 循环体必须用{}组成复合语句
D. 表达式的值为0时,返回循环体执行循环内容
20.下列属于C语言基本数据类型的是(  c    )。
A. 整型、实型、逻辑型
B. 整型、字符型、逻辑型
C. 整型、字符型、实型     
D. 整型、实型、字符型、逻辑型
21.若给出以下定义:
char a[]="abcdefg";
char b[]={'a','b','c','d','e','f','g'};
正确的叙述为(  c  )。
A. 数组a与数组b等价
B. 数组a与数组b的长度相同
C. 数组a的长度大于数组b的长度
D. 数组a的长度小于数组b的长度
22.执行以下程序后的结果为(  a  )。
main( )
{int  i=1;
while(i<=5)
printf("%d,",i++);}
A. 1,2,3,4,5,  B. 2,3,4,5,6, 
C. 2,3,4,5,  D. 1,2,3,4,
23.以下描述中正确的是(  c  )。
A. 预处理指完成宏替换和文件包含中指定的文件的调用
B. 预处理命令也是C语句
C. 凡是行首以#开始的控制行都是预处理命令
D. 预处理命令只能放在程序的开头
24.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(  b    )。
A. 地址传递 
B. 单向值传递 
C. 由实参传给形参,再由形参传给实参
D. 传递方式由用户指定
25.为表示关系'a'≤x≤'z' ,C 语言表达式应是(  a    )。
A. (x<='z')&&(x>='a') 
B. (x<='z')&(x>='a')   
C. (x<='z') and (x>='a') 
D. (x<='z')||(x>='a')
1.下列说法正确的是(      d      )。
A. C 语言能嵌套定义函数,但不能嵌套调用函数   
B. C 语言不能嵌套定义函数,也不能嵌套调用函数 
C. C 语言能嵌套定义函数,也能嵌套调用函数
D. C 语言不能嵌套定义函数,但能嵌套调用函数 
2.C 语言规定函数返回值的类型由(  a  )。
A.在定义函数时所指定的函数类型所决定。
B.调用该函数时 的主调函数的类型所决定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。