C++课后习题及其答案

合集下载

C语言课后习题及答案

C语言课后习题及答案

三、根据下列条件写一个 C/C++表达式。 1.a 和 b 中有一个大于 d:a>d||b>d 2.将 x、y 中较大的值送给 z:z=x>y?x : y 3.将直角坐标系中点(x,y)表示在第 3 象限内:x<0&&y<0 4.3 个数据 x、y、z 能组成三角形:x+y>z||y+z>z||x+z>y 5.将含有 3 位小数的实型变量 x 的值,四舍五入到百分位:(int)(x*100+0.5)/100. 6.d 是不大于 100 的偶数:d>0&&d<=100&&d%2==0 7.x、y 中至少有一个是 5 的倍数:x%5==0||y%5==0 8.对 n(>0)个人进行分班,每班 k(>0)个人,最后不足 k 人也编一个班,问要编几个班: n%k==0?n/k : n/k+1 四、编程题: 1 编程序求半径为 r、高为 h 的圆柱体的体积。 #include "iostream.h" void main() {float r,h,v; cin>>r>>h; v=3.1416*r*r*h; cout<<v; } 2.任意输入 3 个数据,输出它们的平均值和最小的一个数。 #include "iostream.h"
5.在 cout 命令中,使用 ( )格式控制符可以把一个数据以十六进制的形式输出。hex 6.在 C/C++中,头文件的扩展名一般为( ) 。.h 7.程序的错误一般分两种: ( )和( ) 。前者是编译器可以发现的,而后者编译器则无 法发现。语法错误和逻辑错误 8.在 Visual C++中调试程序时,可以使用快捷菜单中的 ( )命令来插入断点和清除断 点。Insert/Remove Breakpoint 9.C++源程序的扩展名为( ) 。.cpp 10. 在 Visual C++中, 浏览当前项目中的所有源程序文件应在工作区的 ( ) 选项卡。 Fileview 三、 简答题

C语言程序设计课后各章节习题答案

C语言程序设计课后各章节习题答案
答include"math.h"
main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf(ntf("inside");
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
答main()
{
int x,a,b,c;
printf("Input number:");
scanf("%d",&x);
a=x/100;/*变量a中记录x的百倍数字*/
b=x/10%10;/*变量b中记录x的十位数字*/
c=x%10;/*变量c中记录x的个位数字*/
if(a*a*a+b*b*b+c*c*c==x)
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

其基本结构包括顺序结构、选择结构和循环结构三种。

2.算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。

#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。

图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。

《C语言程序设计教程》(第三版)课后习题参考答案

《C语言程序设计教程》(第三版)课后习题参考答案

C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A6、A7、B8、C二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C5、A6、D7、B8、D9、B 10、C 11、A 12、D 13、C 14、B 15、C 16、A17、B 18、C 19、C 20、D 21、A 22、D 23、D 24、D、A25、D 26、A二、填空题1、补码2、10^-138~10^138、15~163、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B 10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B9、D二、填空题1、1 、02、k!=03、if(x>4||x<-4)printf(“%d”,x);else printf(“error!”);4、if(((x>=1&&x<=10)||(x>=200&&x<=210))&&(x%2!=0))Printf(“%d”,x);5、16、17、10!Right!8、a=09、2,110、0<a<b习题六一、单项选择题1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、204、115、3.66、*#*#*#$7、8 5 28、d=1.0 、k++、k<=n9、!(x<0)、x<amin习题七一、单项选择题1、B2、D3、C4、C5、A6、A7、D8、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i<263、break、i==84、a[i]>b[i]、i<3、j<55、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B2、C3、C4、A5、A6、A7、C8、D9、D 10、B 11、A 12、C 13、A 14、C 15、B二、填空题1、return 1、return n+sum(n-1)2、return 1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C6、C7、C8、C9、B 10、C 11、A 12、C 13、B 14、A 15、D 16、B17、C 18、A 19、B 20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max<*q、min>*q习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D 10、11、C 12、D 13、D 14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adabc defghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B6、D7、B8、A9、A 10、B 11、B 12、B 13、C 14、C 15、D 16、A17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\\zk04\\data\\txfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值。

C语言教材课后习题参考答案

C语言教材课后习题参考答案

习题参考答案习题 1一、选择题1、B2、C3、B4、D5、A6、B7、C二、填空题1、源程序文件 c2、obj3、可执行文件 exe4、机器语言汇编语言高级语言三、解答题略四、编程题1、main(){printf(“Hello! Welcome to China!”);}2、main(){int x;scanf(“%d”,&x);if(x>=20&&x<1000) printf(“x=%d”,x);else printf(“Input error!”);}习题 2一、选择题1、C2、A3、B4、D5、 A6、D7、B8、B9、B 10、D11、D 12、B 13、A 14、B 15、C二、填空题1、整型、实型、字符型2、用户标识符、关键字标识符3、存储单元、符号地址、内存地址4、十、十六、八5、double(双精度型)6、 87、5.5000008、a=-327682959、+0017,021,0x11三、写程序运行结果325732577.88, -345.12,7.8765,-345.12307.87654e+00, -3.5e+02a,97,141,611234,2322,4d2CHINESE, CHI四、scanf函数的使用a=3 b=78.5 71.82A a五、用scanf函数输入数据1020Aa1.5-3.75 123.45,67.8注意,其中123.45可以是任意实数,因为该值将被跳过,不用于赋值。

习题 3一、选择题1.C 2.B 3.D 4.D二、填空题基本概念题1.22.23.1阅读程序写出运行结果题4.1.005.1,0,16.9,11,9,10三、写出下面表达式运算后a的值,设原来a=12。

(1)24 (2)10 (3)60 (4)0 (5)0 (6)0习题4一、选择题1、B2、D3、B4、D5、A6、C二、填空题1、1,0,12、1,2,33、ch1>=′A′&&ch1<=′Z′ ch1=ch1-32;三、编程题2961、从键盘输入三个数,然后按照由小到大的顺序输出。

C程序设计第五章课后习题答案

C程序设计第五章课后习题答案

循环结构程序设计P115 5.1 用while计算1至100的合.#include<stdio.h>int main(){int i=1,sum=0;while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定.{sum=sum+i;i++;}printf("The sum is %d .\n",sum);return 0;}P117 5.2 用do-while来做1至100的合.#include<stdio.h>int main(){int i=1,sum=0;do// do-while可以做的事,用while都可以做到.{ //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行.sum=sum+i;i++;}while(i<=100);printf("The sum is %d .\n",sum);return 0;}P118 5.3 比较do-while与while的差别.#include<stdio.h>{int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0.while(i<=10){sum=sum+i;i++;}printf("The sum of 1-10 is %d .\n",sum);return 0;}#include<stdio.h>int main(){int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11.do{sum=sum+i;i++;}while(i<=10); //此重点在于理解二者的差别.printf("The sum of 1-10 is %d .\n",sum);return 0;}P126 5.4 break的例子.#include<stdio.h>int main(){int i,b=0,a,c;for(i=0;i<=1000;i++){printf("Please input amount :"); //循环体内套有输出语句以及跳出语句.scanf("%d",&a);b=b+a;if(b>=100)break; //break是用于跳出循环,对if无效,对while for switch 这一类.}}c=b/i;printf("conut is %d , aver is %d ",i+1,c); //注意%号后的形式,否则可能输出错误.return 0;}P127 5.5 continue的例子.#include<stdio.h>int main(){int i;for(i=1;i<20;i++){if(i%3!=0){continue; //跳过本次I,执行下一个i.}printf("%d ",i);}printf("\n");return 0;}P128 5.6 形成一个4*5的矩阵.#include<stdio.h>int main(){int i,j,a=0; //没有给初值,会出现警告: 使用了未初始化的局部变量“a”.for(i=1;i<=4;i++){for(j=1;j<=5;j++,a++) // a用来控制换行.{if(a%5==0){printf("\n");}printf("%d\t",i*j);}}printf("\n");return 0;}P131 5.7 用一个交错的式子求哌的近似值.#include<stdio.h>#include<math.h>int main() //四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).{float s=1,n=1,m,sum=0,t;for(m=1;;m=m+2) //不确定哪项才会小于等于十的负六次方,所以不指定,无限下去.{ //不指定第二项,执行语句中应该有控制跳出的句子,否则死循环.t=(s)*(n/m); //这是第一项,s是符号,if(fabs(t)<=1e-6) //应该写在这里,题目要求这一项不累加进去.{break;}sum=sum+t; //因为累加项在这里,所以,一旦跳出就不会累加进来了.s=s*(-1); //变号一次.}printf("四分之一哌的值是%f.\n",sum);printf("一个完整哌的值是%f.\n",sum*4);return 0;}//下面这段小代码用来验证关于数值型数据类型的关系.去掉注释,可运行.//如果出现类似值为全1或是全零的话,一般可以考虑数据类型赋值或是定义错了的问题.//#include <stdio.h> //这是关于int float double三者关复杂关系的,乱啊,如果看不懂,可以通过实验自己明白来.////int main() //在C语言中,1.0认为是实数,即是double型,所以,如果你把它用float输出的话,会有警告:警告 1 warning C4305: “=”: 从“double”到“float”截断.//{// float m,a,b,c; //一旦定义了是这种类型的话,输出或是赋值的时候只能扩展不能截断,意思就是能变成double型,不能变成int型啦.而且后面的赋值会跟着它变成相应的类型.比如下面的m=1,其实得到的是m=1.0.// int d,e,f;// m=1;// a=1.0/3;// b=1/3;// c=m/3;// d=1.0;// e=1/4;// f=1.0/4;// printf("%lf(float用double的%lf来输出是可以的.)\n%f\n%f\n%f\n",m,a,b,c); //不管上面定义什么,这边写的输出类型是什么,就按相应的类型输出,有可能会出错,所以建议按定义的类型来输出.当然扩展的是不会错的,截断的是会错的,比如float可以用%lf来输出,而不能用%d来输出.// printf("%d\n%d\n%d\n",d,e,f); //但是,不相应的int型不可以用%f来输出的.因为int float就不同种类,一个是整数,一个是小数,float double同样是有小数点的!!!!// return 0;//}#include<stdio.h>int main() //这个就是著名的Fibonacci(费波那契数列问题){int f1=1,f2=1,f3,i;printf("%12d\n%12d\n",f1,f2);for(i=1;i<=38;i++) //注意,这是个基础问题,(i=1;i<=5;i++)这里其实进行了次运算,因为有f1,f2,要求有个,所以要有个.要么写<=38,要么写<39,边界问题一定要注意,不可以太随意!!!!{f3=f1+f2;printf("%12d\n",f3); //这个问题同样适用于"一对兔子一个月生一对"的问题.,f1=f2; //f1=f1+f2;此时它们各是,所以,现在的f1是.f2=f3; //f2=f2+f1;此时的f1已经是最先二者之和了.可以不用到f3.}return 0;}#include<stdio.h>#include<math.h>int main(){double num;int i;printf("Please input a number :");scanf("%lf",&num); //因为sqrt要求是浮点型,那就给它浮点型,需要时再强制转换.for(i=2;i<=sqrt(num);i++) //这边是<=号没错.{if((int)num%i==0) //如果在这期间有任何一个可以为零的话,则不是素数.{break; //当然跳出.}} //执行到这里的时候,i=5,已经变成了!!if(i<=sqrt(num)){printf("Not %d",(int)num);}else//如上所述,i=5,超出了求根的值,所以是素数.{printf("Yes %d",(int)num);}return 0;}P137 5.10 求100至200间的素数.#include<stdio.h>//不解释,HOHO>>>>...#include<math.h>int main(){double j;int i,k=0;for(j=100;j<=200;j++){for(i=2;i<=sqrt(j);i++){if((int)j%i==0){break;}}k=k+1; //这里是布局的开头.学习一下,有助逻辑.if(i<=sqrt(j)){printf("Not %d ",(int)j);if(k%5==0) //5个换一次行.{printf("\n");}}else{printf("Yes %d ",(int)j);if(k%5==0){printf("\n");}}}return 0;}P139 5.11 密码转换.#include<stdio.h>int main(){char c;c=getchar();while(c!='\n') //这也可以用数组来实现.{if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){if((c>='w'&&c<='z')||(c>='W'&&c<='Z')){c=c-22;}else{c=c+4;}printf("%c",c);c=getchar(); //套在循环里,依次得到字母,而while中判断回车为结束.}}printf("\n"); //这是布局问题.return 0;}P140 0.3 最大公约数和最小公倍数.#include<stdio.h>//最大公约数用累除法,除到无余数时的被除数是最大公约数.main (){int m, n, c, d;int gcd(); //这是最大公约数的缩写,此处调用函数,可以不写里面的实参.int lcm(); //这是最小公倍数的缩写,此处调用函数,可以不写里面的实参.printf("Please input two number :\n");scanf("%d %d",&m,&n);c=gcd(m,n); //c获取最大公约数d=lcm(m,n); //d获取最小公倍数printf("The GCD of %d and %d is : %d !\n", m, n, c);printf("The LCM of %d and %d is : %d !\n", m, n, d);return 0;}int gcd(int x, int y) //最大公约数Greatest Common Divisor{int temp;while(x%y!=0){temp=y; //y在下一轮中作为除数,即是下一轮中的X,所以先闪一边去.y=x%y; //x,y的余数作为下一轮中的Y,由x%y来取得.x=temp; //刚才temp中存储了y的值,现在拿出来作为下一轮中的X使用.}return y; //这是每一轮中的被除数,按原理来,这就是最大公约数,即累除法的原理. }int lcm(int x, int y) //最小公倍数Lowest Common Multiple{int i, temp;if(x<y) //此段代码结果是保证二者大的数在X上,小的数在Y上.即小于号降序.{ //以下为经典三行码,实现两个数的互换.temp=x;x=y;y=temp;}for(i=1; i<=y; i++) //设定一个区间,从1至大的数之间的循环.{if(!((x*i)%y)) //此式子如有余数,加上"!"号,会是假,则不返回,进行下一轮.{ //如此往复,直到取模无余数,那么小的数X乘以区间当前的I值,就是最小公倍数.return x*i;}}}P140 0.4 判断一串输入的字符.#include<stdio.h>int main(){char ch;int a=0,b=0,c=0,d=0,e=0;printf("Please input the string\n");while((ch=getchar())!='\n') //直到回车.{if(ch<='z'&&ch>='a'){a++;}else if(ch==' '){c++;}else if(ch<58&&ch>47){d++;}else if(ch<='Z'&&ch>='A'){b++;}else{e++;}}printf("大写%d 小写%d 空格%d 数字%d 其它%d\n",a,b,c,d,e);}#include<stdio.h>//不理解时可以百度或是谷歌更多的信息.int main() //想办法既快速做完,又要消化理解!!!{int temp,i,a,n,sum=0; //主逻辑,友好性暂时放松.scanf("%d %d",&a,&n); //a是数字,n是要乘的个数.temp=a; //先把第一阶的值存起来.for(i=0;i<n;i++){sum=sum+a;printf("%d + ",a); //事关布局.a=a*10+temp; //重点是每次乘,然后加上上一个数.}printf("= %d .",sum);return 0;}P140 0.6 1!+2!+3!+4!.....的值. #include<stdio.h>int main() //1!+2!+3!+4!.....{int i,j,k,sum=0,m=1;scanf("%d",&k); //比如设定为,值为.for(i=1;i<=k;i++) //第一层循环,指定到.{for(j=1;j<=i;j++) //第二层循环,指定至当前数.{m=m*j;} //到此是阶乘的结构.sum=sum+m;m=1;}printf("%d",sum); //完全不理解时,搜索并参考.return 0; //尝试自己做,第一次做出来就是自己的东西了. }#include<stdio.h>int main(){int a,b;double c,asum=0,bsum=0,csum=0;for(a=1;a<=100;a++) //三个块分别注释验证结果.{asum=asum+a;}for(b=1;b<=50;b++) //在VS运行中,注意*.cpp为C++语言.{bsum=bsum+b*b; //为了避免语言差别,请注意文件名为*.c.}for(c=1;c<=10;c++) //c作浮点运算,所以定义在double类型中.{csum=csum+1/c;}printf("%lf",asum+bsum+csum);return 0;}PP#include<stdio.h>#include<math.h>int main(){int j,k,s[6],x=100,y,sum=0;for(j=153;j<=154;j++){for(k=2;k>=0;k--){s[k]=j%(int)pow(10,k+1)/(int)pow(10,k);y=pow(s[k],3);sum+=y;printf("%d-%d--%d\t",k,s[k],j);}printf("%d\n",sum);}return 0;}P140 0.8 水仙花数.//#include <stdio.h> //一步步的发现问题.////int main() //在%和/号之间,以前pow.以后再做.//{// int i,j,k,a,b,c,sum=0; //这里逻辑对,算出来却错了.// for(i=2;i<=4;i++) //计算机在想什么,看来它的大脑难以模拟.// {// for(j=pow(10,i);j<=pow(10,i+1)-1;j++) //我不完全明白它遵守的逻辑. // {// for(k=0;k<=i;k++)// {// sum+=pow((j%pow(10,i+1)/pow(10,i)),3);// }// if(sum==j)// {// printf("%d 是水仙花数!\n",j);// }// sum=0;// }// }// return 0;//} //为什么还是无法实现?!#include<stdio.h>#include<math.h>int main(){int a,b,c,i,sum=0; //这里只计算三位数的.for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%10;sum+=a*a*a+b*b*b+c*c*c;if(sum==i){printf("%d 是水仙花数.\n",i);}sum=0;}return 0;}P141 0.9 完数.#include<stdio.h>int main(){int i,j,r;for(i=1;i<=1000;i++) //零是个临界值,不能包括它.{r=0; //每次清零重来.类似水仙中的sum.for(j=1;j<i;j++){if(i%j==0) //除得尽即是因子.{r=r+j; //然后累加进去.}}if(r==i) //若相等.{printf("%d 是完数.\n",i);}}return 0;}P141 0.10 2/1+3/2+5/3+8/5+13/8…#include<stdio.h>int main() //10.007051{double i,a=2,b=1,c,s=0; //a是分子,b是分母.for(i=0;i<6;i++) //二十可以用户指定.{s+=a/b; //中间储值变量.c=a+b;b=a;a=c;}printf("%lf\n",s);return 0;}#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{double sum=100,high=100,up,donw,i;for(i=1;i<10;i++) //不管指定到哪个数,都不会超过三百.{up=high/2;donw=up;high=donw; //自咬尾巴问题.sum+=donw*2;}printf("%lf %lf\n",donw,sum);return 0;}P141 0.12 猴子吃桃子.#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{int i,sum=1;for(i=1;i<=10;i++) //临界要清楚,结果要与手算的前几个实例相匹配.{printf("倒数第%d天还剩有%d个桃子.\n",i,sum);sum=(sum+1)*2;}//printf("%d\n",sum);return 0;}#include<stdio.h>#include<conio.h>main() //只关注左半部分.右半部分无视空格.{int i,j,k,m=6; //m可指定,指定中心点位置.可任意奇偶.for(i=1;i<=m;i++) //上半部分.其实也是正三角.{for(j=1;j<=m-i;j++) //一到中心点前i个位置填充空格.printf(" ");for(k=1;k<2*i;k++) //空格后向前填充星号的个数.是奇数.一,三,五... printf("*");printf("\n");}for(i=m-1;i>0;i--) //下半部分.其实也是倒三角.{ //减一是因为行数问题.这是中心行以下的.for(j=m-1;j>=i;j--)printf(" ");for(k=1;k<2*i;k++)printf("*");printf("\n");}getch(); //用户反应后结束.但,没必要.}。

C程序设计(第四版)(谭浩强)完整版_课后习题答案解析

C程序设计(第四版)(谭浩强)完整版_课后习题答案解析

C程序设计(第四版)(谭浩强)第一章课后习题答案P006 1.1 向屏幕输出文字.#include<stdio.h>//预编译. 代码均调试成功,若有失误大多不是代码问题.自已找找.int main(){printf("Welcome to \n");return 0; //与int main对应,为了程序可移植性,建议全用int main + return 0;.}P008 1.2 求两个数的和.#include<stdio.h>int main(){int a,b,sum;a=5;b=4;sum=a+b;printf("The sum is %d .\n",sum);return 0;}P008 1.3 调用函数比较两个数的大小.#include<stdio.h>int main(){int max(int x,int y); //被调用函数在主函数后面,用前先声明.int a,b,c;scanf("%d,%d",&a,&b); //输入时要按格式来,此处的逗号,用空格会发生错误.c=max(a,b); //a,b作为实参传入被调用函数中.printf("The max is %d .\n",c);return 0;}int max(int x,int y) //定义了两个形参.{int z; //z属于局部变量,可与主函数中相同名字.if (x>y)z=x;elsez=y;return(z); //z作为整个程序的出口值,赋给主函数中的c.}P015 0.6 三个数的大小.(数字0表示课后练习题)#include<stdio.h>int main(){int a,b,c,d; //d是用于存储最大值的.int max(int x , int y , int z); //测试可知,在VS2008中,可以不预先声明.printf("Please input 3 numbers :\n");scanf("%d %d %d",&a,&b,&c);d=max(a,b,c); //调用函数中有三个形参,这里需要传入三个实参,才可运算.printf("The max is :%d .\n",d); // d可以换成max(a,b,c).}int max(int x , int y , int z){int m;if (x>y && x>z) //求三者之大的一种方法.m=x;if (y>x && y>z)m=y;if (z>y && z>x)m=z;return (m); //返回值m给主函数中的d.}C程序设计(第四版)(谭浩强)第2章课后习题答案算法——程序的灵魂P017 2.1 计算机1-5相乘的积.#include<stdio.h>int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<6;i++) //这里是到6.{s=s*i; //相乘}printf("The sum is %d .\n",s);return 0;}#include<stdio.h> //作出要求:换成1到11间奇数相乘.int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2{if(i%2!=0) //i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; //跳过这个for循环的这一次,执行下一次.}printf("The sum is %d .\n",s);return 0;}P019 2.2 按要求输出80分以上的学生信息.暂时没法做.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的一门基础课程,通过学习该课程,我们可以掌握C语言的基本语法和编程技巧,培养我们的编程思维和解决问题的能力。

在课程学习过程中,老师会布置一些课后习题,以巩固我们的知识和提高我们的编程水平。

下面我将分享一些C语言程序设计课后习题及其答案,希望对大家有所帮助。

1. 习题一:编写一个程序,输入一个整数,判断该数是否为素数。

```c#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个整数:");scanf("%d", &num);for (i = 2; i <= num / 2; i++) {if (num % i == 0) {flag = 1;break;}}if (flag == 0)printf("%d是素数。

\n", num);elseprintf("%d不是素数。

\n", num);return 0;}```2. 习题二:编写一个程序,输入一个正整数n,计算并输出1到n之间所有偶数的和。

```c#include <stdio.h>int main() {int n, i, sum = 0;printf("请输入一个正整数:");scanf("%d", &n);for (i = 2; i <= n; i += 2) {sum += i;}printf("1到%d之间所有偶数的和为:%d\n", n, sum);return 0;}```3. 习题三:编写一个程序,输入一个正整数n,计算并输出n的阶乘。

```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个正整数:");scanf("%d", &n);for (i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", n, factorial);return 0;```4. 习题四:编写一个程序,输入一个正整数n,判断并输出n是否为完数。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

c程序设计教程课后习题答案

c程序设计教程课后习题答案

c程序设计教程课后习题答案在编写C语言程序时,理解并完成课后习题是掌握编程知识的重要步骤。

以下是一些典型的C语言程序设计教程课后习题答案的示例,这些答案涵盖了基础语法、数据结构、函数、指针等概念。

习题1:变量声明和初始化编写一个C程序,声明一个整型变量`x`和一个浮点型变量`y`,并将它们分别初始化为10和3.14。

```c#include <stdio.h>int main() {int x = 10;double y = 3.14;printf("x = %d\n", x);printf("y = %f\n", y);return 0;}```习题2:条件语句编写一个程序,判断一个整数变量`a`的值,如果`a`大于10则输出"Greater than 10",如果小于10则输出"Less than 10",如果等于10则输出"Equal to 10"。

```c#include <stdio.h>int main() {int a;printf("Enter an integer: ");scanf("%d", &a);if (a > 10) {printf("Greater than 10\n");} else if (a < 10) {printf("Less than 10\n");} else {printf("Equal to 10\n");}return 0;}```习题3:循环编写一个程序,使用`for`循环打印从1到10的整数。

```c#include <stdio.h>int main() {for (int i = 1; i <= 10; ++i) {printf("%d ", i);}printf("\n");return 0;}```习题4:数组编写一个程序,声明一个整数数组`arr`,包含5个元素,初始化为1, 2, 3, 4, 5,并打印数组中的所有元素。

C语言课后习题附标准答案

C语言课后习题附标准答案
m=log10(p/(p-d*r))/log10(1+r);
printf("m=%6.2f\n",m);
return 0;
}
6、请编将“China”,编译成密码,密码规律是:用原有的字母后面第4个字母代替原来的字母。
#include <stdio.h>
int main()
{
char c1='C',c2='h',c3='i',c4='n',c5='a';
//分别代表个位,十位,百位,千位,万位和位数
printf("请输入一个整数(0-99999):");
scanf("%d",&num);
if (num>9999)
place=5;
elseif (num>999)
place=4;
elseif (num>99)
place=3;
elseif (num>9)
酽锕极額閉镇桧猪訣锥。
#include <stdio.h>
int main ()
{
float h,r,l,s,sq,vq,vz;
float pi=3.141526;
printf("请输入圆半径r,圆柱高h∶");
scanf("%f,%f",&r,&h);//要求输入圆半径r和圆柱高h
彈贸摄尔霁毙攬砖卤庑。
謀荞抟箧飆鐸怼类蒋薔。
max=(temp>c)?temp:c;/*将a和b中的大者与c比较,取最大者*/
厦礴恳蹒骈時盡继價骚。

《C语言程序设计》课后习题参考答案

《C语言程序设计》课后习题参考答案
for(i=1;i<=n;i++)
{
t=t+i;
s=s+t;
}
printf("s=%d\n",s);
}
习题
一、选择题
1.B 2.A 3.A 4.D 5.C 6.B 7.A 8.A
二、填空题
1.按行的顺序依次存放的
2.0
3.4
4.6
三、编程题
1.有一个多项式:Pn(x)=a0xn+a1xn-1+…+an
2.0 1
3.1
4.4
5.-1
三、编程题
1.给出等级成绩′A′、′B′、′C′、′D′、′E′,假设,90分以上为′A′,80~89分为′B′,70~79分为′C′,60~69分为′D′,60分以下为′E′,输入一个等级成绩,问属于哪一个分数段。
参考代码如下:
main()
{
int score,m,n;
scanf("%d",&n);
for(i=0;i<5;i++)
if(n>a[i])
continue;
else
break;
for(j=4;j>=i;j--)
a[j+1]=a[j];
a[i]=n;
for(i=0;i<6;i++)
printf("%d,",a[i]);
printf("\n");
}
4.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。
二、填空题
1. BASIC、FORTRAN、AL_GOL60和COBOL

C语言程序设计(铁道出版社第二版)课后习题参考答案

C语言程序设计(铁道出版社第二版)课后习题参考答案

C语言程序设计课后习题参考答案第1章一、选择题1.C2.B3.A4.B5.D二、填空题1.main2. main3.有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性4. 顺序、分支和循环5. 自顶向下,逐步细化、模块化设计、限制使用goto语句第2章一、选择题1.C2.C3.B4.C5.A二、叙述题1. 向菜单或工具栏添加命令(1)单击“工具”菜单中的“自定义”,或者右单击菜单栏(或工具栏),在弹出的快捷菜单中选择“自定义”命令选项。

(2)在“命令”选项卡的“请选择要重排的菜单或工具栏”下,选择要更改的菜单或工具栏,如选择工具栏,在其对应的下拉列表框中选择“调试”,然后单击“添加命令”。

(3)在“添加命令”话框中,从“类别”列表中选择类别名称,然后从“命令”列表中选择要添加的命令。

(4)单击“确定”,再单击“关闭”。

2.项目和解决方案是Visual Studio 2010提供的两类容器。

项目是构成某个程序的所有项的容器,该程序可能是控制台应用程序、基于窗口的应用程序或某种别的程序,构成项目的项可以是源代码文件、窗体、类、资源文件等。

一个解决方案可包含一个或多个项目,以及一些其他项。

例如,一个分布式系统可能由若干个不同的程序组成,而各个程序是作为同一个解决方案内的项目开发的。

源文件只有放在相关的项目中才可以生成可执行程序。

3.在解决方案资源管理中,首先移除该项目中的例1.1程序代码,然后右单击源文件,如果没有建立例1.2的代码文件,则选择添加→新建项,并选择C++文件,输入文件名和后缀.c,之后输入相关代码,就可生成项目、运行程序了;如果例1.2代码已存于某个源文件中,则选择添加→现有项,添加该源文件,生成、运行即可。

4.在VC++ 2010的编译系统中,编译会从多个角度检测每个错误,如果从多个角度解释都有问题,则系统会提示有多个错误。

也就说,哪怕一个程序中只有一个错误,但生成项目时可能会出现了一系列编译错误和警告信息。

C语言课后习题答案

C语言课后习题答案
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<25;i++)
{
j=25-i;
if(2*i+4*j==80)
break;
}
printf("笼中有鸡%d只,有兔%d只",i,j);
}
10.输出1~999中能被3整除,且至少有一位数字是5的所有整数。
#include<stdio.h>
#include<stdio.h>
void main()
{
int i=0,sum=0;
float h=100;
while(i<10)
{
sum+=h;
h=h/2;
sum+=h;
i++;
}
printf("共经过%d米\n",sum);
printf("第十次反弹高度为:%f",h);
}
9.鸡与兔同笼,其中共有25个头,有80只脚,问笼中鸡和兔各多少只?
void main(void)
{
int i;
for(i=1;i<1000;i++)
{
if(i%3==0)
{
if(i%10==5||i%100==5||1%1000==5)
{
printf("%d\n",i);
}
}
}
}
11. 1.求2~1000中的守形数(若某数的平方,其低位与该数本身相同,则称该数为守形数。例如25,25的平方=625,625的低位25与原数相同,则25称为守形数。

C语言课后习题答案

C语言课后习题答案

第一章习题答案一、选择题1~5:BDCDA 6~10:DABBB 11~12:CC二、填空题1、main()2、函数首部,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe6、; 或分号三、编程题#include <stdio.h> /* 包含标准库的信息 */void main() /* 定义名为main 的函数,它不接受参数值 */{ /* main函数的语句都被括在花括号中 */printf("hello, world\n");/* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符 */}第二章习题答案一、选择题1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD二、填空题1、整型,实型,字符型,枚举类型2、13、94、123535145、2,16、2,27、10 20 08、a=149、2,3,110、double第三章习题答案一、选择题1~5:CBBBC 6~10:DDDBB二、填空题1、控制语句,表达式语句,复合语句2、;3、{}4、15、a6、c:dec=120,oct=170,hex=78,ASCII=x7、32767,327678、10,A,109、3 310、(1) 123.456001(2) □□□□□□□ 123.456(3) 123.4560(4) 8765.456700(5) □□□□□□ 8765.457(6) 8765.4567(7) 8765.4567三、编程题1、参考答案:#include <stdio.h>void main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c );printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x, y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5. 2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n); printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}2、参考答案:#include <stdio.h>void main(){float a, b, c, t;printf("please input a,b,c:\n"); scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("averageof %6.2f、%6.2f and %6.2f is %6.2f\n",a,b,c,t);}3、参考答案:#include <stdio.h>main(){int R, d;float s;printf("请输入圆的半径");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);}4、参考答案:#include <stdio.h>void main(){int h, f, x, y; /* x为鸡的数量,y为兔的数量 */printf("请输入鸡兔的总头数h,总脚数f:");scanf("%d%d", &h, &f);x=(4*h-f)/2;y=(f-2*h)/2;printf("笼中有鸡%d 只,有兔%d只。

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案C程序设计是一门基础的计算机编程课程,它教授学生如何使用C语言编写程序。

C语言是一种结构化编程语言,广泛用于系统软件、嵌入式系统和各种应用程序的开发。

以下是一些C程序设计课后习题的答案示例,这些答案仅供参考,具体习题的答案可能会有所不同。

第一章:C语言概述1. 简述C语言的特点。

- C语言是一种高级语言,同时具有汇编语言的效率。

- 它支持结构化编程,允许模块化设计。

- C语言具有丰富的运算符和数据类型。

- 它提供了指针功能,增强了编程的灵活性。

2. 描述C程序的基本结构。

- C程序由预处理指令、函数定义和主函数`main()`组成。

- 每个函数由函数声明、函数体和花括号包围的代码块组成。

第二章:数据类型、运算符和表达式1. 列出C语言的基本数据类型。

- 整型:`int`、`short int`、`long int`- 浮点型:`float`、`double`- 字符型:`char`- 枚举型:`enum`2. 解释赋值运算符的左结合性和右结合性。

- 赋值运算符是右结合性,意味着从右向左进行赋值。

第三章:控制语句1. 什么是条件语句?- 条件语句允许程序根据条件是否满足来执行不同的代码路径。

2. 描述循环语句的类型及其用法。

- `for`循环:用于已知迭代次数的循环。

- `while`循环:用于未知迭代次数,条件为真时循环。

- `do-while`循环:至少执行一次循环体,然后检查条件。

第四章:函数1. 函数的定义是什么?- 函数是一段具有特定功能的代码块,可以接收参数并返回值。

2. 解释函数原型和函数定义的区别。

- 函数原型声明了函数的名称、返回类型和参数列表,但不包含函数体。

- 函数定义包含了函数的完整实现,包括函数体。

第五章:数组1. 一维数组的声明和初始化方式。

- 声明:`type arrayName[arraySize];`- 初始化:`int arr[5] = {1, 2, 3, 4, 5};`2. 二维数组的访问方式。

C程序设计第三版课后习题答案全解

C程序设计第三版课后习题答案全解
}
5.5
#include <stdio.h>
main()
{int x,y;
printf("输入x:");
scanf("%d",&x);
if(x<1) /* x<1 */
{ y=x;
printf("x=%3d, y=x=%d\n",x,y);
}
else if (x<10) /* 1≤x-10 */
{ y=2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
}
else /* x≥10 */
{ y=3*x-11;
printf("x=%3d, y=3*x-11=%d\n",x,y);
}
}
5.6程序如下:
#include <stdio.h>
main()
{ float score;
char grade;
scanf("_x=%f_y=%e",&x,&y);
scanf("_c1=%c_c2=%c",&c1,&c2);
}
a=3_b=7
_x=8.5_y=71.82
_c1=A_c2=a
4.8
main()
{float r,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

c语言课后习题答案

c语言课后习题答案

c语言课后习题答案C语言课后习题答案一、选择题1. C语言中,用于定义变量的关键字是( A )。

A. intB. floatC. doubleD. char2. 下列选项中,哪一个是C语言的合法标识符?( C )A. 2variableB. variable2C. _variable2D. variable#23. 在C语言中,用于实现条件判断的关键字是( B )。

A. ifB. switchC. caseD. default二、填空题1. C语言中,一个整型变量(int)通常占用的字节数是______。

答案:4(在32位系统中)2. 在C语言中,若要声明一个字符数组,可以使用以下语法:______。

答案:char arrayName[size];3. 当需要在C语言中进行文件操作时,通常使用包含的头文件是______。

答案:<stdio.h>三、简答题1. 请简述C语言中数组的定义和初始化方法。

答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的元素集合。

数组的定义格式为:类型名数组名[元素个数];初始化可以使用花括号将初始值包围起来,如:int arr[5] = {1, 2, 3, 4, 5}。

2. 描述C语言中函数的定义和调用过程。

答案:函数是C语言中实现代码复用的一种方式。

函数定义包括返回类型、函数名、参数列表和函数体。

例如:int add(int a, int b) { return a + b; } 函数调用则是在代码中使用函数名和参数列表来执行函数,如:int result = add(3, 5);四、编程题1. 编写一个C语言程序,实现两个整数的加法运算,并输出结果。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现字符串的复制功能。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习题11.1 判断题×1.C++语言和C语言都是面向对象的程序设计语言。

√2.面向对象方法具有封装性、继承性和多态性。

√3.C语言是C++语言的一个子集。

C++语言继承了C语言。

×4.C++语言程序与C语言程序一样都是函数串。

×5.C++语言支持封装性和继承性,不支持多态性。

√6.C++语言比C语言对数据类型要求更加严格了。

√7.C++语言对C语言进行了一次改进,使得编程更加方便了。

×8.C++源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。

√9.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。

√10.C++语言程序的实现也要经过编辑、编译连接和运行3个步骤。

1.2 单选题1.下列关于面向对象概念的描述中,错误的是(C )。

A.面向对象方法比面向过程方法更加先进B.面向对象方法中使用了一些面向过程方法中没有的概念C.面向对象方法替代了结构化程序设计方法D.面向对象程序设计方法要使用面向对象的程序设计语言2.下列各种高级语言中,不是面向对象的程序设计语言是(D )。

A.C++ B.JavaC.VB D.C3.下列关于类的描述中,错误的是( A )。

A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体4.下列关于对象的描述中,错误的是(C )。

A.对象是类的一个实例B.对象是属性和行为的封装体C.对象就是C语言中的结构变量D.对象是现实世界中客观存在的某种实体5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C )。

A.提取符是对右移运算符(>>)重载得到的B.插入符是对左移运算符(<<)重载得到的C.提取符和插入符都是双目运算符,它们要求有两个操作数D.提取符和插入符在输入/输出语句中不可以连用1.3 填空题1.C++语言具有面向对象方法中要求的三大特性:封装性、继承性和多态性。

2.C++程序中,有且仅有一个主函数。

3.C++程序是由类和函数组成的。

4.C++源程序的扩展名是cpp 。

5.使用插入符进行标准输出文件输出时,使用的输出流对象名是cout 。

1.6 通过对1.5题中3个程序的修改,回答下列问题1.从1.5题中第1题程序的修改中,总结出编程应该注意哪些问题。

答:C++程序要包含iostraem.h,main()函数前应加类型说明符void。

2.C++程序中所出现的变量是否必须先说明后使用?在函数体内说明变量时是否都要放在函数体的开头?答:C++程序中所出现的变量必须先说明后使用。

在函数体内说明变量时不一定要放在函数体的开头。

3.使用cout和插入符(<<)输出字符串常量时应注意什么?答:可输出一个字符串常量,也可输出多个字符串常量。

每输出一个字符串常量要使用一次插入符(<<)。

4.程序中定义过的变量,但没有赋值,也没有默认值,这时能否使用?答:不能使用。

因为它的值不确定。

5.一个程序编译通过并已生成执行文件,运行后并获得输出结果,这一结果是否一定正确?答:不一定正确。

可能还有算法错。

第2章变量和表达式及数组练习题22.1 判断题√1.C++语言的合法字符集与C语言的完全相同。

×2.标识符规定大小写字母没有区别。

×3.C++程序中,不得使用没有定义或说明的变量。

√4.变量的存储类指出了变量的作用域和寿命。

√5.变量的数据类型指出了变量在内存中存放的字节数。

×6.定义变量时,变量的存储类说明符不得省略。

×7.自动类变量与内部静态类变量的作用域和寿命都是相同的。

×8.自动类变量可以定义在函数体外,这时应加说明符auto。

×9.外部类变量与外部静态类变量的作用域是相同的。

×10.变量被定义后是否有默认值与存储类无关,与数据类型有关。

√11.C++程序中,通常使用const来定义符号常量,定义时必须指出类型。

×12.变量被定义或说明后,它一定具有有意义的值。

×13.字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用单撇号。

×14.所有变量的可见性和存在性都是一致的。

√15.变量在它的作用域内一定是可见的,又是存在的。

√16.C++语言中除了包含C语言的所有运算符外,还规定自身的若干个运算符。

√17.增1和减1运算符以及赋值运算符都具有副作用。

×18.增1和减1运算符不仅可以作用在变量上,也可以作用在表达式上。

×19.关系运算符可以用来比较两个字符的大小,也可以比较两个字符串的大小。

×20.移位运算符在移位操作中,无论左移还是右移,对移出的空位一律补0。

×21.变量的类型高低是指它被存放在内存的地址值大小。

×22.使用sizeof运算符可以求得某种类型和某个变量在内存中占的字节数,不能求得某个表达式的类型在内存中所占的字节数。

√23.在C++语言中,非保值转换应用强制类型转换。

√24.表达式中各操作数计算顺序取决于运算符的优先级和结合性。

√25.在C++程序中,变量值是可以改变的,变量的地址值是不能改变的。

√26.数组中所有元素的类型都是相同的。

×27.定义数组时必须对数组进行初始化。

√28.数组某维的大小可以用常量表达式,不可用变量名。

×29.定义一个数组没有对它进行初始化,则该数组的元素值都是无意义的。

√30.用来给数组进行初始化的初始值表内的数据项的个数必须小于等于数组元素个数。

×31.在定义一个数组时,对其部分元素进行了初始化,没有初始化的元素的值都是无意义的。

√32.数组被初始化时是判越界的。

×33.字符数组就是字符串。

√34.使用printf( )函数输出显示字符串时使用格式符%s,输出显示字符时使用%c或%d。

×35.给数组元素赋值时只可用常量表达式。

2.2 单选题1.下列变量名中,非法的是(C )。

A.A25 B.My_carC.My-str D.abc2.下列常量中,十六进制int型常量是(A )。

A.0x5f B.x2aC.046 D.7a3.下列常量中,不是字符常量的是(B )。

C.'x' D.'\7'4.在函数体内定义了下述变量a,a的存储类为(D )。

int a;A.寄存器类B.外部类C.静态类D.自动类5.下列关于变量存储类的描述中,错误的是( C )。

A.任何变量定义后都具有一个确定的存储类B.变量的存储类确定了变量的作用域和寿命C.定义变量时没有存储类说明符者一律为自动类D.内部静态类变量和外部静态类变量的存储类说明符都是static 6.下列关于变量数据类型的描述中,错误的是( A )。

A.定义变量时int型数据类型可以省略B.变量的数据类型可以决定该变量占内存的字节数C.变量的数据类型是可以被强制的D.变量的数据类型是有高低之分的7.长双精度浮点型常量的后缀是( C )。

A.U B.FC.L D.无8.下列运算符中,不能用于浮点数操作的是( D )。

A.++ B.+C.*= D.&(双目)9.下列运算符中,优先级最高的是( A )。

A.*(双目)B.||10.下列运算符中,优先级最低的是( B )。

A.== B.?:C.| D.&&11.已知:int a(3);下列表达式中,错误的是( C )。

A.a%2==0 B.a--+2C.(a-2)++ D.a>>=212.已知:int b(5),下列表达式中,正确的是( D )。

A.b="a" B.++(b-1)C.b%2.5 D.b=3,b+1,b+2 13.下列关于类型转换的描述中,错误的是(C )。

A.类型转换运算符是(<类型>)B.类型转换运算符是单目运算符C.类型转换运算符通常用于保值转换中D.类型转换运算符作用于表达式左边14.下列表达式中,其值为0的是( A )。

A.5/10 B.!0C.2>4?0:1 D.2&&2||015.下列表达式中,其值不为逻辑值的是(A )。

A.算术表达式B.关系表达式C.逗号表达式D.逻辑表达式16.下列关于数组概念的描述中,错误的是( B )。

A.数组中所有元素类型是相同的B.数组定义后,它的元素个数是可以改变的C.数组在定义时可以被初始化,也可以不被初始化D.数组元素的个数与定义时的每维大小有关17.下列关于数组维数的描述中,错误的是( C )。

A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积18.下列关于数组下标的描述中,错误的是( B )。

A.C++语言中数组元素的下标是从0开始的B.数组元素下标是一个整常型表达式C.数组元素可以用下标来表示D.数组元素的某维下标值应小于该维的大小值19.下列关于初始值表的描述中,错误的是( C )。

A.数组可以使用初始值表进行初始化B.初始值表是用一对花括号括起的若干个数据项组成的C.初始值表中数据项的个数必须与该数组的元素个数相等D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值20.下列关于字符数组的描述中,错误的是(D )。

A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串21.下列关于字符串的描述中,错误的是( C )。

A.一维字符数组可以存放一个字符串B.二维字符数组可以存放多个字符串C.可以使用一个字符串给二维字符数组赋值D.可以用一个字符串给二维字符数组初始化22.已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。

A.a[0] B.a[1]C.a[2] D.a[3]23.已知:int ab[ ][3] = {{1, 5, 6}, {3}, {0,2}}; 数组元素ab[1][1]的值为( A )。

A.0 B.1C.2 D.324.已知:char s[ ]="abcd";输出显示字符'c'的表达式是( C )。

A.s B.s+2C.s[2] D.s[3]25.已知:char ss[ ][6]={"while", "for", "else", "break"};输出显示"reak"字符串的表达式是( B )。

相关文档
最新文档