第5章 循环结构 习题
c语言程序设计第五版习题答案
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。
这些函数的说明都包括在stdio.h文件中。
②main是主函数的名称。
第5章 习题与思考题和答案
4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub
六
(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
If n <= 0 Or m <= 0 Then
c语言第5章练习题--循环结构程序设计
难度(*)--考点:基本概念、判断循环次数1、C语言中下列叙述正确的是(D)A)不能使用do…while语句构成的循环B)do…while语句构成的循环,必须用break语句才能退出C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环2、对于下列程序片断,(A)int k=0;while(k=1) k++;则while循环的执行次数是A. 无限次B. 有语法错误,不能执行C. 一次也不执行D. 执行一次3、下面程序段(C)int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A )while 循环执行10 次B )循环是无限循环C )循环题语句一次也不执行D )循环体语句执行一次4、当执行以下程序段时(A)x=-1;do { x=x*x;} while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误5、若i为整型变量,则以下循环执行次数是(B):for( i = 2; i ==0;) printf(“%d”, i);A) 无限次B) 0次c) 1次D) 2次6、对for(表达式1; ; 表达式3)可理解为(B)A) for(表达式1; 0 ; 表达式3)B) for(表达式1; 1 ; 表达式3)C) for(表达式1;表达式1; 表达式3)D) for(表达式1;表达式3; 表达式3)7、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。
(A)main ( ){ int m=0,n=0;char c;while (( ) ! '\n'){if (c>='A' && c<='Z') m++;if (c>='a' && c<='z') n++;}}A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)scanf(“%c”,&c)8、下面for 循环语句。
《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案
《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]100002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
C语言循环结构练习题带答案.doc
第 5 章循环结构程序设计练习题1.单项选择题( 1)语句 while (!e);中的条件!e等价于A。
A. e==0B. e!=1C. e!=0D. ~e( 2)下面有关for循环的正确描述是D。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在 for循环中,不能用break 语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。
A.不能使用do-while语句构成的循环B. do-while 语句构成的循环必须用break 语句才能退出C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环( 4) C 语言中 while 和 do-while 循环的主要区别是A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句( 5)以下程序段C。
int x=-1;do{x=x*x;}while (!x);A.是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误( 6)下列语句段中不是死循环的是__C__。
A.i=100;while (1){i=i%100+1;if (i==20) break;}B.for (i=1;;i++)sum=sum+1;C.k=0;do{++k;} while (k<=0);D.s=3379;while (s++%2+3%2)s++;( 7)与以下程序段等价的是__A__。
while (a){if (b) continue;c;}A.while (a)B.while (c){ if (!b) c; }{ if (!b) break; c; }C. while (c)D. while (a){ if (b) c; }{ if (b) break; c; }( 8)以下程序的输出结果是_B___。
cyu第5章循环(新)
for( ; ; ) { printf("这将一直进行下去 这将一直进行下去"); 这将一直进行下去 i = getchar(); if(i == 'X' || i == 'x') break; }
int i=1;s=0; while(i<1) ( ) { s=s+i; i=i+1; } printf("s=%d\n",s); ( ) }
17
int i=1,s=0; do { s=s+i; i=i+1; } while(i<1); printf("s=%d\n",s);
左边的程序结果为:s=0,而右边的程序结果为 而右边的程序结果为:s=1。 左边的程序结果为 而右边的程序结果为 。
折扣(y) 无 1% 2% 5% 10%
3
本章目标
理பைடு நூலகம்为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别
4
循环的必要性
int a1,a2,a3, a4,a5; a1 = 1 * 10; printf("1 × 10 = %d a2 = 2 * 10; printf("2 × 10 = %d a3 = 3 * 10; printf("3 × 10 = %d a4 = 4 * 10; printf("4 × 10 = %d a5 = 5 * 10; printf("5 × 10 = %d \n",a1); \n",a2); \n",a3); \n",a4); \n",a5);
第5章 循环结构程序设计习题解答
第5章循环结构程序设计习题解答1.输入n个整数,求这n个数之中的偶数平均值,并输出。
#include<stdio.h>void main(){int n,i,x,k=0,s=0;printf("Input a number(n):");scanf("%d",&n);printf("Input %d numbers:",n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0){s+=x;k++;}}s/=k;printf("average=%d\n",s);}2.输入一串字符,直到输入一个星号*为止,统计(输出)其中字母个数和数字字符个数。
#include<stdio.h>void main(){int n=0,m=0;char c;printf("Input a string character:");do{scanf("%c",&c);if(c>='0'&&c<='9')n++;else if(c>='A'&&c<='Z'||c>='a'&&c<='z')m++;}while(c!='*');printf("number_char=%d\n",n);printf("letter_char=%d\n",m);}3.从键盘输入一正整数n,计算该数各位数字之和并输出。
例如,输入数是5246,则计算5+2+4+6=17并输出。
#include<stdio.h>void main(){int n,r,m=0,s=0;printf("Input a number(int):");scanf("%d",&n);do{r=n%10;s=s+r;n/=10;if(m==0)printf("%d",r);//加式中的第1项不带“+”elseprintf("+%d",r);m++;}while(n>0);printf("=%d\n",s);}4.输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出。
C语言程序设计各章练习题
《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。
要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。
附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。
第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
编程题3:求 ax 2+bx+c=0方程的解。
(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。
要求提示键盘输入n ,如n 为负数,不予计算,直接返回。
编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。
编程题6:从键盘输入一个数n ,判断n 是否是素数。
编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。
编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。
编程题8:求满足下列条件的三位数n,它除以11(整数相除)所得到的商等于n的各位数字的平方和,且其中至少有二位数字相同的数。
编程题9:有一些十进制整数对ab和cd具有如下特性:ab×cd=ba×dc,其中a≠b且c≠d。
如:12×42=21×24。
请编程找出30~50之间满足上述等式所有m,n值,并按上述等式的格式输出。
(×用*表示)编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。
例如,输入123456,输出654321。
第6章数组编程题11:有一个已排好序的数组int a[11]={-5,-3,0,6,8,12,16,28,66,88};,要求输入一个数后,按原来排序的规律将它插入数组中。
第五章 循环
第5章循环结构(一)本章学习的目的和要求(二)本章学习的重点(三)复习题1.1单选题1.以下说法正确的是( )。
A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式值为假时结束循环D.do-while语句构成的循环,当while语句中的表达式值为真时结束循环C语言支持的循环语句有:()A for循环B while循环C do while循环D以上都是1.2多选题1.3判断题1.continue语句用于循环语句内部中。
当遇到continue语句之后,循环体中continue语句后面的语句将被跳过,计算机将接着开始执行下一次循环。
()2.for(表达式1;表达式2;表达式3){},其中表达式1只执行一次。
3.若int i=0,k=8;while(i=8) i=k--;则while循环体的执行次数为0.4.多重循环是指循环语句的循环体中,又嵌套了另一个或多个循环语句,多个内层循环可以相互交叉嵌套。
5.在复合语句中定义的变量可在该复合语句所在的函数的其它地方使用。
6.在函数体内定义的变量称全局变量,可以被程序中的所有函数引用。
7.continue语句用在循环体中,可使整个循环不结束。
8.continue语句可以用于switch结构中。
9.break语句只能用于循环语句中。
10.do......while循环语句至少要执行一次循环体。
11.语句while(!E);中的条件!E等价于E==0。
12.语句for(;;){循环体}和while(1){循环体}是等价的。
13.在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。
14.在while循环中允许使用嵌套循环,但只能是嵌套while循环。
15.在实际编程中,do-while循环完全可以用for循环替换。
16.continue语句只能用于三个循环语句中。
(完整版)C语言基础练习题(含答案)
目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
C语言程序设计知识点—第5章 循环控制
4. 比较 while 和 do-while
while 循环和 do-while 循环的区别 语法不同 while ( 循环条件 ) { 循环操作 } 先判断,再执行 do { 循环操作 } while( 循环条件 ); 先执行,再判断
初始情况不满足循环条件时 1. while 循环一次都不会执行 2. do-while 循环不管任何情况都至少执行一次 [注]通常情况 while,do—while 可互换,但以下情况例外 #include “stdio.h” int main() { n=101; while(n<100) { printf(“n=%d\n”,n); } return 0; } 代码填空: 实现整数反转 #include<stdio.h> void main( ) { ~4~ #include “stdio.h” int main() { n=101; do { printf(“n=%d\n”,n); }while(n<100); return 0; }
C 语言程序设计知识点
主讲教师:杨剑
int i = 0; while (i < 4 ){ printf(“欢迎同学"); i ++ ; } } 问:循环一直执行,不会退出,哪里出错了? 注:永远都不会退出的循环称为死循环 循环的次数原则上应该是有穷的,也就是说,循环要有出口,否则成为死循环 /* 打印 4 次“欢迎同学” */ void main(){ int i= 1; while ( i <4 ){ printf ( “欢迎同学学员"); i ++; } } 问:只打印了三次 ,哪里出错了? 注:注意检查循环次数是否满足需求 /* 打印 4 次“欢迎同学” */ void main(){ int i = 0; while ( i > 5 ){ printf("欢迎欢迎同学"); i ++; } } 问:一次都没有打印,哪里出错了? 注意:如果一开始条件就不满足,while 循环一次都不执行 [课堂练习]找出 100 以内的奇数。 #include <stdio.h> int main() { int sum=0,i=1; while(i<=100) { sum=sum+i; i=i+2; } return 0; } [练习] 2006 年在校学生 1 万人,每年增长 25%,请问按此增长速度,到哪一年在校 学生人数将达到 10 万人? 提示: ~2~
第5章-C语言程序设计(第2版)教材习题答案
【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。
2011年10月第二版。
ISBN:978-7-302-26972-4。
售价:35元。
【答案版本】本习题答案为2012年2月修订版本。
一、选择题1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。
A. while循环执行10次B. 循环是无限循环C. 循环体语句执行一次D. 循环体语句一次也不执行2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。
A. 运行程序段后输出1B. 程序段执行无限次C. 运行程序段后输出0D. 程序段中的控制表达式是非法的3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。
A. int a=1,b=2; while(b--);B. int a=1,b=2; do a++; while(a==b);C. int a=1,b=2; while(a=3);D. int a=1,b=2; do b-- while(b==0);4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。
do{ printf(“%d\n”,i--); } while(i!=0);A. 0B. 1C. 5D. 无限5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。
A. 0B. 5C. 10D. 无限6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。
A. break语句用于循环体内,它将结束该循环B. break语句用于开关语句,它结束该开关语句C. break语句用于if语句的内嵌语句内,它结束该if语句D. break语句在一个循环体内可使用多次7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。
第五章循环结构习题与答案
第五章循环结构一、选择题1)下面有关for循环的正确描述是< )A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体中,可以包含多条语句,但必须用花括号括起来2)对表达式for<表达式1。
表达式3)可理解为A)for<表达式1。
0。
表达式3)B)for<表达式1。
1。
表达式3)C)for<表达式1。
表达式1。
表达式3)D)for<表达式1。
表达式3。
表达式3)3)以下描述中正确的是< )A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while<表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略while4)以下程序段的描述,正确的是< )x=-1。
do{x=x*x。
}while(!x>。
A)是死循环B)循环执行两次C)循环执行一次D)有语法错误5)设有以下程序段int x=0,s=0。
while(!x!=0>s+=++x。
printf(″%d″,s>。
则< )A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的 D)程序段执行无限次6)有如下程序#include<stdio.h>void main(>{ int n=9。
while(n>6>{n--。
printf(″%d″,n>。
}}该程序的输出结果是< )A)987 B)876C)8765 D)98767)在下列选项中,没有构成死循环的是< )A)int i=100。
B)for<。
)。
while<1){i=i%100+1。
vb第5章循环结构程序设计
输入m,n
大数放m,小数放n 除数d=1
当d<=n 如果m、n都能 被d整除, 则max ← d d=d+1 输出max
求两个正整数的最大公约数。
分析:求最大公约数可以用
[例5.4]输入两个正整数,递减法求最 大公约数。 输入m,n
大数放m,小数放n 除数d=n
当d>=1
如果m、n都能被d 整除,则max ← d, 退出循环
输入m,n 大数放m,小数放n 求得m对n的余数r 当r<>0 m←n n ←r 求m对n的余数r 输出n
求两个正整数的最大公约数。
分析:求最大公约数可以用
[例5.4]输入两个正整数,递增法求最 大公约数。 输入m,n
大数放m,小数放n 除数d=1
当d<=n 如果m、n都能 被d整除, 则max ← d d=d+1 输出max
步长为正时,超过—循环变量大于终值使循环结束 步长为负时,超过—循环变量小于终值使循环结束 5、一般在循环体中不对循环变量重新赋值, 否则影响循环的次数控制。
步长为负时
0
1.5
3
初值送循环变量
For I = 3 To 0 Step -1.5 Print I Next Print "After For :"; I For I = 0 To 3 Step -1.5 Print I Next Print "After For :"; I
说明: (l)条件为True ,(循环体语句列)将被重复执行
作业:
例题 5-1、5-4 ~ 5-6 选做5-2、5-3 5.6习题
xt5-1 ~xt5-4 选做xt5-5
fortran循环结构的实现5(注意事项)
9
10
继续语句(CONTINUE语句) 继续语句(CONTINUE语句) 形式: 形式: CONTINUE
DO 20 , I=1, 10 , 2 PRINT *, I 20 CONTINUE
19
* 用π2/6≈ 1/12+1/22+...+1/n2,求π值 值 read(*,*) n sum=0.0 i=1 10 if(i.le.n) then term=1.0/(i*i) sum=sum+term i=i+1 goto 10 end if pi=sqrt(6.0*sum) write(*,*) 'pi=',pi end
4. 正常出口&非正常出口; 正常出口&非正常出口;
12
DO 循环的嵌套(多重循环) 循环的嵌套(多重循环) 一个循环体内又完整的包含另一个循环结构 注意事项: 注意事项: 1. 嵌套循环的各层不允许使用同一个变 量名作为循环控制变量; 量名作为循环控制变量;
DO 20 I=1, 5 …… DO 10 I=2, 10, 2 …… CONTINUE …… CONTINUE
DO 10,I=10,1,2 10,I=10, 出的循环次数是绝对正确的! 出的循环次数是绝对正确的!
6
DO 循环执行过程
s DO s[, ] v = e1, e2 [, e3] …… 循环体 …… DO语句 DO语句
DO 计算e1、e2 、 e3的值 计算e 循 e1 ⇒ v 环 计算循环次数:r =INT((e - e + e )/ e ) 计算循环次数: 2 1 3 3 属 当r > 0 于 循环体语句 当 v + e3 ⇒ v 型 r −1 ⇒ r 循 环 适用范围:循环次数已知 适用范围:
第5章习题(修改ok)-答案
第5章习题(修改ok)-答案1.简述详细设计的任务。
包括模块的算法设计、模块内的数据结构设计、模块接⼝设计、其它根据软件特点需要完成的设计、模块测试⽤例设计、设计⽂档编写、设计评审。
2.简述详细设计的原则。
①模块的逻辑描述应清晰易读、正确可靠;②设计的处理过程应该简明易懂;③选择恰当的描述⼯具来描述模块算法。
3.简述结构化程序设计基本要求和特点。
要点:a.采⽤⾃顶向下、逐步求精的程序设计⽅法b.使⽤三种基本程序控制结构构造程序1).⽤顺序⽅式对过程分解,确定各部分的执⾏顺序。
2).⽤选择⽅式对过程分解,确定某个部分的执⾏条件。
3).⽤循环⽅式对过程分解,确定某个部分重复的开始和结束的条件。
c.主程序员组的组织形式。
特点:①⾃顶向下、逐步求精;②具有单⼊、单出的控制结构(取消GOTO语句)4.简述⽤户界⾯设计的基本原则(1)可靠性⽤户界⾯应当提供可靠的、能有效减少⽤户出错的、容错性好的环境。
⼀旦⽤户出错,应当能检测出错误、提供出错信息,给⽤户改正错误的机会。
(2)简单性简单性能提⾼⼯作效率。
⽤户界⾯的简单性包括输⼊、输出的简单性;系统界⾯风格的⼀致性;命令关键词的含义、命令的格式、提⽰信息、输⼊输出格式等的⼀致性。
(3)易学习性和易使⽤性⽤户界⾯应提供多种学习和使⽤⽅式,应能灵活地适⽤于所有的⽤户。
(4)⽴即反馈性⽤户界⾯对⽤户的所有输⼊都应⽴即做出反馈。
当⽤户有误操作时,程序应尽可能明确地告诉⽤户做错了什么,并向⽤户提出改正错误建议。
三、下图是使⽤Basic语⾔编写的⼀个打印A,B,C三数中最⼩者的程序的流程图。
其中出现了6个GOTO语句,⼀个向前,5个向后,程序可读性很差。
if ( A < B ) goto 120;if ( B < C ) goto 110;100 print C;goto 140;110 print B;goto 140;120 if ( A < C ) goto 130;goto 100;130 print A;140试利⽤基本控制结构,将程序中的GOTO语句消去。
5-6章 选择结构循环结构
第五章选择结构循环结构1.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。
(1级)A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)2.main( ){ int x=5,a=0,b=0;if(x=a+b) prin tf(“** **\n”);else printf(“## ##\n”);以上程序。
(1级)A)有语法错,不能通过编译B)通过编译,但不能连接C)输出** ** D)输出## ##3.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是。
(1级)main( ){ int x;scanf(“%d”,&x);if(x++>5) printf(“%d”,x);else printf(“%d\n”,x--);}A)7和5 B)6和3 C)7和4 D)6和44.假定所有变量均已正确说明,下列程序段运行后x的值是。
(1级)a=b=c=0;x=35;if(!a) x=-1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)35.能表示整数x符合下面两个条件的语句是。
(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4==0&&x%100!=0)||x%400==0B)(x%4==0||x%100!=0)&&x%400==0C)(x%4==0&&x%400!=0)||x%100==0D)(x%100==0||x%4!=0)&&x%400==06.若I为整型变量,则下列程序段的运行结果为。
C语言程序设计习题与参考答案
习题与参考答案第1章 C语言程序设计基础思考与练习一、填空题1、C程序是由构成的,一个C程序中至少包含。
2、C程序的注释是由和所界定的文字信息组成的。
3、开发一个C程序要经过编辑、、和运行4个环节。
4、C语言中,头文件的扩展名是。
5、C语言源程序的扩展名;经过编译后,生成文件的后缀是;经过连接后,生成文件的扩展名是。
二、简答题1、简述C语言程序的运行步骤。
2、软件编程中的可读性原则一般包括那些内容?3、什么是算法?算法的特点有哪些?4、参照本章例题,编写一个C程序,输出以下内容。
**************************************************Hello,world!**************************************************5、写出算法。
已知圆的半径,求周长和面积。
第1章思考与练习参考答案一、填空题1、函数、一个主函数main()2、/*、*/3、编译、连接4、.h5、.c、.obj、.exe二、简答题1、简述C语言程序的运行步骤。
答:(1)编辑C程序源文件;(2)编译,将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”;(3)连接,将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”;(4)运行程序。
如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。
2、软件编程中的可读性原则一般包括那些内容?答:1.编程规范概要(1)程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。
(2)打算干什么,要简单,直截了当,代码精简,避免垃圾程序。
(3)尽量使用标准库函数和公共函数。
(4)不要随意定义全局变量,尽量使用局部变量。
C语言程序设计第5章-5.5
5.5.2 练习题
一.选择题 6.若有如下语句
int x=3; do{printf(""%d\n",x-=2);}while(!(--x)); 则上面程序段______。 (A)输出的是1 (B)输出的是1和-2 (C)输出的是3和0 (D)是死循环 7.下面程序的运行结果是_______。 #include “stdio.h” main( ) { int y=10; do {y--;} while(--y); printf(“%d\n”,y--);} A –1 B 1 C 8 D 0
{s=1; for(j=k;j<6;j++) s+=j; } printf("%d\n",s); getch();}
(A)9 (B)1 (C)10 (D)12
5.5.2 练习题
一.选择题
11.以下程序的输出结果是_______。 #include "stdio.h"
main() {int i=5; for(;i<15;) { i++; if(i%4==0)
if(t<3) break; } 下面描述正确的是_______。 A 其中循环控制表达式与0等价 B 其中循环控制表达式与‘0’等价 C 其中循环控制表达式是不合法的 D 以上说法都不对
5.5.2 练习题
一.选择题
3.执行语句for(i=1;i++<4; );后变量i的值是______. (A)3 (B)4 (C)5 (D)不定 4.以下for循环的执行次数是_______。 for(x=0,y=0 ; (y=ห้องสมุดไป่ตู้23)&&(x<4) ; x++); (A) 是无限循环 (B )循环次数不定 (C) 执行4次 (D )执行3次 5.下面程序的运行结果是_______。 #include “stdio.h” main( ) { int j; for(j=1 ; j<=5 ; j++) {if(j%2) printf(“*”);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
w=k;
LB: if(w==0) goto LE;
w--;
printf(〞*〞);
goto LB;
LE:
则不能与上面程序段等价的循环语句是()。
A. for(w=k;w!=0;w--)
print(〞*〞);
B. w=k;
while(w--!=0)
printf(〞*〞);
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<b)max=b;
if(max<c)max=c;
printf("max is:%d",max);
}
2.若输入字母C,程序输出结果为【1】;若输入字符*,程序将【2】。
#include<stdio.h>
main()
{char c1,c2;
main()
{int k=0;char c='A';
do
{switch(c++)
{case'A':k++;break;
case'B':k--;
case'C':k+=2;break;
case'D':k=k%2;continue;
case'E':k=k*10;break;
default:k=k/3;
}
k++;
{if(n%3==0)continue;
printf("%d",n);
}
}
A.12457810B.369C.12D.12345678910
16.下面程序的运行结果是()。
main()
{int x,y,z;
x=0;y=z=-1;
x+=-z---y;
printf("x=%d\n",x);
}
A.x=4B.x=0C.x=2D.x=3
29.下列程序的输出为()。
#include<stdio.h>
main()
{int i=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf("i=%d,j=%d,a=%d\n",i,j,a);
}
A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7
#include"stdio.h"
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j-0;j<=3;j++)
{if(j%2)continue;x++; }
x++;
}
printf("x=%d\n",x);
}
A.x=4B.x=8C.x=6D.x=12
24.下列程序的输出为()。
25.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()。
A.0B.1C.trueD.非0
26.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()。
A.0B.1C.trueD.非0
27.下列程序的输出为()。
#include<stdio.h>
30.下列程序段的输出结果为()。
main()
{int x=3;
do
{printf("%3d",x-=2);}
while(!(--x));}
A.1B.30C.1 -2D.死循环
3.2填空题:
1.当输入19,2,21时下列程序运行的结果是_________。
main()
{int a,b,c,max;
printf("please scan three number a,b,c:\n");
switch(s[k])
{
default:v4++;
case 1:v1++;
case 2:v2++;
csse 3:v3++;
}
printf(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1
第三章循环结构
3.1选择题
1.以下程序的输出结果是( )。
main()
{int n=4;
while (n--)
printf(〞%d〞,--n);
}
A.20B.31C.321D.210
2.以下程序的输出结果是( )。
main()
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
main()
{int i;char c;
for(i=0;i<=5;i++)
{c=getchar();putchar(c);
}
}
程序执行时从第一列开始输入以下数据,<CR>代表换行符。
u<CR>
w<CR>
xsta<CR>
A.uwxsta B.u C.u D.u
w w w
x xs xsta
23.下列程序的输出为()。
printf("%d\n",y--);}
A.-1B.1C.8D.0
5.下面程序的输出结果是()。
main()
{ int x=3,y=6,a=0;
while (x++!=(y-=1))
{a+=1;
if (y<x) break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
case'C':printf(">=60.");
case'D':printf("<60.");
default:printf("error.");
}
}
A.>=85.B.>=60.C.>=60.<60.error.D.error.
13.列程序运行的情况是()。
main()
{int i=1,sum=0;
while(i<10)sum=sum+1;i++;
{
int w;
while (v)
{w=u%v;u=v;v=w;}
return u;
}
输出结果是( )。
A.6B.7C.8D.9
11.在下列选项中,没有构成死循环的程序段是()。
A.int i=100;
while (1)
{
i=i%100+1;
if(i>100) break;
}
B. for (;;);
C.int k=1000;
#include<stdio.h>
main()
{int i,j,k=0,m=0;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)k++;k-=j;}
m=i+j;
printf("k=%d,m=%d\n",k,m);
}
A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5
w++;
C. w=k;
do {w--;printf(〞*〞);}
while (w!=0);
D.for (w=k;w;--w) printf(〞*〞);
9.下面程序的输出是()。
main()
{
char*s=〞12134211〞;
int k,v1=0,v2=0,v3=0,v4=0;
for (k=0;s[k];k++)
}
A.10192B.9876C.10990D.101091
3.当执行以下程序段时。
x=-1;
do
{x=x*x;}
while (!x);
A.循环体将执行一次B.循环体将执行两次
C.循环体将执行无数多次D.系统将提示有语法错误
4.执行以下程序后输出的结果是()。
main()
{ int y=10;
do{y--;}while(--y);
{ y=x;
printf("x=%d,y=x=%d\n",x,y);