2022年C语言复习题答案 .pdf
1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 47 页 - - - - - - - - - 1 第一章绪论1.1 语言的发展及特点1.2 程序的基本结构习题一、选择题1.1 在每个 C程序中都必须包含有这样一个函数,该函数的函数名为A) main B) MAIN C) name D) function 1.2 以下叙述不正确的是A) C 程序书写格式规定,一行内只能写一个语句;B) main( )函数后面有一对花括号,花括号内的部分称为函数体;C) 一个 C程序必须有main( )函数;D) C 规定函数内的每个语句以分号结束;1.3 C 语言程序的基本单位是()。A)函数 B)过程 C)子程序 D)子例程1.4 一个 C程序的执行是从。A) 本程序的main 函数开始,到main 函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main 函数结束D) 本程序的main 函数开始,到本程序文件的最后一个函数结束1.5 以下叙述不正确的是。A) 一个 C源程序必须包含一个main 函数B) 一个 C源程序可由一个或多个函数组成C) C 程序的基本组成单位是函数D) 在 C程序中,注释说明只能位于一条语句的后面1.6 一个 C语言程序是由。A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成二、判断题1.7 一个 C程序的执行总是从该程序的main 函数开始,在main 函数最后结束。1.8 main函数必须写在一个C程序的最前面。1.9 一个 C程序可以包含若干个函数。1.10 C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 47 页 - - - - - - - - - 2 1.11 C 程序的注释只能是一行。三、编程题1.12 上机运行本章三个例题,熟悉使用Turbo C 2.0编译和运行一个程序的步骤。1.13 试编写一个C程序,输出两个数的乘积。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 47 页 - - - - - - - - - 3 第二章基本数据类型、运算符和表达式2.1 C 语言的数据类型C 语言包括以下一些数据类型。整型字符型实型 (浮点型 )枚举类型结构体类型共用体类型基本类型构造类型数组类型指针类型空类型数据类型单精度型双精度型2.2 标识符、常量和变量C 语言规定,标识符只能由字母、数字、下划线“_” 三种字符组成,并且第一个字符只能是字母或下划线,数字不能作为标识符的第一个字符。习题一、选择题2.1 以下不合法的用户标识符是A ) f2_G3 B) If C) 4d D )_8 2.2 以下选项中合法的用户标识符是A) long B )_2TestC) 3DmaxD )A.dat 2.3 以下不是关键字的标识符是A )continue B) char C) If D) default 2.4 C 语言提供的合法数据类型为A) 复数型B) 逻辑型C) 双精度型D) 集合型2.5 以下选项中不合法的int 整型常数是A) 32768 B) -56 C) 03 D) 0 xAF 2.6 下列字符串中,可以作为“ 字符串常量 ” 的是A) ABC B) ABC C)abc D) a 2.7 以下字符串中,合法的长整型常数是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 47 页 - - - - - - - - - 4 A) 0L B) 4962710 C) 0.054838743 D) 2.1869e10 2.8 在下面的运算符中,优先级最高的运算符是A) % B) & C) D) ! 2.9 逗号表达式 (x=2*3,x+8,x+12) , x+x的值是A)6 B)26 C)52 D)122.10 设 int n=6;表达式n%=n+=n-=n*n的值为A)10 B)0 C)12 D)6 2.11 TURBO C中 ,int 类型变量所占字节数是A)1 B)2 C)3 D)4 2.12 在 C 语言中,下列合法的字符常量是A)?039? B)?x76? C)?ab? D)? o?二、填空题2.13 下列程序执行后的结果是_70_。main( ) int x=f ;printf(%dn, A-a+x) ; 2.14 把 a1、a2 定义成长整型变量的定义语句是_ _long int a1,a2;_。2.15 在 C 语言中,实型变量分为两种类型,它们是_。2.16 已有定义: int x; float y;double z; ,则计算表达式:x+y*z 后,所得数据的类型是 _。2.17 已有定义: float f=13.8 ; ,则表达式:(int)f 3 的值是 _1_。2.18 若 s是 int 型变量,且s6,则下面表达式的值为_1_。s%2+(s+1)%2 2.19 若 a 是 int 型变量,则计算下面表达式后a 的值为 _2_。a=25/3%3 2.20 若 x 和 n均是 int 型变量,且x 和 n 的初值均为5,则计算表达式x+=n+ 后, x 的值为 _10_,n 的值为 _6_。2.21 若有定义: char c=, 010? ;则变量c中包含的字符个数为_1_。2.22 若有定义: int x=3,y=2;float a=2.5,b=3.5; 则下面表达式的值为_1_。(x+y)%2+(int)a/(int)b 2.23 已知字母a 的 ASCII 码为十进制数97,且设 ch 为字符型变量,则表达式ch=,a?+,8?-,3? 的值为 _102_(f) 。三、分析以下程序运行结果。2.24 main ( ) int a,b,x,y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 47 页 - - - - - - - - - 5 a=5; b=7; x=+a; y=b+; printf(“ %d,%d,%d,%d” ,a,b,x,y); 6,8,6,7 四、简答题2.25 假设 m 是一个三位数, 写出将 m 的个位, 十位,百位反序而成的三位数(例如:123 反序为 321)的 C 语言表达式。2.26 已知 int x=10,y=12; 写出将 x 和 y 的值互相交换的表达式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 47 页 - - - - - - - - - 6 第三章顺序结构3.1 格式输入与输出3.1.1 printf函数(格式输出函数)printf格式控制字符格式字符说明d,i 以十进制形式输出带符号整数( 正数不输出符号) o 以八进制形式输出无符号整数( 不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀0 x) u 以十进制形式输出无符号整数f 以小数形式输出单、双精度实数,隐含输出6 位小数e,E 以指数形式输出单、双精度实数g,G 以%f 或%e中较短的输出宽度输出单、双精度实数c 输出单个字符s 输出字符串在格式命令的和格式控制字符之间可以加上一些任选的修饰符,用来对输出格式作进一步的限定。这些修饰符如下所示:附加格式说明符(修饰符)修饰符功能例子m 输出数据域宽度,数据长度 m ,左补空格;否则按实际输出%4d :表示输出至少占4 列.n 对于实数:指定小数点后小数位数( 四舍五入 ) %6.2f :表示输出2 位小数对于字符串: 表示只输出字符串的前n 个字符%.3s:表示输出字符串前3 个字符输出数据在域内左对齐(缺省右对齐)% 16d:表示输出数据左对齐+ 输出有符号正数时, 在其前面显示正号(+) %+d :表示输出整数的正号0 输出数值时, 指定左边不使用的空位置自动填0 %08d :表示输出十进制整数,不足8位时左补0 # 对于无符号数: 在八进制和十六进制数前显示前导0,0 x 或 0X %#X :表示输出的十六进制前显示前导 0X l 在 d、o、x、u 前,指定输出为long int型%ld:表示输出长整型数在 e、 f 、 g前, 指定输出精度为double型( 缺省也为 double) %lf :表示输出为double 型数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 47 页 - - - - - - - - - 7 3.1.2scanf 函数 ( 格式输入函数) scanf 函数的格式控制符格式控制符字符意义d,i 输入十进制整数o 输入八进制整数x 输入十六进制整数u 输入无符号十进制整数f 或 e 输入实型数 ( 用小数形式或指数形式) c 输入单个字符s 输入字符串使用 scanf函数注意事项 : (1) 如果相邻两个格式控制符之间,不指定数据分隔符(如逗号、冒号等),则相应的两个输入数据之间,至少用一个空格分隔,或者用 Tab 键分隔,或者输入一个数据后,按回车,然后再输入下一个数据。例如: scanf (%d%d, &a, &b); 假设给 a 输入 2,给 b 输入 6,则正确的输入操作为:2 6 或者2 6(2) 格式控制字符串中出现的常规字符(包括转义字符),务必原样输入。例如:scanf (%d:%d:%d, &h, &m, &s); 假设要给h 输入 12,给 m输入 30,给 s 输入 10,正确的输入操作应为:12:30:10 3.2 字符数据的输入输出3.2.1 putchar函数(字符输出函数)3.2.2getchar函数(字符输入函数)3.3 复合语句和空语句1、复合语句。可以用 把一些语句括起来成为复合语句。复合语句的语句形式如下: 语句 1;语句 2;, ;语句 n; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 47 页 - - - - - - - - - 8 习题一、选择题3.1 定义变量如下:int x; float y;则以下哪一个输入语句是正确的A)scanf( “%f%f ”,&x,&y); B)scanf( “%f%d ”,&x,&y);C)scanf( “%f%d ”,&y,&x); D)scanf( “%5.2f%2d ”,&x,&y); 3.2 putchar函数可以向终端输出一个A)字符或字符变量的值 B)字符串C)实型变量 D)整型变量的值3.3 下列叙述正确的是() 。A)赋值语句中的“ =”是表示左边变量等于右边表达式B)赋值语句中左边的变量值不一定等于右边表达式的值C)赋值语句是由赋值表达式加上分号构成的D)x+=y; 不是赋值语句3.4 执行下列程序片段时输出结果是P52unsigned int a=65535; printf(“%d ”,a);A)65535 B) 1 C ) 32767 D)1 3.5 对于下述语句,若将10 赋给变量k1 和 k3,将 20 赋给变量k2 和 k4,则应按那一种方式输入数据。 int k1,k2,k3,k4; scanf( “%d%d ”,&k1,&k2);scanf( “%d,%d ”,&k3,&k4);A)1020 B)10 20 C)10,20 D)10 201020 10 20 10,20 10,203.6 执行下列程序片段时的输出结果是 int x=13,y=5; printf(“%d ”,x%=(y/=2);A)3 B)2 C)1 D)0 3.7 下列程序的输出结果是 main ( ) int x=023; printf(“%d ”, -x); A)17 B)18 C)23 D)24 3.7 已有如下定义和输入语句,若要求a1、a2、c1、c2 的值分别为10、20、A和 B,当从第一列开始输入数据时,正确的输入方式是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 47 页 - - - - - - - - - 9 int a1,a2; char c1,c2; scanf( “%d%d ”,&a1,&a2);scanf( “%c%c ”,&c1,&c2);A)1020AB B)10 20 C)10 20 AB D)10 20ABAB 3.8 若定义 x 为 double 型变量,则能正确输入x 值的语句是P58 A)scanf( “%f”,x); B)scanf( “%f”,&x);C)scanf( “%lf ”,&x); D)scanf( “%5.1f”,&x);3.9 若运行时输入: 12345678,则下列程序运行结果为。main ( ) int a,b; scanf( “%2d%2d%3d”,&a,&b);printf(“%d n”,a+b); A)46 B)579 C)5690 D)出错3.10 有输入语句: scanf( “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 二、填空题3.11 一个 C 程序由若干个 _文件组成,而一个这样的文件可以由若干个_ 组成。3.12 一个表达式要构成一个C语句,必须 _。3.13 复合语句是用一对_界定的语句块。3.14 printf函数和 scanf 函数的格式说明都使用_%_ _字符开始。3.15 scanf处理输入数据时,遇到下列情况时该数据认为结束:(1)_, (2)_ , (3)_。P60 3.16 C语言本身不提供输入输出语句,其输入输出操作是由_ 来实现的。3.17一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令_ #include “ stdio.h”。三、程序阅读题3.18 用下面的scanf 函数输入数据, 使 a=3,b=7,x=8.5,y=71.82,c1=A,c2= a,问在键盘上如何输入?main ( ) int a,b; float x,y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 47 页 - - - - - - - - - 10 char c1,c2; scanf( “a=%d b=%d ”,&a,&b);scanf( “ %f %e”,&x,&y);scanf( “ %c%c ”,&c1,&c2); 3.19 写出以下程序的输出结果。 main ( ) int a=12345; float b=-198.345, c=6.5; printf(“a=%4d,b=%n”,a,b,c); 3.20 写出下列程序的输出结果main() int x=12; printf(“%d,%o,%x,%u, ”,x,x,x,x); 3.21 写出下列程序的输出结果main() printf(“*n”); 3.22 写出下列程序的输出结果main() char x= a,y= b;printf(“%en”,x,y);printf(“x=%3x , % n”,x,x); 四、编程题3.23已知一名学生的三门课程考试成绩,计算他总成绩和平均成绩。试编写程序,并画出算法的N-S 结构图。 3.24 从键盘上输入公里数,将其转换成米。试编写程序,并画出算法的N-S 结构图。3.25 根据商品的原价和折扣率,计算商品的实际售价。试编写程序,并画出算法的N-S 结构图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 47 页 - - - - - - - - - 11 第四章选择结构4.1.1 关系运算符在语言中有以下关系运算符: 小于 大于 = 大于或等于= = 等于!= 不等于4.1.2 关系表达式关系表达式的值是真” 和“ 假” ,用 “1”和“0”表示。如 72 的值为 “ 真” ,即为 1。 3y) printf(“%d ”,x); /*如果 xy,则输出x */ (2)if (ab) t=a;a=b;b=t; /* 如果 ay) a+; b+; else a-; b-; 4.3.2 if 语句的嵌套在 if 语句中又包含一个或多个if 语句称为if 语句的嵌套。一般有如下形式:if (表达式 1) if(表达式 2) 语句 1 else 语句 2 else if(表达式 3) 语句 3 else 语句 4 4.4 条件运算符条件运算符为? : ,由条件运算符组成的条件表达式的一般形式为:内嵌 if 内嵌 if 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 47 页 - - - - - - - - - 13 表达式 1? 表达式 2: 表达式 3 其求值规则为:先求解表达式1 的值,如果表达式1 的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3 的值作为整个条件表达式的值。4.5 switch 语句语言还提供了另一种用于多分支选择的switch 语句,其一般形式为:switch(表达式) case常量表达式:语句case常量表达式:语句case常量表达式:语句default :语句 switch 语句执行过程是:计算switch 后圆括号中表达式的值。并逐个与case后的常量表达式值进行比较,当表达式的值与某一个case 后面的常量表达式的值相等时,就执行此 case后面的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式值均不相同,则执行default 后的语句。习题一、选择题4.1 逻辑运算符两侧运算对象的数据类型。A)只能是0 或 1 B)只能是0 或非 0 正数C)只能是整型或字符型数据D)可以是任何类型的数据4.2 能正确表示 “ 当 x 的取值在 1,10或200,210范围内为真,否则为假” 的表达式是。 A)(x=1) & (x=200) & (x=1) | | (x=200) | | (x=1) & (x=200) & (x=1) | | (x=200) | | (xb) & (n=cd)后 n 的值为。A)1 B)2C)3 D)4 4.5 下面哪一个是错误的if 语句(设int x,a,b;) A)if (a=b) x+; B)if (a=y) x=y;y=x; else x+;y+; printf(“ %d,%d ” ,x,y); A)有语法错误,不能通过编译B)若输入3 和 4,则输出4和 5 C)若输入4 和 3,则输出 3 和 4 D)若输入4 和 3,则输出4 和 5 4.7 若 w=1,x=2,y=3,z=4, 则条件表达式wx ? w : yz ? y : z 的值是 A)4 B) 3 C)2 D) 1 4.8 若 int i=10;执行下列程序后,变量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)13 4.9 若有说明语句int i=5,j=4,k=6; float f; 则执行 f=(ij&ik)?i:(jy)if(yz)x=y;else z=y;A)7 B)6 C)5D)4 二、填空题4.11 C语 言 提 供6种 关 系 运 算 符 , 按 优 先 级 高 低 它 们 分 别 是_。4.12 C 语言提供三种逻辑运算符,按优先级高低它们分别是_。4.13 将条件 “y 能被 4 整除但不能被100 整除,或y 能被 400 整除 ” 写成逻辑表达式。4.14 设 x,y,z 均为int 型变量;写出描述“x,y和 z 中有两个为负数” 的 C 语言表达式:。4.15已 知A=7.5,B=2,C=3.6, 表 达 式AB & CA | AB的 值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 47 页 - - - - - - - - - 15 是。4.16 有 int x=3,y=-4,z=5; 则表达式 (x&y)=(x|z) 的值为1 。4.17 执行以下程序段后,a= ,b= ,c= 。int x=10,y=9 ; int a,b,c ; a = (x-=y+) ? x- : y+ ; b = x+ ; c = y ; 三、简答题4.18 C 语言中如何表示“ 真” 和“ 假” ?系统如何判断一个量的“ 真” 和“ 假” ?4.19 使用 C 语言的赋值语句应该注意什么问题?四、编程题4.21 输入三角形的三边,计算三角形的面积。4.23 输入一个不大于三位数的正整数,并求出每位数字之和。例如:1+2+3=6。4.24 输入一个整数,将其数值按小于10,10-99,100-999,1000 以上分类并显示。例如:输入358 时,显示 358 is 100 to 999。4.25 编程判断输入的正整数是否既是5 又是 7 的倍数。若是,则输出yes ;否则输出no。4.26 编程计算分段函数的值。4.27 编写一个程序, 根据用户输入的字母判定它代表星期几。例如:如果输入M(m)则代表 Monday ;如果输入T(t)则可能代表Tuesday或 thursday,需要进一步确认是哪一天,因此需要输入u 和 h。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 47 页 - - - - - - - - - 16 第五章循环结构循环结构的特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。语言提供了多种循环语句。(1)用 while 语句;(2)用 do-while 语句;(3)用 for 语句;(4)用 goto语句和 if 语句构成循环;5.1 while 语句构成的循环while 语句的一般形式为:while(表达式 ) 语句5.2 do-while 语句构成的循环do-while 语句的一般形式为: do 循环体语句 while(表达式 );do-while 语句执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为真( “ 非零 ”) 时,返回重新执行循环体语句,如此反复,直到表达式的值为假时结束循环。5.3 for 语句构成的循环它的一般形式为: for(表达式 1;表达式 2;表达式3) 语句for 语句执行过程如下: 先求解表达式1。 求解表达式2,若其值为真(非0) ,则执行for 语句中指定的内嵌语句,然后执行下面第步;若其值为假(0) ,则结束循环,转到第步。 求解表达式3。 转回上面第步继续执行。 循环结束,执行for 语句下面的一个语句。5.5 循环结构的嵌套一个循环体内又包含另一个完整的循环结构称为循环的嵌套5.6 循环过程控制语句5.6.1 break 语句5.6.2 continue 语句continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while 等循环体中 ,常与 if 条件语句一起使用,用来加速循环。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 47 页 - - - - - - - - - 17 break 语句和 continue语句的区别:习题一、选择题5.1 while 循环和 do-while 循环的主要区别是A)do-while 的循环体至少无条件执行一次B)while 的循环控制条件比do-while 的控制条件严格C)do-while 允许从循环外部转到循环体内D)do-while 的循环体不能是复合语句5.2 关于 for 循环的正确描述是A) for 循环只能用于循环次数已经确定的情况B) for 循环是先执行循环体语句后判断表达式C) for 循环中不能用break 语句结束循环D) for 循环体可以包含多条语句,但必须用花括号括起来5.3 以下正确的说法是A) continue 语句的作用是结束整个循环的执行B) 只能在循环体内和swtich 语句体内使用break 语句C)在循环体内使用break 或 continue语句的作用相同D)从多层嵌套中退出只能使用goto语句5.4 求“ s=1+2+3+.+9+10”,下列语句中错误的是A)s=0; for(i=1; i=10;i+) s+=i; B)s=0;i=1;for(;i=10;i+) s=s+i; C)for(i=1,s=0; i=10;s+=i,i=i+1); D) for(i=1; s=0; i=10; i+) s=s+i; 5.5 程序段 “ int n=0; while( n+=2) ; printf(“ %d ”,n);”的运行结果是A)2B)3C)4D)1 2 3 5.6 执行 “ for(s=0,k=1;s20|k=100) break; s+=i; i+; 功能相同的是A)for(;i100;i+) s=s+i; B) for(; i100; i+; s=s+I ); C)for(;i=100;i+;s=s+i); 5.8 以下程序的输出结果是main() int n=4;while(n-) printf( d, -n); A)2 0 B)3 1 C)3 2 1 D)2 1 0 5.9 以下程序的输出结果是main() int i;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 47 页 - - - - - - - - - 18 for(i=1; i6;i+) if(i2) printf(“ #”);continue; printf(“ * ”); printf( n ); A)#*#*# B)# C) * D)*#*#*5.10 以下程序的输出结果是main() int i;for(i=?A? ;i?I? ; i+,i+) printf(“c” ,i+32);printf(“n”); A)编译不通过,无输出 B)acegC)acegi D)abcdefghi 5.11 以下循环体的执行次数是main() int i,j;for(i=0,j=1;i=j+1 ;i+=2,j-) printf( dn, i); A) 3 B) 2 C) 1 D) 0 5.12 以下循环中,while 循环的次数是main() int i=0 :while(i10) if(i1) continue;if(i=5) break;i+; A)1 B)10 C)6 D)死循环,不能确定次数5.13 下面程序的输出结果是main ( ) int k=0,m=0,i,j; for (i=0; i2; i+) for (j=0; j3; j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 47 页 - - - - - - - - - 19 k+ ; k-=j ; m = i+j ; printf(“ k=%d,m=%d ” ,k,m) ; A)k=0,m=3 B)k=0,m=5C)k=1,m=3 D)k=1,m=5 二、判断题5.14 在 while 循环中允许使用嵌套循环,但只能是嵌套while 循环。 5.15 在实际编程中,do-while 循环完全可以用for 循环替换。 5.16 continue 语句只能用于三个循环语句中。5.17 在不得已的情况下(例如提高程序运行效率),才使用 goto语句。 5.18 语句标号与C 语言标识符的语法规定是完全一样的。5.19 for 循环的三个表达式可以任意省略,while,do-while 也是如此。 5.20 do-while 循环的 while 后的分号可以省略。三、程序阅读题5.21 以下程序的输出结果是5main() int s , i;for(s=0,i=1;i3;i+, s+=i);printf( dn, s); 5.22 设有如下程序:main() int n1,n2;scanf( “d” ,&n2) ;while(n2 !=0) nl=n210;n2=n2/10;printf( d, n1); 程序运行后,如果从键盘上输入1298,则输出结果为8921 5.23 下面程序的运行结果是main() int i=0 , j=0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 47 页 - - - - - - - - - 20 while(i10) i+; while(j+10) ;printf(” i=d,j=n” ,i,j); i=10,j=115.24 #include main() int i,j=4; for (i=j;i=2*j;i+) switch (i/j) case 0: case 1: printf(*); break; case 2: printf(#); *# 四、编程题5.25 编写程序,求1000 以内奇数的和。5.26 输入一批正整数,输出其中的最大值和最小值,输入数字“0”结束循环。5.27 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。5.28 编程实现屏幕输出“ 九九乘法表 ” ,要求以三角形形式输出。(提示:外循环变量i 从 1 开始到 9,内循环变量j 从 1 开始到 i) 。5.29 用公式 e=1+1/1!+1/2!+1/3!+ +1/n!求 e 的近似值,精度为1/n!s2) B) if(a=b) C) if(strcpy(s2,s1)0)D)if(stcmp(s1,s2)0) 6.8 下列定义的数组哪一个是不正确的A)char a310=China,American,Asia; B)int x22=1,2,3,4; C)float x=1,2,4,6,8,10; D)int m3=1,2,3,4,5,6; 6.9 对字符数组错误的描述是A)字符数组可以存放字符串。B)字符数组中的字符串可以整体输入、输出。C)可以在赋值语句中通过赋值运算符= 对字符数组整体赋值。D)不可以用关系运算符对字符数组中的字符串进行比较。6.10 定义 “ int i; int x33=1,2,3,4,5,6,7,8,9;”,则“for(i=0;i?0?&chi=?9?; i+=2) s=10*s+chi- ,0?;printf(“ %dn”,s); A)1 B)1256 C)12ab56 D)ab 二、填空题6.18 数组是一组具有元素的有序集合,在内存中存放时按数组元素的进行存储。二维数组在内存中按(行顺序/列顺序)存储。6.19 二维数组可以看成是一个矩阵,二维数组的第一维决定矩阵的,第二维决定矩阵的。6.20 字符串用一维字符数组形式进行存储,它以结尾。6.21 ?a? 与a 的区别是。6.22 对于字符数组c,scanf(%s,c) 语句中 c 不能用取地址符& ,即不能写成&c,因为 c 本身就是字符数组c的 地址 。6.23 若有定义: double x35 ,则 x 数组中行下标的下限为_,列下标的下限为_ 。6.24 字符串 ” ab” 的长度是。三、程序阅读题6.25 写出程序运行结果。#include main() int i,a4=5,16,7,14; 5,17,2,17 for(i=0;i=0;i-) printf(%d,ai); 17 9 17 5 6.26 写出下面程序的运行结果。AQM main ( ) int i=0; char a =”abm ” , b =” aqid ” , c10;while (ai!=? 0? & bi!=? 0?) if (ai=bi) ci=ai-32 ; else ci=bi-32 ; i +; ci=?0?; puts(c); 6.27 写出下面程序的运行结果。main ( ) int a66,i,j ; for (i=1; i6 ; i+) for (j=1 ; j6 ; j+) aij=(i/j)*(j/i) ; for (i=1;i6 ; i+) for (j=1 ; j6 ; j+) printf(“ %2d ” ,aij) ;printf(“n” ); 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 四、编程题6.28 用冒泡排序法对输入的20 个数进行降序排序并存入数组中。然后输入一个数,查找该数是否在数组中存在,若存在,输出该数在数组中对应的下标值。6.29 有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 47 页 - - - - - - - - - 25 6.30 求一个 3 3 矩阵对角线元素之和。6.31 编写程序,打印杨辉三角形(要求打印10 行) 。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 6.32 将一个数组中的元素逆序存放,如原来数组的元素是23,59,26,48,14。要求改为: 14, 48,26,59,23。6.33 编一 3 5 矩阵的转置程序,利用新的数组存放转置后的矩阵。6.34 编写程序求两个3 5 矩阵相加,相加的结果放到第三个矩阵中。6.35 对三人的四门课程分别按人和科目求平均成绩。6.36 有一篇文章,共有3 行文字,每行有80 个字符。要求分别统计出其中英文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数。(提示:中文字符是两个字节,且数值均大于128 的字符)。名师资料总结 - - -精品资料欢迎下载 - - - - -