C语言答案.docx
- 文档编号:19748331
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:16
- 大小:17.67KB
C语言答案.docx
《C语言答案.docx》由会员分享,可在线阅读,更多相关《C语言答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言答案
第0章程序设计概论:
一、ACC
第1章C程序设计基础知识
一、1-5、DAAAC
2-10、DDABA
11-15、ACDAB
第2章简单C语句
一、1-5、CBDAA
6-7、AD
第3章分支结构程序设计
一、1-5、DDDCA
6-8、CBC
第4章循环结构程序设计
一、1-5、CCCA无答案
6-10、CBAAB
11-14、DCCA
二、1、[1]n%10[2]max=t;
2、[1]k++[2](i*100+k*10+j)%2==0
3、[1]k>=0[2]k/10[3]continue
4、[1]c!
=’/n’[2]c-32
5、[1]x>=0&&x<=100[2]x 6、[1]yea=0[2]yea==1[3]n%5==0 第5章函数 一、1-6CBCBDD 二、1、[1]f(m)*f(r)>0[2]fabs(f(r))<=1.0e-3 2、[1]a%k==0[2]isprime(k+2) 第6章数组 一、1-5ADCBB 6-9BCAD 二、1、[1]a[i][2]b[j] 2、[1]&a[i][j][2]a[i][0][3]s[i]=a[i][j] 3、[1]a[i][k]*b[k][j] [2]c[i][j] 4、[1]%[2]/[3]j=i;j<=0;j++ 第7章指针 一、 1-5DADAA 11、C12、C 二、 1、[1]num=*b[2]num=*c 2、[1]i=n-1;i>=k;i— [2]a+k[3]printf(“\n”) 第8章字符数据处理 一、1-5: AACBB 6-9: BAAB 二、 1、[1](*p! =’\0’)&&(*q! =’\0’) [2]*p<*q 2、[1]k 程序题答案: 第3章分支结构程序设计 (1)P53页1输出三个数,按由小到大的顺序输出。 程序如下: #include voidmain() { inta,b,c,t; scanf(“%d%d%d”,&a,&b,&c); if(a>b) {t=a; a=b; b=t;} if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t;} printf("%d,%d,%d",a,b,c); } (2)P53页2输入一个不超过5位的整数,求解该数是几位数,计算机该数各位数字的和;将该数逆序输出。 如用户输入的数为178,则输出871 程序如下: #include voidmain() { intnum,ten_thousand,thousand,hundred,ten,indiv,place; printf("请输入一个整数(0-99999): "); scanf("%d",&num); if(num>9999) place=5; elseif(num>999) place=4; elseif(num>99) place=3; elseif(num>9) place=2; elseplace=1; printf("这个数是%d位数! \n",place); ten_thousand=num/10000;//ten_thousand代表万位,以下分别代表千位、百位、十位和个位 thousand=(num-ten_thousand*10000)/1000; hundred=(num-ten_thousand*10000-thousand*1000)/100; ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(num-ten_thousand*10000-thousand*1000-hundred*100)%10; switch(place) { case5: printf("这个数的正序是: %d%d%d%d%d\n",ten_thousand,thousand,hundred,ten,indiv); printf("这个数的逆序是: %d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);break; case4: printf("这个数的正序是: %d%d%d%d\n",thousand,hundred,ten,indiv); printf("这个数的逆序是: %d%d%d%d\n",indiv,ten,hundred,thousand);break; case3: printf("这个数的正序是: %d%d%d\n",hundred,ten,indiv); printf("这个数的逆序是: %d%d%d\n",indiv,ten,hundred);break; case2: printf("这个数的正序是: %d%d\n",ten,indiv); printf("这个数的逆序是: %d%d\n",indiv,ten);break; case1: printf("这个数的正序是: %d\n",indiv); printf("这个数的逆序是: %d\n",indiv);break; } } (3)P53页3编程判断输入的整数的正负性和奇偶性并进行输出。 程序如下: #include voidmain() { intn; printf("请输入一个整数: "); scanf("%d",&n); if(n>=0) { if(n%2==0) printf("这是个正偶数\n"); else printf("这是个正奇数\n"); } else { if(n%2==0) printf("这是个负偶数\n"); else printf("这是个负奇数\n"); } } (4)P53页4输入三角形三条边长a,b,c,判断它们能否构成三角形,若能构成三角形,指出是何种三角形。 详细说明请看教材。 程序如下: //是否构成三角形 #include voidmain() { inta,b,c; printf("请输入三角形三条边长: "); scanf("%d%d%d",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a) { printf("不能构成三角形! "); return; } if(a==b&&b==c) { printf("这个三角形是等边三角形"); } elseif(a==b||b==c||a==c) { printf("这个三角形是等腰三角形"); } else { printf("这个三角形是普通三角形"); } } 第4章循环结构程序设计 (1)P83页4编写程序,输出200以内所有能被7整除的数。 程序如下: #include voidmain() { inti,count=0; printf("200之内能被7整除的数是: \n"); for(i=7;i<=200;i++) { if(i%7==0) { printf("%5d",i); count++; if(count%5==0) printf("\n"); } } } (2)P84页8. //1元换1分、2分和5分 程序如下: #include voidmain() { intx,y,z,count1=0; printf("1分\t2分\t5分\n"); for(x=1;x<=100;x++) { for(y=1;y<=50;y++) { for(z=1;z<=20;z++) { if(x+2*y+5*z==100) { printf("%d\t%d\t%d\n",x,y,z); count1++; if(count1%50==0) { printf("请按回车键继续……\n"); getchar();} } } } } } 第5章函数 (1)P124页1编写函数判断一个整数是否是素数。 参考73页例题 程序如下: #include #include voidsushu(intnum); voidmain() { intnum; printf("请输入一个整数: "); scanf("%d",&num); sushu(num); } voidsushu(intnum) { inti,n; n=sqrt(num); for(i=2;i<=n;i++) { if(num%i==0) break; } if(i>n) printf("%d是素数",num); else printf("%d不是素数",num); } (2)P124页3编写函数返回一个整数的位数,并用主函数调用该函数。 注意函数应首先测试给现的整数是否是负数,如果是负数,应对它的相反数求位数。 程序如下: 第一种: #include intweishu(intn); voidmain() { intn,place; printf("请输入一个数: "); scanf("%d",&n); place=weishu(n); printf("这是%d位数\n",place); } intweishu(intn) { if(n<0) n=-n; if(n>9999) return5; elseif(n>999) return4; elseif(n>99) return3; elseif(n>9) return2; else return1; } 第二种解法: #include intweishu(intn); voidmain() { intn,place; printf("请输入一个数: "); scanf("%d",&n); place=weishu(n); printf("这是%d位数\n",place); } intweishu(intn) { intcount=1; if(n<0) n=-n; do { n=n/10; if(n>0) count++; }while(n); returncount; } (3)P124页8,给出年、月、日,计算该日是该年中的第几天。 提示: 关键在于每个月的天数,编个函数实现计算每个月的天数,可用switch语句,另外如果是二月,还要考虑是否是闰年,再编个函数实现闰年的判断 程序如下: #include intmonthdays(intyear,intmonth); voidmain() { inti,year,month,day,days=0; printf("请输入年月日: \n"); scanf("%d%d%d",&year,&month,&day); for(i=1;i { days=days+monthdays(year,i); } days=days+day; printf("这是这一年的第%d天! ",days); } intmonthdays(intyear,intmonth) { switch(month) { case2: { if((year%4==0&&year%100! =0)||(year%400==0)) return29; elsereturn28;} case4: case6: case9: case11: return30; default: return31; } } 第6章数组 1、P144页1由于各裁判打分时可能存在某些主观因素,因此在计算平均分时通常去掉一个最高分和一个最低分。 写一个程序,读入7个裁判所打的分数,去掉一个最高分和一个最低分,计算剩余5个裁判的平均分。 程序如下: #include #defineNJudges7 intmain(void) { floatscores[NJudges];//数组用来存分数 floattotal=0.0,max=0.0,min=10; floataverage=0.0; inti; printf("Enterascoreforeachjudge: \n"); for(i=0;i { printf("Scoreforjudge#%d: ",i+1); scanf("%f",&scores[i]); } for(i=0;i { total+=scores[i]; if(scores[i]>max) max=scores[i]; if(scores[i] min=scores[i]; } average=(total-max-min)/(NJudges-2); printf("Theaveragescoreis%.2f\n",average); return0; } 2、P144页2写一个程序,用选择法对20个整数排序。 程序如下: #include #defineN20 intmain(void) { inti,a[N],j,k,t; printf("输入数组元素: \n"); for(i=0;i scanf("%d",&a[i]); printf("数组是: "); for(i=0;i printf("%3d",a[i]); printf("\n"); for(i=0;i<=N-2;i++) { k=i; for(j=i+1;j<=N-1;j++) if(a[j] k=j; t=a[k]; a[k]=a[i]; a[i]=t; } printf("排序后的数组是: "); for(i=0;i printf("%3d",a[i]); printf("\n"); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 答案