程序设计基础(C语言)(第2版)(微课版)-参考答案 刘颖_第1页
程序设计基础(C语言)(第2版)(微课版)-参考答案 刘颖_第2页
程序设计基础(C语言)(第2版)(微课版)-参考答案 刘颖_第3页
程序设计基础(C语言)(第2版)(微课版)-参考答案 刘颖_第4页
程序设计基础(C语言)(第2版)(微课版)-参考答案 刘颖_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

目录习题1 1习题2 1习题3 3习题4 4习题5 6习题6 9习题7 13习题8 15习题9 16习题10 18习题参考答案习题1选择题12345ADBCB判断题12345对对错对错习题2选择题123456ACAAAC判断题1234错错错错三、编程题1、#include<stdio.h>#include<math.h>intmain(){printf("%f年\n",(ldexp(1.0,128)/1000000/(365*24*60*60)));return0;}2、#include<stdio.h> intmain() { inta,g,s,b,q;scanf("%d",&a);g=a%10;s=a%100/10;b=a%1000/100;q=a/1000;printf("g=%d,s=%d,b=%d,q=%d",g,s,b,q);return0; }3、x表示销售额,y表一个星期的收入#include"stdio.h"intmain(){ floatx,y; printf("请输入销售金额:"); scanf("%f",&x);y=200+x*0.08; printf("%.2f\n",y); return0;}4、#include"stdio.h"intmain(){ floatprincipal,rate,days,interest; printf("请输入本金、利率和天数:"); scanf("%f,%f,%f",&principal,&rate,&days); interest=principal*rate*days/365; printf("%f\n",interest); return0;}5、#include<stdio.h>intmain(){inta=5,v;v=5*5*5;printf("立方体的体积=%d\n",v);return0;}习题3判断题123错对错二、选择题123456BBAADB三、读程序写结果12345697\bx=’61’,’61’k=65,k=41,k=A-12-22678-6,-6四、编程题1.#include<stdio.h> #include<math.h> intmain() { inta,b,c; floatl,s; scanf("%d%d%d",&a,&b,&c); l=(a+b+c)/2.0; s=sqrt(l*(l-a)*(l-b)*(l-c)); printf("三角形面积为:%.1f\n",s);return0; }2.#include<stdio.h> intmain() { intp,k,z; scanf("%d%d",&p,&k); z=((int)((p*0.3+k*0.7)*10+5))/10; printf("最后总成绩为:%d\n",z);return0; }3.#include<stdio.h> intmain() { intx,ge,shi,bai; scanf("%d",&x); bai=x/100; shi=x%100/10; ge=x%10; x=ge*100+shi*10+bai; printf("该数反向输出为%d\n",x);return0; }4.#include<stdio.h> intmain() { charc; printf("输入一个字符:"); scanf("%c",&c); printf("它的前一个字符是%c\n",c-1); printf("它的后一个字符是%c\n",c+1);printf("从小大到顺序输出为字符及ASCI值:%c%4d,%c%4d,%c%4d\n",c-1,c-1,c,c,c+1,c+1); return0; }习题4选择题123456DCBCBB读程序写结果12342,31b=0a=3,b=3,c=2三、编程题1、#include<stdio.h> intmain() { inta,b; scanf("%d,%d",&a,&b); if((a*a+b*b)>100) printf("百位上的数=%d\n",(a*a+b*b)/100); else printf("a+b=%d\n",a+b); return0; }2、#include"stdio.h"intmain(){ intx,n,a,b,c,d,e,y; printf("x="); scanf("%d",&x); a=x/10000;b=(x-10000*a)/1000; c=(x-10000*a-1000*b)/100;d=(x-10000*a-1000*b-100*c)/10; e=x-10000*a-1000*b-100*c-10*d; if(a!=0) {n=5;y=10000*e+1000*d+100*c+10*b+a;} elseif(b!=0) {n=4;y=1000*e+100*d+10*c+b;} elseif(c!=0) {n=3;y=100*e+10*d+c;} elseif(d!=0) {n=2;y=10*e+d;} else {n=1;y=e;} printf("它是%d位数\n",n); printf("原数为%d\n",x); printf("原数逆序为%d\n",y); return0;3.#include"stdio.h"intmain(){ intge,shi,qian,wan,x; printf("请输入一个五位数:\n"); scanf("%ld",&x); wan=x/10000; qian=x%10000/1000;shi=x%100/10; ge=x%10; if(ge==wan&&shi==qian) printf("是一个回文数!\n"); else printf("这不是一个回文数!\n"); return0;}4、略习题5选择题1234AAAD二、编程题1.#include<stdio.h>intmain(){floats=0,t=1;intn;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+3!+…+20!=%e\n",s);return0;}2.#include<stdio.h>intmain(){ intn,i; floatfu,mo,t; fu=100000.0;/*第一天富翁得钱数*/ mo=0.01;/*第一天陌生人得钱数*/ t=0.01;/*陌生人每天得钱数*/ for(i=2;i<=30;i++) { t=2*t; mo+=t; fu=fu+100000.0; } printf("\nrichmoney=%f\nstranger'smoney=%f\n",fu,mo); return0;}3.#include"stdio.h" intmain() { intx,y,z; printf("公鸡\t母鸡\t小鸡\n"); for(x=0;x<=100;x++) for(y=0;y<=100;y++) { z=100-x-y; if((5*x+3*y+z/3.0)==100) printf("%d\t%d\t%d\n",x,y,z); } return0; } 4.假定第n+1天书数量为x,第n天书数量为y,则y-(y/2+2)=x,即y=2*x+4。#include<stdio.h> intmain() { intday,x,y; x=0; for(day=8;day>0;day--) { y=2*x+4; x=y; } printf("\n书共有%d本\n",y); return0; }5.#include<stdio.h> intmain() { inti; for(i=2;i<=9;i++)//循环判断2~9有没有同构数 { if(i==i*i%10) printf("同构数%d是%d右边的数\n",i,i*i); } for(i=10;i<=99;i++)//循环判断10~99有没有同构数 { if(i==i*i%100) printf("同构数%d是%d右边的数\n",i,i*i); } return0; }6.(1)#include<stdio.h>intmain(){ inti,j,k;for(i=0;i<=3;i++) { for(j=0;j<=i;j++)printf("");for(k=1;k<=7;k++)printf("*");printf("\n"); }return0;}(2)#include<stdio.h>intmain(){ inti,j,k;for(i=0;i<=3;i++) { for(j=0;j<=i;j++)printf("");for(k=0;k<=7-2*i;k++)printf("*");printf("\n"); }return0;}7.#include<stdio.h>intmain(){ inti,j,k;for(i=1;i<=9;i++) { for(k=1;k<=9-i;k++) {printf("");}for(j=1;j<=2*i-1;j++) {printf("%d",i);}printf("\n"); }return0;}AI助你教与学方法二:#include<stdio.h>intmain(){intday=1;floatdayup=1.0,daydown=1.0,dayfactor=0.01;for(day=1;day<=365;day++) {if((day-1)%7+1==6||(day-1)%7+1==7) dayup=dayup*(1-0.01); else dayup=dayup*(1+0.01);}printf("一周向上5天向下2天的力量值=%.2f\n",dayup);return0;}习题6选择题1234567BDDCDDD二、读程序写结果1234852852XYZ98768三、编程题1.#include<stdio.h> #include<stdlib.h> #defineSNUM10 intmain() { inti,score[SNUM],sum=0; floatave; printf("请输入学生成绩:\n"); for(i=0;i<SNUM;i++) { scanf("%d",&score[i]); sum+=score[i]; } ave=(float)sum/SNUM; for(i=0;i<SNUM;i++) { if(score[i]>ave) printf("%d",score[i]); } system("pause"); return0; } 2.参考程序#include<stdio.h>#include<stdlib.h>intmain(){ inta[10],i,j,temp; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0,j=9;i<j;i++,j--) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;i<10;i++) printf("%d",a[i]); system("pause"); return0;}3.#include<stdio.h>#include<stdlib.h>intmain(){ inta[10],i,Max,pMax,Min,pMin; for(i=0;i<10;i++) scanf("%d",&a[i]); Max=Min=a[0]; pMax=pMin=0; for(i=1;i<10;i++) { if(a[i]>Max) { Max=a[i]; pMax=i; } if(a[i]<Min) { Min=a[i]; pMin=i; } } printf("最大值为:%d;下标为:%d\n",Max,pMax); printf("最小值为:%d;下标为:%d\n",Min,pMin); system("pause"); return0;}4.#include<stdio.h>#include<stdlib.h>intmain(){ charstr[80]; inti,a[4]={0}; gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]>='A'&&str[i]<='Z') a[0]+=1; elseif(str[i]>='a'&&str[i]<='z') a[1]+=1; elseif(str[i]>='0'&&str[i]<='9') a[2]+=1; else a[3]+=1; } printf("大写字母个数为:%d\n",a[0]); printf("小写字母个数为:%d\n",a[1]); printf("数字字符个数为:%d\n",a[2]); printf("其它字符个数为:%d\n",a[3]); system("pause"); return0;}5、#include"stdio.h"intmain(){ chara[70],b[70],c[70]; gets(a); gets(b); if(strlen(a)>strlen(b)) {strcpy(c,a);strcpy(a,b);strcpy(b,c);} printf("a=%s\nb=%s\n",a,b); strcat(a,b); strcpy(c,a); printf("c=%s\n",c);return0;} 6. #include<stdio.h> #include<stdlib.h> intmain() { inta[3][3]; inti,j,sum=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("请输入第%d行、第%d列的元素的值:",i+1,j+1); scanf("%d",&a[i][j]); } } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("主对角线元素之和是:%d\n",sum); system("pause"); return0; } 习题7选择题123AAB二、读程序写结果1250,80,13030,20,1084三、编程题1.#include<stdio.h>#include<stdlib.h>intsum(intx){ ints=0; while(x) { s+=x%10; x=x/10; } returns;}intmain(){ intn,s; printf("请输入一个整数:\n"); scanf("%d",&n); s=sum(n); printf("%d的各位数字之和为:%d\n",n,s); system("pause"); return0;}2.#include<stdio.h>#include<stdlib.h>intchange(intm){ ints=0; while(m) { s=s*10+m%10; m=m/10; } returns;}intmain(){ intn; scanf("%d",&n); printf("%d\n",change(n)); system("pause"); return0;}3.#include<stdio.h>intnum(intn){ intm; if(n==10) m=1; else m=2*num(n+1)+1; returnm;}intmain(){ printf("%d\n",num(1));}4.#include<stdio.h>#include<stdlib.h>#defineF(m,n)m=m+n,n=m-n,m=m-nintmain(){ intm,n; printf("请输入两个整数:"); scanf("%d%d",&m,&n); F(m,n); printf("m=%d,n=%d\n",m,n); system("pause"); return0;}习题8选择题123456CABBAB二、读程序写结果123a=0b=7-1-5,-12,-7三、编程题1.#include<stdio.h>#include<stdlib.h>intmain(){inta[10],*p,i,sum=0; floatave; p=a; for(i=0,p=a;i<10;i++,p++) { scanf("%d",p); sum=sum+*p; } ave=sum/10.0; printf("平均值为:%f\n",ave); printf("小于平均值的数为:"); for(i=0,p=a;i<10;i++,p++) { if(*p<ave) printf("%d",*p); } system("pause"); return0;}2.#include<stdio.h>#include<stdlib.h>intmain(){ inta[10],i,j,*p,*q,temp; for(p=a;p<a+10;p++) scanf("%d",p); for(p=a,q=a+9;p<q;p++,q--) { temp=*p; *p=*q; *q=temp; } for(p=a;p<a+10;p++) printf("%d",*p); system("pause"); return0;}3.#include<stdio.h>#include<stdlib.h>intmain(){ charstr[80],*p=str; gets(p); while(*p!='\0') { if(*p>='A'&&*p<='Z') *p=*p+32; elseif(*p>='a'&&*p<='z') *p=*p-32; p++; } p=str; puts(p); system("pause"); return0;}习题9一、判断题1234错错错对二、选择题1234CDBD三、编程题1.(略)2.#include"stdio.h"#include"malloc.h"structYangtzeRiver{intnum;charname[10]; charcity[100];structYangtzeRiver*next;};structYangtzeRiver*creat(intn){structYangtzeRiver*head,*pf,*pb;inti;for(i=0;i<n;i++){pb=(structYangtzeRiver*)malloc(sizeof(structYangtzeRiver));printf("请输入编号城市名称城市简介\n");scanf("%d%s%s",&pb->num,&pb->name,&pb->city);if(i==0)pf=head=pb;elsepf->next=pb;pb->next=NULL;pf=pb;}return(head);}voidprint(structYangtzeRiver*head){printf("编号\t城市名称\t城市简介\n");while(head!=NULL){printf("%d\t%s\t%s\n",head->num,head->name,head->city);head=head->next;}}intmain(){structYangtzeRiver*head;intn;printf("请输入城市的个数:");scanf("%d",&n);head=creat(n);print(head);return0;}习题10一、选择题12345BDAAA二、编程题1.2

温馨提示

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

最新文档

评论

0/150

提交评论