西北大学C语言课后习题第四章.pdf_第1页
西北大学C语言课后习题第四章.pdf_第2页
西北大学C语言课后习题第四章.pdf_第3页
西北大学C语言课后习题第四章.pdf_第4页
西北大学C语言课后习题第四章.pdf_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我们毕业啦 其实是答辩的标题地方 C语言辅导第四章 讲解人 吴慈航 化工学院2013级能源化学工程 西北大学学生校长助理,特等奖学金获得者 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 配套教材见右图配套教材见右图 本章讲解选择题和程序设计题本章讲解选择题和程序设计题 一、选择题 每题后一页均附有相应的源程序和执行结果 选择题参考答案预览 1-5 DDBCB 6-8 AAC 注意 为简化程序长度,所有源程序中均删除 #include和system(“pause“)代码 不影响最终的结果,请大家注意 1.下列程序执行后输出的结果是() #include void main() int a=1,b=2,c=2,t=0; while(a=b为止” 那么a,b初值是1和2,首先会执行一次互换并且c自加1,。互换后a=2,b=1不满足循环 条件 因此最终a,b,c的值分别是2,1,3 答案:答案:D 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 选择题第一题选择题第一题 2.下面关于for循环的正确描述是()(此题为概念题,无源程序) A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环 D.for循环的循环体中,可包含多条语句,但必须用花括号括起来 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 解答:本题考查for循环的语法及特点 for循环和while循环类似,二者都可以进行相互的转化 对四个选项进行逐条判断。 A选项,当循环次数未知时也可以使用for循环,此时使用break语句跳出即可,如: for(i=1;i+) (判断条件为空) if(i*i100000) printf(“%dn“,i*i); break; 此时,当i的平方大于100000时输出并跳出循环 B选项,可参考for循环执行流程,是先执行语句1,继续执行语句2(判断语句),符合后才执行循环 体 C选项,break可以用于while、do while和for循环的跳出 D选项,for循环的循环体可包含多个语句,用花括号括起来这些语句是一个整体,一起执行。 如果不用花括号,那么for循环只对跟它紧挨的那一条语句起作用,后面的语句只会被顺序执行一次 答案:答案:D 3.若i为整型变量,则以下循环体执行的次数是() for(i=2;i=0;) printf(“%d“,i-); A.无限次B.0次C.1次D.2次 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 解答:本题考查for循环的语法 对于for循环的语句执行顺序,如右图所示 表达式1赋值完毕后,首先进行表达式2的判断 此题中因为i=2,所以在判断表达式中i=0为假 直接跳出循环,因此循环体不执行 所以循环体执行的次数 为0次 因此不会执行printf语句 答案:答案:B 表达式1 表达式2 循环体 计算表达式3 为真为假 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 选择题第三题选择题第三题 未执行printf语句,所以无输出 4执行语句 for(i=1;i+ void main() int i,x; for(i=0,x=5;i=10) break; if(x%2=1) x+=5;continue; x-=3; A. 10,1 B.10,2 C.7,2 D.7,1 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 解答:本题考查for循环中continue语句的应用 之前已经提到,continue语句的作用是结束本次循环,进入下次循环。 这个循环的意思是,如果x=10,直接跳出循环。如果x=10是否成立。因为x现在是10,所以跳出循环。 因此,x=10,i=1。答案:答案:A 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 选择题第七题选择题第七题 8.有以下程序段 #include void main() int i=1,sum=0,n; scanf(“%d“, do i+=2; sum+=i; while(i!=n) printf(“%d“,sum); 要使程序的输出值为8,则应该从键盘输入的n的值是() A. 1 B.3 C.5 D.7 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 解答:首先读懂这个程序的含义。 这是一个求和的程序。i的初值为1,sum是累加奇数i的和。 对于do while循环是先执行do再判断条件。sum从3开始累积,即sum=3+5+7+ 现在考虑最后一项,由于判断条件是(i!=n),那么当i=n时跳出循环,所以最后一项也就是n 即sum=3+5+7+n。要使输出为8,则n=5 答案:答案:C 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 选择题第八题选择题第八题 二、编程题 每题后一页均附有相应的源程序和执行结果 1.编一个程序统计几个同学的平均年龄:要求通过键盘输入每位同学的编一个程序统计几个同学的平均年龄:要求通过键盘输入每位同学的 年龄,若输入年龄为年龄,若输入年龄为-1,则表示所有同学年龄已输入完毕,则表示所有同学年龄已输入完毕 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int sum=0,count=0,age=0; float average; while(1) /运用死循环,当满足退出条件时才跳出,用于循环次数未知的情况 count+; printf(“请输入第%d个同学的年龄n“,count); scanf(“%d“, if(age=-1) count=count-1; break; sum+=age; age=0; average=(float)sum/count; printf(“%d个同学的平均年龄是%.2fn“,count,average); 2.雨淋湿了算术书的一道题目,如下所示,雨淋湿了算术书的一道题目,如下所示,9个数字只能看清个数字只能看清4个,第一个数字虽个,第一个数字虽 然模糊不清,但可看的出不是然模糊不清,但可看的出不是1 其中,方框表示淋湿的数,请编程将其找出来其中,方框表示淋湿的数,请编程将其找出来 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include #include /math.h引入了数学函数,pow(x,2)就是x的平方 void main() int a,b,c,d; for(a=2;a void main() int a=2; while(1) if(a%3=2 break; else a+; 4.求求1!+3!+5!+11!的值!的值 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int i,m,n,sum=0; for(n=1;n void main() int num,count=0; for(num=6;num void main() int n; float result=1; for(n=1;n void main() int fenzi,fenmu,i; float result=0; fenzi=2;fenmu=1; for(i=1;i void main() int num,n=1000,i; printf(“请输入一个四位整数n“); while(1) scanf(“%d“, if(num9999) printf(“错误,请重新输入n“); else break; while(num!=0) i=num/n;num%=n;n=n/10; /这三个代码的作用是提取每一位数,很重要哦,想明白 switch(i) case 0: printf(“zero “);break; case 1: printf(“one “);break; case 2: printf(“two “);break; case 3: printf(“three “);break; case 4: printf(“four “);break; case 5: printf(“five “);break; case 6: printf(“six “);break; case 7: printf(“seven “);break; case 8: printf(“eight “);break; case 9: printf(“nine “);break; default:break; printf(“n“); 9.请在键盘中输入请在键盘中输入10对整数,计算每对数中较大者之和,并输出结果对整数,计算每对数中较大者之和,并输出结果 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int a,b,n,sum=0; printf(“请输入10对整数,用逗号隔开n“); for(n=1;nb) sum+=a; else sum+=b; printf(“较大数之和为%dn“,sum); 10.已知已知abc+cba=1333,其中,其中abc均为均为1位数,如位数,如617+716=1333,试编程求出符合这一规,试编程求出符合这一规 律的律的a、b、c并输出结果并输出结果 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int a,b,c; for(a=1;a void main() int a,n,i,sum=0,m=0; /sum的初值要赋为0,n是代表前n项之和,m是每一项的值 printf(“请输入一个要求的数字an“); scanf(“%d“, for(n=1;n void main() int a,b,c; printf(“请输入三个数字,用逗号隔开n“); scanf(“%d,%d,%d“, if(ab) a+=b;b=a-b;a=a-b; /不借助第三个参量互换 if(ac) a+=c;c=a-c;a=a-c; if(bc) b+=c;c=b-c;b=b-c; printf(“不大不小的那个数为%5dn”,b); /先排序后直接输出b即可 13.编程实现输出所有编程实现输出所有1100能被能被9整除余整除余2的数及它们的和的数及它们的和 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int i,sum=0,count=0; for(i=2;i void main() int n,i,j,sum; for(n=1;n void main() int num,sum=0; printf(“请输入一个不超过5位的十进制整数n“); while(1) scanf(“%d“, if(num9999) printf(“输入错误,请重新输入n“); else break; while(num!=0) sum+=num%10; /这两行代码是提取一个整数各位之和的标准代码,记住 num=num/10; printf(“各位之和为%dn“,sum); 这一题和编程题第八题的提取每一位的代码类似,这个是从低位往高位提取,第八题是从高位往 低位提取,大家根据代码模拟一下计算机的运算过程就会懂得它们的含义和区别了 16.从键盘输入不少于从键盘输入不少于50个整数,其值在个整数,其值在0-4之间(含之间(含0和和4),用),用-1作输入结束标志,统作输入结束标志,统 计输入整数的个数,编程实现计输入整数的个数,编程实现 本内容仅作西北大学新生学习C语言使用,版权所有,请勿私自翻印 #include void main() int count=0,i; printf(“请输入少于50个值在0-4之间的整数,以-1作结束标志n“); while(1) if(count=50) break; scanf(“%d“, if(i=0 double give_money=1e-6,get_money=10*30,sum=0; for(day=1;day void main() float time,distance,t_money,d_money; int money; printf(“请输入里程数(km)和等待时间(min),逗号隔开n“); scanf(“%f,%f“, if(dist

温馨提示

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

评论

0/150

提交评论