printf("%d,",*p);
}
A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,1,
19.下列语句或语句组中,能正确进行字符串赋值的是(d)。
A)char*sp;*sp="right!
";B)chars[10];s="right!
";
C)chars[10];*s="right";D)char*sp="right!
";
20.下列叙述中错误的是(a)。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中、大、小写字母代表不同标识
21.下列能正确定义且赋初值的语句是(d)。
A)intnl=n2=10;B)charc=32;
C)floatf=f+1.1;D)doublex=12.3E2.5;
22.下列程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=*π*r*r;
printf("s=%f\n",s);
}
出错的原因是(d)。
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
23.设有定义:
intk=1,m=2;floatf=7;则下列选项中错误的表达式是(c)。
A)k=k>=kB)-k++
C)k%int(f)D)k>=f>=m
24.设有定义:
inta=2,b=3,c=4;,则下列选项中值为0的表达式是(d)。
A)(!
a==1)&&(!
b==0)B)(a<b)&&!
c‖1
C)a&&bD)a‖(b+b)&&(c-a)
25.有下列程序段:
intk=0,a=1,b=2,c=3;
k=a<b?
b:
a;k=k>c?
c:
k;
执行该程序段后,k的值是(b)。
A)3B)2C)1D)0
26.设变量已正确定义,则以下能正确计算f=n!
的程序段是(c)。
A)f=0;B)f=1;
for(i=1;i<=n;i++)f*=i;for(i=1;i<n;i++)f*=i;
C)f=1;D)f=1;
for(i=n;i>1;i++)f*=i;for(i=n;i>=2;i--)f*=i;
27.设有定义:
intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是
(b)。
A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;
(29)若有定义:
intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是(b)。
A)随机值B)0C)x的地址D)p的地址
28.设fun()函数的定义形式为(b)。
voidfun(charch,floatx){…}
则下列对函数fun的调用语句中,正确的是
A)fun("abc",3.0);B)t=fun('D',16.5);
C)fun('65',2.8);D)fun(32,32);
29.有下列程序:
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf("%d\n",*p+*q);
}
程序运行后的输出结果是(b)。
A)16B)10C)8D)6
30.有下列程序:
main()
{charp[]={'a','bv,'c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
};
程序运行后的输出结果是(c)。
A)44B)33C)34D)43
31.有下列程序:
main()
{chara1='M',a2='m';
printf("%c\n",(a1,a2));
}
下列叙述中正确的是(d)。
A)程序输出大写字母MB)程序输出小写字母m
C)格式说明符不足,编译出错D)程序运行时产生出错信息
32.有下列程序:
#include
main()
{charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a后,下列叙述正确的是(d)。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
33.有下列程序:
main()
{intk=5,n=0;
while(k>0)
{switch(k)
{default:
break;
case1:
n+=k;
case2:
case3:
n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是(a)。
A)0B)4C)6D)7
34.有下列程序:
main()
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);
}
程序运行后的输出结果是(a)。
A)10B)11C)14D)15
35.有下列程序:
voidsum(inta[])
{a[0]=a[-1]+a[1];
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
程序运行后的输出结果是(a)。
A)6B)7C)5D)9
36.下列不合法的用户标识符是(c)。
A)j2_KEYB)Double
C)4dD)_8_
37.下列不合法的数值常量是(c)。
A)011B)1e1
C)8.0E0.5D)0xabcd
38.下列不合法的字符常量是(b)。
A)'\018'B)'\"'
C)'\\'D)'\xcc'
39.表达式3.6-5/2+1.2+5%2的值是(d)。
A)4.3B)4.8
C)3.3D)3.8
40.下列能正确定义字符串的语句是(b)。
A)charstr[]={'\064'};B)charstr="kx43";
C)charstr=";D)charstr[]="\0";
41.下列数组定义中错误的是(b)。
A)intx[][3]={0};
B)intx[2][3]={{l,2},{3,4},{5,6}};
C)intx[][3]={{l,2,3},{4,5,6}};
D)intx[2][3]={l,2,3,4,5,6};
42.下列4个程序中,完全正确的是(a)。
A)#includeB)#include
main();main()
{/*programming*/{/*/programming/*/
printf("programming!
\n");}printf("programming!
\n");}
C)#includeD)include
main()main()
{/*/programming*/*/{/*programming*/
printf("programming!
\n");}printf("programming!
\n");}
43.若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是(b)。
A)switch(x)B)switch((int)x);
{case1.0:
printf("*\n");{case1:
printf("*\n");
case2.0:
printf("**\n");case2:
printf("**\n");
}}
C)switch(a+b)D)switch(a+b)
{case1:
printf("*\n");{case1:
printf("*\n");
case2+1:
printf("**\n");casec:
printf("**\n");
}}
44.若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列
选项中错误的程序是(a)。
A)main()B)floatfun(inta,intb){……}
{……x=fun(2,10);……}main()
floatfun(inta,intb){……}{……x=fun(i,j);……}
C)floatfun(int,int);D)main()
main(){floatfun(intI,intj);
{……x=fun(2,10);……}……x=fun(i,j);……}
floatfun(inta,intb){……}floatfun(inta,intb){……}
45.在下列给出的表达式中,与while(E)中的(E)不等价的表达式是(d)。
A)(!
E==0)B)(E>0‖E<0)
C)(E==0)D)(E!
=0)
46.要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,
下列正确的程序段是(a)。
A)while((ch=getchar())!
='N')printf("%c",ch);
B)while(ch=getchar()!
='N')printf("%c",ch);
C)while(ch=getchar()=='N')printf("%c",ch);
D)while((ch=getchar())=='N')printf("%c",ch);
47.已定义下列函数:
intfun(int*p)
{return*p;}
fun函数返回值是(b)。
A)不确定的值B)一个整数
C)形参p中存放的值D)形参p的地址值
48.若有说明语句:
double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是
(b)。
A)*p=&a;scanf("%1f",p);B)*p=&a;scanf("%f",p);
C)p=&a;scanf("%1f",*p);D)p=&a;scanf("%1f",p);
49.有下列程序段
structst
{intx;int*y;}*pt;
inta[]={l,2},b[]={3,4};
structstc[2]={10,a,20,b};
pt=c;
下列选项中表达式的值为11的是(d)。
A)*pt−>yB)pt−>x
C)++pt−>xD)(pt++)->x
50.有下列程序:
main()
{inty=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是(d)。
A)y=0B)y=-1
C)y=1D)while构成无限循环
51.有下列程序:
main()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出(b)。
A)0,1,2,0B)0,0,0,3
C)1,1,2,0D)编译有错
52.(32)有下列程序:
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是(c)。
A)x=4B)x=8
C)x=6D)x=12
53.有下列程序:
main()
{inti,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)printf("%d",t[2-i][i]);
}
程序执行后的输出结果是(b)。
A)753B)357
C)369D)751
54.有下列程序:
fun(charp[][10])
{intn=0,i;
for(i=0;i<7;i++)
if(p[i][0]=='T')n++;
returnn;
}
main()
{charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%d\n",fun(str));
}
程序执行后的输出结果是(b)。
A)1B)2
C)3D)0
55.有下列程序:
main()
{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是(c)。
A)45B)20
C)25D)36
56.有下列程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是(c)。
A)123,abcB)abc,123
C)1bc,a23D)321,cba
57.有下列程序:
intfun(intn)
{if(n==1)return1;
else
return(n+fun(n-1));
}
main()
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入10,程序的输出结果是(a)。
A)55B)54
C)65D)45
58.有下列程序:
intfun(intx[],intn)
{staticintsum=0,i;
for(i=0;ireturnsum;
}
main()
{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序执行后的输出结果是(b)。
A)45B)50
C)60D)55
59.设有下列定义和语句
charstr[20]="Program",*p;
p=str;
则下列叙述中正确的是(a)。
A)*p与str[0]的值相等
B)str与p的类型完全相同
C)str数组长度和p所指向的字符串长度相等
D)数组str中存放的内容和指针变量p中存放的内容相同
60.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行(a)
A)s->next=p;p->next=s;B)s->next=p->next;p->next=s;
C)s->next=p->next;p=s;D)p->next=s;s->next=p;
二、填充题
1.下列程序运行后的输出结果是【】。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)‖(a/b>1);
printf("%d%d%d\n",a,b,c);
}
2.下列程序运行后的输出结果是【】。
main()
{charc1,c2;
for(c1='0',c2='9';c1printf("\n");
}
3.已知字符A的ASCII代码值为65,下列程序运行时若从键盘输入:
B33。
则输
出结果是【】。
#include
main()
{chara,b;
a=getchar();scanf(