x:
y的值是()。
A)4B)1C)3D)2
23.若已定义:
inta=2;语句a*=a-=a+=3;执行后,a的值是()。
A)0B)9C)3D)5
24.若已定义:
floatx,y,z;则表达式()与右侧所示代数式计算结果不相符。
A)1/3*(x+y)/(1+z)
B)(x+y)/(3*(1+z))
C)(x+y)/3/(1+z)
D)(x+y)/(1+z)/3
25.C语言要求运算对象必须是整型的算术运算符是()。
A)%B)+C)/D)-
26.若已定义:
intx;charc;则表达式c+10*x的结果类型是()。
A)doubleB)intC)charD)float
27.逻辑表达式()能正确判断变量a和b的值同时为正或同时为负。
A)(a+b>0)&&(a*b<0)
B)(a>0||b>0)&&(a<0||b<0)
C)(a>0&&b>0)||(a<0&&b<0)
D)(a>0&&b>0)&&(a<0&&b<0)
28.若已定义:
charca;判断变量ca值为大写字母的逻辑表达式是()。
A)‘A’<=ca<=’Z’
B)(ca>=’A’)&&(ca<=’Z’)
C)(‘A’>=ca)&&(‘Z’<=ca)D)(ca>=A)&&(ca<=Z)
29.若已定义:
charc;则()是正确的赋值表达式。
A)c=”e”+10.78B)c=”101”+10.78
C)c=101D)c=’101’
30.下列四个运算符,按优先级别由高到低排列的是()。
A)!
、*、+、=B)*、!
、+、=
C)!
、=、*、+D)!
、*、=、+
31.若已定义:
charca;要从键盘输入字符’B’给变量ca,应使用的语句是()。
A)putchar(ca)B)scanf(“%c”,ca);
C)getchar(ca);D)ca=getchar();
32.以下程序运行后,要使运行结果为:
36,正确的数据输入形式是()。
voidmain()
{inta,b;
scanf(“%d,%d”,&a,&b);
printf(“%d%d\n”,a,b);
}
A)36B)a=3,b=6
C)3,6D)6,3
33.要使下列程序的运行结果为123,123,12则()是正确的数据输入方式。
voidmain()
{inta,b,c;
scanf(“%d-%d-%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
A)123,12312B)123,123,12
C)123-123-12D)12312312
34.若已定义:
intx=3,y=2;语句()可以实现输出结果为:
3*2=6.
A)printf(“x*y=%d”,x*y);
B)printf(“%d*%d=x*y”,x,y);
C)printf(“%d*%d=%d”,x,y,x*y);
D)printf(“x,y=x*y”);
35.若已定义:
intx,y;则()表达式无法正确表示数学关系式
A)(x-y)<-3&&(x-y)>3
B)abs(x-y)>3
C)(x-y)>3||(x-y)<-3
D)(x-y)*(x-y)>9
(3)选择、循环结构
36.若已定义intk,a,b,c;则语句()与k=a>b?
(b>c?
1:
0):
0语句的功能等价。
A)if(a<=b)
k=0;
elseif(b<=c)
k=1;
else
k=0;
B)if(a>b)
k=1;
elseif(b>c)
k=1;
C)if(a>b&&b>c)
k=1;
else
k=0;
D)if(a>b||b>c)
k=1;
37.下列()不能构成一条if语句。
A)if(x>0)a=1;elsea=2;
B)if(x>0);
C)if(x==0)a=1:
b=2;
D)if(x==0);elsea=2;
38.以下程序的运行结果是()。
voidmain()
{intk=1;
switch(++k)
{default:
printf(“%d”,k);
case1:
printf(“%d”,k);
break;
case2:
printf(“%d”,2*k);
case3:
printf(“%d”,3*k);
break;
}
}
A)4B)11C)1D)46
39.以下程序的运行结果是()。
intfun(intk)
{switch(k)
{case2:
k++;
case3:
case4:
k++;
default:
k++;
}
returnk;
}
voidmain()
{printf(“%d\n”,fun
(2));
}
A)4B)3C)5D)2
40.下列程序的运行结果是()。
voidmain()
{inta=23;
switch(a%3)
{default:
printf(”DD”);
case1:
printf(“AA”);
break;
case2:
printf(“BB”);
case3:
printf(“CC”):
}
}
A)BBCCB)DDAA
C)CCD)AA
41.以下程序的运行结果的是()。
voidmain()
for(i=7;i>3;i--,i--)
printf(“A”);
}
A)AAAB)AC)AAAAD)AA
42.下列程序段运行后count的值为()。
inti=8,count=0;
while(i>=2)
{++count;
i-=2;
}
A)4B)10C)6D)8
43.设有下列程序段
inti=6;
while(i<=6)
i++;
下列叙述正确的是()。
A)循环体语句一次也不执行
B)循环体语句执行2次
C)循环体语句执行3次
D)循环体语句执行1次
44.continue语句在循环语句中的作用是()。
A)结束本次循环并跳出循环体
B)终止程序运行
C)继续执行continue语句后循环体各语句
D)终止本次循环并执行下一次循环
45.以下程序段运行后a的值为()。
inti=1,a=0;
while(i++<=6)
{a+=1;
if(i%2!
=0)
break;
a+=2;
}
A)3B)6C)4D)1
(4)数组
46.若已定义:
inta[8];对数组a元素引用正确的是()。
A)a[5]B)a[-1]C)a(6)D)a[8]
47.下列程序段的运行结果是()。
inta[10]={0,1,2,3,4,5,6,7,8,9},i=0,t;
while(i<=4)
{t=a[i];
a[i]=a[9-i];
a[9-i]=t;
i++;
}
for(i=0;i<10;i++)
printf(”%d”,a[i]);
A)9876543210B)2468013579
C)0123456789D)1357924680
48.以下程序的运行结果是()。
voidmain()
{inta[5]={1},i;
for(i=0;i<4;i++)
a[i+1]=a[i]+2*(i+1);
for(i=0;i<5;i++)
printf(“%d”,a[i]);
}
A)1261523
B)1371321
C)12345
D)13579
49.下列程序段的运行结果是()。
inta[5]={2,4,3,5,6},i,s=0;
for(i=1;i<4;i++)
s+=a[i-1];
printf(“%d\n”,s);
A)12B)14C)20D)9
50.对intx[5]={5,3,1};语句的功能描述正确的是()。
A)将3个初值依次赋给x[1]至x[3],且其他元素值均为0
B)将3个初值依次赋给x[0]至x[2],且其他元素值均为0
C)将3个初值依次赋给x[2]至x[4],且其他元素值均为0
D)将3个初值依次赋给x[3]至x[5],且其他元素值均为0
51.若已定义:
intarr[][3]={1,2,3,4,5,6};则数组a第一维长度是()。
A)2B)1C)6D)3
52.能正确初始化二维数组arr的是()。
A)intarr[][]={{1,2},{3,4,5}};
B)intarr[2][3]={{1,2},{3,4,5}};
C)intarr[2][]={1,2,3,4,5};
D)intarr[2][3]={{1,2},{3,4},{5}};
53.C语言中,二维数组元素的存放顺序是()。
A)既可以按行优先,也可以按列优先
B)由用户自己定义
C)按行优先
D)按列优先
54.若已定义:
inta[][4]={{0},{1,2},{3,4,5},
{6,7,8,9}},则a[2][2]的值为()。
A)9B)2C)4D)5
55.以下程序的运行结果是()。
voidmain()
{inta[3][3]={0},i,j;
for(i=0;i<3;i++)
a[i][0]=i+1;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf(“%d“,a[i][j]);
printf(“\n”);
}
}
A)100B)123
020000
003000
C)001D)100
020200
300300
56.下列正确描述字符数组的是()。
A)字符数组只能存放字符串,不能存放单个字符
B)字符串中可以含有‘\0’字符
C)C语言没有字符串类型变量,可用字符数组实现字符串操作
D)只能利用赋值语句实现字符数组的整体赋值
57.以下程序段的运行结果是()。
charstr1[]={‘Y’,’o’,’u’,’\0’,’a’,’r’,’e’,’\0’,
’w’,’e’,’l’};
charstr2[]={‘w’,’e’,’l’,’c’,’o’,’m’,’e’,’\0’,};
puts(strcat(str1,str2));
A)Youarewelwelcome
B)Youwelcome
C)Youarewelcome
D)Youwelcome
58.若已定义chars3[20],s1[10]=”Howare”,s2[10]=”you”;执行语句strcpy(s3,strcat(s1,s2));s3的值是()。
A)youHowareB)Howare
C)HowareyouD)s1s2
59.若已定义chats1[20],s2[20];能正确从键盘读入字符串的是()
A)getch(s1,s2);B)scanf(“%s%s”,s1,s2);
C)scanf(“%c%c”,s1[20],s2[20]);
D)gets(s1[20],s2[20]);
60.以下程序段的运行结果是()。
chars1[7]=”abcdef”,s2[4]=”12”;
strcpy(s1,s2);
printf(“%s%c”,s1,s1[5]);
A)abcdef12B)12f
C)12eD)12eff
(5)函数
61.若已定义:
doublex;函数()可用于求x的绝对值。
A)sqrt(x)B)abs(x)
C)fabs(x)D)log(x)
62.以下程序段中函数调用语句fun((a,b),m);的实参值是()。
inta=1,b=2,m=3;
fun((a,b),m);
A)3,3B)(1,2),3C)2,3D)1,3
63.下列叙述正确的是()。
A)函数的形参在被调用前是没有确定值的
B)函数的形参和对应的实参个数应相等,类型可以不兼容
C)形参是变量名时,实参也只能是变量名,不可以是表达式
D)函数至少要有一个返回值
64.函数调用中,若实参为数组名,则传递给对应形参的是()。
A)数组中每个元素的值
B)数组首元素的值
C)数组的首地址
D)数组的长度
65.下列程序的运行结果是()。
#include
intfun(intx,inty)
{intz;
z=x>y?
x:
y;
return(x+z);
}
main()
{inta=6,b=3;
printf(“%d\n”,fun(a,b));
}
A)12B)9C)7D)4
66.下列叙述错误的是()。
A)预处理命令”#defineN3”后不能加“;”
B)宏定义也是C语言的语句,可出现在源程序中任意位置
C)C源程序加入一些预处理命令是为了改进程序设计环境,提高编程效率
D)预处理命令都必须以#开头
67下列程序的运行结果是().
#defineK3
voidmain()
{inta=2,b=4;
printf(“%d\n”,a*(K+b));
}
A)11B)6C)14D)10
68.以下程序的运行结果是()。
#defineM3
#defineNM+5
voidmain()
{printf(“%d\n”,N*2);
}
A)11B)13C)16D)6
69.下列程序的运行结果是()
#defineM5
#defineNM+1
#defineNNN*M
voidmain()
{printf(“%d\n”,2*NN);
}
A)20B)60C)52D)15
70.下列程序中定义的一维数组a的长度是()。
#defineM3+1
voidmain()
{inta[2*M];
……
}
A)6B)7C)10D)8
(6)指针
71.若已定义:
inta[5]={1,2,3,4,5};执行*p=a;后能表示a[1]地址的是()。
A)a++B)p[1]C)p++D)a[1]
72.若已定义:
inta[5]={1,2,3,4,5},*p=&a[2];则不能表示a[0]地址的是()。
A)aB)&a[0]C)p-2D)*p-2
73.若已定义:
inta[5]={1,2,3,4,5};int*p=&a[2];则下列值为3的是()。
A)*pB)p-a[0]C)a[3]D)p-a
74.若已定义:
inta[5]={1,2,3,4,5},*pa=a;下列叙述正确的是()。
A)pa[0]与a[0]的值相等
B)pa与a[0]的值相等
C)pa+2与a[2]的值相同
D)a++与pa++的作用相同
75.若已定义:
inta[6]={1,2,3,4,5,6},*p;下列赋值语句不合理的是()。
A)p=a;B)p=&a[0]+1
C)p=&a[0];D)p=a[0]
76.若已定义:
inta=2,*p=&a,b=5,*q=&b;下列运算无意义的是()。
A)q+pB)*q+*p
C)q-pD)*q-*p
77.若已定义:
inta=2,*p1=&a;floatb=5,*p2=&b;下列正确的赋值语句是()。
A)p1=*(a+1);B)p2=b;
C)*p2=*a;D)b=*p1+*p2;
78.以下程序的运行结果是()。
voidmain()
{inta=3,b=4,c;
int*p1,*p2;
p1=&a;
p2=&b;
p2=p1;
c=*p1+2*(*p2);
printf(“%d\n”,c);
}
A)7B)11C)15D)9
79.下列程序的运行结果是()。
voidmain()
{inta=1,b=2;
int*pa=&a,*pb=&b;
*pa=*pb;
*pb=*pa;
printf(“%d,%d\n”,a,b);
}
A)2,2B)1,1
C)2,1D)1,2
80.下列程序的运行结果是()。
voidfn(int*p,intn)
{intj;
for(j=0;j*(p+j)+=1;
}
voidmain()
{inta[3]={1,2,3};
inti;
fn(a,3);
for(i=0;i<3;i++)
printf(“%d”,*(a+i));
}
A)334B)345
C)123D)234
81.以下程序的运行结果是()。
voidfn(intx,inty,int*p)
{*p=x+y;
}
voidmain()
{inta,b;
fn(1,2,&a);
fn(3,a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
A)a=3,b=6;B)a=1,b=3
C)a=6,b=6D)a=3,b=3;
82.以下程序段的输出结果是()。
inta[2][2]={1,2,3,4},(*p)[2];
p=a;
printf(“%d\n”,(*p)[2]);
A)2B)3C)4D)1
83.以下程序的运行结果是()。
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
inti,*p;
p=a;
for(p=a;pprintf(“%d”,*p);
printf(“\n”);
}
A)12345
B)123
C)123456
D)14253
(7)结构体、共用体、其它
84.若已定义:
structstudent
{intnum;
char*name;
floatscore;
}stu,*p=&stu;
不合法引用结构变量stu中成员的是()。
A)stu.nameB)stu.num
C)p->numD)p.sc