版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计习题集沈国荣-参考答案C语言程序设计习题集沈国荣-参考答案C语言程序设计习题集沈国荣-参考答案xxx公司C语言程序设计习题集沈国荣-参考答案文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度《C语言程序设计》习题解答沈国荣隋雪莉闵芳目录第1章C语言程序设计概述 2第2章数据类型及其运算 3第3章语句与输入输出 4第4章选择结构程序设计 6第5章循环结构程序设计 9第6章数组 12第7章函数 15第8章编译预处理 18第9章指针 19第10章结构体与共用体 21第11章位运算 25第12章文件操作 26
第1章C语言程序设计概述一、选择题12345678910CBACCBDBDA二、填空题1. 函数、main()函数2. /*、*/3. .C、.OBJ、.EXE4. 顺序结构、选择结构、循环结构三、编程题1.【参考代码】#include<>intmain(){ printf("(学校名称)\n"); printf("(姓名)\n"); return0;}2.【参考代码】#include<>intmain(){ printf("(学校名称)\n(姓名)\n"); return0;}
第2章数据类型及其运算一、选择题12345678910CCCABADDC、BB11121314151617181920CADDDCDC注:第5题B选项为:'\'''\017''\t'二、填空题1. 字母、数字、下划线2. 1、4、4、83. -164. 5. 06. 97. 68. -609. y%2==110. 1、0、1三、程序阅读题1. b2. 03. 04. 10,25. 9,10,9,106. 3,1,0,07. 3,20,30,1
第3章语句与输入输出一、选择题12345678910BCCCCBBBDA二、填空题1. 2. D3. 回车4. 10,2三、程序阅读题1. 2612. 203. 201,104. y=4630 y=46305. *,*6. c:dec=120,oct=170,hex=78,ASCII=x7. x=1y=2*sum*=3 10squaredis:1008. 2489. x+y+z=4810. 55,,A四、编程题1.【参考代码】#include<>intmain(){charch;printf("请输入一个字符:\n");scanf("%c",&ch);printf("%c的ASCII码为:%d\n",ch,ch);return0;}2.【参考代码】#include<>#definePIintmain(){ doubler,h; doublecl,cs,cv; printf("请输入圆的半径:"); scanf("%lf",&r); printf("请输入圆柱高:"); scanf("%lf",&h); cl=2*PI*r; cs=PI*r*r; cv=PI*r*r*h; printf("圆的周长为:%.4lf\n",cl); printf("圆的面积为:%.4lf\n",cs); printf("圆柱的体积为:%.4lf\n",cv); return0;}3.【参考代码】#include<>intmain(){ intsplitInt,one,ten,hundred; printf("输入要处理的整数:"); scanf("%d",&splitInt); hundred=splitInt/100; ten=splitInt%100/10; one=splitInt%10; printf("个位:%d,十位:%d,百位:%d\n",one,ten,hundred); return0;}
第4章选择结构程序设计一、选择题123456DCCBBD二、程序阅读题1. 102. 2,2,23. 64. 97,b5. c=-16. 88887. 20,08. 2,19. 1,1 2,2 2,1 -2,210. a=1,b=3三、程序完善题1. a>b、c>x四、编程题1.【参考代码】#include<>intmain(){ inta,b,c,d,min; printf("输入4个整数:"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a<b)min=a; elsemin=b; if(c<min)min=c; if(d<min)min=d; printf("%d\n",min); return0;}2.【参考代码】#include<>intmain(){ intnum,a,b,c,d; printf("请输入一个四位整数:"); scanf("%d",&num); a=num/1000; b=num%1000/100; c=num%100/10; d=num%10; printf("各位数字之和为:%d\n",a+b+c+d); return0;}3.【参考代码】#include<>intmain(){ intx; printf("请输入x:"); scanf("%d",&x); printf("y的值为:"); if(x<0) printf("%d\n",x); elseif(x<50) printf("%d\n",3*x-2); elseif(x<100) printf("%d\n",4*x+1); else printf("%d\n",5*x); return0;}4.【参考代码】#include<>intmain(){ intdj; floatzl,je,yfk; printf("请输入等级(1~4):"); scanf("%d",&dj); if(dj>4||dj<1) { printf("无此等级的苹果!\n"); return0; } printf("请输入重量(公斤):"); scanf("%f",&zl); printf("\n"); switch(dj) { case1:je=*zl;break; case2:je=*zl;break; case3:je=*zl;break; case4:je=*zl;break; } printf("您选择苹果级别:%d级\n",dj); printf("您购买苹果重量:%.2f公斤\n",zl); printf("您应付金额为:%.2f元\n",je); printf("\n"); printf("顾客所付金额:"); scanf("%f",&yfk); if(yfk<je) { printf("DataError!\n"); return0; } printf("应找您:%.2f元\n",yfk-je); return0;}
第5章循环结构程序设计一、选择题12345678(1)8(2)91011CBBBABBBCDCB二、程序阅读题1. 1,2,02. m=4,n=23. A2C4E64. 1325. 46. k=0,m=57. x=88. 9. 998988三、程序完善题1. (ch>'Z'&&ch<='Z'+4)||(ch>'z')ch-262. kk/10continue3. i+t*10s=s+t4. fabs(t)>=1e-6f=-f5. i<10j%3!=0四、编程题1.【参考代码】#include<>intmain(){ intn,i,j,k; printf("Output:\n"); for(n=100;n<1000;n++) { i=n%10;/*个位*/ j=(n/10)%10;/*十位*/ k=n/100;/*百位*/ if(n==i*i*i+j*j*j+k*k*k) printf("%d\n",n); }return0;}2.【参考代码】#include<>intmain(){inti,m,n,t,p,k;printf("Pleaseinput:");scanf("%d,%d",&m,&n);if(m<n){ t=n; n=m; m=t;}p=m*n;while(n!=0)/*余数不为0,继续相除,直到余数为0*/{ i=m%n; m=n; n=i;}k=p/m;printf("%d,%d\n",m,k);return0;}3.【参考代码】#include<>intmain(){ inti,n,t,sum; t=1; sum=0; printf("Pleaseinput:n="); scanf("%d",&n); for(i=1;i<=n;i++) { t=t*i; sum=sum+t; } printf("1!+2!+…+%d!=%d\n",n,sum);return0;}4.【参考代码】#include<>intmain(){ inti,m; doublesum=0,k=1; printf("Pleaseinput:m="); scanf("%d",&m); for(i=1;i<=m;i++) { sum=sum+k/i; k=-k; } printf("sum=%4.2f\n",sum);return0;}
第6章数组一、选择题12345678910111213141516DDDBCCBCCDDBDDCD二、程序阅读题182430,24125t*M6mo7fwo三、程序完善题1k=ij=ia[k]=maxa[j]=min2sum+=score[i]score[i]<avg3s[i]=s[i]+a[i][j]printf("\n");4j=strlen(str)–1str[j]=k5(c=getchar())!='#'num[c-'A']+=1四、编程题1.【参考代码】#include<>#defineN5intmain(){ inta[N],i,j,r,temp; printf("Pleaseinput%dnumbers\n",N); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) { r=i; for(j=i+1;j<N;j++) if(a[j]<a[r]) r=j; if(r!=i) { temp=a[r]; a[r]=a[i]; a[i]=temp; } } printf("Thearrayaftersort:\n"); for(i=0;i<N;i++) printf("%5d",a[i]); printf("\n");return0;}2.【参考代码】#include<>intmain(){ inta[10]={1,2,3,6,7,8,9,10}; intx,j,k=0; printf("Pleaseinput:x="); scanf("%d",&x); if(x>a[7]) a[8]=x; else { for(j=0;j<8;j++) if(x<a[j]) break; for(k=8;k>j;k--) a[k]=a[k-1]; a[j]=x; } for(j=0;j<9;j++) printf("%5d",a[j]); printf("\n");return0;}3.【参考代码】#include<>intmain(){ inta[5][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}; inti,j,sum=0; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%4d",a[i][j]); printf("\n"); } for(i=0;i<5;i++) sum+=a[i][i]; printf("sum=%4d\n",sum);return0;}4.【参考代码】#include<>intmain(){ chars1[100],s2[30]; inti,j; printf("Pleaseinputs1:"); gets(s1); printf("Pleaseinputs2:"); gets(s2); for(i=0;s1[i]!='\0';i++); for(j=0;s2[j]!='\0';j++,i++) s1[i]=s2[j]; s1[i]='\0'; printf("Output\ns1:"); puts(s1);return0;}5.【参考代码】#include<>intmain(){ chars1[100]; inti; printf("Pleaseinputs1:"); gets(s1); for(i=0;s1[i]!='\0';i++); printf("Thelengthofs1is%d\n",i);return0;}
第7章函数一、选择题123456789101112131415BDDABBCBDDAADDA二、程序阅读题1maxis22a=1,b=231 114a=11,b=12,c=256678978178012012三、程序完善题1floatarea(floatr)returns2z=fun(x,y)z=z*x3count=fun(score)count++四、编程题1.【参考代码】#include<>intmain(){ voidf(intn); intn; printf("Pleaseinput:n="); scanf("%d",&n); if(n<=0) printf("Wrongnumber!\n"); else f(n);return0;}voidf(intn){ if(n%2==1) printf("%disaoddnumber.\n",n); else printf("%disaevennumber.\n",n);}2.【参考代码】#include<>#include<>intmain(){ voidf(intm); intm; printf("Pleaseinput:m=");scanf("%d",&m); f(m); return0;}voidf(intm){ inti,k; k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break;if(i>=k+1)printf("%disaPrimeNumber.\n",m);elseprintf("%disnotaPrimeNumber.\n",m);}3.【参考代码】#include<>intgys(intm,intn){ intr; r=m%n; while(r!=0) { m=n; n=r; r=m%n; } returnn;}intgbs(intm,intn,intr){ returnm*n/r;}intmain(){ intm,n,t; printf("Pleaseinput(m,n):"); scanf("%d%d",&m,&n); if(m<n) { t=m; m=n; n=t; } t=gys(m,n); printf("gys=%d\n",t); t=gbs(m,n,t); printf("gbs=%d\n",t); return0;}4.【参考代码】#include<>intmain(){ voidmystrcat(chars1[100],chars2[30]); chars1[100],s2[30]; printf("Pleaseinputs1:"); gets(s1); printf("Pleaseinputs2:"); gets(s2); mystrcat(s1,s2); printf("Output\ns1:"); puts(s1); return0; }voidmystrcat(chars1[100],chars2[30]){ inti,j; for(i=0;s1[i]!='\0';i++); for(j=0;s2[j]!='\0';j++,i++) s1[i]=s2[j]; s1[i]='\0';}
第8章编译预处理一、选择题123456ADDABA二、程序阅读题16,1821535
第9章指针一、选择题123456789101112DBBCDCCCDBCC1314151617CDDAC二、填空题1. 地址,NULL(或0)2. chara,*p;,scanf("%c",&a);,p=&a;3. *m4. for(k=0;k<10;k++)5. *(p+i),p[i],*(x+i)6. str[i]或*(str+i),i三、程序阅读题1. gae2.bcdABCD3.7,8,84.845.31426.efgh7.w,one8.7四、程序完善题1. a[i]或*(a+i)2. *p!='\0' *p-'0'3. p1 p2-x4. max(inta,intb);p=max四、编程题1.【参考代码】#include<>voidsort(int*a,int*b,int*c);intmain(){ intm,n,t; printf("Pleaseinput(mnt):"); scanf("%d%d%d",&m,&n,&t); sort(&m,&n,&t); printf("Theresultis:%d\t%d\t%d\n",m,n,t); return0;}voidsort(int*a,int*b,int*c){ inttemp; if(*a>*b){temp=*a;*a=*b;*b=temp;} if(*a>*c){temp=*a;*a=*c;*c=temp;} if(*b>*c){temp=*b;*b=*c;*c=temp;}}2.【参考代码】程序1:#include<>intstrcompare(char*str1,char*str2);intmain(){ intm; chars1[20],s2[20],*p1,*p2; printf("Pleaseinput(string1):"); scanf("%s",s1); printf("Pleaseinput(string2):"); scanf("%s",s2); m=strcompare(s1,s2); printf("Theresultofstrcompareis:%d\n",m); return0;}intstrcompare(char*str1,char*str2){ inti=0; while((*(str1+i)==*(str2+i))&&(*(str1+i)!='\0')) i++; return(*(str1+i)-*(str2+i));}程序2:#include<>intstrcompare(char*str1,char*str2);intmain(){ intm; chars1[20],s2[20],*p1,*p2; printf("Pleaseinput(string1):"); scanf("%s",s1); printf("Pleaseinput(string2):"); scanf("%s",s2); p1=s1; p2=s2; m=strcompare(p1,p2); printf("Theresultofstrcompareis:%d\n",m); return0;}intstrcompare(char*str1,char*str2){ inti=0; while((*(str1+i)==*(str2+i))&&(*(str1+i)!='\0')) i++; return(*(str1+i)-*(str2+i));}程序3:#include<>intstrcompare(charstr1[],charstr2[]);intmain(){ intm; chars1[20],s2[20],*p1,*p2; printf("Pleaseinput(string1):"); scanf("%s",s1); printf("Pleaseinput(string2):"); scanf("%s",s2); p1=s1; p2=s2; m=strcompare(p1,p2); printf("Theresultofstrcompareis:%d\n",m); return0;}intstrcompare(char*str1,char*str2){ inti=0; while((str1[i]==str2[i])&&(str1[i]!='\0')) i++; return(str1[i]-str2[i]);}
第10章结构体与共用体一、选择题1234567891011CBACCDDDCBD二、填空题1. 112. p->next=head->nexthead->next=p3. p->next三、程序阅读题1. 51,60,212.163.1001,ChangRong,四、程序完善题1. sizeof(structps)或sizeof(bt)2. p=p->next3. person[i].sex五、编程题1.【参考代码】#defineN3#include<>structstudent{ charnum[6]; charname[8]; intscore[2]; floatave;};voidinput(structstudentstu[N]);voidaverage(structstudentstu[N]);intmax(structstudentstu[N]);intmain(){inti,j; structstudentstu[N]; input(stu); average(stu); printf("No\tName\tScore1\tScore2\tAverage\n"); for(i=0;i<N;i++) { printf("%s\t%s\t",stu[i].num,stu[i].name); for(j=0;j<2;j++) printf("%d\t",stu[i].score[j]); printf("%\n",stu[i].ave); } i=max(stu); printf("\nThemaxis:\n"); printf("No\tName\tScore1\tScore2\tAverage\n"); printf("%s\t%s\t",stu[i].num,stu[i].name); for(j=0;j<2;j++) printf("%d\t",stu[i].score[j]); printf("%\n",stu[i].ave); return0;}voidinput(structstudentstu[N]){ inti,j; for(i=0;i<N;i++) { printf("\nPleaseinputNo%dstudent:\n",i+1); printf("No:"); scanf("%s",stu[i].num); printf("Name:"); scanf("%s",stu[i].name); for(j=0;j<2;j++) { printf("score%d:",j+1); scanf("%d",&stu[i].score[j]); } }}voidaverage(structstudentstu[N]){ inti,j,sum; for(i=0;i<N;i++) { for(j=0,stu[i].ave=0;j<2;j++)stu[i].ave+=stu[i].score[j]; stu[i].ave=stu[i].ave/2; }}intmax(structstudentstu[N]){ inti,max,index; max=stu[0].ave; index=0; for(i=1;i<N;i++) { if(max<stu[i].ave) { max=stu[i].ave; index=i; } } returnindex;}2.【参考代码】#include<>#include<>structnode{shortintdata; structnode*next;};typedefstructnodeNODE;structnode*CreatLink();voidPrintLink(NODE*head);intmax(NODE*head);intmain(){ NODE*head; intmax_value; head=CreatLink(); PrintLink(head); max_value=max(head); printf("Themaxis:%d\n",max_value); return0;}structnode*CreatLink(){NODE*head,*p,*q; shortintnum; head=(NODE*)malloc(sizeof(NODE)); head->next=NULL; p=head; printf("Pleaseinput(endof-1)!:\n"); scanf("%d",&num); while(num!=-1) { q=(NODE*)malloc(sizeof(NODE)); q->data=num; p->next=q; p=q; scanf("%d",&num); }p->next=NULL; returnhead;}voidPrintLink(NODE*head){ NODE*p; p=head->next; printf("Thedatais:\n"); while(p!=NULL) { printf("%4d",p->data); p=p->next; } printf("\n");}intmax(NODE*head){ NODE*p; shortintmax=-32768; p=head->next; while(p!=NULL) { if(max<p->data) max=p->data; p=p->next; } returnmax;}
第11章位运算一、选择题1234DBCA二、填空题1. 000011112. x|ff003. 43三、程序阅读题1. 02.11223.0四、编程题1.【参考代码】#include<>intmain(){ shortintdata,low,high; printf("Pleaseinput(shortint):"); scanf("%d",&data); low=data&0x00ff;/*0x00ff表示低字节全1*/ high=data&0xff00;/*0xff00表示高字节全1*/printf("data:0x%x,thevalueoflowbyteis:0x%x\n",data,high); printf("data:0x%x,thevalueofhighbyteis:0x%x\n",data,low); return0;}2.【参考代码】#include<>intmain(){ shortintdata,result; printf("Pleaseintput(shortint):"); scanf("%d",&data); result=data^0x000f;/*0x000f表示低4位全1,高12位全0*/printf("Thedatais0x%x\nTheresultis:0x%x\n",data,result); return0;}
第12章文件操作一、选择题123456789101112DB、CCBBABCDBCC131415CDC二、填空题1. 二进制ASCII(文本)2. FILE*fp#include<>3. n–1buf的首地址4.15.用以获得文件读写位置标记指针的位置,函数返回值为当前文件读写位置标记指针相对于文件开头的字节数6.使文件读写位置标记指针重新返回文件的开头三、程序阅读题1. 122.end3.34.hello,四、程序完善题1. !feof(fp) fgetc(fp)2. fopen(“”,”r”) fp,”%d”,&temp z++3. (ch=getchar())ch,fp五、编程题1.【参考代码】#include<>#include<>#include<>intmain(){ FILE*fp; charstr[100],filename[10]; inti=0; if((fp=fopen("","w+"))==NULL) { printf("Cannotopenfile!\n"); exit(0); } printf("Pleaseinput(string):\n"); gets(str); while(str[i]!='!') { if(str[i]>='a'&&str[i]<='z') str[i]=str[i]-32; fputc(str[i],fp); i++; } rewind(fp); fgets(str,strlen(str)+1,fp); printf("\nTheresultis:\n"); printf("%s\n",str); fclose(fp); return0;}2.【参考代码】#include<>#include<>#defineN5structstudent{ charnum[10];charname[8];intscore[3];floatave;}stu[N];intmain(){ inti,j,sum;FILE*fp; for(i=0;i<N;i++){ printf("\nPleaseinputstudentinformation:\n",i+1);printf("No:");scanf("%s",stu[i].num);printf("Name:");scanf("%s",stu[i].name);sum=0;for(j=0;j<3;j++){ printf("Score%d:",j+1);scanf("%d",&stu[i].score[j]);sum+=stu[i].score[j]; }stu[i].ave=sum/; }if((fp=fopen("","w"))==NULL){printf("cannotopenstudforwrite!\n");exit(0);} for(i=0;i<N;i++){ fwrite(&stu[i],sizeof(structstudent),1,fp);}fclose(fp); if((fp=fopen("","r"))==NULL){printf("cannotopenstudforread!\n");exit(0);} printf("\nNo\tName\tScore1\tScore2\tAverage\n"); for(i=0;i<N;i++){fread(&stu[i],sizeof(structstudent),1,fp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国特种花纹带市场调查研究报告
- 2025至2031年中国单面毛皮机针筒行业投资前景及策略咨询研究报告
- 2025至2030年中国强磁设备数据监测研究报告
- 2025版砂石场安全生产承包与设备维护服务合同3篇
- 二零二五年度儿童房装修合同书(安全环保主题)3篇
- 二零二五版环保园区物业管理服务委托合同范本3篇
- 二零二五年度个人消费信贷借款协议2篇
- 二零二五年度企业设备租赁融资合同规范文本4篇
- 二零二五年度科技馆食堂餐饮承包经营协议3篇
- 2025年钢材市场交易风险管理合同范本
- 江苏中国中煤能源集团有限公司江苏分公司2025届高校毕业生第二次招聘6人笔试历年参考题库附带答案详解
- 【语文】第23课《“蛟龙”探海》课件 2024-2025学年统编版语文七年级下册
- 北师版七年级数学下册第二章测试题及答案
- 加强教师队伍建设教师领域学习二十届三中全会精神专题课
- 2025警察公安派出所年终总结工作汇报
- 2024-2025学年人教版数学七年级上册期末复习卷(含答案)
- 机动车检测站新换版20241124质量管理手册
- 2024年决战行测5000题言语理解与表达(培优b卷)
- 四年级数学上册人教版24秋《小学学霸单元期末标准卷》考前专项冲刺训练
- 中国游戏发展史课件
- 2025年慢性阻塞性肺疾病全球创议GOLD指南修订解读课件
评论
0/150
提交评论