k:
c
c:
a);
A、4B、3C、2D、1
26、执行以下程序后,变量a,b,c的值分别为。
intx=10,y=9;
inta,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A、a=9,b=9,c=9B、a=8,b=8,c=10
C、a=9,b=10,c=9D、a=1,b=11,c=10
27、设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是。
A、while循环10次B、循环是无限循环
C、循环体一次也不执行D、循环体只执行一次
28、语句while(!
E);中的表达式!
E等价于。
A、E==0B、E!
=1
C、E!
=0D、E==1
29、下面程序段的运行结果是。
intn=0;
while(n++<=2);printf(“%d”,n);
A、2B、3C、4D、有语法错误
30、下面程序段的运行结果是。
x=y=0;
while(x<15)y++,x+=++y;
printf(“%d,%d”,y,x);
A、20,7B、6,12C、20,8D、8,20
31、C语言中while和do_while循环的主要区别是。
A、do_while的循环至少无条件执行一次
B、while的循环控制条件比do_while的控制条件严格
C、do_while允许从外部转到循环体内
D、do_while的循环体不能是复合语句
32、下面for循环的正确描述是。
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句后判断表达式
C、在for循环中,不能用break语句结束循环
D、for循环体语句中,可以包含多条语句,但必须用花括号括起来
33、以下正确的描述是。
A、continue语句的作用是结束整个循环的执行
B、只能在循环体内和swtich语句体内使用break语句
C、在循环体内使用break或continue语句的作用相同
D、从多层嵌套中退出时,只能使用goto语句
34、以下描述正确的是。
A、goto语句只能用于退出多层循环
B、swtich语句中不能使用continue语句
C、只能用continue语句来终止本次循环
D、在循环中break语句不能独立出现
数组
35、在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A、整型常量B、整型表达式
C、整型常量或整型表达式D、任何类型表达式
36、以下对一维数组a的正确说明是。
A、int(a);B、n=10,a[n];
C、intn;D、#defineSIZE
Scanf(“%d”,&n);inta[SIZE];
Inta[n];
37、若有说明:
inta[10];则对a数组元素的正确引用是。
A、a[10]B、a[3,5]
C、a(5)D、a[10-10]
38、以下对一维数组正确初始化的语句是。
A、inta[10]=(0,0,0,0,0);B、inta[10]={};
C、inta[]={0};D、inta[10]={10*1};
39、若有说明inta[3][4]={0};则下面正确的叙述是。
A、只有元素a[0][0]可得到初值0
B、此说明语不句正确
C、数组a中各元素都可得到初值,但其初值不一定是0
D、数组a中各元素都可得到初值0
40、若有二维数组a有m列,则在a[I][j]前的元素个数为。
A、j*m+IB、I*m+j
C、I*m+j-1D、I*m+j+1
41、下面对s的初始化,其中不正确的是。
A、chars[5]={“abc”};B、chars[5]={‘a’,’b’,’c’};
C、chars[5]=””;D、chars[5]=”abcdef”;
42、判断字符串s1是否大于字符串s2,应当使用D。
A、if(s1>s2)B、if(a==b)
C、if(strcpy(s2,s1)>0)D、if(stcmp(s1,s2)>0)
函数
43、以下有关建立函数的目的说法中正确性的是B。
A、提高程序的执行效率B、提高程序的可能性
C、减少程序的篇幅D、减少程序文件所占用的内存
44、以下正确的函数定义是A。
A、doublefun(intx,inty)B、doublefun(intx;inty)
C、doublefun(intx,inty);D、doublefun(intx,y);
45、以下有关函数的形参和实参的说法中正确的是A。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参各占用一个的存储单元
C、只有当实参和与其对应的形参同名时才占用一个的存储单元
D、形参是虚拟的,不占用存储单元
46、以下说法正确的是C。
A、定义函数时,形参的类型说明可以放在函数内部
B、return语句后的值不能为表达式
C、如果函数值的类型与返回值的类型不一致函数类型为准
D、如果形参与实参的类型不一致,以实参的类型为准
47、C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是B。
A、地址传递B、单向值传递
C、由实参传给形参,再由形参传递给实参
D、同用户指定传递方式
48、C语言中,函数返回值的类型是由D。
A、return语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指的函数类型所决定
49、若用数组名作为函数调用的实参,传递给形参的是A。
A、数组的首地址B、数给的第一个元数
C、数组中全部元素的值D、数组元素的个数
50、以下有关宏替换的叙述不正确的是。
A、宏替换不占用运行时间B、宏名无类型
C、宏替换只是字符替换D、宏名必须用大写字母表示
51、C语言的编译系统对宏的处理是。
A、在程序运行时B、在程序连接时
C、和C程序中的其他语句同时进行编译
D、在对源程序中其它成份正式编译之前进行的
52、若有语句int*point,a=4;和point=&a;则下面均代表地址的一组是。
A、a,point,*&AB、&*a,*point,&a
C、&a,*&point,*pointD、&a,&*point,point
53、下面判断正确的是。
A、char*a=”china”;等介于char*a;*a=”china”;
B、charstr[10]={”china”};等介于charstr[10];str[]={”china”};
C、char*s=”china”;等介于char*s;s=”china”;
D、char*s=”china”;等介于chars[10];*s=”china”;
54、设p1和p2是指向同一个字符串的指针变量,,c为字符变量,则以下不能正确执行赋值语句的是。
A、c=*p1+*p2B、p2=c
C、p1=p2D、c=*p1*(*p2)
55、下面程序段的运行结果是。
chsrstr[]=”ABC”
p+=3;
printf(“%d\n”,strlen(strcpy(p,”ABCD”)));
A、8B、12
C、4D、7
56、若有以下定义,则对a数组元素的正确引用是。
inta[5],*p=a;
A、*a+1B、p+5
C、&a+1D、&a[0]
56、若有以下定义,则对a数组元素的正确引用是。
inta[5],*p=a;
A、*&a[5]B、a+2
C、*(p+5)D、*(a+2)
57、若有定义inta[2][3];则对a数组第I行第j列元素的正确引用为。
A、*(a[I]+j)B、(a+I)
C、*a{I+j}D、a[I]+j
58、以下正确的定义语句和赋值语句是。
A、intb[3][5],(*q)[5],(*p)[3];p=b;q=b;
B、floatb[3][5],*p[3];[0]=b[0];p[2]=*b+4;
C、doubleb[3][5],s[5][3],*q;q=b;s=q;
D、intb[10],*q;char*s;q=b;s=b;
59、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将。
A、生成可执行目标文件B、生成目标文件
C、输出运行结果D、自动保存源文件
60、在C集成环境执行菜单命令“运行”,若运行结束且没有系统提示信息,说明。
A、源程序有语法错误B、源程序正确无误
C、源程序有运行错误D、源程序无编译、运行错误,但仅此无法确定其正确性
61、程序运行输出了错误的结果,可以排除下列哪一个因素。
A、算法错误B、运行时输入数据错误C、未通过编译D、系统资源配置不当
62、下列各个错误中,属于编译错误的是。
A、数组下标超界B、“==”误写为“!
=”C、死循环D、括号不配对
63、若int类型数据字长为4,其最大值为。
A、231B、231-1C、232-1D、232
64、常数的书写格式决定了常数的类型和值,03322是。
A、16进制int类型常数B、8进制int类型常数
C、10进制int类型常数D、10进制longint类型常数
65、“e2”是。
A、实型常数100B、值为100的整型常数
C、非法标识符D、合法标识符
66、要为字符型变量a赋初值,下列语句中哪一个是正确的。
A、chara='3';B、chara="3";
C、chara=%;D、chara=*;
67、要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的。
A、floatx,y,z=3.14;B、floatx,y,z=3*3.14;
C、floatx=3.14,y=3.14,z=3.14;D、floatx=y=z=3.14;
68、语句“floatpi=3.1415926535;”将。
A、导致编译错误B、说明pi为初值3.1415926535的单精度实型常数
C、导致运行时的溢出错误D、说明pi为初值3.141593的单精度实型常数
69、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为。
A、算术运算、赋值运算、关系运算B、算术运算、关系运算、赋值运算
C、关系运算、赋值运算、算术运算D、关系运算、算术运算、赋值运算
70、关系运算符中优先级最低的运算符是。
A、“>=”和“<=”B、“>”和“<”
C、“==”和“!
=”D、“<=”和“<”
71、逻辑运算符中,运算优先级按从高到低依次为。
A、&&,!
,||B、||,&&,!
C、&&,||,!
D、!
,&&,||
72、对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的。
A、0为假非0为真B、只有1为真
C、-1为假1为真D、0为真非0为假
73、表达式x==0&&y!
=0||x!
=0&&y=0等价于()。
A、x*y==0&&x+y!
=0B、x*y==0&&(x+y==0)
C、x==0||y==0D、x*y=0||x+y=0
74、表达式!
x||a==b等价于()。
A、!
((x||a)==b)B、!
(x||y)==b
C、!
(x||(a==b))D、(!
x)||(a==b)
75、下列格式符中,哪一个可以用于以8进制形式输出整数。
A、%dB、%8dC、%oD、%ld
76、下列格式符中,哪一个可以用于以16进制形式输出整数()。
A、%16dB、%8xC、%d16D、%d
77、a是int类型变量,c是字符变量。
下列输入语句中哪一个是错误的。
A、scanf("%d,%c",&a,&c);B、scanf("%d%c",a,c);
C、scanf("%d%c",&a,&c);D、scanf("d=%d,c=%c",&a,&c);
78、字符变量ch='A',int类型变量K=25,语句printf("%3d,%d3\n",ch,k);输出。
A、65,253B、65253
C、65,25D、A25
79、下列各语句序列中,能够且仅输出整型变量a、b中最大值的是。
A、if(a>b)printf("%d\n",a);printf("%d\n",b);
B、printf("%d\n",b);if(a>b)printf("%d\n",a);
C、if(a>b)printf("%d\n",a);elseprintf("%d\n",b);
D、if(a
80、下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是。
A、if(u>s)t=u;t=s;B、t=s;if(u>s)t=u;
C、if(u>s)t=s;elset=u;D、t=u;if(u>s)t=s;
81、下列各语句中,能够输出整型变量a、b中最大值的是。
A、printf("%d\n",(a>b)?
a,b);B、(a>b)?
printf("%d",a):
printf("%d",b);
C、printf("%d",if(a>b)aelseb);D、printf("%d\n",(a>b)?
a:
b);
82、下列语句应将小写字母转换为大写字母,其中正确的是。
A、if(ch>='a'&ch<='z')ch=ch-32;B、if(ch>='a'&&ch<='z')ch=ch-32;
C、ch=(ch>='a'&&ch<='z')?
ch-32:
'';D、ch=(ch>'a'&&ch<'z')?
ch-32:
ch;
83、求整数1至10的和并存入变量s,下列语句中错误的是()。
A、s=0;for(i=1;i<=10;i++)s+=i;B、s=0;i=1;for(;i<=10;i++)s=s+i;
C、for(i=1,s=0;i<=10;s+=i,i=i+1);D、for(i=1;s=0;i<=10;i++)s=s+i;
84、若sizeof(int)为2,计算1至10的乘积,下列语句序列中正确的是。
A、intjc=1;for(inti=2;i<=10;i++)jc*=i;
B、for(floatjc=1,inti=2;i<=10;i++,jc*=i);
C、floatjc=1;for(inti=2;i<=10;jc*=i,i=i+1);
D、for(floatjc=1;i=2;i<=10;i++)jc*=i;
85、下列语句中,哪一个可以输出26个大写英文字母。
A、for(a='A';a<='Z';printf("%c",++a));B、for(a='A';a<'Z';a++)printf("%c",a);
C、for(a='A';a<='Z';printf("%c",a++));D、for(a='A';a<'Z';printf("%c",++a));
86、与语句while(i>=0&&i<=10){if(i++==5)continue;printf("%f\n",1.0/(i-5));}
功能相同的是。
A、for(;i>=0&&i<=10;i++)if(i!
=5)printf("%f\n",1.0/(i-5));
B、for(;i>=0&&i<=10;i++)if(i==5)printf("%f\n",1.0/(i-5));
C、for(;i>=0&&i<=10;i++)if(i!
=5)printf("%f\n",1.0/(i-5));elsebreak;
D、for(;i<=0&&i>=10;i++)if(i!
=5)printf("%f\n",1.0/(i-5));
87、下列语句中与语句while
(1){if(i>=100)break;s+=i;i++;}功能相同的是。
A、for(;i<100;i++)s=s+i;B、for(;i<100;i++;s=s+i);
C、for(;i<=100;i++)s+=i;D、for(;i>=100;i++;s=s+i);
88、下列各语句定义了数组,其中哪一个是不正确的。
A、chara[3][10]={"China","American","Asia"};B、intx[2][2]={1,2,3,4};
C、floatx[2][]={1,2,4,6,