30、有以下程序( B ) main() { int i;
for (i=0; i<3; i++) switch (i)
{ case 1: printf(\case 2: printf(\default : printf(\}
执行后输出结果是
A)011122 B)012 C)012020 D)120
31、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 ( D ) A.if(s1>s2)S;
B.if(strcmp(s1,s2))S; C.if(strcmp(s2,s1)>0)S; D.if(strcmp(s1,s2)>0)S;
32、以下叙述中正确的是( C )
A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点
33、下列叙述中正确的是( C )
A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型
34、以下叙述中正确的是( A )
A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号\和\只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分
35、若有定义:int a=8,b=5,c;,执行语句c=a/b十0.4;后,c的值为( A ) 。 (A)1.4 (B)1 (C)2.0 (D)2
36、设有以下说明语句 struct ex
{int x;float y; char z;}example; 则下面的叙述不正确的是( B )。 (A)struct是结构体类型的关键字 (B)example是结构体类型名 (C)x,y,z都是结构体成员名 (D)struct ex是结构体类型
37、执行x=5>1+2&&2||2*4<4-!0后,x的值为( C )。 (A)-l (B)O (C)1
(D)5
38、有以下函数定义:( C ) void fun(int n, double x) { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)
39、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( C ) A.abs(x-y)<10
B.x-y>-10&& x-y<10 C.!(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<100
40、在以下函数调用语句中 fun1(x,10,(x,10),fun2(y,10,(y,10)));//包括有结构型 函数fun1参数的个数为 ( B ) A) 8 B) 4
C) 5 D) 编译出错
41、一个C语言的源程序中( B ) 。 (A)必须有一个主函数 (B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
42、在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )
A)称为函数的直接递归调用 B)称为函数的间接递归调用
C)称为函数的循环调用 D)C语言中不允许这样的递归调用
43、若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是 ( B ) A.p+1 B.*(p+3) C.*(p+1)+3 D.*(p[0]+2])
44、有以下程序( D ) main()
{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf(\ }
执行后输出结果是
A)58 B)56 C)45 D)24
二 、阅读程序,写出程序运行结果 (1) #include
{ char ch=?A?;
ch=(ch>=?A?&& ch<=?Z?)?(ch+32):ch; printf(“%c”,ch); }
程序的运行结果是: Z (2) #include
{ int sum=0,i=11; while (i<=10) {
sum=sum+i; i++; }
printf(“%d”,sum); }
程序的运行结果是: 0
(3)main() {int i=1,sum=0; while(i<10) sum=sum+1;
i++;
printf(\,i,sum); }
程序的运行结果是:无结果
(4)以下程序运行后的输出结果是 24 。 main()
{ int p[7]={11,13,14,15,16,17,18}; int i=0,j=0;
while(i<7 && p%2==1) j+=p[i++]; printf(\
}
(5) #include
{ char str[ ]=”1a2b3c”; int i;
for(i=0;str[i]!=?\\0?;i++)
if (str[i]>=?0? && str[i]<=?9?) printf(“%c”,str[i]); }
程序的运行结果是: 123
(6)main() { int x=23; do
{ printf(\,x--);}while(!x); }
该程序的执行结果是( 23 ) // do while先进入再判断,while先判断再进入;
(7)int func(int a,int b) { return (a+b);} main()
{int x=2,y=5,z=8,r;
r=func(func(x,y),z); printf(\; }
该程序的输出结果是 ( 15 ) 。
(8) main() { int a,b; a=5; b=8; p(a,b); p(a+b,a); }
p(int x,int y) {
y=x+y;
printf(“%d %d”,x,y); }
程序的运行结果是: 5 13 13 18
(9)以下程序运行后的输出结果是 gae 。 main ()
{ char a[]=\ char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf(\ }
(10) #include
{ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int j,s=1;
for(j=0;j<=2;j++) s=s*a[j][j]; printf(\}
程序的运行结果是: 45
(11) 若输入B,以下程序的运行结果为( error 。 )