scanf("%d",&a);}
printf("%d",max);}
A.a!
=0B.a==0C.!
a==1D.!
a
25.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请选择填空。
#include
main()
{intn=0,c;
c=getchar();
while(____)
{if(c<=’9’&&c>=’0’)n++;
c=getchar();}
}
A.c!
=’\n’B.c=’\n’C.c==’\n’D.c
26.以下对一维整型数组a的正确说明是____。
A.inta(10);B.intn=0,a[n];
C.intn;D.#defineSIZE10
scanf(“%d”,&n);inta[SIZE]
inta[n];
27.若有定义floatx[3]={1.3,2.4,5.6},y=6;,则错误的语句是____。
A.y=x[2];B.y=x[2]+1;C.y=x+1;D.x[0]=y;
28.若有说明:
inta[10];,则对a数组元素的正确引用是____。
A.a[10]B.a[3.5]C.a(5)D.a[9]
29.下面程序____。
(每行程序前面的数字表示行号)
1#include
2main()
3{
4inta[3]={0};
5inti;
6for(i=0;i<3;i++)scanf("%d",&a[i]);
7for(i=1;i<4;i++)a[0]=a[0]+a[i];
8printf("%d\n",a[0]);
9}
A.第4行有错误B.第6行有错误C.第7行有错误D.没有错误
30.下面程序____。
(每行程序前面的数字表示行号)
1#include
2main()
3{
4floata[3]={0.0};
5inti;
6for(i=0;i<3;i++)scanf("%d",&a[i]);
7for(i=1;i<3;i++)a[0]=a[0]+a[i];
8printf("%f\n",a[0]);
9}
A.第4行有错误B.第6行有错误C.第7行有错误D.没有错误
31.下面程序中有错误的行是____。
(每行程序前面的数字表示行号)
1#include
2main()
3{
4inta[3]={1};
5inti;
6scanf("%d",&a);
7for(i=1;i<3;i++)a[0]=a[0]+a[i];
8printf("%d\n",a[0]);
9}
A.第4行有错误B.第6行有错误C.第7行有错误D.没有错误
32.对两个数组a和b进行如下初始化,
chara[]="ABCDEF";
charb[]={'A','B','C','D','E','F'};
则以下叙述正确的是____。
A.a和b数组完全相同B.a与b长度相同
C.a的长度比b短D.a的长度比b长
33.判断字符串a和b相等,应当使用____。
A.if(a==b)B.if(a=b)
C.if(strcpy(a,b))D.if(!
strcmp(a,b))
34.下面程序段的运行结果是____。
chara[7]="abcdef";
charb[4]="ABC";
strcpy(a,b);
printf("%c\n",a[0]);
A.□(□表示一个空格)B.\0C.aD.A
35.C语言规定,函数返回值的类型是由____。
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
36.若用数组名作为函数调用的实参,传递给形参的是____。
A.数组元素的个数
B.数组第一个元素的值
C.数组中全部元素的值
D.数组的首地址
37.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是____。
A.地址传递
B.单向值传递
C.由实参传递给形参,再由形参传回给实参
D.由用户指定传递方式
38.以下正确的函数定义形式是____。
A.intf(intx,inty);
B.intf(intx;inty){…}
C.intf(intx,inty){…}
D.intf(intx,y){…}
39.在C语言程序中以下正确的描述是____。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
40.以下程序的运行结果是____。
#include
intfun(intn)
{intm=0,f=-1,i;
for(i=1;i<=n;i++){m=m+i*f;f=-f;}
returnm;
}
main()
{printf("%d\n",fun
(2));}
A.1B.-1C.2D.-2
41.以下程序的运行结果是____。
#include
intfun(inta,intb)
{if(a>b)return(a+b);
elsereturn(a-b);}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),3*z);
printf("%d\n",r);}
A.-22B.-23C.23D.22
42.以下程序的运行结果是____。
#include
intfun(inta,intb)
{return(a-b)*a;}
main()
{intx=3,y=4,z=5,r;
r=fun(fun(x,z),fun(z,y));
printf("%d\n",r);}
A.-16B.-66C.66D.16
43.若已定义inta=5;下面对①、②两个语句的正确解释是____。
①int*p=&a;②*p=a;
A.语句①和②中的*p含义相同,都表示给指针变量p赋值
B.①和②语句的执行结果,都是把变量a的地址值赋给指针变量p
C.①在对p进行说明的同时进行初始化,使p指向a;②将变量a的值赋给指针变量p
D.①在对p进行说明的同时进行初始化,使p指向a;②将变量a的值赋为*p
44.若需要建立如下图所示的存储结构,且已有说明char*p,a=’A’;则正确的赋值语句是____。
A.p=&a;B.p=a;C.*p=a;D.*p=&a;
45.有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示;若要实现图2所示的存储结构,可选用的赋值语句是____。
图1图2
A.*p1=*p2;B.p1=*p2;C.p1=p2;D.*p1=p2;
46.若有定义:
inta[5];则a数组中首元素的地址可以表示为____。
A.&aB.aC.a+1D.&a[1]
47.若有定义:
inta[4],*p=a;则对a数组元素的正确引用是____。
A.*&a[4]B.a+2C.*(p+4)D.*(a+2)
48.若有定义:
inta[5],*p=a;则对a数组元素地址的正确引用是____。
A.p+5B.*a+1C.&a+1D.&a[1]
49.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是____。
A.c=*p1+*p2;B.p2=c;C.p1=p2;D.c=*p1
50.下面程序段的运行结果是____。
char*s=”abcde”;
s+=2;printf(“%d”,s);
A.cdeB.字符c的地址C.字符cD.无确定的输出结果
51.下面程序段的运行结果是____。
chara[]="language",*p;
p=a;
while(*p!
='g'){printf("%c",*p-32);p++;}
A.LANGUAGEB.languageC.LAND.language
52.下面程序的运行结果是____。
#include
voidsub(intx,inty,int*z)
{*z=y+x;}
main()
{inta;
sub(10,5,&a);
printf("%d\n",a);}
A.5B.15C.10D.-10
53.下面程序的运行结果是____。
#include
voidfun(int*x,int*y)
{printf("%d%d",*x,*y);
*x=3+*x;
*y=4+*y;}
main()
{intx=1,y=2;
fun(&x,&y);
printf("%d%d\n",x,y);}
A.1246B.1212C.1234D.2112
54.下面程序的运行结果是____。
#include
main()
{int*p1,*p2,a=2,b=3;
p1=&a;
p2=&b;
if(a
p2=&a;}
printf("%d,%d\n",a,b);}
A.3,2B.2,2C.2,3D.3,3
55.下面关于结构体的说法错误的是____。
A.结构体是由用户构造的一种数据类型
B.结构体成员可以具有不同的数据类型
C.结构体中的成员不可以与结构体变量同名
D.结构体中的成员可以是指向自身结构的指针类型
56.设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是____。
A.struct是结构体类型的关键字
B.structstu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名
D.a和b都是结构体成员名
57.以下scanf函数调用语句中对结构体变量成员的不正确引用是____。
structpupil
{charname[20];
intage;
intsex;
}pup[5],*p;
p=pup;
A.scanf("%s",pup[0].name);B.scanf("%d",&pup[0].age);
C.scanf("%d",&(p->sex));D.scanf("%d",(p->age);
二、程序阅读题
1.下面程序的运行结果是________。
#include
main()
{intx=5;
switch(x)
{case1:
case2:
case3:
case4:
printf("x<5");
case5:
printf("x=5");
default:
printf("Thevalueofxisunknown.\n");
}
}
2.若运行以下程序时输入35*,则程序的运行结果是________。
#include
main()
{intx,y,r;
charop;
scanf("%d%d%c",&x,&y,&op);
switch(op)
{case'+':
r=x+y;break;
case'-':
r=x-y;break;
case'*':
r=x*y;break;
}
printf("%d\n",r);
}
3.若a、b、c均已正确定义且a=0、b=2、c=3,则下面程序段的输出是____。
switch(a)
{case0:
switch(b==2)
{case1:
printf("&");break;
case2:
printf("%");break;
}
case1:
switch(c)
{case1:
printf("$");break;
case2:
printf("*");break;
default:
printf("#");
}
}
4.下面程序的运行结果是________。
#include
main()
{inti,s,t;
s=0;
t=1;
for(i=1;i<=3;i++)
{t=t*i;
s=s+t;
}
printf("%d\n",s);
}
5.以下程序运行的结果是________。
#include
main()
{intx=5;
If(x==2)printf("OK\n");
else
if(x<2)printf("%d\n",x);
elseprintf("QUIT\n");
}
6.当运行以下程序时,从键盘输入12,则下面程序的运行结果是_______。
#include
main()
{inta,b,m,n;
m=1;
n=1;
scanf("%d%d",&a,&b);
do
{if(a>0){m=2*n;b++;}
else{n=m+n;a+=2;b++;}
}while(a==b);
printf("m=%d,n=%d",m,n);
}
7.下面程序的运行结果是________。
#include
main()
{inti;
chara[]="Time",b[]="Tom";
for(i=0;a[i]!
='\0'&&b[i]!
='\0';i++)
if(a[i]==b[i])
if(a[i]>='a'&&a[i]<='z')printf("%c",a[i]-32);
elseprintf("%c",a[i]+32);
elseprintf("*");
}
8.下面程序的运行结果是_______