专升本C语言历年考试题及答案

上传人:lis****210 文档编号:154936329 上传时间:2022-09-22 格式:DOCX 页数:62 大小:88.37KB
收藏 版权申诉 举报 下载
专升本C语言历年考试题及答案_第1页
第1页 / 共62页
专升本C语言历年考试题及答案_第2页
第2页 / 共62页
专升本C语言历年考试题及答案_第3页
第3页 / 共62页
资源描述:

《专升本C语言历年考试题及答案》由会员分享,可在线阅读,更多相关《专升本C语言历年考试题及答案(62页珍藏版)》请在装配图网上搜索。

1、专升本C语言历年考试题及答案习题一一. 填空题1. C程序是由( )构成的,一个C程序中至少包含()。因此,()是C程序的基本单位。2. C程序注释是由()和()所界定的文字信息组成的。3. 函数体一般包括()和()。二. 判断题1. 一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束。【】2. main函数必须写在一个C程序的最前面。【】3. 一个C程序可以包含若干的函数。【】4. C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行 不起任何作用。但是可以增加程序的可读性。【】5. C程序的注释只能是一行。【】6. C程序的注释不能是中文文字信息。【】8.

2、可以使用Turbo C来编译和连接一个C程序。【】9. 可以使用Turbo C来运行一个C程序。【】10. 可以使用Turbo C来实时调试(即动态调试)一个C程序。【】三. 简答题1. 写出一个C程序的基本结构。2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。四. 编程题1. 提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示: 使用键盘上的一些符号)。2. 提高题:试编写一个C程序,输出如下信息。试试看,可以输出其他组合图案吗?习题二一. 选择题1、合法的字符常量是。A) t B) “A” C) a D) x322、合法的字符常量是。A) 084 B)84C

3、) ab D) x433、是C语言提供的合法的数据类型关键字。A) Float B) signed C) integer D) Char4、在以下各组标识符中,合法的标识符是。(1) A) B01 B) table_1 C) 0_t D) k%(2) A) Fast_ B) void C) pbl D) (3) A) xy_ B) longdouble C) *p D) CHAR(4) A) sj B)IntC)_xy D)w_y235、属于合法的C语言长整型常量的是。A) 5876273 B) 0LC) 2E10 D) (long)58762736、下面选项中,不是合法整型常量的是。A) 1

4、60 B)-0xcdgC)-01 D)0x48a7、判断int x = 0xaffbc; x的结果是。A)赋值非法B)溢出 C)为affb D)为ffbc8、下面选项中,均是合法浮点数的是。A) +1e+1 B),60 C) 123e D)e3A) 5e9.4B)12e4C)1.2e.4 D).8e4A) 03e2B)8e5C)+2e1D)5,e09、在C语言中,要求参加运算的数必须时整数的运算符是。A) / B) * C) % D)=10、在C语言中,字符型数据在内存中以形式存放。A)原码B) BCD码C)反码D) ASCII码11、下列语句中,符合语法的赋值语句是。A) a=7+b+c =

5、 a+7; B) a=7+b+ + =a+7;C) a=(7+b, b+ + , a+7); D) a=7+b, c = a+7;12、是非法的C语言转义字符。A) b B) 0xf C) 037D) 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。A)语法错误B) f为5.0 C)f为0.0 D) f为2.014、与代数式(x*y)/(u*v)不等价的C语言表达式是。A) x*y/u*v B) x*y/u/v C) x*y/(u*v) D) x/(u*v)*y15、在C语言中,数字029是一个。人)八进制数B)十六进制数C)十进制数D)非法数1

6、6、C语言中整数一8在内存中的存储形式为。A) 1111111111111000 B 100000000001000C) 000000000001000 D) 111111111111011117、对于char cx=039;语句,正确的是。A)不合法B) cx的ASCII值是33C) cx的值为四个字符D) cx的值为三个字符18、若int k=7,x=12;则能使值为3的表达式是。A) x%=(k%=5) B) x%=(kk%5)C) x%=kk%5 D) (x%=k)(k%=5)19、为了计算s=10!(即10的阶乘),则s变量应定义为。A) int B) unsigned C) lon

7、g D)以上三种类型均可20、以下所列的C语言常量中,错误的是。A) 0xFF B) 1.2e0.5 C) 2LD) 7221、假定x和y为double型,则表达式x=2,y=x+3/2的值是。A) 3.500000 B) 3 C) 2.000000 D) 3.00000022、设变量n为float型,m为int类型,则以下能实现将n中的数值保留小 数点后两位,第三位进行四舍五入运算的表达式是。A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.023、以下合法的赋值语

8、句是。A) x=y=100 B) dC) x+y D) c=int(a+b)24、下选项中不属于C语言的类型是。A) signed short int B) unsigned long intB) unsigned int D) long short25、设以下变量均为int类型,则值不等于7的表达式是。A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)26、在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句 是。A) a=20000+20000; B) a=400

9、0*10;C) 30000+10000; D) a=4000L*10L;二. 填空题1. 在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为,其数值范围为;一个int数据在内存中所占字节数为,其数值范围为;一 个long数据在内存中所占字节数为,其数值范围为 ; 一个float数据在内存中所占字节数为,其数值范围为。2. C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第 一个字符必须为。3. 字符常量使用一对界定单个字符,而字符串常量使用一对来界定若干个字 符的序列。4. 在C语言中,不同运算符之间运算次序存在的区别,同一运算符之间运算 次序存在的规则。5.

10、 设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为。6. 设 x=2.5,a=7,y=4.7,则 x+a%3*(int)(x+y)%2/4 为。7. 设 a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y 为。8. 数学式子的C语言表达式为。9. 数学式子的C语言表达式为。10. 已知:char a=a,b=b,c=c,i;则表达式 i=a+b+c 的值为。11. 已知int a=12,n=5;则:表达式运算后a的值各为。a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a12.

11、 设int a;float f;double i ;则表达式10+a+i*f值的数据类型是。13. 若a为int型变量,则表达式(a=4*5,a*2),a+6的值为。14. 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为。15. 已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是。16. 定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是,表达式y+=x+的 值是。17. 定义:int m=5,n=3;则表达式 m/=n+4 的值是,表达式 m=(m=1,n=2,n-m) 的值是,表达式m+=m-=(m=1)*(n=2 )的

12、值是。18. 表达式5%(-3)的值是,表达式-5%(-3)的值是。19. 若a是int变量,则执行表达式a=25/3%3后,a的值是。20.数学式子的C语言表达式为:三. 判断题1. 在C程序中对用到的所有数据都必须指定其数据类型。【】2. 一个变量在内存中占据一定的存储单元。【】3. 一个实型变量的值肯定是精确的。【】4. 对几个变量在定义时赋初值可以写成:int a=b=c=3;【】5. 自增运算符(+域自减运算符(-)只能用于变量,不能用于常量或表达式。【】6. 在C程序的表达式中,为了明确表达式的运算次序,常使用括号,()”。【】7. %运算符要求运算数必须是整数。【】8. 若a是实

13、型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型 数】9. 在C程序中,逗号运算符的优先级最低。【】10. C语言不允许混合类型数据间进行运算。【】四. 简答题1. 为什么C语言的字符型可以进行数值运算?2. 简述a 和“a”的区别。3. 程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12, 而是15?4. 将下面各数用八进制和十六进制数表示:十进制 32 -1 -32768 2002 128 0八进制十六进制6.华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9,则float c,F;c=5/9*(F-32)是其对应的C语言表达式吗?如果不是

14、,为什么?五. 程序阅读题1. 写出以下程序运行的结果。main ( )char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctc%ctabcn”,c1,c2,c3);printf(“tb%c %c”,c4,c5);2. 写出以下程序运行的结果。main ()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(d,%d,%d,%d”,i,j,m,n);六. 编程题1. 假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位 数(例如:123反序为321)的C语言表达式。2. 已知int x=10,y=12;写出将x和y

15、的值互相交换的表达式。习题三一. 选择题1. C语言的程序一行写不下时,可以。A)用逗号换行B)用分号换行C)在任意一空格处换行D)用回车符换行2. putchar ()函数可以向终端输出一个。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值3. 执行下列程序片段时输出结果是。unsigned int a=65535;printf(d,a);A) 65535 B)-1 C)-32767 D) 14. 执行下列程序片段时输出结果是。float x=-1023.012printf(n%8.3f,”,x);printf(10.3f”,x)A) 1023.012, -1023.012

16、 B) -1023.012,-1023.012C) 1023.012,-1023.012 D) -1023.012, -1023.0125. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10, 20, A和B, 当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2; char c1,c2;scanH“d%c%c”,&a1,&a2,&c1,&c2)A) 10A 20B/ B) 10 A 20 B/C) 10A20B/C) 10A20 B/6. 对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则 应按方式输入数据。int k1,k2,k3,k4;

17、scanH“d%d”,&k1,&k2)scanH“d,%d”,&k3,&k4)A) 1020/ B) 10 20/C) 10,20/D) 10 20/1020/10 20/10,20/ 10,20/7. 执行下列程序片段时输出结果是。int x=13,y=5;printHd”,x%=(y/=2)A)3 B)2 C)1 D)08. 下列程序的输出结果是。main ()( int x=023;printHd”,-x);A) 17 B) 18 C) 23 D) 249. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当 从第一列开始输入数据时,正确的输入方式是。i

18、nt a1,a2; char c1,c2;scanH“d%d”,&a1,&a2)scanf(“c%c”,&c1,&c2);A) 1020AB/B) 10 20 /AB/C) 10 20 AB/D) 10 20AB/10. 执行下列程序片段时输出结果是。int x=5,y;y=2+(x+=x+,x+8,+x);printf(d,y);A) 13 B) 14 C) 15 D) 1611. 若定义x为double型变量,则能正确输入x值的语句是。A) scanf(f,x); B) scanf(f,&x);C) scanf(“lf,&x); D) scanf(“5.1f,&x);12. 若运行时输入:

19、12345678/,则下列程序运行结果为。main ()( int a,b;scanf(2d%2d%3d,&a,&b);printf(“%dn,a+b);A) 46 B) 579 C) 5690 D)出错13. 已知i,j,k为int型变量,若从键盘输入:1,2,3回车,使I的值为1, j 的值为2, k的值为3,以下选项中正确的输入语句是。A) scanf(“2d%2d%2d”,&i,&j,&k);B) scanf(“d_%d_%d”,&i,&j,&k);C) scanf(“d,%d,%d”,&i,&j,&k);D) scanf(“i=%d,j=%d,k=%d,&i,&j,&k);14. 若

20、int x,y; double z;以下不合法的scanf函数调用语句是。A) scanf(“%d%lx,%le,&x,&y,&z);B) scanf(2d*%d%lf,&x,&y,&z);C) scanf(“%x%*d%o,&x,&y);D) scanf(x%o%6.2f, &x,&y,&z);15. 有输入语句:scanH“a=%d,b=%d,c=%d,&a,&b,&c);为使变量 a 的值为 1, b的值为3, c的值为2,则正确的数据输入方式是。A) 132/B) 1,3,2/C) a=1 b=3 c=2/D) a=1,b=3,c=2/二. 填空题1. 一个C程序由若干个 文件组成,而

21、一个这样的文件可以由若干个和 以及组成。2. C语句可以分为, 和等5种类型。3. C控制语句有种。4. 一个表达式要构成一个C语句,必须。5. 复合语句是用一对界定的语句块。6. printf函数和scanf函数的格式说明都使用字符开始。7. scanf处理输入数据时,遇到下列情况时该数据认为结束:(1), (2), (3)。8. 已有int i,j; float x;为将-10赋给i, 12赋给j, 410.34赋给x;则对应以下 scanf函数调用语句的数据输入形式是。9. C语言本身不提供输入输出语句,其输入输出操作是由来实现的。10. 一般地,调用标准字符或格式输入输出库函数时,文件

22、开头应有以下预 编译命令:。三. 程序阅读题1.用下面的 scanf 函数输入数据,使 a=3,b=7,x=8.5,y=71.82,c1=A,c2=a问 在键盘上如何输入?main ()( int a,b;float x,y;char c1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“ %f %e”,&x,&y);scanf(“ %c %c”,&c1,&c2);2. 写出以下程序的输出结果。main ()( int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);3. 写出以下程序的输出结果。main ( )inta=12345;fl

23、oat b=-198.345, c=6.5;printf(a=%4d,b=%-10.2e,c=%6.2fn”,a,b,c);4. 写出以下程序的输出结果。main ( ) int x=-2345;float y=-12.3;printf(“6D,%06.2F”,x,y);5. 写出以下程序的输出结果。main ( ) int a=252;printf(“a=%o a=%#on”,a,a);printf(“a=%x a=%#xn”,a,a);6. 写出以下程序的输出结果。main ()( int x=12; double a=3.1415926;printf(6d#,%-6d#n,x,x);pr

24、intf(14.101f#n”,a);四. 程序填空题1.下列程序的输出结果是16.00,请填(1)空使程序完整。main ( )( int a=9,b=2;float x=1 ,y=1.1,z;z=a/2+b*x/y+1/2;printf(5.2fn,z);五. 编程题1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。2.若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到 以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a= 3 b= 4 c= 5x=1.200000,y=2.400

25、000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ASCII)c2=b or 98(ASCII)3. 设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积, 圆柱体积。用scanf输入数据,输出计算结果;输出时要求有文字说明,取 小数点后2位数字,请编写程序。4.编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf 函数输出这两个字符。并思考以下问题:变量c1,c2应定义为字符型或整 型?或两者皆可?(2)要求输出C1和C2值的ASCII码

26、,应如何处理?用 putchar函数还是printf函数? (3)整型变量与字符型变量是否在任何情况 下都可以互相替代?如:char c1,c2 与 int c1,c2是否无条件地等价?习题四一. 选择题1. 逻辑运算符两侧运算对象的数据类型。A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据2. 下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的 要求。A) x%2=0 B) !x%2!=0 C) (x/2*2-x)=0 D) !(x%2)3. 以下程序片段。int x=2,y=3;printf();A)什么都不输出B)输出为:*x=2C

27、)输出为:#y=2 D)输出为:#y=34. 能正确表示“当x的取值在1,10和200,210范围内为真,否则为假”的表达 式是。A) (x=1) & (x=200) & (x=1) I I (x=200) I I (x=1) & (x=200) & (x=1) I I (x=200) I I (xb) & (n=cd)后 n 的值为。 A)1 B)2 C)3 D)47. 下面是错误的if语句(设int x,a,b;)A)if (a=b) x+; B)if (a=y)x=y;y=x;elsex+;y+;printf(“d,%d”,x,y)A)有语法错误,不能通过编译B)若输入3和4,则输出4和

28、5C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和510. 若 w=1,x=2,y=3,z=4,则条件表达式 wx ? w : yz ? y : z 的值是。A) 4 B)3 C)2 D)111. 下述表达式中,可以正确表示x1的关系。A) (x=1) I I (x=1 I x=1 & x=1) & (x0 | | +b0)+c;printf(d,%d,%d”,a,b,c)A) 0,0,0 B) 1,1,1 C) 1,0,1 D) 0,1,113. 下述程序的输出结果是。main ( )( int x=-1,y=4,k;k=x+=0 & !(y-=0);printf(d,%d,%d

29、,k,x,y)A) 0,0,3 B) 0,1,2 C) 1,0,3 D) 1,1,214. 以下程序输出结果是。main ( )( int x=1,y=0,a=0,b=0;switch(x) (case 1:switch (y) (case 0 : a+ ; break ;case 1 : b+ ; break ;case 2:a+; b+; break;case 3:a+; b+;printf(a=%d,b=%d”,a,b)A) a=1,b=0 B) a=2,b=1 C) a=1,b=1 D) a=2,b=215. 下述程序的输出结果是。main ()( int a,b,c;int x=5,

30、y=10;a=(-y=x+) ? -y : +x ;b=y+ ; c=x ;printf(d,%d,%d”,a,b,c)A) 6,9,7 B) 6,9,6 C) 7,9,6 D )7,9,716. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。if (ab)if (cd) x=1;elseif (ac)if (bd) x=2;else x=3;else x=6;else x=7;A) 1 B) 2 C) 3 D) 417. 在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功 能上与其他三个语句不等价。A) if (a) S1; else S2; B) if (

31、a=0) S2; else S1;C) if (a!=0) S1; else S2; D) if (a=0) S1; else S2;18. 若int i=0;执行下列程序后,变量i的正确结果是。switch (i) (case 9: i+=1 ;case 10: i+=1 ;case 11: i+=1 ;default : i+=1 ;A) 10 B) 11 C) 12 D) 1319. 若有说明语句 int i=5,j=4,k=6;float f;则执行 f=(ij&ik)?i:(jbc,b&c+1, c+=1,则表达式值相等的是。A)和B)和C)和D)和二. 填空题1. C语言提供6种关

32、系运算符,按优先级高低它们分别是,等。2. C语言提供三种逻辑运算符,按优先级高低它们分别是,。3. 设a=3,b=4,c=5,写出下面各逻辑表达式的值。表达式表达式运算后的值a+bc & b=c!(ab) & !c | 1!(a+b) + c -1 & b + c/24. 写出数学式子的C语言表达式。5. 将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表 达式。6. 设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表 达式: 。7. 已知 A=7.5,B=2,C=3.6,表达式 AB & CA | AB 的值是。8. 有 int x=3,y=-

33、4,z=5;则表达式(x&y)=(x|z)的值为。9. 若有 x=1,y=2,z=3,则表达式(x0) & (s=3) & (s1) & (s8) x=3;else x=1;else x=0;五. 程序阅读题1. 若运行时输入100/,写出以下程序的运行结果。main ()( int a ;scanf(d”,&a);printf(“s”,(a%2!=0)?”No”:”Yes”);2. 写出以下程序的运行结果。main ( )( int a=2,b=7,c=5;switch (a0) (case 1: switch (b=A | | c=Z) ? c-32 : c+32 ;printf(c,c)

34、;2. 下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的 值,例如输入3+5/得到结果8;请判断下面程序的正误,如果错误请改正 过来。main ()float x,y,r;char op ;scanf(f%c%f,&x,&op,&y);switch (op) case + : r=x+y ;case - : r=x+y ;case * : r=x+y ;case / : r=x+y ;printf(f,r);七. 程序填空题1. 根据以下函数关系,对输入的每个x值,计算出相应的y值,请填(3)空使 程序完整。main ( )int x,c,m;float y;scanf(“

35、%d,&x);if (【1 】)c=-1;else c=【2 】;switch (c) case -1 : y=0 ; break ;case 0 : y=x ; break ;case 1 : y=10 ; break ;case 2 :case 3 : y=-0.5*x+20 ; break ;default : y=-2 ;if (【3】)printf (“y=%f,,y);elseprintf(error!);2. 以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。main ()( int x=4,y=5,z=8 ;int u,v;u = xy ?【1 】;v = uz

36、?【2 】;printf (d”,v);八. 编程题1.有三个整数a,b,c,由键盘输入,输出其中最大的数。2.编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出 两数之和。4.给出一百分制成绩,要求输出成绩等级A,B,C,D,E90分以上为A, 80-89 分为B,70-79 分为C,6069 分为D,60 分以下为E。5.提高题:给一个不多于5位的正整数,要求:求出它是几位数;分别 打印出每一位数字;按逆序打印出各位数字,例如原数是321,应输出123。习题五一. 选择题1. 下面程序段int k=2;while (k=0) printf(d,k);k-;则下面描述中正确的是

37、。A) while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2. 下述程序段中,与其他程序段的作用不同。A) k=1; B) k=1;while (1) (Repeat :s+=k ; s+=k ;k=k+1 ; if (+k100) break ; goto Repeat)printf(“n%d,s);printf(“n%d,s);C) int k,s=0; D) k=1;for (k=1;k=100;s+=+k); do printf(“n%d”,s) ; s+=k;while (+k=100);printf(n%d,s);3. 以下程序段的循环次数是

38、。for (i=2; i=0; ) printf(d,i-);A)无限次B) 0次C) 1次D) 2次4. 下面程序的输出结果是。main ()( char c=A;int k=0;do switch (c+) case A : k+ ; break ;case B : k-;case C : k+=2 ; break ;case D : k%=2 ; continue ;case E : k*=10 ; break ;default : k/=3 ;k+; while (c0; x-) if (x%3=0) printf(“%d,-x); continue ;A) 741 B) 852 C)

39、 963 D) 8754216. 以下不是死循环的程序段是。A) int i=100; B) for (;);while (1) (i=i%100+1 ;if (i100) break ;C) int k=0; D) int s=36;do +k; while (k=0); while (s) ; -s ;7. 下述程序段的运行结果是。int a=1,b=2,c=3,t;while (ab=A & c=a & c=,z,) n+;A) c=getchar( ) B) getchar( ) C) c=getchar( ) D) scanf(c”,&c)9. 下述语句执行后,变量k的值是。int

40、k=1;while (k+10);A) 10 B) 11 C) 9 D)无限循环,值不定10. 下面程序的输出结果是。main ( )( int k=0,m=0,i,j;for (i=0; i2; i+) (for (j=0; j3; j+)k+ ;k-=j ;m = i+j ;printf(k=%d,m=%d”,k,m);A) k=0,m=3 B) k=0,m=5 C) k=1,m=3 D) k=1,m=5 11.下面for循环语句。int i,k;for (i=0, k=-1; k=1; i+, k+)printf(A)判断循环结束的条件非法B)是无限循环C)只循环一次D) 一次也不循环1

41、2.语句while (!E);括号中的表达式!E等价于。A) E=0 B) E!=1 C) E!=0 D) E=113. 以下是死循环的程序段是。A) for (i=1; ; ) (if (i+%2=0) continue ;if (i+%3=0) break ;B) i=32767;do if (i0) break ; while (+i);C) for (i=1 ; ;) if (+I10) continue ;D) i=1 ;while (i-);14. 执行语句for (i=1;i+4;);后变量i的值是。A) 3 B) 4 C) 5。)不定15. 以下程序段。x=-1;do x=x*

42、x; while (!x);A)是死循环B)循环执行2次C)循环执行1次D)有语法错误16. 下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选 择填空。main ()( int a,max=0;scanf(d”,&a);while (【】)(if (max+y;x=i+) i=x ;B) for ( ; ; x+=i );C) while x+ ; D) for (i=10 ; ; i-) sum+=i ;18. 下面程序段的运行结果是。x=y=0;while (x15) y+,x+=+y ;printH“d,%d”,y,x);A)20,7 B)6,12 C)20,8 D)8,2

43、019. 以下for循环的执行次数是。for (x=0,y=0; (y=123) & (x4) ; x+);A)无限循环B)循环次数不定C)4次D)3次20. 若运行以下程序时,输入2473/,则程序的运行结果是。main ( ) int c;while (c=getchar( ) ! =n)switch (c-2)(case 0 :case 1 : putchar (c+4);case 2 : putchar (c+4) ; break ;case 3 : putchar (c+3);default : putchar (c+2) ; break ;printf(n);A) 668977 B

44、) 668966 C) 66778777 D) 6688766二. 填空题1. C语言三个循环语句分别是语句,语句和 语句。2. 至少执行一次循环体的循环语句是。3. 循环功能最强的循环语句是。5.程序段for (a=1,i=-1; -1i1; i+)( a+ ; printf(“%2d,a); ;printf(“%2d,i);的运行结果是。三. 判断题1. 在while循环中允许使用嵌套循环,但只能是嵌套while循环。【】2. 在实际编程中,do-while循环完全可以用for循环替换。【】3. continue语句只能用于三个循环语句中。【】4. 在不得已的情况下(例如提高程序运行效率)

45、,才使用goto语句。【】5. 语句标号与C语言标识符的语法规定是完全一样的。【】6. for循环的三个表达式可以任意省略,while,do-while也是如此。【】7. do-while允许从外部转到循环体内。【】8. while的循环控制条件比do-while的循环控制条件严格。【】9. do-while循环中,根据情况可以省略while。【】10. do-while循环的while后的分号可以省略。【】四. 程序阅读题1. 写出下面程序运行的结果。main ()( int x,i ;for (i=1 ; i=100 ; i+) ( x=i;if (+x%2=0)if (+x%3=0) i

46、f(+x%7=0) printf(“%d ”,x);2. 写出下面程序运行的结果。main ( )( int i,b,k=0 ;for (i=1; i=5 ; i+) ( b=i%2;while (b-=0) k+ ;printf(d,%d”,k,b);3. 写出下面程序运行的结果。main ( )( int a,b;for (a=1,b=1 ; a=20) break;if (b%3=1) ( b+=3 ; continue ; b-=5;printf(dn,a);4. 写出下面程序运行的结果。main ()( int k=1,n=263 ;do k*= n%10 ; n/=10 ; whi

47、le (n);printf(dn,k)5. 写出下面程序运行的结果。main ( ) int i=5 ;do switch (i%2) case 4 : i- ; break ;case 6 : i- ; continue ;i- ; i- ;printf(“%d,i)while (i0);6. 写出下面程序运行的结果。main ( ) int i,j;for (i=0;i=0; j-) if (j+i)%2) j- ;printf(d,”,j) continue ;-i ;j-;printf(d,”,j);7. 写出下面程序运行的结果。main ()( int a=10,y=0 ;do a+

48、=2 ; y+=a ;if (y50) break ; while (a=14);printf(“a=%d y=%dn”,a,y);8. 写出下面程序运行的结果。main ( ) int i,j,k=19;while (i=k-1) k-=3 ;if (k%5=0) i+ ; continue ; else if (k5) break ;i+;printH“i=%d,k=%dn”,i,k);9. 写出下面程序运行的结果。main ( ) int y=2,a=1;while (y-!=-1)do a*=y ;a+ ; while (y-);printf(d,%dn,a,y)10. 写出下面程序运

49、行的结果。main ()( int i,k=0;for (i=1; ; i+) (k+ ;while (ki*i) (k+ ;if (k%3=0) goto loop ;loop:printf(d,%dn”,i,k)六. 程序填空题1. 下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基 本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就 是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计 算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ( )( int m,n,w;scanf(d,%d”,&m,&n)while (n)

50、(w=【1】;m=【2】;n=【3】;printf(d,m)2. 下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数, 请填(3)空使程序完整。main ()( int n,k=1,s=0,m ;for (n=1 ; ns) printf(dd,n);3. 下面程序段的功能是计算1000!的末尾有多少个零,请填(1)空使程序完 整。main ( )int i,k;for (k=0,i=5; i=1000; i+=5) m = i ;while (【1 】) k+; m=m/5 ; 4. 下面程序接受键盘上的输入,直到按/键为止,这些字符被原样输出,但 若有连续的一个以上的空格时只

51、输出一个空格,请填(3)空使程序完整。main ( )char cx , front=0;while (【1 】!=n) if (cx!= )putchar(cx);if (cx= )if (【2】)putchar(【3 】) front=cx ;5. 下面程序按公式求和并输出结果,请填(3)空使程序完整。main ()【1】;int k ;for (k=1 ; k=100 ; k+) s+=k ;for (k=1 ; k=50 ; k+) s+=k*k;for (k=1 ; k=10 ; k+)s+=【2】;printf(“sum=【3 】”,s);七. 编程题1. 输入两个正整数m和n,求其最大公约数和最小公倍数。2. 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个 数。3. 求(即求 1!+2!+3!+.+19!+20!)。4. 有一个分数数列:求出这个数列前20项之和。5. 提高题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其 各位数字立方之和等于该数本身。习题六一. 选择题1. 在C语言中,引用数组元素时,其数组下标的数据类型允许是。A) 整型常量B)整型表达式

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!