ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:22.04KB ,
资源ID:6640506      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6640506.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级语言程序设计与应用教程习题答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级语言程序设计与应用教程习题答案.docx

1、高级语言程序设计与应用教程习题答案第二章一、单选题1B2C3C4B5B6A7B8A9D10CC11BC12B13C14DBA15C二、填空题1. 3、12. 23. 44. -2645. n=1三、简答题(略)第三章一、单选题1C2D3B4B5C6C7B8A9D10D11D12C13A14D二、填空题6. 顺序结构、选择结构、循环结构7. scanf( )、printf( )8. 19. 210. 111. 12312. s=25413. 8三、简答题1什么是结构化的程序设计?它有什么特点?答:结构化程序设计的基本思想是:任何程序都可以通过顺序结构、选择结构、循环结构表示。复杂程序是经过这三种

2、基本结构反复嵌套使用而构成的。结构化程序的优点是程序模块结构清楚,层次分明,易于读写。2什么是关系运算?什么是逻辑运算?什么是条件运算?答:(1)关系运算是通过C语言提供的6种关系运算符对两个值的大小等关系进行比较。(2)逻辑运算既通过三种逻辑运算符对逻辑量进行与、或、非的运算即逻辑运算。(3)条件运算是通过条件运算符“?:”构造的条件表达式:表达式1 ? 表达式2 :表达式3,根据表达式1的值判断条件表达式的最终计算结果是取表达式2的值还是取表达式3的值。3空语句是可有可无的吗?答:不是,虽然空语句是什么也不执行的语句,但是在程序中空语句可用来构成循环结构中的空循环体。4C语言中如何判断一个

3、量的真、假?答:如果某个量的值不为0时,则在逻辑运算中被判别为真;否则,如果其值为0时,被判别为假。5请谈谈条件表达式和条件语句有什么区别和联系?答:条件表达式和条件语句都可以根据给定的条件进入不同的分支执行语句。条件表达式语句简练,如果选择结构比较简单,可以采用条件表达式来实现。而通过条件语句,以及语句的嵌套,可以实现更复杂的选择结构。四、程序设计题1编写程序,输出x2的值,x取值从0到10。答案:#include stdio.hvoid main() int x; for(x=0; xmax) max = y; if (zmax) max = z; if (ymin) min = y; i

4、f (zmin) min = z; printf(max=%d, min=%dn, max, min); 3编写程序,把键盘中输入的字符串中的数字字符删除,然后输出删除数字后的字符串。答案:解法1(利用数组):# include stdio.hvoid main() char c, s50=, i=0; c=getchar(); while(c!=n) if(c9) si=c; i+; c=getchar(); printf(%sn, s);解法2(不用数组):#include stdio.hvoid main() char c, i=0; c=getchar(); while(c!=n) i

5、f(c9) printf(%c,c); c=getchar(); printf(n);4编写程序,打印九九乘法表。答案:#include stdio.hvoid main() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) /注意j的终值到i即可 printf(%d*%d=%dt,i,j,i*j); /输出一行的多个乘法式子 printf(n); /一行多个式子输出完毕,再换行 5编写猜数游戏,程序给定某个整数,从键盘反复输入数据进行猜测。如果未猜中,程序提示输入过大或过小;如果猜中,则输出猜的次数。最多允许猜10次。答案:解法1(指定被猜数):# inclu

6、de stdio.hvoid main() int x, i =1; int n=88; /指定被猜数88 printf(please input a number.n); scanf(%d, &x); while(i n) printf(%dn! Try again!n, x); else printf(%dn! Try again!n, x); scanf(%d, &x); i+; else printf(You are right, the number is %d, and you have tried %d times.n,n,i); break; if(i=10) printf(Y

7、ou have tried 10 times. Game over!n); printf(The number is %d.n, n); 解法2(随机产生被猜数):#include stdio.h#include /包含产生随机数库函数rand()的头文件void main() int x, i=1; int n=rand(); /使用库函数产生被猜数 printf(please input a number:n); scanf(%d,&x); while(i n) printf(%dn! Try again!n, x); else printf(%d=0.001&i=20); printf(

8、sum=%fn,sum);7. 答案:#include stdio.hvoid main() int k, sum1=0; float sum=0, sum2=0; for(k=1;k=100;k+) sum=sum+k; for(k=1;k=50;k+) sum1=sum1+k*k; for(k=1;k=10;k+) sum2=sum2+1.0/k; sum = sum + sum1 * sum2; printf(sum=%fn,sum);8. 打印所有“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。答案:#include stdio.hvoid main() i

9、nt k; int m,n,t; for(k=100;k=999;k+) m=k/100; n=k/10%10; t=k%10; if(m*m*m+n*n*n+t*t*t=k) printf(k=%dn,k); 9. 打印如下图案:*答案:解法1(指定行数):#include stdio.hvoid main() int i=3; /行数 int m,n; /n为空格个数,m为*个数 int k,t; for(k=1;k=i;k+) n=i-k; m=k*2-1; for(t=1;t=n;t+) printf( ); for(t=1;t=m;t+) printf(*); printf(n);

10、解法2(输入行数):#include stdio.hvoid main() int i; /行数 int m,n; /n为空格个数,m为*个数 int k,t; printf(please input row number:); scanf(%d, &i); for(k=1;k=i;k+) n=i-k; m=k*2-1; for(t=1;t=n;t+) printf( ); for(t=1;t=m;t+) printf(*); printf(n); 第四章一、单选题1C2B3D4D5D6A7D8C9C10B11C12A13C14C15C16D17A18C19C20A二、填空题14. 1215.

11、 -850, 2, 016. k=p k17. 35718. 219. 2520. 3021. a*b*c*d*22. 5 3 3 523. 12334三、编程题1【分析与解答】(1)对于字符的输入要使用while循环,只是要注意,循环的终止条件是:等于n。 (2)在while循环体中,用if条件来判断是否为数字字符,若是,就使对应的元素增1;if中的条件表达式可用C的库函数:isdigit(ch),这时要在程序前加:#include行;也可用:ch=0&ch=0 & ch=9) numch-0+; scanf(%c,&ch); for(i=0; i=0.0 & a=100 & n1000;当

12、输入的数不在0到100之间,或者输入的成绩个数超过1000个,则停止输入;(2)在while循环内,将输入的数累加到sum中,同时赋给数组元素xn;(3)求出平均值,ave= sum/n;(4)使用for循环for (i=0;in;i+) if(xi=0.0 & a=100 & n1000) sum+=a;xn=a; n+; scanf(%f,&a); ave= sum/n; printf(Output:n); printf(ave=%fn,ave); for (i=0;in;i+) if(xiave) printf (%fn,xi); 3【分析与解答】(1)使用循环嵌套,外循环是数组的行循环

13、,共循环4次;(2)外循环内的循环for(j=1;j=i;j+) printf(%c, );用于输出每行前面的空格;(3)循环for(j=i;j4;j+) printf(%4d,numij);用于每行空格后面的元素。#include stdio.hvoid main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i4;i+) for(j=1;j=i;j+) printf( ); /四个空格组成的字符串 for(j=i;j4;j+) printf(%4d,numij); printf(n); 5【分析与解答】(1)

14、在定义数组时应该注意,进行逆置操作的矩阵必须是一个方阵,行、列数相同。(2)对矩阵进行逆置的操作可由双重循环来完成: for(i=0;iN; i+)for(j=0;ji; j+)t=pij; pij=pji; pji=t;内循环的控制变量j的变化范围从0到i,以对角线为界,把对称位置上的元素值进行对调。(3)总结:本题主要的算法也是交换算法,关键是需要正确确定交换的范围。#include stdio.h#define N 5void main() int numNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,2

15、5; int i,j,t; for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,numij); printf(n); for(i=0;iN;i+) for(j=0;j=i;j+) t=numij; numij=numji; numji=t; for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,numij); printf(n); 第五章一、单选题1C2无333B4A5C6D 7A二、填空题24. 10 7 2 025. 5 826. return,return (表达式)27. 定义,调用28. 传值,传地址三、编程题1答案:#inc

16、lude int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/ int z; if(y=1)|(y=x+1) return 1; /*若为x行的第1或第x+1列,则输出1*/ z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/ return z;void yanghui(int n) int i,j; for(i=0;i=n;i+) /*控制输出N行*/ for(j=0;j24-2*i;j+) printf( ); /*控制输出第i行前面的空格*/ for(j=1;j12) scanf(%d,&n); /*控制输入正确的值

17、以保证屏幕显示的图形正确*/ yanghui(n);2答案:#include #include bool IsPrimer(int n) int i,m; m=int(sqrt(n); for(i=2;i=m;i+) if(n%i=0) return false; return true;void main() int i; scanf(%d,&i); if(IsPrimer(i) printf(这是素数n); else printf(这是不是素数n);3答案:#include int f(int i) if(i=1) return 1; if(i=0) return 1; return f(

18、i-1)+f(i-2);void main() int i; for(i=0;i40;i+) printf(%dt,f(i);4答案:#includeint change(int c) int t,i; int result=0; i=1; while(c0) t=c%6; result=result+t*i; i=i*10; c=c/6; return result;void main() int input; scanf(%d,&input); printf(%dn,change(input);5答案:#includefloat x;float f(int c) if(c=0) retur

19、n 1; else return f(c-1)*x/c;float sum(int times) int i; float result=0; for(i=0;itimes;i+) result=result+f(i); return result;void main() scanf(%f,&x); printf(%fn,sum(40);第六章一、单选题1A2D3C4C5C6C 7D8B9D10C二、分析下列各程序的运行结果29. 该程序实现了两个字符串的连接。30. 该程序统计输入结束后数组中的字符个数。三、程序设计1答案: (1) float *fptr; (2) fptr=&number

20、1; (3) printf(%fn,*fptr); (4) number2=*fptr; (5) printf(%fn,number2); (6) printf(%pn,&number1); (7) printf(%pn,fptr);打印出来的值相等2答案:#include void main() char s110=1234567; char s210=; char *p1; char *p2; p1=s1; p2=s2; for(;*p2=*p1;p1+,p2+) printf(%s n,s2);3答案:#include #include void main() char str100,ch; char *p; int j=0; while(1) scanf(%c,&ch); if(ch=n) strj=0; break; else strj=ch; j+; p=str; int H_letter=0,L_letter=0,space=0,number=0,o

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1