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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言教材后习题及答案.docx

1、C语言教材后习题及答案第一章1.什么是程序?什么是程序设计语言?2.C语言有什么特点?3.什么是算法?算法的描述有哪些基本方法?第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环);二是函数,主函数main()第二章1.指出下列哪些是C语言合法的用户识别符。void a3_b3 For 2a define _123 _abc DO2.指出下列哪些是C语言合法的常量。34 0x1g 33 a E20 18 0xa 1.E-5 3.F 0 .12 a34 双引号内表示字符串,但要在一个串内含有单引号、双引号要用转义字符正确的是:340x是十六进制的表示形式之一,但十六进制里没有g

2、这个数值0xa 带一个单引号、0开头,无意义.这里要注意ddd,1-3位八进制数,xhh,1-2位十进制数,他们都表示对应的ASCII值E20,E表示指数形式,但两边必须都有数字。将此题全部弄懂,所有关于常量的分基本跑不掉了。3.指出下列定义变量语句中的错误。int a;b=5; /同类型的两个变量,中间不能用分号。doubel h; /doubleint x,float y; /中间要用分号float f(x); /非法符号定义变量要注意,数据类型的关键字,还有就是变量名称必须是合法标识符。4.写出能表示数学式子1(2a12a)的C语言表达式。1.0/(2*a+1/(2*a)5.#inclu

3、deint main() double x=1,y; y=x+3/2; printf(y=%fn,y); return 0;结果是:2.000000,注意3/2=1(2)#includeint main() float x=2.9,y=3.2,z; int a=8; z=x+a%3*(int)(x+y)/2; printf(z=%fn,z); return 0;结果是:8.900000,注意(int)(x+y)=6。(3)#includeint main()int a=65,b=-20;char ch=A;float x=12.345678f;printf(abcn101tx41101n);p

4、rintf(a=%d,%c,%o,%xn,a,a,a,a);printf(b=%d,%o,%x,%un,b,b,b,b);printf(ch=%d,%cn,ch,ch);printf(x=%f,%.2f,%10.2f,%-10.fn,x,x,x,x);return 0;此题包含的内容较多,都是细节,希望对照教材仔细分析结果。6程序设计。(1)输出如下的图形。 * * * * *此题答案参考实验指导书。这题在这章出现,主要是练习printf(),(2)已知铁的比重是7.86,计算并输出直径为100毫米的铁球重量#include#define PI 3.1415926void main() dou

5、ble w,r=100.0/20,p=7.86; w=p*4.0*PI*r*r*r/3.0; printf(%.2fn,w); 第三章1.写出表示变量x的值在0,100范围内的逻辑表达式。x=0 & xbc的值是多少?04.已知变量x,y的值分别为5,9,逻辑表达式x&y-9)*6-!x的值是多少? 05.已知变量m,n的值都为1,逻辑表达式m-&n+执行后,m,n的值是多少? m=0,n=2,逻辑表达式的值是真。6(1): #include int main( ) int x=2,y; if(x) y=x; else y=3*x-1; printf(y=%dn,y); return 0; 运

6、行结果是:y=2(2) #include int main( ) int a=2,b=2,c=3; if (a=b) if(b=c) printf(a=b=cn); else printf(a!=bn); return 0; 运行结果是:a!=b(3)#include int main( ) int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(a=%d,b=%dn ,a,b); re

7、turn 0; 运行结果是:a=2,b=1(4)#include int main( ) int n=5; while(n2) n-; printf(%dn,n); return 0; 运行结果是:4 3 2(5): #include int main( ) int a,b; for(a=1,b=1;a=20) break; if (b%3=1) b+=3;continue; b-=5; printf(%dn,a); return 0; 运行结果是:8 7.程序设计(1)从键盘输入一个字符。若该字符是小写,输出相应的大写字母;若该字符是大写字母,输出对应的小写字母;若是其他字符,则原样输出。#

8、include int main() char s; scanf(%c,&s);if (s=A&s =a&s=z) s=s-32; printf(%cn , s);return 0;(2)从键盘输入3个整数,输出其中的最大值。#include void main() int a,b,c;int m;printf(Please input a b cn);scanf(%d,%d,%d,&a,&b,&c);m=ab?a:b;m=mc?m:c;printf(Max is %dn,m);本题解法比较多。注意此题的逻辑关系。(3)从键盘输入一个整数,输出分段函数f(x)的值。 1-x2 (x2) f(x

9、)= 1+2x-x2 (2=x=10)#include int main( ) float x,y; scanf(%f,&x); if(x2) y=1-x*x; else if(x10) y=1+2*x-x*x; else y=1-x+x*x; printf(a=%fn ,y); return 0; 此类题,注意数轴方向。从一边为起点。(4)从键盘上输入一个整数,求其中每个数位的数字之和。#includeint main()int sum=0,a;scanf(%d,&a);if(a0);printf(%dn,sum);return 0;此题答案只考虑输入的是正整数,如果输入的是小于0的整数,加

10、个判读,用绝对值函数处理下即可。(5)将100元换成1元,5元,10元的零钱有多少种换法?#includeint main()int x,y,z,i=0;for(x=0;x=10;x+)for(y=0;y=20;y+)for(z=0;z=100;z+)if(x*10+5*y+z=100)printf(%5d,%5d,%5dn,x,y,z);i+;printf(There are %d ways.n,i);return 0;(6)计算方程X2+Y2=1989的所有整数解。#include#includevoid main()int v,i,j;v=(int)sqrt(1989); for (i=

11、0; i=v; i+) for (j=0;j=v;j+) if(i*i+j*j=1989) printf(%5d,%5dn,i*i,j*j); (7)输出所有的3位水仙花数。3位水仙花数是指一个整数的每个数位上的数字的3次方之和等于它本身,例如:13+53+33=153.#includevoid main()int a,b,c,d;for(a=100;a=999;a+)b=a/100;c=a%10;d=(a/10)%10;if(b*b*b+c*c*c+d*d*d=a) printf(%5dn,a);(8)在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人宰相西萨 班 达依尔。国王问他想要什

12、么,他对国王说:“陛下,请你在这张棋盘的第1个小格里,赏给我一粒麦子,在第二个格子里给2粒,第三格给4粒,以后每一小格都比前一小格加一一倍。陛下啊,把这样摆满棋盘上所有64个小方格的麦粒,都赏赐给你的仆人吧!”。请帮国王计算一下,放完整个棋盘要多少颗小麦。#includevoid main() int i;double n,s;i=1; n=1.0; s=1.0; for(i=2;i=4)的偶数都可以用2个素数之和表示,将4100所有偶数分别用两个素数之和的形式输出。(例如:4=2+2,100=3+97)#include#includeint ss(int n) /*检查n是否为素数,如果是则

13、返回1,否则返回0*/ int i; for (i=2; i=(int)sqrt(n); i+) if (n%i=0) return 0; return 1;int main(void) int i,j,k=0; /*k用来控制打印换行*/for (i=4;i=100; i+=2) for(j=2; ji; j+) if (ss(j)&ss(i-j) printf(%d=%d+%d ,i,j,i-j); k+; if (k%5=0) putchar(n); break; return 0;注意判断素数的3种方法。n-1,n/2,(int)sqrt(n)(10)一球从100米高度自由落下,每次漏

14、地后反跳回原高度的一半,求在第10次落地时,共经过多少米?第10次反弹多高?#includeint main() float sn=100.0,hn=sn/2; int n; for(n=2;n=10;n+) sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ printf(the total of road is %fn,sn); printf(the tenth is %f metern,hn); return 0;第4章1. 程序填空。(1) 请在横线上填空,使程序输出数组s中最大元素的下标。#includeint main()int k,

15、p,s=1,-9,7,2,-10,3;for(p=0,k=0;psk) k=p;printf(%dn,k);return 0; 注意:红色部分为原题填空部分,下同。(2)请在横线上填空,使程序输出以下形式的图标。1 2 3 46 7 811 1216#include int 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=i;j4;j+) printf(%-5d,numij); printf(n); return 0;2. 阅读下列程序,写出程序运行结果。(1)#include

16、 int main( ) int i,k,a10,p3; k=5; for(i=0;i10;i+) ai=i; for(i=0;i3;i+) pi=ai*(i+1); for(i=0;i3;i+) k+=pi*2; printf(%dn,k); return 0; 运行结果:21(2) #include int main( ) int p7=11,13,14,15,16,17,18,i=0,k=0; while(i7&pi%2) k=k+pi; i+; printf(%dn,k); return 0; 运行结果:24(3) #include int main( ) int i; int a33

17、=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d ,a2-ii); return 0; 运行结果:7 5 33. 程序设计。(1) 从键盘输入10个成绩,输出最高分和最低分。(2) 在一次评奖中有10个评委对5个参赛选手打分,选手的最终得分为:去掉一个最高分、一个最低分后剩余8个分数的平均值。从键盘输入每个选手的得分,输出每个选手最终得分。(3) 从键盘输入5门课程6个同学的成绩,。输出每门课程的最高分。(4) 从键盘上输入一个4x5的矩阵,输出矩阵个周边元素的和。例如输入以下矩阵,输出:32。1 0 2 0 30 4 8 9 17 0 9 7 08 0

18、 4 5 1第五章 1、程序填空。(1)请在横线上填空,使fun()函数实现的功能。int fun(int a,int b) int mul; mul=(a+b)*(a+b); return mul;注意:红色部分就是原来需要填空的地方,下同(2)请在横线上填空,使fun()函数返回参数s所表示的数组中各元素的和,其中参数len表示数组s的长度。double fun(double s ,int n) int i; double y=0; for(i=0;in;i+) y+=si;return y;2、阅读下列程序,写出程序运行结果。 #include #define LEN 10 void r

19、everse(int a ,int n) int i,t; for(i=0;in;i+) t=ai; ai=an-1-i;an-1-i=t;return ; int main( ) int bLEN=1,2,3,4,5,6,7,8,9,10,i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(s=%dn,s); return 0; 运行结果:s=34(2) #include int d=1;void fun (int p) int d=5; d+=p+; printf(%d,d); return;int main( ) int a=3; fun

20、(a); d+=a+;printf(%dn,d);return 0; 运行结果:84(3) #include void fun(int x,int y,int z) z=x*x+y*y; return ; int main( ) int a=31; fun(5,2,a); printf(%d,a); return 0; 运行结果:31(4) #include #define MAX(x,y) (x)(y)?(x):(y) int main( ) int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(%dn,t); return 0; 运行结果:73、

21、程序设计。(1)编写函数sum,计算m到n的累加和(m小于n),在主函数中调用sum()函数,计算并输出+的值。(2)编写函数item,计算1到n的累加和的倒数,在主函数中调用item()函数,计算并输出+的值。(3)一个正整数如果等于它的因子(包括1,但不包括自身)之和,则称为“完数”(例如6是一个“完数”,6=1+2+3)。编写函数fun,计算n的因子之和(不包括n),在主函数中调用fun()函数,输出1000以内的所有完数。(4)已知数列的递归关系如下,编写函数fun,计算数列的第n项,在主函数中调用fun()函数,输出该数列的前20项。 f(n)=第六章1.程序填空。(1)请在横线上填

22、空,使程序完成计算数组a中元素的平均值并输出。 float average(int *pa,int n) int i,avg; avg=0; for(i=0;in;i+) avg+=pai; return (float)avg/n; int main( ) int a5=2,4,6,8,10; float mean; mean=average(a,5); printf(mean=%.2fn,mean);注意:红色部分即为原题填空部分,下同。2.请在横线上填空,使函数实现计算指针p所指向的字符串的长度。 int myStrlen(char *p) int len=0;for(;*p!=0;p+)

23、 len+;return len;阅读下列程序,写出程序运行结果。(1) #include int main() int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=(*p1)*(*p2); printf(%dn,c); return 0; 运行结果:3(2) #include int main() int a33,*p,i; p=&a00; for(i=0;i9;i+) pi=i+1; printf(%dn,a12); return 0; 运行结果:6(3) #include int main() int a =2,4,6,8,10,y=1,i,*p;

24、p=&a1; for(i=0;i3;i+) y+=*(p+1); printf(%dn,y); return 0; 运行结果:19(4)#include#includeint main() char p1=abcd,p2=efgh,str50=ABCDEFG; strcat(str,p1); strcat(str,p2); printf(%cn,str); return 0;运行结果:ABCDEFGabcdefgh(5)#includeint main() char str=1a2b3c; int i; for(i=0;stri!=0;i+) if(stri9) printf(%c,stri)

25、; printf(n); return 0; 运行结果:abc3.程序设计(1) 编写函数Mystrcmp(char*str1,char*str2),该函数的功能是比较字符串str1和str2,如果相同返回0,否则返回两个字符串中第1个不相同的ASCII码值之差作为函数值返回,要求不采用库函数strcmp()实现。(2) 编函数fun(int*a,int n,int*odd,int*even),函数的功能是分别求出形参a所指向的数组中所有奇数、偶数之和,并分别保存在Odd、even所指向的变量中形参n表示形参a所指向的数组的长度。(3) 从键盘输入英文的星期几,输出对应的中文星期几。(4) 从键盘输入一个字符串,然后将字符串按照如下规则重新排列:字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。例如输入字符串“a12bcd45”,则排列后的字符串为”abcd1234”.(

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2