1、
设int a=12,则执行完语句a+=a-=a*a后,a的值是:
A、552
B、264
C、144
D、-264
2、
判断字符串a是否大于b,应当使用:
A、if(a>b)
B、if(strcmp(a,b))
C、if(strcmp(b,a)>0)
D、if(strcmp(a,b)>0)
3、
以下程序的输出结果是:
main( )
{
int k=17;
printf("%d,%o,%x ",k,k,k);
}
A、17,021,0x11
B、17,17,17
C、17,0x11,021
D、17,21,11
4、
在下列程序段中,枚举变量c1的值是:
enum color { red,yellow,blue=4,green,white}c1;
c1=yellow;
c1=white;
A、1
B、3
C、5
D、6
5、
执行下面的程序段后,变量k中的值为
s[0]=k;
k=s[1]*10;
A、不定值
B、33
C、30
D、10
6、
以下不正确的if语句形式是:
A、if(x>y&&x!=y)t=x++;
B、if(x==y)x+=y;
C、if(x!=y)scanf("%d",&x) else scanf("%d",&y);
D、if(x<0)x++;
7、
能正确表示a 和b同时为正或同时为负的逻辑表达式是:
A、(a>=0||b>=0)&&(a<0||b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
8、
以下结构体类型的变量所占用字节数是:
struct student
{
short num;
char name[15];
float score;
char sex;
};
A、22
B、24
C、26
D、28
9、
对于一个正常运行的c程序,以下叙述中正确的是:
A、程序的执行总是从main函数开始,在main函数结束。
B、程序的执行总是从程序的第一个函数开始,在main函数结束。
C、程序的执行总是从main函数开始,在程序的最后一个函数中结束。
D、程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束。
10、
若执下面程序时从键盘上输入5,
main()
{
int x;
scanf("%d",&x);
if(x++>5) printf("%d ",x);
else printf("%d ",x--);
}
则输出是:
A、7
B、6
C、5
D、4
11、
请读程序片段(字符串内没有空格字符):
printf("%d ", strlen("ATS12"));
上面程序片段的输出结果是:
A、11
B、5
C、6
D、8
12、
按照c语言规定的用户标识符命名规则,不能出现在标识符中的是:
A、大写字母
B、连接符
C、数字字符
D、下划线
13、
若i为整型变量,则以下循环执行次数是:
for(i=2;i==0;) printf("%d",i--);
A、无限次
B、0次
C、1次
D、2次
14、
以下数组定义不正确的是:
A、intarray[] = {1,2,3};
B、floatarray[5] = {0};
C、chararray[5] = {1,2,3,4,5} ;
D、intarray[5] = {1,2,3,4,5,6};
15、
以下错误的if语句是:
A、if(x>y)z=x;
B、if(x==y)z=0;
C、if(x!=y)printf("%d",x) else printf("%d",y);
D、if(x< y) { x++;y--;}
16、
下列说法中正确的是:
A、一个数组能够存储许多不同类型的值
B、数组的下标可以是float数据类型
C、如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐
D、初始化值列表中的值的个数多于数组元素的个数是错误的
17、
为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的else总是与____组成配对关系。
A、其上面距它最近的,并且没有其他else与其配对的if相配对
B、在同一行上的if
C、缩排位置相同的if
D、在其之前未配对的if
18、
C语言源程序的基本单位是:
A、过程
B、函数
C、子程序
D、标识符
19、
下列程序的输出结果是:
main( )
{
int a=7,b=5;
printf("%d ",b=b/a);
}
A、5
B、1
C、0
D、不确定值
20、
下面不正确的字符串常量是:
A、'abc'
B、"12'12"
C、"0"
D、""
21、
设有说明int (*ptr)();其中标识符ptr是:
A、是一个指向整形变量的指针
B、是一个指针,它指向一个函数值是int的函数
C、是一个函数名
D、定义不合法
22、
以下程序的输出结果为:
#define ADD(x) x*x
main( )
{
int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
A、d=70
B、d=80
C、d=140
D、d=700
23、
以下代码的输出结果为:
int array[3] = {1,4};
for(int i = 0;i < 3;i++)
{ printf(“%d ”,array[i]); }
A、14 0
B、01 4
C、10 4
D、14 4
24、
若程序中定义了以下函数
double myadd(double a,double b)
{ return (a+b); }
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:
A、doublemyadd(double a,b);
B、doublemyadd(double,double);
C、doublemyadd(double b,double a);
D、doublemyadd(double x,double y);
25、
以下循环体的执行次数是:
main()
{
int i,j;
for (i=0,j=1; i<=j+1;i+=2,j--)
printf("%d ",i);
}
A、3
B、2
C、1
D、0
26、
设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是:
A、float*p=1024;
B、int*p=(float)x;
C、floatp=&x;
D、float*p=&x;
27、
设有以下定义:
#define N 3
#define Y(n) ((N+1)*n)
则执行语句:z=2* (N+Y(5+1));后,z的值为:
A、出错
B、42
C、48
D、54
28、
在C语言程序中,以下说法正确的是:
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用都不可以嵌套
D、函数的定义和函数的调用都可以嵌套
29、
若有以下宏定义:
#define N 2
#define Y(n)
(N+1)*n
则执行语句intz; z=2*N+Y(5);后的值是:
A、50
B、34
C、19
D、无定值
30、
设 int x=1, y=1; 表达式(!x||y--)的值是:
A、0
B、1
C、2
D、-1
31、
如有定义int * p = malloc(15);p当int型数组使用,最多可以使用多少元素:
A、3
B、4
C、15
D、16
32、
以下代码的输出结果为:
int x = 10,y = 10;
for(int i = 0; x > 8; y = ++i)
{ printf(“%d %d”, x-- , y); }
A、101 9 2
B、98 7 6
C、910 9 10
D、1010 9 1
33、
以下代码的输出结果为:
void fun(int x,int y)
{ int temp;
if(x < y)
{ temp = x ; x = y ; y = temp; }
}
main()
{
int a = 4,b = 3,c = 5;
fun(a,b);fun(a,c);fun(b,c);
printf("%d,%d,%d ",a,b,c);
}
A、3,4,5
B、5,3,4
C、4,3,5
D、5,4,3
34、
下面程序的输出是:
fun3(int x)
{
static int a=3;
a+=x;
return(a);
}
main()
{
int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d ",n);
}
A、3
B、4
C、6
D、9
35、
有以下程序
main()
{
int m[][3]={1,4,7,2,5,8,3,6,9};
int i,j,k=2;
for(i=0;i<3;i++){
printf("%d ",m[k][i]);
}
}
执行后输出结果是:
A、45 6
B、25 8
C、36 9
D、78 9
36、
以下程序的输出结果为:
main( )
{
char c;
int i;
for(i=65;i<68;i++)
{
c=i+32;
switch(c)
{
case 'a':
case 'b':
case 'c':
printf("%c,",c);
break;
default:
printf("end");
}
}
}
A、a,b,c,end
B、a,a,a,end
C、a,a,a,
D、a,b,c,
37、
定义一个函数指针,返回类型为void,参数为两个int型变量,一下定义正确的是:
A、void(*p)(int,int) = NULL;
B、void*p(int,int) = NULL;
C、typedefvoid(*p)(int,int)
D、typedefvoid *p(int,int)
38、
下面选项中正确的赋值语句是(设 char a[5],*p=a;):
A、p="abcd";
B、a="abcd";
C、*p="abcd";
D、*a="abcd";
39、
具有相同类型的指针类型变量p与数组a,不能进行的操作是:
A、p=a;
B、*p=a[0];
C、p=&a[0];
D、p=&a;
40、
设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:
A、(*p).c2.a
B、(*p).a
C、p->c2.a
D、p.c2.a
※判断题(共10题,每题2分)
1、
C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值。
正确
错误
2、
函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。
正确
错误
3、
条件表达式不能取代一般if的语句。
正确
错误
4、
数组名不能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。
正确
错误
5、
可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数
正确
错误
6、
C语言允许用字符串的方式对数组作初始化赋值。
正确
错误
7、
在多层循环中,?一个break语句只向外跳一层。
正确
错误
8、
continue 不是结束本次循环,而是终止整个循环的执行。
正确
错误
9、
通过return语句,函数可以带回一个或一个以上的返回值。
正确
错误
10、
若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有7个元素。
正确
错误