c语言基本习题.docx
- 文档编号:25823571
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:56
- 大小:28.83KB
c语言基本习题.docx
《c语言基本习题.docx》由会员分享,可在线阅读,更多相关《c语言基本习题.docx(56页珍藏版)》请在冰豆网上搜索。
c语言基本习题
1.C语言的主要特点有哪些?
(多选)
A.简洁、紧凑,使用方便、灵活,易于学习和应用。
B.C语言是面向结构化程序设计的语言。
C.C语言允许直接对位、字节和地址进行操作。
D.数据类型丰富。
E.C语言生成的目标代码质量高。
答案:
ABCDE
2.C语言程序由什么组成?
(单选)
A.子程序B.主程序和子程序C.函数D.过程
答案:
C
3.源程序要正确地运行,必须要有什么函数?
(单选)
A.printf函数B.自定义的函数
C.main函数D.不需要函数
答案:
C
4.指出下面合法的标识符:
(多选)
A.3abB.intC.ABCD.a_3
E.sum.aF.#abcG._stu2H.abcf
答案:
CDG
5.指出下面哪些是保留字:
(多选)
A.charB.abcC.printfD.Int
E.floatF.defineG.includeH.PI
答案:
AEFG
6.指出下面哪些是合法的用户定义的标识符?
(多选)
A.P-SB.putcharC.doubleD._908
E.*parF.sheep!
G.windH.xy
答案:
BDG
7.C语言的基本类型哪些:
(多选)
A.整型B.枚举型C.数组型D.指针型
E.字符型F.构造型G.实形H.空类型
答案:
ABEG
8.这段程序中的常量有:
(多选)
#definePI3.14
voidmain()
{
intsum;
sum=10+15;
printf("sum=%d\n",sum);
printf("resultis25\n");
}
这段程序中常量有:
A.10B.sumC.15
D.25E.mainF.PI
答案:
ACF
9.C语言中整形常量按进制划分,有以下几种:
(多选)
A.十六进制常量B.十进制常量
C.八进制常量D.二进制常量
答案:
ABC
10.75的十六进制写法为___,八进制写法为___。
0x75的八进制写法为___,十进制写法为___。
075的十进制写法为___,十六进制写法为___。
答案:
0x4b0113
0165117
610x3d
11.如果要把常量327存入变量a中,a可以定义成哪些类型?
(多选)
A.intB.char
C.longD.float
答案:
ACD
12.下面哪些写法是对的,而且是常量?
(多选)
A.125B.-.456C.1.25e20D.'AB'
E.E6F.0238G.0xabcdefH."\n\\\'\123"
答案:
ABCGH
13.下面哪个表达式的值为4.(单选)
A.11/3B.11.0/3
C.(float)11/3D.(int)(11.0/3+0.5)
答案:
D
14.已知整型变量a=6,b=7,c=1,则下面表达式的值为多少?
a+3___
(b-a*3)/5___
c*(a+b)+b*(c+a)___
3.2*(a+b+c)___
答案:
9
-2
62
44.8
15.已知整型变量a=6,字符型变量ch='A',浮点数变量f=2.1,则下面表达式的值为多少?
(提示:
'A'的ASCII码为65)
a+4.5___
ch+a+f___
(a+30)/5___
(a+30)/5.0___
答案:
10.5
73.1
7
7.2
16.指出下面错误的表达式:
(多选)
A.a+b=5B.56=a11C.i=i++
D.5.6+6.2%3.1E.12F.a=5,b=6,c=7
答案:
BD
17.若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?
(多选)
A.f=(f*100+0.5)/100.0B.i=f*100+0.5,f=i/100.0;
C.f=(int)(f*100+0.5)/100.0;D.f=(f/100+0.5)*100.0;
答案:
BC
18.写出下面这个程序的结果。
voidmain()
{
intcount,i;
intx,y,z;
x=y=z=0;
scanf("%d",&count);
for(i=0;i { x=(x+1)%2; y=(y+1)%3; z=(z+1)%5; } printf("x=%d,y=%d,z=%d\n",x,y,z); } 如果运行时输入10,结果是x=___,y=___,z=___。 如果运行时输入17,结果是x=___,y=___,z=___。 答案: 010 122 19.已知a为整型变量,那么与表达式a! =0真假值情况相同的表达式有哪些? (多选) A.a>0||a<0B.a C.! a==0D.! a 答案: ABC 20.若要输出下列各种类型的数据,应使用什么转换说明符。 (答题请打上双引号) 字段宽度为4的十进制数应使用"%4d",字段宽度为6的十六进制数应使用___,八进制整数应使用___,字段宽度为3的字符应使用___,字段宽度为10,保留3位小数的实数应使用___,字段宽度为8的字符串应使用___。 答案: "%6x""%o""%3c""%10.3f""%8s" 21.该源程序执行后,屏幕上显示什么? (单选) voidmain() { inta; floatb; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A.a=%d,b=%f\nB.a=%d,b=%f C.a=4,b=9.50D.a=4,b=9.5 答案: C 22.下面哪些是非法的C语言转义字符? (多选) A.'\t'B.'\08'C.'\0xaf'D.'\\' 答案: BC 23.以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值。 请填空。 #include main() { ___ inttemp; printf("Entera,b,c: "); scanf("%d%d%d",___); ___ a=b; b=c; ___ printf("a=%db=%dc=%d\n",a,b,c); } 答案: inta,b,c; &a,&b,&c temp=a; c=temp; 24.若a为整型变量,且有以下语句___。 (单选) a=-017L; printf("%d\n",a); 则下面哪个说法是正确的? A.赋值不合法B.输出值为-17 C.输出为不确定值D.输出值为-15 答案: B 25.若ch为char型变量,a为int型变量,(已知字符a的ASCII十进制代码为97)则执行以下语句后的输出为哪一个? (单选) charch; inta; ch='a'; a=12; printf("%x,%o,",ch,ch,a); printf("k=%%d\n",k); A.61,141,12,k=%d B.输出项与格式描述符个数不符,输出为零值或不定值 C.61,141,k=%d D.61,141,k=%12 答案: C 26.若有以下说明语句: (单选) chars='\\\092'; 则下面哪一项是正确的. A.使s的值包含2个字符B.说明语句不合法 C.使s的值包含6个字符D.使s的值包含4个字符 答案: B 27.若k,g均为int型变量,则以下语句的输出为哪一项? (单选) intk,g; k=017; g=111; printf("%d,",k); printf("%x\n",g); A.15,6fB.f,6fC.f,111D.15,111 答案: A 28.请从下面的选项中选出正确的C语言的转义字符。 (多选) A.'//'B.'\''C.'\t'D.'\n' E.'\1011'F.'/018'G.'/123'H.'\xaa' 答案: BCDH 29.如这程序所示,如果运行时,输入18,18,那么b的值为多少? (单选) voidmain() { inta,b; scanf("%d,%o",&a,&b); b+=a; printf("%d",b); } A.36B.34C.输入错误,b的值不确定D.18 答案: C 30.读懂程序并填空。 #include voidmain() { charch=0x31; printf("%d\n",ch);//屏幕显示___ printf("%o\n",ch);//屏幕显示___ printf("%x\n",ch);//屏幕显示___ printf("%c\n",ch);//屏幕显示___ } 答案: 49 61 31 1 1.C程序的结构可分为哪几类? (多选) A.顺序结构 B.循环结构 C.程序结构 D.选择结构 答案: ABD 2.输入两个实数a,b,然后交换它们的值,最后输出(提示: 要交换两个数得借助一个中间变量temp。 首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。 voidmain() { floata,b,temp; printf("请输入a和b的值: "); scanf("%d,%d",___); temp=a; ___ ___ printf("交换后,a=%d,b=%d\n",___); } 答案: &a,&b a=b; b=temp; a,b 3.当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1)if(a>c) {a=b;b=c;c=a;} else {a=c;c=b;b=a;} 执行后a,b,c的值为___,___,___ (2)if(a a=c; else a=b;c=b;b=a; 执行后a,b,c的值为___,___,___ (3)if(a! =c) ; else a=c;c=b;b=a; 执行后a,b,c的值为___,___,___ 答案: 554 554 334 4.当a=3,b=4,c=5时,写出下列各式的值。 a a==c的值为___,a! =c的值为___, a&&b的值为___,! a&&b的值为___, a||c的值为___,! a||c的值为___, a+b>c&&b==c的值为___。 答案: 11 01 10 11 0 5.假设所有变量均已说明,写出下列各程序段运行后x的值。 (多选) ok1=1;ok2=2;ok3=0;x=15;a=3;b=4; (1)if(! ok1) x++; elseif(ok2) { if(ok3) x=3; else x=4; } 运行后x的值为下面哪一个? A.15B.3C.16D.4 (2)if(ok1) { if(a { if(! ok3) x=0; else x=1; } else x=2; } else x=3; 运行后x的值为下面哪一个? A.0B.1C.2D.3 答案: DA 6.若整数x分别等于95、87、100、43、66、79,则以下程序段运行后屏幕显示是什么? switch(x/10) { case6: case7: printf("Pass\n"); break; case8: printf("Good\n"); break; case9: case10: printf("VeryGood\n"); break; default: printf("Fail\n"); } x等于95时,程序段运行后屏幕上显示___ x等于87时,程序段运行后屏幕上显示___ x等于100时,程序段运行后屏幕上显示___ x等于43时,程序段运行后屏幕上显示___ x等于66时,程序段运行后屏幕上显示___ x等于79时,程序段运行后屏幕上显示___ 答案: VeryGood Good VeryGood Fail Pass Pass 7.在C语言的if语句中,用作判断的表达式为___。 (单选) A.关系表达式B.逻辑表达式 C.算术表达式D.任意表达式 答案: D 8.请问: 下面这个程序段的输出是什么? (单选) inta,b,c; a=7;b=8;c=9; if(a>b) a=b,b=c;c=a; printf("a=%db=%dc=%d\n",a,b,c); A.a=7b=8c=7B.a=7b=9c=7 C.a=8b=9c=7D.a=8b=9c=8 答案: A 9.该程序的运行结果是: (单选) voidmain() { inta,b,c; a=2;b=7;c=5; switch(a>0) { case1: switch(b<10) { case1: printf("^");break; case0: printf("! ");break; } case0: switch(c==5) { case0: printf("*");break; case1: printf("#");break; default: printf("%%");break; } default: printf("&"); } printf("\n"); } A.^#&B.^C.&D.^! *#%& 答案: A 10.该程序的输出结果是多少? (单选) m=37;n=13; while(m! =n) { while(m>n) m=m-n; while(n>m) n-=m; } printf("m=%d\n",m); 输出结果为: A.m=13B.m=11 C.m=1D.m=2 答案: C 11.该程序的输出结果是多少? (单选) for(i=0;i<5;i++) { for(j=1;j<10;j++) if(j==5) break; if(i<2) continue; if(i>2) break; printf("%d,",j); } printf("%d\n",i); 输出结果为: A.10,3B.5,2 C.5,3D.10,2 答案: C 12.该程序的输出结果是什么? (单选) #include voidmain() { intn; n=0; while(n<8) { switch(n%3) { case2: putchar('2'); case1: putchar('i'); break; case0: putchar('H'); } n++; } } A.Hi2Hi2HiB.Hi2 C.Hi2iHi2iD.Hi2iHi2iHi 答案: D 13.该程序的输出结果是多少? (单选) #include main() { inti,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } } printf("x=%d\n",x); } A.x=4B.x=8C.x=6D.x=12 答案: B 14.若k为整型,以下while循环执行___次.(单选) k=2; while(k=0) printf("%d",k),k--; printf("\n"); A.无限次B.0次C.1次D.2次 答案: D 15.下面这个程序的输出是什么? (单选) #include main() { inty=10; while(y--); printf("y=%d\n",y); } A.y=0B.while构成死循环C.y=1D.y=-1 答案: D 16.以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数.请填空. #include main() { ___n,i,j; printf("输入非零的整数(输入零结束程序)"); i=j=0; scanf("%d",&n); while___ { if(n>0) i=___; if(n<0) j=___; ___; } printf("i=%4dj=%4d\n",i,j); } 答案: int (n! =0) i+1 j+1 scanf("%d",&n) 17.圆周率pi的近似率可用下面的公式求得: pi*pi/6约等于1/(1*1)+1/(2*2)+...+1/(n*n) 由以上公式可知,若n取值10000,则最后一项的值为1E-4,认为可达到精度要求。 以下程序用来求pi的近似值。 请填空。 (其中函数sqrt(a)用于求a的平方根)(单选) #include #include main() { longi; floatpi; pi=0.0; for(i=1;i<=10000;i++) pi+=___; pi=sqrt(6.0*pi); printf("pi=%10.6lf\n",pi); } A.1/i*iB.1/(i*i)C.1.0/i*iD.1.0/(i*i) 答案: D 18.斐波哪契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即: 0,1,1,2,3,5,8,13,21,...等。 下面这个程序就是求斐波哪契数列的前20个数。 请填空。 #include voidmain() { intf,f1,f2,i; f1=0;f2=___; printf("%d\n%d\n",f1,f2); for(i=3;i<=30;___) { f=___; printf("%d\n",f); f1=f2; f2=___; } } 答案: 1 i++ f1+f2 f 19.下面这个程序执行后i和s的值为多少? (单选) #include voidmain() { inti,s; i=0;s=0; while(i<10); { s+=(i++); printf("%d\n",s); } printf("i=%d\n",i); } A.i值为9,s值为45B.i值为10,s值为45 C.i值为10,s值为36D.程序陷入了死循环 答案: D 20.下面这个程序打印出以下这个三角形.请填空。 0 11 222 3333 44444 555555 6666666 77777777 888888888 9999999999 voidmain() { inti,j; for(i=0;i<=___;i++) { for(j=0;j<___;j++) printf(___); ___ } } 答案: 9 i "%d",i printf("\n"); 21.读懂下面的程序并填空。 #include voidmain() { longa,b,r; scanf("%ld",&a); b=0; do{ r=a%10; a=a/10; b=b*10+r; }while(a); printf("%ld",b); } 程序运行时如果输入37,输出为___。 程序运行时如果输入-345,输出为___。 程序运行时如果输入10239,输出为___。 答案: 73 -543 93201 22.如图所示,该算式在四个字母所在处欠缺四个数位,下面这个程序用穷举法搜寻解法。 请填空。 1A8 *3B _________ C73D #include voidmain() { intA,B,C,D; intx,y,z; for(A=1;A<=9;A++) for(B=1;B<=9;B++) for(C=1;C<=9;C++) for(D=1;D<=9;D++) { x=100+___+8; y=___; z=___+700+30+___; if(___) printf("A=%d,B=%d,C=%d,D=%d\n", A,B,C,D); } } 答案: A*10 30+B C*1000 D x*y==z 1.请改正下面这个远程序的错误: #include main() { inti,j,list(10); for(i=0,i<1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)