C语言自测题及答案docx.docx
- 文档编号:10629861
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:13
- 大小:53.73KB
C语言自测题及答案docx.docx
《C语言自测题及答案docx.docx》由会员分享,可在线阅读,更多相关《C语言自测题及答案docx.docx(13页珍藏版)》请在冰豆网上搜索。
C语言自测题及答案docx
自测题
一、选择题:
1.以下叙述中正确的是()。
A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识別执行
C)C是近英语的自然语言和数学语言为语言的表达形式D)C语言出现最晩,具有其他语言的一•切优点
2.以下叙述中不正确的是()0
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数
C)函数是C程序的基木组成单位D)分号是C语句之间的分隔符,不是语句的一部分
3.算法具有五个特性,以下不属于算法特性的是()o
A)有穷性B)简洁性C)可行性D)确定性
4.以下()组中的标识符都是合法的用户标识符。
A)3ab,A_10,stB)class,入1,gradeC)printf,TNT,charlD)b3,a,unsigned
5.C语言中的基本数据类型包括()o
A)整型、实型(浮点型)、逻辑型B)整型、实型(浮点型)、字符型
C)整型、字符型、逻辑型D)字符型、实型(浮点型)、逻辑型
6.以下选项屮,均是合法整型常量的选项是()。
A)123,Oxffff,0123B)0xabc,018,0x123C)01a,123,012,OxefD)0x22b,3e5,016
7.若有定义:
floata二3.0,b二4.0,c=5.0;则表达式1/2*(a+b+c)的值为()。
A)6.0B)6C)0.0D)无答案
&若有定义和语句:
ints,p;
s=p=5;
P二s++;则执行语句后p的值是()o
A)0B)507D)6
9.以下选项中,与k=n++完全等价的表达式(即执行后k,n及表达式的值完全相同)是()。
A)k=n,n=n+lB)n=n+l,k二nC)k=++nD)k+二n+1
10.以卜程序的输出结果是()o
#include
voidmain()
{
inta二20,b=10;
printf("%d,%%d\rT,a+b,a-b);
11.下列程序的运行结果是()。
#include
intmain()
{
floatx=2.5;
inty;
y=(int)x;
printf(”x=%f,y=%d",x,y);
return0;
}
A)x=2.500000,y=2.000000B)x=2.5,y=2C)x=2,y=2D)x=2.500000,y=2
12.下列程序段的输出结果是()o
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%3.2f,%4.If",a,b,c);
A)无输出B)12,123.46,12345.5
01234,123.46,12345.5D)1234,123.45,1234.5
13.已知a,b,c为int型变量,若从键盘输入:
1,2,3<回车〉,使a的值为1,b的值为2,c的值为3,以下选
项中正确的输入语句是()。
A)scanf(〃%2d,%2d,%2d〃,a,b,c);B)scanf(〃%d,%d,%d〃,&a,&b,&c);
C)scanf("%d%d%d",&a,&b,&c);D)scanf("i=%d,j=%d,k=%d",&a,&b,&c);
14.有以下程序段:
intm=0,n=0;
scanf("%d%d",&m,&n);printf("%d,%d\n",m,n);
若从键盘上输入:
1020〈冋车〉
1030<回车〉,则输出结果是()o
A)10,20B)10,30C)1020,1030D)无正确的输出,因为输入的数据太多
15.数学关系式xWyWz可用C语言表达式()表示。
A)x<=y<=zB)x<=yANDy<=zC)x<=y&&y<=zD)(x<=y)&(y<=z)
16.
)。
(1)如果从键盘上输入3,则以下程序段的输出结果是(
(2)如果从键盘上输入-3,则以下程序段的输出结果是(
intx,y;
scanf&x);
if(x<3)y=--x;
elsey=x++;
printf("x=%d,y=%d\n",x,y);
A)x=3,y=3B)x=3,y二2C)x二-4,y二-4D)x二-3,y二-2
17.以下程序段运行后,其输出结果是()o
intw二4,x=3,y二2,z二1,m;
if(w x; if(m y; if(m z; printf(z/%d\nz/,m); A)4B)3C)2D)1 18.以下程序段运行后的输岀结果()o inta=16,ml=0,m2=0,m3=0; if(a%3==0)ml++; elseif(a%3==l): m2++; elsem3++; printf("ml=%d,m2=%d,n)3=%d\n",m); A)ml=l,m2=l,m3=lB)ml=l,m2=l,m3=0C)ml=0,m2=l,m3=0D)ml=0,m2=0,m3=l 19. (1)以下程序段执行后sum的值是()o (2)若在循坏语句之前插入sum=0;,则以卜•程序段执行后sum的值是()。 inti,sum; for(i=l;i<5;i++) sum+=i; printf("%d\n",sum); A)15B)10C)5D)不确定 20.设若有定义: intx,y,z;则执彳亍下面的赋值语句后,x、y和z的值依次是()。 z=(x=3,y二8,x+y); A)2,9,9B)3,8,11C)6,9,9D)2,9,8 二、填空题(将要添在每对/桂/之间的内容写于答题纸上,以完成题目的要求。 1.下程序的功能是,输入半径r求圆的面积s。 #definePT3.1415 #inelude intmain() { /**/[1]/**/; floats; printf("Enterradius/'); scanf(〃%cT,/**/[2]/**/); s二r*r*pi; printf("s=%f\n",s);return0; } 2.下程序的功能是,输出1〜100间(含1和100)的所有的奇数。 #include intmain() { inti; for(i=l;i/**/[3]/**/100;i++) if(i%2/**/【4】/**/) printf("%5d",i); printf(z,\n");return0; } 3.下程序的功能是: 求出从键盘输入的20个实型数中的最小值。 ttdefineN20 ttinclude intmain() { inti=l; doublex,min; printf("Enter%drealnumbers: ",N); do {scanfC%d,z,&x); if(i==l)min=x; elseif(min>x) /**/[5]/**/; i++; }while(/**/[6]/**/); printf(“min=%lf\n”,min);return0; 4.下程序的功能是: 从键盘输入一个正整数,输出它是儿位数,并且按逆序打印出各位上的数字(例如: 输入123,则输岀32l)o ttinclude intmain() { intx,n=0;/*n用来统计这个数的位数*/ scanf("%d: &x); while(/**/[7]/**/) { n++; printf("%4d",x%10); /**/[8]/**/ } printfCz\nn=%d\n/z,n);return0; } 三、改错题(修改每对/祁/之间的错误于答题纸上,以完成题目的要求。 ) 1.*下程序的功能是,输入华氏温度f,输出相应的摄氏温度c【温度转换公式为c二5(032)/9】。 #include intmain() { floatc,f; scanf(/**/〃%10.2f〃/**/,&f);[1] c=/**/5(f-32)/9/**/;【2】 printf(/zC=%f\n,z,c); return0; } 2.下程序的功能是,输出1〜100间的所有的3的倍数Z和。 ttinclude intmain() /**/inti=3,sum/**/; [3] while(i<=100) { if(/**/i%3=0/**/) 【4】 sum+二i; ++i; ! 3.下程序的功能是,判断输入的3个整型数能否构成三角形(构成的条件是任意2边Z和必须大于第3边),若能则输出“can! ”,否则输出“cannot! ”。 ttinclude intmain() { inta,b,c; scanf("%d,%d,&a,&b,&c); if(/**/a+b>c||a+c>b||b+c>a/**/)[5] printf(z,can! \n“); else/**/(a+b<=c&&a+c<=b&&b+c<=a)/**/【6】 printf("cannot! \n“); return0; } 4.下面程序的功能是: 根据以下公式求兀值(直到最后一项小于10-6为止) 龙(1121231234 ]—|——••—|—•1•••••••• 23353573579 #include intmain() { doubles=0.0,t=1.0; intn; for(n=l;t>=le-6;n++) { s+二t; t=/**/t/(2*n+l)[7]/**/; } printf(< return0; 5.以下程序的功能是: 输出150〜300Z间所有能够被7或9整除的数。 ★include intmain() { inti; for(i=300;/**/i〈二150;[9]/**/i—) { if((i%7! =0)&&(i%9! =0)) /**/break;【10】/**/ printf("%5d",i); } printf("\n"); return0; } 四、编程题(共20分。 补充每对/和/之间的程序段于答题纸上,以完成题目的要求。 ) 1.36块砖,36个人,男人搬4块,女人搬3块,两个小孩搬一-块,要求一•次搬完,完成以下程序。 输出需要男人、女人、小孩各多少人? 解决方案冇多少? ★include intrnsinO { intman,woman,child,n二0;/*man,woman,child依次为男、女和小孩的人数,n为方案数*/ for(man=0;man〈二36;man++) for(woman=0;woman<=36;woman++) /**/ /**/ floatx; /**/ printf(z,y=%0.2f\n〃,y);return0; } 3.完成以下程序使其输出右图: 12345 ttinclude 2345 intmain() 345 ) 45 i 5 inti,j,k; for(i=l;i〈二5;i++) /**/ /**/ 参考解答 选择题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 c D B C B A C B A A D C B C C 1-B 2-C D C 1・D 2-B B 二、填空题 [1]intr [2]&r [3]i<=100,或i<100 [4]! =0或=1 [5]min=x [6]i<=N或i<=20 [7]]x! =0 【80】x/=10 三、改错题 [1]%f [2]5*(f-32)/9或5.0/9*(f-32) 【3】inti二3,sum二0或inti二1;sum二0; [4]i%3二二0 [5]a+b>c&&a+c>b&&b+c>a [6]删除或if [7]t*n/(2*n+l) 【8】s 【9】i>二150; 【10】continue; 四、编程题(请将要补充的程序段写在答题纸上) child=36-man-woman; if((child%2==0)&&(man*4+woman*3+child/2==36)) { printf(,,man=%d,woman=%d,child=%d\n",man,woman,child);n++; ) 或: for(child=0;child<=36;child+=2) { if((man*4+woman*3+child/2==36)&&(man+woman+child==36)){ printf(Hman=%d,woman=%d,child=%d\iT,man,woman,child); n++; 2、 if(fabs(x)<300) y=x*x*x/(log10(fabs(x)+2.6)) else y=-1; 或 讦(x<300&&x>-300) y=x*x*x/(log10(fabs(x)+2.6)) else y=-1; 3、{ for(j=l;j printf(H\nH);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 自测 答案 docx