重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)

上传人:dax****eng 文档编号:164071301 上传时间:2022-10-24 格式:DOC 页数:57 大小:265KB
收藏 版权申诉 举报 下载
重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)_第1页
第1页 / 共57页
重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)_第2页
第2页 / 共57页
重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)_第3页
第3页 / 共57页
资源描述:

《重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)》由会员分享,可在线阅读,更多相关《重庆理工大学-C语言程序设计基础教程习题答案(纪纲金艳)(57页珍藏版)》请在装配图网上搜索。

1、习题答案第1章1.1 填空题1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是_main 。1.1.2 一个函数由_函数头_和_函数体_两部分组成。1.1.3 在C语言中,输入操作是由库函数_scanf 完成的,输出操作是由库函数_printf_完成的。1.1.4 通过文字编辑建立的源程序文件的扩展名是_.c_;编译后生成目标程序文件,扩展名是_.obj_;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。1.1.5 C语言程序的基本单位或者模块是_函数_。1.1.6 C语言程序的语句结束符是_;_。1.1.7 编写一个C程序,上机运行要经过的步骤:_。1.1.

2、8 在一个C语言源程序中,注释部分两侧的分界符分别为_/*_和_*/_。1.1.9 C语言中的标识符只能由三种字符组成,它们是 字母 、 数字 和 下划线 。且第一个字符必须为 字母或下划线 。1.1.10 C语言中的标识符可分为关键字、 预定义标识符 和 用户标识符 3类。1.2 选择题1.2.1 一个C程序的执行是从( A )。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束1.2.2 以下叙述不正确的是(C)。A

3、)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C) 在C程序中,注释说明只能位于一条语句的后面D) C程序的基本组成单位是函数1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。A)必须在程序的开头B)必须在系统调用的库函数的后面C)可以在程序的任意位置D)必须在程序的最后1.2.4 C编译程序是 (A)。A)将C源程序编译成目标程序的程序B)一组机器语言指令C) 将C源程序编译成应用软件D) C程序的机器语言版本1.2.5 要把高级语言编写的源程序转换为目标程序,需要使用( D)。A) 编辑程序B) 驱动程序 C) 诊断程序 D) 编译程序1.

4、2.6 以下叙述中正确的是( C)。A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点1.2.7 以下叙述中正确的是(A)。A) C程序中注释部分可以出现在程序中任意合适的地方B) 花括号“”和“”只能作为函数体的定界符C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名D) 分号是C语句之间的分隔符,不是语句的一部分1.2.8 以下叙述中正确的是( B)。A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机

5、器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译1.2.9 用C语言编写的代码程序(B)。A) 可立即执行 B) 是一个源程序C) 经过编译即可执行D) 经过编译解释才能执行1.2.10 以下叙述中正确的是(C )。A) 在C语言中,main函数必须位于程序的最前面B) C语言的每行中只能写一条语句C) C语言本身没有输入输出语句D) 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误1.2.11 下列4组选项中,均不是C语言关键字的选项是( A )。A)define B)getc C)include D)while IF char scanf

6、 go type printf case pow1.2.12 下列4组选项中,均是C语言关键字的选项是(B)。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type1.2.13 C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)。A) 必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符1.3 编程题1.3.1 参照本章例题,编写一个C程序,要求输出如下字符。*Welcome to Expo 2010!Shanghai 2

7、010#include void main()printf(“*n”);printf(“ Welcome to Expo 2010!n”);printf(“ Shanghai 2010n”);printf(“*n”);1.3.2 设计一程序,输入3个整数,计算并显示输出这3个整数之和。#include void main()int a,b,c;printf(“input a,b,c:n”);scanf(“%d%d%d”,%a,%b,%c);printf(“the sum of a,b,c is %5dn”,a+b+c);第2章2.1填空题2.1.1 C程序中数据有 常量 和 变量之分,其中,用

8、一个标识符代表一个常量的,称为 符号 常量。C语言规定在程序中对用到的所有数据都必须指定其 数据 类型,对变量必须做到先 定义 ,后使用。2.1.2 C语言中,用关键字 float 定义单精度实型变量,用关键字 double 定义双精度实型变量,用关键字 char 定义字符型变量。2.1.3 在C语言中,以16位PC机为例,一个char型数据在内存中所占的字节数为 1 ;一个int型数据在内存中所占的字节数为 2 ,则int型数据的取值范围为 -3276832767 。一个float型数据在内存中所占的字节数为 4 ;一个double型数据在内存中所占的字节数为 8 。单精度型实数的有效位是

9、6-7 位 ,双精度型实数的有效位是 15-16 位 。2.1.4 设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确无误地存放在变量a中,应采用的类型说明语句是 long int a=15791; 。2.1.5 C的字符常量是用 单 引号括起来的 1 个字符,而字符串常量是用 双引号括起来的 字符 序列。2.1.6 C语言中,用“”开头的字符序列称为转义符。转义符“n”的功能是 回车换行 ;转义符“r”的功能是 回车 。2.1.7 若有定义:char c=010;则变量c中包含的字符个数为 1 。2.1.8 负数在计算机中是以 补码 形式表示。2.1.9 C语言中,&

10、作为双目运算符是表示的是 按位与 ,而作为单目运算符时表示的是 取地址 。2.1.10 在C语言的赋值表达式中,赋值号左边必须是 变量 。2.1.11 自增运算符+、自减运算符-,只能用于 变量 ,不能用于常量或表达式。+和- -的结合方向是“自 右左 至 左 ”。2.1.12 若a是int型变量,则执行下面表达式后a的值为 2 。a=25/3%32.1.13 写出下列数所对应的其它进制数(D对应十进制,B对应二进制,o对应八进制,H对应十六进制)32D= 100000 B= 40 O= 20 H75D= 1001011 B= 113 O= 4B H2.1.14 假设已指定i为整型变量,f为f

11、loat变量,d为double型变量,e为long型变量,有式子10a+i*f-d/e,则结果为 double 型。2.1.15 若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为 1 。(x+y)%2+(int)a/(int)b2.1.16 5/3的值为 1 ,5.0/3的值为 1.666667 。2.1.17 若有以下定义,int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是 -16 。2.1.18 若a是int型变量,则表达式(a=4*5,a+2),a+6的值为 26 。2.1.19 若x和n均为int型变量,且x的初值为12,n的初

12、值为5,则执行表达式x%=(n%=2)后x的值为: 0 。2.1.20 若有定义语句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是 13.7 。2.2 选择题2.2.1 逗号表达式(a=3*5,a*4),a+15的值是( C )。A) 15 B) 60 C) 30 D) 不确定2.2.2 若有以下定义和语句:char c1=a, c2=f;printf(%d,%cn,c2-c1,c2-a+B); 则输出结果是:( D )A) 2 ,M B) 5,! C) 2,E D) 5,G2

13、.2.3 sizeof(float)是(B )。A)一个双精度型表达式 B)一个整型表达式C)一种函数调用D)一个不合法的表达式2.2.4 若有以下定义,则能使值为3的表达式是(D )。int k=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)2.2.5 在C语言中,要求运算数必须是整型的运算符是( A )。A) % B) / C) D) !2.2.6 下面4个选项中,均是合法整型常量的选项是( A )。A) 160 B) -0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe

14、 0668 0x2.2.7 下面4个选项中,均是不合法浮点数的选项是( B )。 A) 160. B)123 C) -.18 D)-e3 0.12 2e4.2 123e4 .234 E3 .e5 0.0 1e32.2.8 下面正确的字符常量是( C )。A)”C” B)” C)W D)2.2.9 在C语言中,int、char和short三种类型数据在内存中所占用的字节数( D )。A)由用户自己定义 B)均为2个字节 C)是任意的 D)由所用机器的机器字长决定 2.2.10 假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)后x的值为( B )。A)7B)8C)6D)22.2.11

15、 假设所有变量均为整型,则表达式x=(i=4,j=16,k=32)后x的值为( C )。A)4B)16C)32D)522.2.12 若有代数式,则正确的C语言表达式是( D )。A)fabs(x*3+log(x)B)fabs(pow(x,3)+log(x)C)abs(pow(x,3.0)+log(x)D)fabs(pow(x,3.0)+log(x)2.2.13 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( B )。A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+

16、0.5/100.0D) n=(n/100+0.5)*100.02.2.14 以下不正确的叙述是( D )。A)在C语言中,逗号运算符的优先级最低B)在C语言中,APH和aph是两个不同的变量C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值2.2.15 以下正确的叙述是( D)。A)在C语言中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运

17、算符 2.3编程题2.2.1 编写一程序,求出给定半径r的圆的面积和周长,并输出计算结果。其中,r的值由用户输入,用实型数据处理。#include#define PI 3.14159 void main() float r,c,s; printf(input the 半径 ); scanf(%f,&r); c=2*PI*r; s=PI*r*r; printf(周长为%5.2f,面积为%5.2fn,c,s);2.2.2 已知华氏温度和摄氏温度之间的转换关系是:C5/9*(F32)。编写一程序,将用户输入的华氏温度转换为摄氏温度,并输出结果。#includevoid main() float c,

18、f; printf(input the 华氏温度 ); scanf(%f,&f); c=5.0/9*(f-32); printf(华氏温度为%5.2f,摄氏温度为%5.2fn,f,c);习 题 三3.1 填空题3.1.1 程序的三种基本结构是 顺序 、 选择 、 循环 。3.1.2 执行( a=3.0+5,a*4 ),a+=-6; 变量a 及表达式的值分别为 2.0,2.0 3.1.3 下列语句被执行后的执行结果是 1abcdef 。 int a=1; printf (“%d%s%s”,a,”abc”,”def”);3.1.4 getchar( ) 函数的作用是 从键盘上接收一个字符 。3.1

19、.5 运行以下程序后,用户输入123456abc,输出结果为 123,45,6 。void main() int a,b; char c; scanf (%3d%2d%3c,&a,&b,&c); printf(%d,%d,%c,a,b,c); 3.1.6 下面程序的输出结果是 1112 。# include void main( ) int i=10; /* int i=20; */ i+; printf (“%d”,i +); printf (“%dn”,i ); 3.1.7 下面程序运行后,从键盘输入30,则程序的输出结果是 a=31,Ha=1f,Oa=37 。void main () i

20、nt a ; scanf(”%d”, &a ); a+; printf (“a=%d,Ha=%x,Oa=%o”,a,a,a); 3.1.8 下面程序的输出结果是 a=-3 b=D“END” 。void main ( ) int a,b=68; a=-3;printf(“ta=%dntb=%cn”end”n”,a,b); 3.1.9 下面程序的输出结果是 13.7000000 。# include # include main() int a=1,b=4,c=2;float x=10.5,y=4.0,z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; printf(“%fn

21、”,z); 3.1.10 下面程序运行后,若输入a=2,b=3结果是x1= 6.00 x2= 0.67 。void main( ) float a ,b ,x1, x2 ; scanf (“a=%f,b=%f“ ,&a ,&b ) ; x1=a*b ; x2=a/b ; printf (“x1=%5.2f nx2=%5.2f n” ,x1,x2 ); 3.2 选择题3.2.1 指出下面正确的输入语句是( B )。A) scanf (“a=b=%d”,&a,&b); B) scanf (“a=%d,b=%f”,&m,&f );C) scanf (“%3c”,c); D) scanf (“%5.2

22、f”, &f);3.2.2 执行scanf (“%d%c%f”,&a,&b,&c) 语句,若输入1234a12f56 则变量a,b,c的值为 ( C )。A) a=1234 b=a c=12.56 B) a=1 b=2 c=341256C) a=1234 b=a c=12.0 D) a=1234 b=a12 c=56.03.2.3 执行scanf (“a=%d,b=%d”,&a,&b) 语句, 若要使变量a和b的值分别为3和4, 则正确的输入方法为( C )。A) 3 ,4 B) a:3 b: 4 C) a=3,b=4 D) 3 43.2.4 设b=1234 , 执行printf(“%d%d”

23、,b) 语句,输出结果为: ( D )。A) 1234 B) %1234 C) %d1234 D) %d12343.2.5 若x是int型变量,y是float型变量,所用scanf语句为 scanf(“x=%d,y=%f”,&x,&y);正确的输入操作是( A )。A) x=10,y=66.6 B) 10 66.6C) 1066.6 D) x=10y=66.6 3.2.6 设a,b均是int型变量,则以下不正确的函数调用为( D )。A) getchar(); B) putchar(108);C) scanf(“%d,%2d”,&a,&b); D) putchar(); 3.2.7 下列程序的

24、执行结果是( C )。# include void main( ) int a=5;float x=3.14;a*=x*(E-A);printf (“%fn”,(float)a); A) 62.800000 B) 62 C) 62.000000 D) 63.0000003.2.8 若输入2.50 ,下列程序的执行结果是( A )。void main( ) float r , area ; scanf (“ %f ” , & r ) ; printf (“ area=%f n” , area=1/2*r*r ) ; A) 0 B) 3.125 C) 3.13 D) 程序有错3.3 编程题3.3.

25、1 编写程序,从键盘上输入2个整数给变量a和b,交换a、b值然后输出。/参考程序#include void main( ) int a,b,temp; scanf(%d%d,&a,&b); printf(n交换前: a=%d,b=%dn,a,b); temp=a;a=b;b=temp; printf(交换后: a=%d,b=%dn,a,b) ;3.3.2 试编写一个程序,任意输入一个小写字母,分别按八进制、十进制、十六进制、字符格式输出。/参考程序:#include void main() char c; printf(请输入1个小写字母:n); scanf(%c,&c); printf(八进

26、制: %on十进制: %dn ,c,c); printf(十六进制: %xn字符: %cn ,c,c);3.3.3 输入一个华氏温度,要求输出摄氏温度,输出要有文字说明,取2位小数。公式为: /参考程序:# include void main() float c,f; printf(“请输入一个华氏温度:n”); scanf(“%f”,&f); c= 5.0/9*(f-32); printf(“华氏温度F=%.2fn”,f); printf(“摄氏温度c=%.2fn”,c); 3.3.4 设圆半径r=3,圆柱高h=4,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出

27、计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。/参考程序:# include # define PI 3.1415926void main() float r,h,c,s1,s2,v1,v2;printf(“请输入圆半径,圆柱高:”); scanf(“%f,%f”,&r,&h); c=2*PI*r; s1=PI*r*r; s2=4*PI*r*r; v1=4/3*PI *r*r*r; v2=s1*h; printf(“r=%.2f,h=%.2fn”,r,h); printf(“圆周长=%.2f,圆面积=%.2fn”,s1,s2); printf(“圆体积=%.2f,圆柱体积=%.

28、2fn”,v1,v2); 习 题 四4.1 填空题4.1.1 表示条件:10x100或x0的C语言表达式是 10x &x100 | x0 。4.1.2 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 a 。4.1.3 若已知a=10,b=20,则表达式!abc的值是 0 。4.1.5 设y为int型变量,请写出描述“y是奇数”的表达式 y%2!=0 。4.1.6 设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式 x=z|x=z&yb & ca|ab的值是 1 。4.1.8 假设 a=5, b=2, c=4,以下表达式的值依次为: 0,1,1

29、,1 。(1) a % b * c & c % b * a(2) b % c * a & a % c * b(3) a % b * c | c % b * a(4) b % c * a | a % c * b4.1.9 假设 a=3, b=4, c=5,x=0,y=0,以下各表达式的值依次为 0,1,1,0,1 。(1) a + b c & b = c(2) a | b + c & b - c(3) ! (a b) & ! c | 1(4) ! (x = a) & (y = b) & 0(5) ! (a + b) + c 1 & b + c/2 4.1.10 两次运行下面的程序,如果从键盘上分

30、别输入6和4,输出的结果是 7和5 。void main() int x; scanf(“%d”,&x); if(x+5) printf(“%d”,x); else printf(“%dn”,x-); 4.2 选择题:4.2.1 设a为整型变量,不能正确表达数学关系: 10a15的C语言表达式是( A )。A) 10a10&a15 D) !(a=15)4.2.2 在以下一组运算符中,优先级最高的是( C )。A) = B) = C) % D) &4.2.3 设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是 ( D )。A) a&b B) a=b C) c

31、|+c&b-c D) !(ab)&!c|1) 4.2.4 在C语言的if语句中,用作判断的表达式为( D )。A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式4.2.5 在以下运算符中,优先级最高的运算符是( B )。A) = B) C) != D) 4.2.6 假设所有变量均为整型,表达式(a=2,b=5,ab? a+:b+,a+b)的值是( B )。A) 7 B) 8 C) 9 D) 2 4.2.7 在C语言中,能代表逻辑值真的是( D )。A) true B) 大于0的数 C) 非0整数 D) 非0的数 4.2.8 在以下运算符中,优先级最高的运算符是( A )。A

32、) ! B) = C) + D) | 4.2.9 逻辑运算符两侧运算对象的数据类型( D )。A) 只能是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 4.3 编程题4.3.1 编写一个C程序,要求从键盘输入一个整数,判断该整数是否能够被17整除。(解析:当该数与17的余数为零时,即可以被17整除。) /参考程序#include void main() int a; printf(“请输入一个整数:”); scanf(“%d”,&a); if(a%17=0) printf(“%d能被17整除n”,a); else printf(“%d不能被17整除

33、n”,a); 4.3.2 编写一个C程序,计算并显示由下列说明确定的一周薪水。如果工时小于40,则薪水按每小时8元计;否则,按320元加上超出40小时部分的每小时12元。(解析:一周工时数为键盘输入,显示其相应薪水为输出。)/参考程序#include void main() float a,wage;printf(“请输入工时数:”); scanf(“%f”,&a); if(a0) printf(“error!”);else if(a40) wage=a*8; else wage=320+(a-40)*12; printf(“周薪水=%.1f元n”,wage); 4.3.3 编写一个C程序,要

34、求从键盘输入三个整数a,b,c,输出其中最大的数。(解析:求极值问题。设立一个变量max总是保留两数比较时较大的那个值。具体方法如下:先将a的值赋给max,如果maxb则将b的值赋给max,然后再用max与c进行比较,如果maxc则将c的值赋给max,这样能使max总是保留最大的值。最后输出max。)/参考程序#include void main() int a,b,c,max; printf(“请输入三个整数:”); scanf(“%d %d %d”,&a,&b,&c); if(ab) max=a; else max=b; /* max=ab?a:b; */ if(cmax) max=c;

35、/* max=maxc?max:c; */ printf(“最大值max=%dn”,max); 4.3.4 编写一个C程序,要求从键盘输入三个整数x,y,z,请把这三个数由小到大输出。(解析:排序问题。想办法把三个数进行调换,使得最小的数放到x变量里,最大的数放在z变量里。具体方法如下:先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小;然后将y与z比较,并将较小的值保存在y里而较大的值放在z里。最后,依次输出x、y、z。)/参考程序#include void main() int x,y,z,a; printf(“inp

36、ut 3 integer :n”); scanf(“%d,%d,%d”,&x,&y,&z); if(xy) /*使xz) /*使xz) /*使y=z*/ a=z; z=y; y=a; printf(“nx=%d, y=%d, z=%dn”,x,y,z); 4.3.5 编写一个C程序,要求从键盘输入一个不多于5位的正整数x,要求输出:一、它是几位数;二、逆序打印出各位数字,例如:原数为789,应输出987。(解析:该问题的核心是分解出每一位上的数字:a=x/10000;/*分解出万位上的数字*/b=x%10000/1000;/*分解出千位上的数字*/c=x%1000/100;/*分解出百位上的数

37、字*/d=x%100/10;/*分解出十位上的数字*/e=x%10;/*分解出个位上的数字*/通过检测各数字是否为零,便可知道x是几位数,例如:if (a) 则x是5位数。 )/参考程序#includevoid main() long x; int a,b,c,d,e;printf(ninput x:); scanf(%ld,&x); e=x%10; d=x/10%10; c=x/100%10; b=x/1000%10; a=x/10000; if(x=1E+5|x0) printf(5位数,反序数字是:%d%d%d%d%dn,e,d,c,b,a); else if(b0) printf(4位

38、数, 反序数字是:%d%d%d%dn,e,d,c,b); else if(c0) printf(3位数,反序数字是:%d%d%dn,e,d,c); else if(d0) printf(2位数,反序数字是:%d%dn,e,d); else printf(1位数,数字是:%dn,e); 4.3.6 编写一个C程序,要求从键盘输入两个数,并依据提示输入的数字,选择对这两个数的运算,并输出相应运算结果。要求提示为:1、作加法;2、做乘法;3、做除法:(解析:可使用switch语句,以提示输入的数字为依据,作分支结构设计,使得提示输入1时,将两数之和输出;提示输入2时,将两数之积输出;提示输入3时,将

39、两数之商输出 - 注意,除数不可为零的检测与提示。)/参考程序#include void main() float op1,op2; int sign; printf(请输入两个操作数: a bn); scanf(%f%f,&op1,&op2); printf(请选择进行的运算(1,2,3,4): n); printf(1: +n); printf(2: -n); printf(3: *n); printf(4: /n); printf(您选择: ); scanf(%d,&sign); switch(sign) case 1: printf(n%f+%f=%fn,op1,op2,op1+op2

40、); break; case 2: printf(n%f-%f=%fn,op1,op2,op1-op2); break; case 3: printf(n%f*%f=%fn,op1,op2,op1*op2); break; case 4: if(op2) printf(n%f/%f=%fn,op1,op2,op1/op2); break; else printf(n除数不能为0n); break; default: printf(n您选择的运算不对n); 习 题 五5.1填空题5.1.1 C语言三个循环语句分别是 while 语句, do while 语句和 for 语句。5.1.2 至少执行

41、一次循环体的循环语句是 do while 。5.1.3 循环功能最强的循环语句是 for 。5.1.4 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填填空。int n=0,c;c=getchar();while( c!=n ) if( c=0&c=9 ) n+; c=getchar(); 5.1.5 在执行以下程序时,如果键盘上输入:ABCdef,则输出为 abcDEF 。#include char ch; while(ch=getchar()!=n) if(ch=A&ch=a&ch=z) ch=ch-32; printf(“n”); 5.1.6 下面程序的功能是用辗

42、转相除法求两个正整数的最大公约数,请填空。#includevoid main() int r,m,n; scanf(“%d,%d”,&m,&n); if(mn) r=m;m=n;n=r r=m%n; while(r) m=n; n=r; r= m%n ; printf(“%dn”,n); 5.1.7 当运行以下程序时,从键盘输入“right? ”,则下面程序的运行结果是sjhiu 。 #includevoid main() char c; while(c=getchar()!=?) putchar(+c);5.1.8 下面程序的运行结果是 s=254 。#includevoid main()

43、int a,s,n,count;a=2; s=0; n=1; count=1;while(count=7) n=n*a; s=s+n; +count; printf(“s=%d”,s); 5.1.9 执行下面程序段后,k的值是 36 。 k=1;n=263;do k*=n%10; n/=10; while(n);5.1.10 下面程序的运行结果是 -10 。#includevoid main() int i; for(i=100; i=0; i-=10); printf(“%dn”, i); 5.1.11 下面程序使循环结束的条件式 i=0 。#includevoid main() int i

44、; for(i=250;i;i-=5) printf(“%dn”,i);5.1.12 以下程序输出结果为 x=-1,y=21 。#includevoid main() int x,y;for(x=30,y=0;x=10,y20;x-,y+) x/=2, y+=2;printf(“x=%d, y=%dn”,x,y);5.1.13 下面程序的功能是计算1-3+5-7+.-99+100的值,请填空。#includevoid main() int i, t=1, s=0; for( i=1; i=101; i+=2) t=t*i ; s=s+t; t=-t/i ; printf(“%dn”,s);5.

45、1.14 下面程序的运行结果是*。#includevoid main() int i, j=4; for(i=j; i2*j; i+) switch(i/j) case 0: case 1: printf(”*”); break; case 2: printf(“#”); 5.1.15 下面程序的输出结果是i=6, k=4 。#includevoid main() int i, j,k=19; while(i=k-1) k-=3; if(k%5=0) i+; continue; else if(k5) break; i+;printf(“i=%d, k=%dn”,i k);5.2 选择题5.2

46、.1 设有程序段:int k=10; while(k=0) k=k-1;,则下面描述正确的是( C)。A) while循环执行10次 B) 循环时无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次5.2.2 有以下程序:#includevoid main() while(putchar(getchar()!=?); 当输入“china?”时,程序的执行结果是( D )。A) china B) dijob C) dijiob? D) china?5.2.3 语句while(!E);中的表达式!E等价于( A )。A) E=0 B) E!=1 C) E!=0 D) E=15.2.4

47、下面程序段的运行结果是( A )。a=1;b=2;c=2;while(abc) t=a; a=b; b=t;c- -; printf(“%d,%d,%d”,a,b,c);A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,15.2.5 下面程序段的输出结果是( C )。int n=0;while(n+=2); printf(“%d“,n);A) 2 B) 3 C) 4 D) 有语法错误5.2.6 下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#includevoid main() int a,b,t;scanf(“%d,%d”,

48、&a,&b);while( B ) if(ab) t=a; a=b; b=t; printf(%d,%dn“,a,b);scanf(“%d,%d”,&a,&b); A) !a=b B) a!=b C) a=b D) a=b5.2.7 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。#includevoid main() int m=0,n=0; char c;scanf(“%d,%d”,&a,&b);while( ( 1 C )!=n ) if(c=A&c=a&c=z) n+; printf(“%d”,mn?( 2 A ) 1

49、 A) c=getchar( ) B) getchar( ) C) c=getchar( ) D) scanf(“%c”,c)2 A) n:m B) m:nC) m:m D) n:n5.2.8 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。#includevoid main() int a,max=0;scanf(“%d”,&a);while( B ) if(maxa) max=a; scanf(“%d”, &a);printf(“%d”,max); A) a=0 B) a C) !a=1 D) !a5.2.9 下面程序段的输出结果是( C)。#includevoid main() int num=0;while( num=2 ) num+;printf(“%dn”,num); A) 1 B) 1 C) 1 D) 12

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