上C语言16章测试题.docx
- 文档编号:28328330
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:18
- 大小:23.29KB
上C语言16章测试题.docx
《上C语言16章测试题.docx》由会员分享,可在线阅读,更多相关《上C语言16章测试题.docx(18页珍藏版)》请在冰豆网上搜索。
上C语言16章测试题
2008-2009(上)C语言程序设计1-5章测试试题
姓名__________学号__________成绩__________
一、选择题(每小题1分,共60分)
1、若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是(C )。
A)0X0 B)0x0 C)0 D)0XABC
2、以下不合法的用户标识符是(C)
A)j2_KEY B)DoubleC)4dD)_8_
3、以下不合法的数值常量是(C)
A)011B)1e1C)8.0E0.5D)0xabcd
4、以下不合法的字符常量是(A)
A)'\018' B)'\”'C)'\\'D)‘\xcc'
5、表达式3.6-5/2+1.2+5%2的值是(D)
A)4.3B)4.8C)3.3D)3.8
6、以下能正确定义字符串的语句是(D)
A)charstr[]={‘s',’t’,’r’,’i’,’n’,’g’}; B)charstr=”\x43”;
C)charstr=”string”; D)char*str=”string”;
7、以下数组定义中错误的是(B)
A)intx[][3]={0}; B)intx[2][3]={{1,2},{3,4},{5,6}};
C)ntx[][3]={{1,2,3},{4,5,6}};D)intx[2][3]={1,2,3,4,5,6};
8、若要求从键盘读入含有空格字符的字符串,应使用函数(B)
A)getc()B)gets()C)getchar()D)scanf()
9、下四个程序中,完全正确的是(B)
A)#include
main(); main()
{/*programming*/ {/*/programming/*/
printf(“programming!
\n”);}printf(“programming!
\n”);}
C)#include”stdio.h” D)include
main() main()
{/*/*programming*/*/ {/*programming*/
printf(“programming!
\n”);} printf(“programming!
\n”);}
10、若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是(C)
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”);}
11、若各选项中所用变量已正确定义,函数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){……}
12、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(C)
A)(!
E=0)B)(E>0||E<0)C)(E==0)D)(E!
=0)
13、要求通过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);
14、有以下程序
#include
main()
{
charc1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf(“%c%c\n”,c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是(D)
A)1267B)1256C)1278D)1245
15、若有以下程序
main()
{inty=10;
while(y--);
printf(“y=%d\n”,y);
}
程序运行后的输出结果是(A)
A)y=0B)y=-1 C)y=1D)while构成无限循环
16、有以下程序
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);
}
程序输出(D)
A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错
17、有以下程序
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);
}
程序执行后的输出结果是(B)
A)x=4B)x=8C)x=6D)x=12
18、有以下程序
intfun1(duoblea){returna*=a;}
intfun2(dpublex,doubley)
{
doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是(B)
A)5.21B)5C)5.0D)0.0
19、有以下程序
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)357C)369D)751
20、有以下程序
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)1 B)2 C)3D)0
21、以下叙述中错误的是(A )。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
22、以下叙述中错误的是(C )。
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
23、以下叙述中正确的是(B )。
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)调用putchar函数输出字符时,参数不可以是字符的ASCII码
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
24、以下关于函数的叙述中正确的是(B )。
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
25、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是(D )。
A)k%2 B)k%2==1 C)(k%2)!
=0 D)!
k%2==1
26、以下不能正确计算代数式值的C语言表达式是(A )。
A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)
27、以下能正确定义且赋初值的语句是(B )。
A)intn1=n2=10; B)charc=32;
C)floatf=f+1.1; D)doublex=12.3E2.5;
28、以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=*p*r*r;printf("s=%f\n",s);
}
出错的原因是(D )。
A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量
29、设有定义:
intk=1,m=2;floatf=7;,则以下选项中错误的表达式是(C )。
A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
30、设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是(A )。
A)(!
a==1)&&(!
b==0) B)a C)a&&b D)a||(b+b)&&(c-a)
31、有以下程序段
intk=0,a=1,b=2,c=3;
k=a*c?
c:
k;
执行该程序段后,k的值是(A )。
A)3 B)2 C)1 D)0
32、设变量a、b、c、d和y都已正确定义并赋值。
若有以下if语句
if(a)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是(B )。
A)if(a&&(c==d))y=1; B)if(a&&(c==d))y=0;
C)if(a&&(c!
=d))y=0; D)if(a||(c==d))y=1;
33、有以下程序段
intn,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是(D )。
A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数
34、设变量已正确定义,则以下能正确计算f=n!
的程序段是(D )。
A)f=0; B)f=1;
for(i=1;i<=n;i++) for(i=1;i>=2;i--)
f*=i;f*=i;
C)f=1; D)f=1;
for(i=n;i>1;i++) for(i=n;i>=2;i--)
f*=i;f*=i;
35、设函数fun的定义形式为:
voidfun(charch,floatx){…}
则以下对函数fun的调用语句中,正确的是(D )。
A)fun("abc",3.0); B)t=fun('D',16.5);
C)fun('65',2.8); D)fun(32,32);
36、有以下程序
main()
{charp[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
};
程序运行后的输出结果是(B )。
A)44 B)33 C)34 D)43
37、有以下程序
main()
{chara1='M',a2='m';
printf("%c\n",(a1,a2));}
以下叙述中正确的是(B )。
A)程序输出大写字母M B)程序输出小写字母m
C)格式说明符不足,编译出错 D)程序运行时产生出错信息
38、有以下程序
#include
main()
{charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下叙述正确的是(A )。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
39、算法具有五个特性,以下选项中不属于算法特性的是(B )。
A)有穷性B)简洁性C)可行性D)确定性
40、以下选项中可作为C语言合法常量的是(A )。
A)-80.B)-080 C)-8e1.0D)-80.0e
41、以下选项中,不能作为合法常量的是(B )。
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
42、数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d",b-a);
}
程序运行后的输出结果是(B)。
A)3,2B)50,2C)2,2D)2,50
43、有以下程序
main()
{intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d",n++,++m);
}
程序运行后的输出结果是(B )。
A)12353514 B)12353513 C)12343514D)12343513
44、有定义语句:
intb;charc[10];,则正确的输入语句是( B)。
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
45、有以下程序
main()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A )。
A)m=123n=456p=789B)m=123<空格>n=456<空格>p=789
C)m=123,n=456,p=789D)123<空格>456<空格>789
46、有以下程序
main()
{
inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d",a,b);
}
程序运行后的输出结果是(B )。
A)6,1B)2,1C)6,0D)2,0
47、有以下程序
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d",i,j,k);
}
程序运行后的输出结果是( D)。
A)123B)234C)223D)233
48、若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a
a:
c c: d的值(A )。 A)1 B)2 C)3 D)4 49、以下能正确定义一维数组的选项是(B )。 A)inta[5]={0,1,2,3,4,5}; B)chara[]={0,1,2,3,4,5}; C)chara={'A','B','C'}; D)inta[5]="0123"; 50、与十进制数200等值的十六进制数为(C )。 A)A8B)A4C)C8D)C4 51、结构化程序由三种基本结构组成,三种基本结构组成的算法( A)。 A)可以完成任何复杂的任务 B)只能完成部分复杂的任务 C)只能完成符合结构化的任务 D)只能完成一些简单的任务 52、有以下定义语句 doublea,b;intw;longc; 若各变量已正确赋值,则下列选项中正确的表达式是(C )。 A)a=a+b=b++B)w%((int)a+b)C)(c+w)%(int)aD)w=a==b; 53、有以下程序 main() {intm=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是(D )。 A)3B)5C)-1D)-2 54、有以下程序 main() {intm=0256,n=256; printf("%#o%#o\n",m,n); } 程序运行后的输出结果是(A )。 A)02560400B)0256256C)256400D)400400 55、有以下程序 main() {inta=666,b=888; printf("%d\n",a,b); } 程序运行后的输出结果是( B)。 A)错误信息B)666C)888D)666,888 56、有以下程序 main() { inta=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else printf("%d",++d+1); printf("%d\n",d); } 程序运行后的输出结果是(A )。 A)2B)3C)43D)44 57、以下叙述中正确的是(A )。 A)局部变量说明为static存储数,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同 58、能将高级语言编写的源程序转换成目标程序的是(C)。 A)链接程序 B)解释程序 C)编译程序 D)编辑程序 59、若有宏定义: #defineH(x)2*x,则程序中有语句H(5+3);则运行结果为(A) A)8B)10C)6D)不确定 60、下列不能够给数组inta[3];的第2个元素正确赋值的语句是() A)scanf(“%d”,a[1]);B)scanf(“%d”,&a[1]); C)scanf(“%d”,a+1);D)int*p=&a[1];scanf(“%d”,p); 二、判断题(每小题1分,共15分) 1、inti,a[3]={1,2,3};for(i=0;i<=3;i++)printf(“%d”,a[i]);可以通过编译,因为C语言不对数组进行边界检查() 2、inta[3]={1,2,3,4};该语句正确。 () 3、inta[3]={1,2,3},i,*p;p=a;*p++等价于(*p)++。 () 4、语句inta[3];a++;是正确的,通过数组名自增可以实现对数组的元素进行引用() 5、inta[3][4];则a[0]=a[0][0];a[1]=a[1][0]() 6、inta[3][4];则**a=a[0][0];*a=a[0];*(a+1)=a[1];*(*a+1)=a[1][1];() 7、chars={‘s’,’t’};可以通过语句printf(“%s”,s);输出st。 () 8、局部自动变量前面加上static后,其将被存储在静态存储区() 9、inta;voidfun(intx){…},则语句a=fun(5);是正确的() 10、函数如下定义是正确的: voidfun(intx){….return;}() 11、int*p,a[3];p=&a;则语句printf(“%d”,p[2]);可以实现输出数组a的第3个元素。 () 12、inta[3]={1,2};则a[2]的值为0;() 13、语句void*p;inta;p=(void*)&a;是正确的() 14、int*p,a=5;p=&a;则p的值是a的地址,*p的值是a的值5;*&a的值也是5;&*p的值是a地址。 () 15、in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 16 测试