C语言程序设计课后练习题答案带原题.doc

上传人:知****量 文档编号:28078555 上传时间:2022-07-26 格式:DOC 页数:62 大小:365.44KB
返回 下载 相关 举报
C语言程序设计课后练习题答案带原题.doc_第1页
第1页 / 共62页
C语言程序设计课后练习题答案带原题.doc_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《C语言程序设计课后练习题答案带原题.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课后练习题答案带原题.doc(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、 简答题1、程序设计(Programming)是根据要解决的问题,使用某种程序设计语言,设计出能够完成这一任务的计算机指令序列。程序设计是指设计、编制、调试程序的方法和过程。 程序=算法+数据结构+程序设计方法+语言工具和环境2、程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。 语言处理程序把源程序翻译成语义等价的计算机能够识别的低级语言,它是在高级语言(或汇编语言)与计算机之间起到翻译作用的程序。经过语言处理程序处理后得的程序称目标程序。3、程序设计的基本原则:正确性、有效性、鲁棒性、可理解性、可维护性、可移植性。4

2、、算法(Algorithm)是为解决某一具体问题而采取的确定的、有限的方法和步骤。5、算法的基本特征:有穷性(有限性)、确定性(唯一性)、可行性(能行性)、有0到多个输入、一个算法执行结束之后必须有数据处理结果输出。6、自然语言描述法:用人们日常使用的语言来描述算法,称为算法的自然语言描述,特点是:存在很大缺陷,如果算法中含有多分支或循环操作,则很难表述清楚。此外,使用自然语言描述算法还很容易造成歧义;程序流程图描述法:程序流程图(Program Flow Chart)是软件开发者最熟悉的一种算法表达工具,它独立于任何程序设计语言。它的优点是直观、清晰、易于掌握,便于转化成任何计算机程序设计语

3、言。因此,它是软件开发者常用的算法表示方式;缺点:程序流程图的符号在使用过程中不容易规范,特别是在标准中没有严格规定流程线的用法,流程线能够指示流程控制方向的随意转移,很容易造成算法中操作步骤的执行次序混乱,而且不便于开发人员交流。N-S图描述法:N-S图是1973年由美国学者I.Nassi和B.Shneiderman提出的一种新的流程图形式,N和S是两学位者姓氏的首字母。在这种流程图中,摒弃了带箭头的流程线。算法的具体内容都写在一个矩形柜内,框内又可以包含其他的从属框。7、略8、结构化程序设计是一种面向过程的设计思想,把程序定义为数据结构+算法,它包括三种基本结构:顺序结构、选择结构和循环结

4、构。9、(1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑; (2)选用的控制结构只允许有一个入口和一个出口; (3)程序语句组成容易识别的语句序列块,每块只允许有一个入口和一个出口; (4)复杂结构的程序设计时,仅用嵌套的基本控制结构进行组合嵌套来实现; (5)严格控制无条件转移(goto)语句的使用。一、选择题1-8、CABDDCCC二、填空题1、main 2、/* */3、头文件4、数据类型5、函数首部 函数体三、简答与程序设计1、略2、略3、#include stdio.h void main() printf(*n); printf( C语言的学习要努力!n

5、); printf(*n); 4、#include stdio.h void main() int a,b; printf(输入两个数值分别给 a,b:); scanf(%d%d,&a,&b); printf(%d-%d=%dn,a,b,a-b); 一、选择题15:CBBCB 610:CDCCD 11-12:DB二、填空题1、162、b=i+1 c3、i=9 j%3!=04、1 3 25、j=i f=f*j三、程序设计题1、void main() int a,b; scanf(%d,&a);if(a/10000=a%10&(a/1000%10)= (a%100)/10) printf(%d,a

6、);2、void main() int i=1,s=0,flag=1; for(i=1;i=100;i+) s=s+i*flag; flag=flag*(-1); printf(%d,s);3、void main() int n,i,s=1; scanf (%d, &n); for(i=1;i=n;i+) s=s*i; printf ( n!=%d, s);4、#include #include int fun(float a,float b,float c)if(b*b+c*c=a*a|a*a+c*c= b*b|b*b+a*a=c*c) return 1;void main() float

7、a,b,c; printf(Please input three numbers:n); scanf(%f%f%f,&a,&b,&c); if( fun(a,b,c) = 1) printf(Yesn); else printf(Non); getch(); 5、void main() int a,i,j,n,s=0,w=0; scanf(%d,%d,&a,&n); for(i=1;i=n;i+) w=0; for(j=1;j=i;j+) w=w*10+a; s=s+w; printf(%dn,s);6、void main()int a,b,c; for(a=1; ;a+) b=(int)sq

8、rt(a+100); c=(int)sqrt(a+268);if(b*b=a+100& c*c=a+268) printf(%dn,a); break; 7、void main()int x,y,z;/*x表示鸡翁,y表示鸡雏*/ for(y=1;y=300;y+) if(y%3!=0) continue; for(x=1;x=20;x+) if(100-x-y0) continue; if(x*5+(100-x-y)*3+y/3=100) printf(%d,%d,%dn,x,100-x-y,y); 8、void main() int i,s=0,w=0,n; scanf(%d,&n); f

9、or(i=1;i=n;i+) w=0; for(j=1;j=i;j+) w=w+j; s=s+w; printf(%dn,s); 一、选择题1-5、CCBDC 6-10、BCAAD 11-15、AABCC 16-20、ADDDD二、填空题1、i=j aij2、jN aij=aji3、k=i j=i max=ak ak=aj aj=max 4、bij+1=aij i=0 i2 printf(n)5、aNN (i+1)*N-j6、587、1 2 3 0 5 6 0 0 98、5 7 4 8 9 1 1 5 7 4 8 9 9 1 5 7 4 8 8 9 1 5 7 4 4 8 9 1 5 7 7

10、4 8 9 1 59、1 0 0 1 010、21三、程序设计1、#include stdio.h void main() int i,ave,sum=0,a10;for(i=0;i10;i+)scanf(%d,&ai);sum=sum+ai;ave=sum/10;printf(ave=%dn,ave);for(i=0;i10;i+)if(aiave)printf(%4d,ai); 2、#include stdio.h void main() int i,j,p,q,s,n,a11=127,3,6,28,54,68,87,105,162,18; for(i=0;i10;i+) p=i;q=ai

11、; for(j=i+1;j10;j+) if(qaj) p=j;q=aj; if(p!=i) s=ai;ai=ap;ap=s; printf(%d ,ai); printf(ninput number:n); scanf(%d,&n); for(i=0;iai) for(s=9;s=i;s-) as+1=as; break; ai=n; for(i=0;i=10;i+) printf(%d ,ai); printf(n);3、#include stdio.h void main() int i,n,a5=0;printf(输入0到4之间的数,以-1结束!n);scanf(%d,&n);whil

12、e(n!=-1)switch(n)case 0:a0+;break;case 1:a1+;break;case 2:a2+;break;case 3:a3+;break;case 4:a4+;break;default:break;scanf(%d,&n);for(i=0;i5;i+) printf(%d:%d,i,ai);printf(n); 4、#include stdio.h #define SIZE 30 void main() float bSIZE/5,sum=0;int aSIZE,i,j,k;for(k=2,i=0;iSIZE;i+) ai=k; k+=2; for(k=0,i

13、=0;iSIZE;i+) sum+=ai; j=i+1; if(i+1)%5=0) bk=sum/5; sum=0; k+;printf(The result is:n);for(i=0;iSIZE/5;i+)printf(%5.2f ,bi);printf(n); 5、#include stdio.h #define N 10 void main() int i,j,aNN=0;for(i=0;iN;i+) for(j=0;jN;j+) if(i=j)|(j=0) aij=1; for(i=2;iN;i+) for(j=1;jN;j+) aij=ai-1j-1+ai-1j; for(i=0;

14、iN;i+) for(j=0;j=i;j+) printf(%d ,aij); printf(n); 6、#include stdio.h void main() int day213=0,31,28,31,30,31,30,31,30,31,30,31,30,0,31,29,31,30,31,30,31,30,31,30,31,30;int year,month,leap=0;printf(请输入年份:);scanf(%d,&year);printf(请输入月份:);scanf(%d,&month);if(year%400=0|year%4=0&year%100!=0)leap=1;prin

15、tf(%d年%d月有%d天!n,year,month,dayleapmonth);7、#include stdio.h void main() int i,j,a55=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;for(i=0;i5;i+) for(j=0;j=j) printf(%d ,aij); printf(n);一、选择题15:DBDAD610:BCDCD1115:ADACA1620:DACBC二、填空题1、4 22、3 53、99114、77776543215、166、*pmax=*px7、108

16、、efgh9、s-1 *s+10、p+n三、程序设计题1、#include stdio.hvoid main() float f,*fpointer; fpointer=&f; scanf(%f,fpointer); printf(%f,*fpointer);2、#include void output(char *s)int i;for(i=0;i=strlen(s);i=i+2)printf(%c,*(s+i);void main( )char *s; gets(s); output(s);3、void Input(int a, int n)int i; for(i=0;in;i+) sc

17、anf(“%d”,&ai);void Process(int a, int n)int i,k,w,t,max,min; max=min=a0; for(i=1;in;i+) if(maxai) min=ai;w=i; t=ak;ak=aw;aw=t;void Output(int a, int n)int i; for(i=0;in;i+) scanf(“%d”,&ai);void main( )int num10,n=10; Input(num, n);Process (num, n);Output(num, n);4、#includevoid main() char *str; int

18、k; printf(请输入字符串:); scanf(%s,str); k=strlen(str);/*for(i=0;i=0&stri=9) aj=aj*10+stri- 0; i+; j+; 6、#include#includeint main() char *str; int count5=0,0,0,0,0;/创建计数器数组并初始化 char *p=str;/指针p指向字符串数组str int i,n; gets(str); n=strlen(str);/确定输入字符串的长度 for(i=0;i=A&*(p+i)=a&*(p+i)=0&*(p+i)=9) count2+;/统计数字数目

19、else if(*(p+i)=32) count3+;/统计空格数目 else count4+;/统计其他字符数目 printf(大写字母 小写字母 数字 空格 其他字符:n); for(i=0;i5;i+) printf(%dt ,counti);/打印各统计数目 7、#include main() int n; int array100; int a=0,b,c; int i,j; scanf(%d,&n); for(i=1;i=n;i+) arrayi=i; c=n; b=0; do for (i=1,j=0;i=n;i+) if(arrayi%3=0&arrayi!=0) arrayi

20、=0;j+; else if(arrayi=0); else arrayi=arrayi+c-j; b=c/3;c=c-j; a=a+c; while(b); for (i=1,j=0;i=n;i+) if(arrayi%3=0&arrayi!=0) arrayi=0;j+; else if(arrayi=0); else arrayi=arrayi+c-j; for(i=1;i=n;i+) if(arrayi!=0) printf(its %d!n,i); 8、#includeadjustAry5(int source55 ) int N=5,LOOP=4; int *pMax,*pAry4

21、; int i,j,k,z,ibreak,zbreak,tmp; pMax=pAry0=&source00; for(i=0;iN;i+) for(j=0;j *pMax) pMax=&sourceij; else if (sourceij *pAry0) pAry0=&sourceij; if(pMax=&source00) pMax=pAry0; tmp=source00;source00=*pAry0;*pAry0=tmp;pAry0=&source00; tmp=source22;source22=*pMax;*pMax=tmp;pMax=&source22; for(k=1;kLOO

22、P;k+) pAryk=pMax; ibreak=0; for(i=0;iN;i+) for(j=0;jN;j+) if(sourceij= *pAryk-1) zbreak=0; for(z=k-1;z-1;z-) if(pAryz= (&sourceij) ) zbreak=1; break; if(zbreak=1) continue; pAryk=&sourceij; if(*pAryk=*pAryk-1 ) ibreak=1; break; if(ibreak=1) break; switch(k) case 1: tmp=source04;source04=*pAryk;*pAry

23、k=tmp;pAryk=&source04; break; case 2: tmp=source40;source40=*pAryk;*pAryk=tmp;pAryk=&source40; break; case 3: tmp=source44;source44=*pAryk;*pAryk=tmp;pAryk=&source44; break; void print_array5(int source55) int i,j; for( i=0;i5;i+) for(j=0;j5;j+) printf(%2dt,sourceij); printf(n); printf(n);void main(

24、) int i,j; int b55=35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11 ; printf(Please input data? (Array55)n); print_array5(b); adjustAry5(b); print_array5(b);9、void main()int n; char *name12=January,February,March,April,May,June,July,August,September,October,November,Decembe

25、r;for(n=1;n=12;n+)printf(%sn,namen-1);10、void main()int n; char *name12=January,February,March,April,May,June,July,August,September,October,November,December;scanf(%d,&n);printf(%sn,namen-1);11、#define M 3#define N 4void main()int aMN;int i,j;for(i=0;iM;i+) for(j=0;jN;j+) scanf(%d,*(a+i)+j); for(i=0

26、;iM;i+) for(j=0;jN;j+) printf(%4d ,*(*(a+i)+j); printf(n); 12、#includeint s45;void fun1()/输入4个学生的5门成绩int i,j;for(i=0;i4;i+)printf(请输入第%d位学生的成绩,i+1);for(j=0;j5;j+)scanf(%d,*(s+i)+j);void fun2()/求第一门成绩的平均分float avg=0.0;int i,sum=0;for(i=0;i4;i+)sum=sum+*(*(s+i);avg=sum/4.0;printf(第一门课程的平均分是%fn,avg);vo

27、id fun3()/*找出有2门以上课程不及格的学生,输出他们的学号、全部课程成绩和平均分;*/int count4=0,0,0,0;/统计4个学生不及格课程的数目float avg4=0.0;/存放每个学生的平均分int sum;int i,j;for(i=0;i4;i+)for(j=0;j5;j+)if(*(*(s+i)+j)60)counti+;for(i=0;i4;i+)sum=0;for(j=0;j5;j+)sum=sum+*(*(s+i)+j);avgi=sum/5.0;for(i=0;i=2)printf(有2门以上课程不及格的学生学号是%dn,i+1);printf(其全部课程

28、成绩如下n);for(j=0;j5;j+)printf(第%d门成绩是:%dn,j+1,*(*(s+i)+j);printf(平均分是:%fn,avgi);void fun4()/*平均成绩在90分以上或全部课程在85分以上的学生*/float avg4=0.0;int flag4=0;/标记5门课程成绩是否都在85分以上int sum;int i,j;for(i=0;i4;i+)sum=0;for(j=0;j5;j+)sum=sum+*(*(s+i)+j);avgi=sum/5.0;for(i=0;i4;i+)for(j=0;j=85) flagi+;for(i=0;i=90.0|flagi

29、=5)printf(平均成绩在90分以上或全部课程在85分以上的学生学号是:%dn,i+1);void main()fun1();fun2();fun3();fun4();一、选择题15: BDABD610:ADBCB二、填空题1、552、423、54、14, 105、HELLO WORLD三、程序设计题1、#include stdio.h#define MOD(x,y) (x)%(y)void main() int x,y; scanf(%d,%d,&x,&y); printf(%dn,MOD(x,y);2、file1.c文件中程序#define PRINTINT(x) printf(%dn

30、,x);#define PRINTFLOAT(x) printf(%fn,x);#define PRINTCHAR(x) printf(%cn,x);file2.c文件中程序#include stdio.h#include D:JMSOFTCYuYanfile1.cvoid main()int i=10;float f=11.2;char ch=A; PRINTINT(i); PRINTFLOAT(f); PRINTCHAR(ch);3、#include #define FLAG 1void main( ) char *s , ch; gets(s); #if FLAG while(*s) if(*s = a & *s = A & *s =65&stri=97&stri122) stri=stri+1; #endif i+; puts(str); 一、选择题15:ABBCB610:BDBBB二、填空题1、112、303、44、975、36、Zhao三、程序设计题1、#include typedef struct int year; int month; int day;date;int days(date d) int num = 0; int m, da, i; if (d.year %4 =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁