您好,欢迎访问三七文档
习题一...................2习题二...................3习题三...................4习题四.................10C语言程序设计习题解答习题一一、单项选择题C2.A3.D二、填空题1.顺序结构选择结构循环结构2.算法3.语言简洁、运算符丰富、结构化语言4.可移植性强、代码效率高、书写格式自由5.错误隐蔽、有时会难以理解、有时会难以修改6.群举法(枚举法)、递推法(迭代法)、递归法7.做什么怎么做三、应用题1.includestdio.hvoidmain(){printf(“*************************\n”);printf(“Clanguageprogram\n”);printf(“*************************\n”);}2.includestdio.hvoidmain()Z\+{inta,b,c,max;scanf(“%d%d%d”,&a,&b,&c);if(ab)max=a;elsemax=b;if(maxc)max=c;printf(“Max=%d\n”,max);}习题二一、单项选择题1.A,D,E2.B,E3.B,D,E,F,H4.B,F5.A,B,E二、填空题1.⑴int⑵char⑶double⑷long⑸char⑹char⑺int⑻long2.⑴0⑵0⑶2⑷4⑸4⑹8⑺0⑻23.21114.不做5.sin(25*3.14159/180)+cos(30*3.14159/180)6.28.5三、给出各个程序的运行结果1.运行结果如下:321552.运行结果如下:6,99,27习题三一、单项选择题1.D2.B3.D4.C5.B6.C7.B8.A9.C10.D11.D12.D13.B14.A15.A16.B17.C18.C19.B20.B21.D22.C23.C24.D25.C26.C27.D28.D29.B30.A二、填空题1.从标准设备(键盘)上读入一个字符向标准设备(键盘)上输出一个字符#includestdio.h2.以十进制形式输入一个整数表示从标准输入设备(键盘)读取输入的3个整型数表示掉过3个整数不读取用来输入一个字符3.以十进制形式输出一个整数以十六进制形式输出一个整数以十进制小数形式输出,输出的数据长度为7位,其中有两位为小数以字符形式输出一个字符4.分程序;;5.-16.非007.a%7==0else8.39.210.forwhiledo-while11.Continue12.a=16,y=4213.1014.y=1915.2222216.3917.718.5,519.n=420.-321.8三、程序阅读分析题1.2.3.04.5675.thisnumberisahuiwen四、编程题1.编写一个程序,要求用户输入两个整数,判定其中一个是否能整除另一个。#includestdio.hintmain(){inta,b;while(scanf(%d%d,&a,&b)==2){if(a%b)printf(不能整除\n);elseprintf(能整除\n);}return0;}2.编程实现:输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:①能同时被3,5,7整除;②能被其中两数(要指出哪两个)整除;③能被其中一个数(要指出哪一个)整除;④不能被3,5,7任一个整除。#includestdio.hvoidmain(){inta;printf(请输入一个整数\n);scanf(%d,&a);if(a%3==0&&a%5==0&&a%7==0)printf(%d能同时被3,5,7整除\n,a);elseif(a%3!=0&&a%5==0&&a%7==0)printf(%d能同时被5,7整除\n,a);elseif(a%3==0&&a%5!=0&&a%7==0)printf(%d能同时被3,7整除\n,a);elseif(a%3==0&&a%5==0&&a%7!=0)printf(%d能同时被3,5整除\n,a);elseif(a%3==0&&a%5!=0&&a%7!=0)printf(%d能被3整除\n,a);elseif(a%3!=0&&a%5==0&&a%7!=0)printf(%d能被5整除\n,a);elseif(a%3!=0&&a%5!=0&&a%7==0)printf(%d能被7整除\n,a);elseprintf(%d不能被3,5,7整除\n,a);}3.市郊长途电话收费标准如下:通话时间在三分钟以下收费一角,三分钟以上则每超过一分钟加一角。在7:00—21:00之间通话者,按收费标准全价收费;在其它时间通话者,按收费标准的一半收费。请计算某人在x时间通话y分钟,应缴多少电话费。(通话时间利用整数输入实现)#includestdio.hmain(){floatx,y=0;intt;scanf(%f%d,&x,&t);if(t7&&t21){if(x3)y=0.1;elsedo{y=0.2+y;x=x-1;}while(x-30);}else{if(x3)y=0.1/2;elsedo{y=(0.2+y)/2;x=x-1;}while(x-30);}printf(%f,y);}4.输入a、b、c三条边,判断它是否构成三角形。若能构成三角形,则计算三角形面积。#includestdio.h#includemath.hmain(){floata,b,c,S=0,x=0;printf(输入三角形三条边的边长:);scanf(%f%f%f,&a,&b,&c);if(a+bc&&b+ca&&a+cb){x=(a+b+c)/2.0;S=sqrt(x*(x-a)*(x-b)*(x-c));printf(area=%.3f\n,S);}Elseprintf(不能构成三角形\n);}5.打印出所有”水仙花数”。所谓”水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个”水仙花数”,因为153=13+53+33。#includestdio.h#includemath.hmain(){inti;inta,b,c;for(i=100;i=999;i++){a=i%10;/*取个位数*/b=i/10%10;/*取十位数*/c=i/100;/*取百位数*/if(i==a*a*a+b*b*b+c*c*c)printf(%d,i);}}6.编写一个程序,在屏幕上显示如下图形(图形的层数读者自行设定):*************************#includestdio.h#includemath.hmain(){inti,j,k;for(i=-3;i=3;i++){for(j=1;j=abs(i);j++)printf(%c,32);for(j=1;j=7-2*abs(i);j++)printf(*);printf(\n);}}7.求斐波那契(Fibonacci)数列:1,1,2,3,5,8,......的前40个数。斐波那契数列的定义:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n≥3)#includestdio.hmain(){intf1,f2,f;inti;f1=f2=1;printf(%d\n%d\n,f1,f2);for(i=1;i=38;i++)/*已经有两个数,只要再产生38个数即可*/{f=f1+f2;f1=f2;f2=f;printf(%d\n,f);}}8.编程实现求1+2+3+…+n之和,并输出当其和第一次大于或等于100时的值及n值。#includestdio.hmain(){inti,s,t=0;i=1;s=0;while(i=100){s=s+i;if(s=100&&t1)/*设定t只求第一次和大于100的内容*/{printf(第一次和大于或等于100时和为%d\n,s);printf(第一次和大于或等于100时n为%d\n,i);t+=1;}i=i+1;}printf(s=%d\n,s);}9.整元换零钱问题。把1元兑换成1分、2分、5分的硬币,共有多少种不同的换法?#includestdio.hmain(){inti,j,k,n;n=100,k=0;for(i=0;i=n/5;i++)for(j=0;j=(n-i*5)/2;j++){printf(5cent=%d\t2cent=%d\t1cent=%d\n,i,j,n-i*5-j*2);k++;}printf(totaltimes=%d\n,k);}10.编写解鸡兔同笼问题的程序。用户输入头的数目和脚的数目,输出鸡、兔各有多少只。#includestdio.hmain(){intx,y,a,b;printf(输入鸡兔头的数目:);scanf(%d,&x);printf(输入鸡兔脚的数目:);scanf(%d,&y);a=x-(y-2*x)/2;b=(y-2*x)/2;printf(鸡有%d只,兔有%d只,a,b);}11.打印杨辉三角形,即(x+y)n展开式的各项系数。并且在程序运行开始时,问用户n的值为多少,接着打印如下形式至指定行数。111121133114641...#includestdio.hintmain(){intn,k,j,c;printf(Input=);scanf(%d,&n);for(k=1;k=n;k++){//printf(%*s,4*(n-k));/*格式控制语句,有和没有是两种显示方式*/c=1;printf(%4d,c);for(j=1;j=k-1;j++){c=c*(k-j)/j;printf(%8d,c);}printf(\n);}return0;}12.个位数是6,且能被3整除的五位数共有多少个?#includestdio.hmain(){inta,count=0;longi;for(i=10000;i100000;i++){a=i%10;if(a==6&&i%3==0)count++;}printf(这样的数共计:%d,count);}习题四一、单项选择题1.C2.D3.D4.D5.C6.D7.B8.A9.B10.B二、填空题1.一15014float2.83.连续数组名4.按行存储5.046.3507.368.99.710.#includestdio.h#includestring.h三、程序阅读分析题1.i==ja[i][j]a[i][j]printf(\n)2.k=323.gbcdefa4.01234512345623456734567845678956789105.you&me四、编程题1.设数组V中的数据元素递增有序,现将x插入到数组V的适当位置,使数组元素的值仍保持有序。#includestdio.hvoidmain(){intV[15]={65,70,73,75,79,81,85,88,90};/*有9个初值,有序*/intn=9,x=77;/*数组中当前有n个数据,将x插入数组V中,仍保持有序*/inti;for(i=n-1;i=0&&V[i]x;i--)/*将V数组中的数据从后往前比较*/V[i+1]=V[i];/*若大于x,后移一个位置*/V[i+1]=x;/*将x插入数组V中*/n++;/*数组中数据个数增1*/for(i=0;in;i++)/*输出数组中的n个数据*/printf(%d,V[i]);printf(\n);}2.定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。#includestdio.hvoidmain(){intarray[30],average[6]={0};inti,j;for(i=0;i30;i++)array[i]=2*(i+1);for(j=0;j6;j++){f
本文标题:习题解答1-4章
链接地址:https://www.777doc.com/doc-2734006 .html