C语言程序的设计习题集与答案.docx
- 文档编号:10478982
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:68
- 大小:43.12KB
C语言程序的设计习题集与答案.docx
《C语言程序的设计习题集与答案.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计习题集与答案.docx(68页珍藏版)》请在冰豆网上搜索。
C语言程序的设计习题集与答案
基础知识
一单项选择题(每题2分,共44分)
1以下叙述正确的是___。
AC程序基本组成单位是语句BC程序每一行只能写一个语句
C简单C语句必须以分号作为结束符D注释语句可以嵌套
2一个C语言程序是从___开始执行的。
A程序中第一个函数
B
名为main的函数
C包含文件(头文件)的第一个函数
D
程序中的第一个语句
3
请选出合法的
C语言赋值语句___。
Aa=b=58
Bi++;
Ca=58,b=58
Dk=int(a+b);
4
下面标识符中,合法的用户标识符是
___。
A1abc
Binclude
Ca-b-c123
Dchar
5
以下所列的C语言整形常量中,正确的是___。
A0x10
B0976
C076L
D01ff
6C语言中下列运算符的操作数必须为整型的是___。
A%
B++
C/
D=
7设a和b均为int型变量,则执行以下语句后的输出为___。
inta=20;intb=3;printf("%d\n",a+=(b%=2));
A20
B21
C0
D23
8已知inti;
,则执行语句
i=2.6;
后,i
的值为___。
A2
B3
C2.6
D
不确定
9以下合法的字符常量为___。
A'ab'
B'\482'
C'\'
D'\xaf'
10若y为int
型变量,则执行以下语句后,
y的值是___。
y=8;
y+=y-=y*y;
A64
B
–56
C
–112
D
–48
11以下合法的浮点型常量是___。
Ae-3B1.5e+2.4C3.14e+2LD3.14e+5
12设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知floata=2;intb=3;则执行下列语
句输出为___。
printf("%d",sizeof(a*b)+2/5);
A4
B8
C6
D7
13设int
型占2个字节,且inti=-2;,
则语句printf("%u",i);
的输出结果为___。
A0
B-2
C65534
D65535
14若x、y、z均为整型常量,且a=100,则执行下列语句后的z值为___。
x=a++;y=--a;z=x+y-a--;
A100
B400
C200
D300
15
若有以下定义和语句:
intu=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);
,则输出结果是___。
A8,16,10
B10,10,10
C8,8,10
D8,10,10
16
设x、y为int
型变量,则执行下列语句后,y的值是___。
x=5;y=x++*x++;y=--y*--y;
A529
B2401
C1209
D625
17假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式
abc1的表达式是____。
A1/a*b*cB1/(a*b*c)C1/a/b/(float)cD1.0/a/b/c
18若有定义:
inta=8,b=5,c;chard='A';,则执行语句c=a/b+d%a+0.5;后c的值为___。
A2B2.5
C3D类型不一致,无法计算,编译出错
19在有以下程序:
main()
{inti=10,j=1;i=i+j++;printf("%d,%d,%d\n",i++,++j,i);
}
执行后输出结果是___。
A12,3,11
B12,2,11
C11,3,11
D12,3,12
20
已知inti=65;
,则putchar(i);printf("%d",i);printf("%c",i);
的输出结果为___。
AA,65,A
B65,65,A
CA,A,65
DA,A,A
21
已知inty,a,i=1;
,则语句printf("%d,%d",-i++,(y=a=3.6*3));
的输出结果为___。
A-1,10
B-2,1.8
C0,3
D1,18
22有以下程序:
main()
{chara,b,c,d;a='\';b='\xbc';c='\0xab';d='\023';printf("%c%c%c%c\n",a,b,c,d);
}
编译时出现错误,以下叙述中正确的是___。
A程序中只有a='\';语句不正确Bb='\xbc';语句不正确
Cd='\023';语句不正确Da='\';和c='\0xab';语句都不正确
二
填空题(第1题2
分,其余每题3分,共56分)
1
设x为int型变量,请写出描述“x是偶数”的表达式是___。
2
已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若从键盘输入2、3、4三个数分别作为变量
a、b、c的值则正确的输入形式是
___。
3
设有语句inta=3;
,则执行了语句a+=a-=a*a后,变量a的值是___。
4以下程序的输出结果是___。
main()
{inta=-10,b=-3;printf("%d\n",-a++);
printf("%d\n",-a+b);
}
5以下程序的输出结果是___。
main()
{charc;c=0362;
printf("%d\n",c);
...
}
6以下程序段(n所赋的是八进制数)执行后输出结果是___。
intm=32767,n=032767;printf("%d,%o\n",m,n);
7字符串"\\name\\\101ddress\b\xaf"的长度为:
___。
8有以下程序段:
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是___。
9以下程序的输出结果是___。
main()
{printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);
printf("%d,%x\n",012,012);
}
10设a、b、c为整形变量,且a=2、b=3、c=4,则执行完语句a*=16+(b++)-(++c);之后,变量a的值为___。
11以下程序的输出结果为___。
main()
{intx=023;
printf("%x\n",--x);
}
12以下程序的结果为___。
main()
{inta=2,b=3,c,d;c=(a++)+(a++)+(a++);d=(++b)+(++b)+(++b);printf("a=%dc=%d\n",a,c);
printf("b=%dd=%d\n",a,d);
}
13以下程序main()
{charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);
}
当输入ABC时运行结果为【1】,当输入ABC时运行结果为【2】。
14若有定义:
floatx;,以下程序段的输出结果是___。
x=5.16894;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
15以下程序的功能是:
输入一个小写字母,输出对应的大写字母,将程序补充完整。
main()
{charch;
【1】/*从键盘输入一个小写字母*/
【2】/*将该字母转换为大写字母*/
...
【3】/*输出转换后的结果*/
}
16当运行以下程序时,在键盘上从第一列开始输入9876543210↙(此处↙代表回车),则程序的输出结果是___。
main()
{inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
17以下程序的运行结果是___。
main()
{printf("%12.5f\n",123.1234567);printf("%12f\n",123.1234567);printf("%12.8d\n",12345);
printf("%12.8s\n","abcdefghij");
}
18运行以下程序时,如从键盘上输入abcdefg↙,则输出结果是___。
main()
{charch1,ch2,ch3;
ch1=getchar();ch2=getchar();ch3=getchar();
putchar(ch1);putchar(ch2);putchar(ch3);
putchar('\n');
}
19运行以下程序时,如从键盘上输入:
a=3,b=5↙35,35.12↙abc↙后,结果是___。
main()
{inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("%f,%e",&x,&y);
scanf("%c%c%c",&c1,&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
}
顺序、选择结构程序设计
一单项选择题(每题2分,共40分)
1以下程序运行后的输出结果是___。
main()
{inta=0,b=0;
a=10;b=20;printf("a+b=%d\n",a+b);
}
Aa+b=10
Ba+b=30
C30
D
出错
2以下程序运行后的输出结果是___。
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
...
printf("%d\n",d*y);
}
A3B3.2C0D3.07
3以下程序运行后的输出结果是___。
main()
{doubled;
floatf;longl;
inti;
i=f=l=d=20/3;
printf("%d%ld%.1f%.1f\n",i,l,f,d);
}
A666.06.0
B666.76.7
C666.06.7
D666.76.0
4以下程序运行后的输出结果是___。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
A1,2B1,1C2,2D2,1
5以下程序运行后的输出结果是___。
main()
{intx,y,z;
x=y=2;z=3;
y=x++-1;
printf("%d%d",x,y);
y=++x-1;
printf("%d%d\n",x,y);
y=z---1;
printf("%d%d",z,x);
y=--z-1;
printf("%d%d\n",z,x);
}
A3143
B3133
C3143
D2132
2414
2422
2412
1312
6以下程序运行后的输出结果是___。
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
A2,3,3
B2,3,2
C2,3,1
D2,2,1
7以下程序运行后的输出结果是___。
main()
{intx=4,y=7;
x-=y;y+=x;
printf("%d%d\n",x,y);
}
A47
B-3-3
C-311
D-34
8以下程序运行后的输出结果是___。
main()
...
{unsignedshorta=65536;intb;printf("%d\n",b=a);
}
A65536B0C1D-1
9以下程序:
#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<回车>
则输出结果是___。
A1267B1256C1278D1245
10设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为0的表达式是___。
A'a'&&'b'Ba&&b||cCa&&b&&cDa||b&&c
11在嵌套使用if语句时,C语言规定else总是___。
A和之前与其具有相同缩进位置的if配对
B和之前与其最近的if配对
C和之前与其最近不带else的if配对
D和之前的第一个if配对
12若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为___。
Aa<>0B!
aCa=0Da
13以下程序运行后的输出结果是___。
main()
{inta=2,b=-1,c=2;if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
A0B1C2D3
14若k是int型变量,下面的程序段的输出结果是。
k=-3;
if(k<=0)printf("####")
elseprintf("&&&&");
A####B&&&&
C####&&&&D有语法错误,无输出
15以下程序运行后的输出结果是___。
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);
}
A0,1,2,0B0,0,0,3C1,1,2,0D编译有错
16以下程序运行后的输出结果是___。
main()
{intx1=1,x2=0,x3=0;if(x1=x2+x3)printf("****");elseprintf("####");
}
A****B有语法错误C####D无输出结果
17当a=1,b=3,c=5,d=4时,执行下面一行程序后,x的值是___。
if(a
A1B2C3D6
18下列叙述中正确的是___。
Abreak语句只能用于switch语句
B在switch语句中必须使用default
Cbreak语句必须与switch语句中的case配对使用
D在switch语句中不一定使用break语句
19若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是___。
Aswitch(x)Bswitch((int)x);
{case1.0:
printf("*\n");{case1:
printf("*\n");
case2.0:
printf("**\n");}case2:
printf("**\n");}
Cswitch(a+b)Dswitch(a+b)
{case1:
printf("*\n");{case1:
printf("*\n");
case2+1:
printf("**\n");}casec:
printf("**\n");}
20以下程序运行后的输出结果是___。
#include
main()
{intx=1,y=0,a=0,b=0;switch(x)
{case1:
switch(y)
{case0:
a++;break;case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2
二填空题(每题3分,共30分)
...
1以下程序运行后的输出结果是___。
#include
{inti=010,j=10;printf("%d,%d\n",++i,j--);
}
2以下程序运行后的输出结果是___。
#include
{printf("%d%d%d\n",'\0','\0','\0');}
3以下程序运行后的输出结果是___。
main()
{inti=5,j,k;
j=i+++i+++i++;
k=(++i)+(++i)+(++i);
printf("i=%5dj=%5d\nk=%5d\n",i,j,k);
}
4下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是___。
main()
{inta;floatb,c;
scanf("%2d%2f%2f",&a,&b,&c);
printf("a=%d,b=%.1f,c=%.0f",a,b,c);
}
5下面程序的输出结果是___。
main()
{charch1,ch2;
ch1='A'+'5'-'3';ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
6执行下面的语句:
printf("%d\n",(a=3*5,a*4,a+5));,输出是___。
7以下程序运行后的输出结果是___。
main()
{intx=10;printf("%d,%d\n",--x,--x);}
8为表示关系x≥y≥z,应使用C语言表达式___。
9下面的程序段的输出结果是___。
intx=3;
if((x%2)?
printf("**%d",x):
printf("##%d\n",x));
10以下程序运行后的输出结果是___。
main()
{intm=5;switch(m/2)
{case1:
m++;case2:
m+=3;
case5:
m+=6;break;
default:
m-=7;
...
}
printf("%d\n",m);
}
三程序填空(每空5分,共30分)
1下列程序的输出结果是16.00,请填空。
main()
{inta=9,b=2;
floatx=【1】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
2完成以下程序,输入变量a,b,c的值,判断a,b,c能否组成三角形,计算三角形面积。
(公式为:
s
p(pa)(pb)(pc)其中p
abc
。
#include
2
【2】;
main()
{inta,b,c;
【3】
printf("pleaseinputthevalueofa,b,c")
scanf("%d%d%d",【4】);
if(【5】)
{【6】
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("Yes,thisisatriangle!
\ntheareais%.2f.\n",s);
}
elseprintf("No,thisisnotatriangle!
\n")
}
循环结构程序设计
一单项选择题(每题2分,共40分)
1以下程序中,while循环的循环次数是___。
main()
{inti=0;while(i<10)
{if(i<1)continue;if(i==5)break;
i++;
}
}
A1B10C6D死循环
2以下程序的执行结果是___。
main()
...
{intn=9;
while(n>6){n--;printf("%d",n);}
}
该程序的输出结果是
A987B876C8765D9876
3以下程序段,while循环执行的次数是___。
intk=0;
while(k=1)k++;
A无限次B有语法错C一次也不执行D执行1次
4以下叙述正确的是___。
Ado-while语句构成的循环不能用其它语句构成的循环来代替
Bdo-while语句构成的循环只能用
break语句退出
C用do-while
语句构成的循环,在
while后的表达式为非零时结束循环
D用do-while
语句构成的循环,在
while后的表达式为零时结束循环
5以下程序的执行结果是___。
main()
{inta,y;
a=10;y=0;
do{a+=2;y+=a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 设计 习题集 答案