《C语言程序设计实践教程》答案-完整版
- 格式:doc
- 大小:50.50 KB
- 文档页数:6
C语言程序设计教程课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2C语言程序的基本结构是怎样的?举一个例子说明。
答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4★指出合法与不合法的标识符命名。
答AB12--√ leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--×XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。
答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main(){ int a,b,c,t;printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。
C语言程序设计实验-答案(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小---前言-/*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。
本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。
为回报度娘及众网友的帮助,本文档免费下载。
*//*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*//*努力吧,骚年以及学妹们!*//*整理ed by 口玉刀一 of GUET.*/=====================实验一 C语言程序初步=====================已知a=5,b=4,c=6,求出s并换行#include""main(){int a,b,c,s;a=5;b=4;c=6;s=(a+b+c)/3;printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);}输入一个数字求他的平方#include<>main(){int r,s;scanf("%d",&r);s=r*r;printf("s=%d\n",s);}(1)#include<>main(){printf(" *\n");printf("***\n");printf(" *\n");}(2)main(){int v;int a,b,c;(2)#include<>main(){int m;double x;scanf("%d",&m);x=*m*m;printf("%f",x);}入a,b,c三个变量,计算数学公式(a*b)/cmain(){int a,b,d;float s,c;scanf("%d%d%f",&a,&b,&c);d=a*b;s=d/c;printf("%f",s);}=================================实验三顺序结构和输入输出方法=================================(1)main(){int m=345,t;float n=;t=*100;printf("m=%d,n*100=%d\n",m,t);}(2)main(){int a,b,c,s,v;scanf("%d%d%d",&a,&b,&c);s=a*b;v=a*b*c;printf("%d,%d,%d\n",a,b,c);printf("s=%d,v=%d\n",s,v);}(1)main(){int m,n;float x=,y=;scanf("%d,%d",&m,&n);printf("%6d,%6d",m,n); /*每个数的输出宽度为6,两个数之间逗号建个。
实验一(1)编程求37+29的值,实习VC环境。
#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio.h>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio.h>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=b2 -4ac的结果并输出。
第一篇:《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、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、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、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
实验一(1)编程求37+29的值,实习VC环境。
#include<>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<>void main(){int a=168;float b=;float x=,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%\n",b);printf("b=%e\n",b);y=(int)(x*100+/;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b==+002x=f,y=C程序代码#include<>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二顺序结构已知a=,b=,c=,计算s=b2-4ac的结果并输出。
附录1.2.2编程实验(2学时)参考答案1、程序提示:#include<iostream>using namespace std;int main(){int n,i;cout<<"n=?"<<endl;cin>>n;for(i=0;i<n;i++)cout<<"Hello World!\n";return0;}2、程序提示:int main(){int n,i,min,max;cout<<"n=?"<<endl;cin>>n;//输入整数ncout<<"input n number:"<<endl;int*p=new int[n];//动态创建n个元素的数组cin>>p[0];min=max=p[0];//为sum,min,max赋初始值为数组第0个元素for(i=1;i<n;i++){cin>>p[i];sum+=p[i];if(p[i]>max)max=p[i];if(p[i]<min)min=p[i];}cout<<"result:"<<"sun="<<sum<<";max="<<max<<";min="<<min<<endl;delete*p[];return0;}3、程序运行结果:a=6;b=1a=7;b=2a=8;b=3a=9;b=4a=10;b=51.3习题参考答案一、选择题1、ABCD2、ABD3、ABCD二、分析程序,改错sum=i+j;//该语句后面缺分号2.2.2编程实验(2学时)参考答案1、程序运行结果:0m=0n=00m=0n=0112、程序运行结果:3012-23、程序运行结果:50233114、修改语句:b=(Color)a;//类型转换5、程序提示:#include<iostream>using namespace std;struct time//定义结构体类型{int year,month,day,hour,minute,second;}a;int main(){cin>>a.year>>a.month>>a.day>>a.hour>>a.minute>>a.second;//输入语句cout<<a.year<<"年"<<a.month<<"月"<<a.day<<"日"<<a.hour<<"时"<<a.minute<<"分"<<a.second<<"秒"<<endl;//输出语句return0;}程序输出样例:6、程序提示:#include<iostream>using namespace std;struct complex{//定义结构体复数float real;float image;};int add(int a,int b)//两整数相加{return a+b;}double add(double x,double y)//两实数相加{return x+y;}complex add(complex m,complex n)//两复数相加{complex c;c.real=m.real+n.real;c.image=m.image+n.image;return c;}int main(){char g;cout<<"功能选择:"<<endl;cout<<"A.整数相加 B.实数相加 C.复数相加"<<endl;cin>>g;if(g=='A'){int c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='B'){double c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='C'){float c,v;cin>>c>>v;complex a={c,v};//定义复数对象a并赋值cin>>c>>v;complex b={c,v};//定义复数对象b并赋值cout<<add(a,b).real<<","<<add(a,b).image<<endl;}return0;}程序输出样例:7、程序提示:#include<iostream>using namespace std;void swap(int&p1,int&p2){int t;t=p1;p1=p2;p2=t;}void main(){int a,b;cout<<"please input the two num:\n";cin>>a>>b;swap(a,b);cout<<"交换后:"<<a<<","<<b<<endl;}程序输出样例:8、程序提示:#include<iostream>#include<cmath>using namespace std;int main(){float x,y;cout<<"please input the two num:\n";cin>>x>>y;cout<<"pow(x,y)="<<pow(x,y);return0;}程序输出样例:2.3习题参考答一、选择题1、ADF2、ABC3、BC4、B5、A6、A7、BCD8、C9、BCD10、C11、C12、C13、A二、填空题1、关系,条件,逻辑,位运算,逗号2、1012151800,101200,100003、cmath4、强制类型转换,Decimal value is241三、编程题1、参考程序#include<iostream>#include<iomanip>//格式化输出控制文件using namespace std;enum color{red,yellow,blue,white,black};//枚举类型int main(){int i,j,k,n,loop,pri;n=0;for(i=red;i<=black;i++){for(j=red;j<=black;j++){if(i!=j){for(k=red;k<=black;k++){if((k!=i)&&(k!=j)){n=n+1;cout<<setw(5)<<setfill('')<<left<<n;for(loop=1;loop<=3;loop++)//通过循环控制每次三种不同颜色的球{switch(loop){case1:pri=i;break;case2:pri=j;break;case3:pri=k;break;default:break;}switch(pri)//选择输出{case red:cout<<setw(10)<<setfill('')<<left<<"red";break;case yellow:cout<<setw(10)<<setfill('')<<left<<"yellow";break;case white:cout<<setw(10)<<setfill('')<<left<<"white";break;case blue:cout<<setw(10)<<setfill('')<<left<<"blue";break;case black:cout<<setw(10)<<setfill('')<<left<<"black";break;default:break;}}cout<<"\n";}}}}}cout<<"\ntotal:"<<n<<endl;}程序输出样例:1red yellow blue2red yellow white3red yellow black4red blue yellow5red blue white6red blue black7red white yellow8red white blue9red white black10red black yellow11red black blue12red black white13yellow red blue14yellow red white15yellow red black16yellow blue red17yellow blue white18yellow blue black19yellow white red20yellow white blue21yellow white black22yellow black red23yellow black blue24yellow black white25blue red yellow26blue red white27blue red black28blue yellow red29blue yellow white30blue yellow black31blue white red32blue white yellow33blue white black34blue black red35blue black yellow36blue black white37white red yellow38white red blue39white red black40white yellow red41white yellow blue42white yellow black43white blue red44white blue yellow45white blue black46white black red47white black yellow48white black blue49black red yellow50black red blue51black red white52black yellow red53black yellow blue54black yellow white55black blue red56black blue yellow57black blue white58black white red59black white yellow60black white bluetotal:602、参考程序#include<iostream>using namespace std;long long fib(int n){int i;long long f1=0,f2=1,f=0;if(n==1)return1;if(n==0)return1;if(n>=2){for(i=2;i<=n;i++){f=f1+f2;f1=f2;f2=f;}return f;}}int main(){int num;cout<<"input the num:\n";cin>>num;cout<<fib(num)<<endl;return0;}程序输出样例:3.2.2编程实验1(2学时)参考答案1.参考程序#include<iostream>using namespace std;class Rectangle{private:int length;//表示矩形的长int breadth;//表示矩形宽public:void area()//函数功能:计算矩形的面积{cout<<length*breadth<<endl;}void set()//函数功能:设置矩形的长与宽{cin>>length;cin>>breadth;}};int main(){Rectangle rec;//回答:此处rec对象调用系统默认构造函数对其初始化赋值,length与breadth的初始值都是随机值cout<<"请输入长、宽:"<<endl;rec.set();//要求:rec对象通过set()函数对其数据成员赋值!cout<<"所求矩形的面积为:";rec.area();//要求:rec对象通过area()函数计算输出其面积!return0;}程序输出样例:2.参考程序class Point{private:int i_x;//表示点的x轴坐标int i_y;//表示点的y轴坐标public:Point();//无参构造Point(int x,int y);//有参构造Point(Point&pt);//复制构造int getx();//函数结果为i_xint gety();//函数结果为i_yvoid show();//函数功能:输出数据成员};//要求:补充完整类的定义结构!Point::Point(){cin>>i_x>>i_y;}//要求:补充完整有无构造函数的实现!Point::Point(int x,int y){i_x=x;i_y=y;}//要求:补充完整有参构造函数的实现!Point::Point(Point&pt){i_x=pt.i_x;i_y=pt.i_y;}//要求:补充完整复制构造函数的实现!int Point::getx(){return i_x;}//要求:补充完整成员函数getx()的实现!int Point::gety(){return i_y;}//要求:补充完整成员函数gety()的实现!void Point::show(){cout<<i_x<<";"<<i_y<<endl;//要求:补充完整成员函数show()的实现!}int main(){Point p1;p1.show();Point p2(4,8);p2.show();Point p3(p2);p3.show();}程序输出样例:3.参考程序#include<iostream>#include<windows.h>//调用系统时间函数需要加的头文件#include<stdio.h>//调用系统时间函数需要加的头文件using namespace std;class Time{private://私有访问属性int hour,minute,second;public://公有访问属性void setTime(int h,int m,int s)//通过形参给本类数据成员hour、minute、second赋值{hour=h;minute=m;second=s;}void showTime_1()//输出时间:以12小时计,分上午(AM)、下午(PM){int sign;if(hour<12)cout<<"am:"<<hour<<":"<<minute<<":"<<second<<endl;else{sign=hour-12;cout<<"pm:"<<sign<<":"<<minute<<":"<<second<<endl;}}void showTime_2()//输出时间,建议:以24小时计{cout<<hour<<":"<<minute<<":"<<second<<endl;}Time()//无参构造函数{hour=0;minute=0;second=0;}Time(int NewH,int NewM,int NewS)//有参构造函数{hour=NewH;minute=NewM;second=NewS;}Time(Time&pt)//复制构造函数{hour=pt.hour;minute=pt.minute;second=pt.second;}};int main(){//定义变量,输入数据,创建3个Time对象,分别使用无参构造函数、有参构造函数、复制构造函数进行初始化Time time1;//定义对象的同时自动调用无参构造函数Time time2(18,21,36);//定义对象的同时自动调用有参构造函数Time time3(time2);//定义对象的同时自动调用复制构造函数time1.showTime_1();//输出电脑时间,显示方式1time2.showTime_2();//输出电脑时间,显示方式2time3.showTime_1();//输出电脑时间,显示方式1cout<<"你想要获取当前电脑时间吗?(Y/N)";char ch=getchar();//输入的字符if(ch=='Y'){SYSTEMTIME sys;//上网查询获取方法,获取当前电脑时间,赋值给已创建的任意一个Time对象GetLocalTime(&sys);time3.setTime(sys.wHour,sys.wMinute,sys.wSecond);time3.showTime_1();//输出电脑时间,显示方式1time3.showTime_2();//输出电脑时间,显示方式2}return0;}程序输出样例:4.参考程序#include<iostream>using namespace std;class Circle{public:Circle()//无参构造函数{radius=0;}void getArea()//无返回值函数,计算圆的面积{cout<<radius*radius*3.14<<endl;}void set_radius()//无返回值函数,设置圆的半径{cin>>radius;//采用输入赋值或直接赋值都可以}~Circle()//析构函数,对象默认的调用的最后一个函数{cout<<"END PGM!\n";}private:int radius;//整型数据,4个字节};int main(){Circle c;//Circle类定义目的对象c的同时自动调用其无参构造函数初始化数据成员cout<<"请输入圆的半径:";c.set_radius();c.getArea();//程序结束前自动调用析构函数释放对象return0;}程序输出样例:5.参考程序#include<iostream>using namespace std;enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};//声明枚举类型CPU_Rankclass CPU{private:CPU_Rank rank;int frequency;float voltage;public:CPU(int newrank,int newfrequency,float newvoltage);//有参构造函数void run();void stop();~CPU(){cout<<"成功调用析构函数"<<endl;}//析构函数};void CPU::run(){cout<<"程序开始执行"<<endl;}void CPU::stop(){cout<<"程序结束"<<endl;}CPU::CPU(int newrank,int newfrequency,float newvoltage){rank=(CPU_Rank)newrank;//强制类型转换frequency=newfrequency;voltage=newvoltage;cout<<"成功调用构造函数"<<endl;cout<<"等级:"<<CPU_Rank(P1)<<endl;cout<<"频率:"<<frequency<<endl;cout<<"电压:"<<voltage<<endl;}int main(){CPU cpu(1,70,280);//定义对象的同时调用有参构造函数对数据成员初始化cpu.run();cpu.stop();//程序结束前调用析构函数释放对象return0;}程序输出样例:3.3.2编程实验2(2学时)参考答案1.参考程序//类外补充完善类中的成员函数coutner::coutner(int number)//有参构造函数{value=number;}coutner::coutner()//无参构造函数{cin>>value;}coutner::coutner(coutner&r)//复制参构造函数{value=r.value;}void coutner::increment()//给value原值加2{value+=2;}void coutner::decrement()//给value原值减2{value-=2;}int coutner::getvalue()//取得计数器值{return value;}int coutner::print()//显示计数{cout<<value<<endl;return0;}int main(){coutner c;//定义一个无参对象c,定义时自动调用无参构造函数,通过输入对value赋值cout<<"The output is"<<c.getvalue()<<endl;coutner c2(c.getvalue()+2);//定义一个有参对象c2,用c对象的值加2初始化其数值value cout<<"The output is"<<c2.getvalue()<<endl;coutner c3(c2);//定义一个对象c3,用c2对象初始化cout<<"The output is"<<c3.getvalue()<<endl;cout<<sizeof(coutner)<<""<<sizeof(c2)<<endl;//通过sizeof()函数观察该coutner类型所占的字节数return0;}思考题回答:若程序中注释掉复制构造函数coutner(coutner&r),还可以实现用一个对象初始化赋值另一对象,会调用系统默认的复制构造函数。
高等教育出版社c语言程序设计实践教程习题参考答案C语言是一门功能强大的编程语言,广泛应用于计算机科学和软件开发领域。
高等教育出版社出版的C语言程序设计实践教程是一本备受学生和程序员欢迎的教材。
本文将为读者提供C语言程序设计实践教程中的习题参考答案,以帮助读者更好地掌握C语言的编程技巧和实践能力。
第一章 C语言基础知识1.1 变量和数据类型C语言中的变量用于存储和操作数据。
变量的类型决定了变量可以存储的数据的种类和范围。
C语言中常见的数据类型包括整型、浮点型、字符型等。
以下是一些习题的参考答案:习题 1:```c#include <stdio.h>int main() {int num = 10;float factor = 1.5;char letter = 'A';printf("num = %d\n", num);printf("factor = %f\n", factor); printf("letter = %c\n", letter); return 0;}```习题 2:```c#include <stdio.h>int main() {int a = 10;int b = 20;int temp;temp = a;a = b;b = temp;printf("交换后:\n");printf("a = %d\n", a);printf("b = %d\n", b);return 0;```1.2 运算符和表达式C语言提供了多种常见的运算符,如算术运算符、赋值运算符、比较运算符等。
通过使用运算符,我们可以对数据进行各种操作和计算。
以下是一些习题的参考答案:习题 1:```c#include <stdio.h>int main() {int a = 10;int b = 3;int result;result = a % b;printf("result = %d\n", result);return 0;}```习题 2:#include <stdio.h>int main() {int a = 10;int b = 5;printf("结果为:%d\n", a > b ? a : b);return 0;}```第二章 C程序控制结构2.1 顺序结构C语言中的顺序结构就是按照程序代码的顺序执行。
实验一(1)编程求37+29得值,实习VC环境。
#include<stdio、h>void main(){ﻩ int a,b,sum;a=37;ﻩ b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio、h>void main(){int a,b,c,y;ﻩint max(int x,inty);ﻩ printf("input a,b,and c:");ﻩ scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);ﻩ y=max(y,c);ﻩ printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio、h>void main(){char ch='a';ﻩprintf("%c对应得ASCII码就是:%d\n",ch,ch); ﻩ }程序输出结果:a对应得ASC||码就是:97B 程序代码#include<stdio、h>voidmain(){int a=168;ﻩ float b=123、456;float x=35、567,y;printf("a=%5d\n",a);ﻩprintf("a=%-5d\n",a);printf("b=%6、2f\n",b);ﻩprintf("b=%e\n",b);ﻩ y=(int)(x*100+0、5)/100、0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123、46b=1、234560e+002x=f,y=35、567001C程序代码#include<stdio、h>voidmain(){int a=168;printf("十进制数%d对应得八进制数就是%o\n",a,a);printf("十进制数%d对应得十六进制数就是%x\n",a,a);}程序输出结果:十进制数168对应得八进制数就是250十进制数168对应得十六进制数就是a8实验二2、1顺序结构2、1、1已知a=1、5,b=5、3,c=2、9,计算s=-4ac得结果并输出。
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语言程序设计学习指导与实践教程——第2章习题和实验解答2.1 C语言概述1.【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
有穷性:一个算法应包含有限的操作步骤而不能是无限的。
确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。
有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
对于程序设计人员,必须会设计算法,并根据算法写出程序。
可以用自然语言、流程图、伪代码和计算机语言表示算法。
3.C语言的主要特点有:语言简洁、紧凑,使用方便、灵活。
ANSI C一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。
4.用传统流程图表达如下:5. 计算机硬件系统的组成:计算机硬件系统主要由运算器、控制器、存储器、输入设备和输出设备构成,运算器和控制器合称为中央处理器(CPU),输入设备和输出设备统称为外部设备。
6.计算机网络常用的传输介质:分为有线介质和无线介质;有线介质包括光纤、同轴电缆和双绞线;无线介质包括红外信号、微波等。
2.2 数据类型与表达式1.【习题解答】一、选择题1.D2.B3.A4.B5.A6.B7.D8.D9.C二、填空题1.整型、实型、字符型、枚举类型2.3.5000003.逗号运算符4.三,自右向左5.1,06.32767三、编程题1.已知球的半径为1.5cm,计算球的体积。
仅供参考,理论上都能运行出结果。
2.5 循环结构程序设计实验一循环结构程序设计1、求1!+2!+……+10!。
#include<stdio.h>void main(){long i,n=1,s=0;for(i=1;i<=10;i++){n*=i;s+=n;}printf("1!+2!+……+10!=%d\n",s);}2、打印一下图案(用循环实现)*************************#include<stdio.h>void main(){int i,j,k;for(i=1;i<5;i++){for(j=1;j<5-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}for(i=3;i>0;i--){for(j=1;j<5-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}}3、猴子吃桃。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘多少桃子。
#include<stdio.h>void main(){int i,n=1;for(i=9;i>0;i--)n=(n+1)*2;printf("%d\n",n);}4、打印九九乘法表。
#include<stdio.h>void main(){int i,j;for(i=1;i<10;i++){for(j=1;j<=i;j++)printf("%d*%d=%d, ",i,j,i*j);printf("\n");}}5、输出10~100之间的全部素数。
c程序设计教程与实验课后答案【篇一:c程序设计教程与实验第10章习题参考答案】题1.二进制文本2.rewind()3.字节流式4.”abc.dat” “rb”5.06.将文件位置指针从文本末尾处向文件头的方向移动10个字节7.将文件file1.txt的内容输出到屏幕8.将f1的字符保存到f2中9.rfetc(fp)num++10.fopen(“file.dat”,”wb”)dt,1,9,fp三、程序分析题1. 242.复制f1到f23.1.14.1177995. 65a 66b 67c 68d 69e 70f 71g 72h 75k 76l 77m 78n 79o 80p 81q 82r 85u 86v 87w 88x 89y 90z四、编程题1.#includestdio.h#includestdlib.hint main(){char file[10],file1[10],ch;file *in,*out;scanf(%s,file);scanf(%s,file1);if((in=fopen(file,r))==null){printf(cant open file\n);exit(0);}if((out=fopen(file1,w))==null) 73i 74j 83s 84t {printf(cant open file1\n);exit(0);}while(!feof(in)){ch=fgetc(in);fputc(ch,out);putchar(ch);}fclose(in);fclose(out);return 0;}2.#include stdio.h#includestring.h#include errno.hint main(void){file *fp;char ch;if (null == (fp = fopen(g3, r))){printf(fopen g3 error: %s\n, strerror(errno)); return 0;}while ((ch = fgetc(fp))!=eof){printf(%c, ch); }fclose(fp);printf(\n);return 0;}3.#includestdio.hvoid main(){file *fp; /*定义一个文件指针*/int i;double a[10];if((fp=fopen(data.txt,wb+))==null){printf(file can not open,press any key to exit!\n); getch(); /*从键盘上任意输入一字符,结束程序*/exit(1);}for(i=0;i10;i++)scanf(%lf,a[i]);for(i=0;i10;i++)fwrite(a+i,sizeof(double),1,fp);printf(\n);rewind(fp);fread(a,sizeof(double),10,fp);for(i=0;i10;i++)printf(%f\n,a[i]);printf(\n);fclose(fp);}4.#includestdio.hvoid main(){file *fp;int a[80],i,j;int a,b,c;a=b=c=0;if(fp=fopen(g4.dat,r))==null)printf(读取失败\n);for(i=0;i80;i++){fscanf(fp,%d,a[i]);if(fp==eof)break;}for(j=0;j=i;j++){if(a[i]0) a++;if(a[i]0) b++;if(a[i]==0) c++;}printf(正=%d,负=%d,零=%d\n,a,b,c);5.#includestdio.hstruct student{char num[10];char name[8];int score[2];float ave;} stu[3];void main(){int i,j,sum;file *fp;for(i=0;i3;i++){printf(\ninput score of student %d:\n,i+1);printf(no.:);scanf(%s,stu[i].num);printf(name:);scanf(%s,stu[i].name);sum=0;for(j=0;j2;j++){printf(score %d:,j+1);scanf(%d,stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/2.0;}fp=fopen(stud,w);for(i=0;i3;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1) printf(file write error\n);fclose(fp);fp=fopen(stud,r);for(i=0;i3;i++){fread(stu[i],sizeof(struct student),1,fp);printf(\n%s,%s,%d,%d,%d,%6.2f\n,stu[i].num,stu[i].name,stu[i]. score[0], stu[i].score[1],stu[i].score[2],stu[i].ave);}}【篇二:c语言程序设计实训教程习题和实验解答】ss=txt>2.1 c语言概述【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
c程序设计教程与实验课后实验答案【篇一:c程序设计教程与实验__吉顺如__实验一到七】> 一、实验目的1.掌握在visual c++6.0环境下c程序的建立、编辑、编译和执行过程。
2.掌握c程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#include stdio.h main() {int a,b,sum; /*定义整型变量a、b、sum */ printf(please input a,b \n); /*输出提示信息*/(1计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c保存。
#include stdio.hmainmain(){ int x=2;y=3;a int x=2,y=3,a; a=x*ya=x*y;print (a=%d,a);printf (a=%d,a); printf(\n);}(2)下程序的功能为:求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c保存。
#include stdio.h1viod main()voidmain() {int a ,b , max;scanf(“%d,%d”,a,b);scanf(“%d,%d”,a,b); max=a; max=a;if (maxb) max=b; if (maxb) max=b; printf(“max=%d”,ma x);printf(“max=%d”,max); }3.程序填空题(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名sy1_4.c保存。
#includestdio.h main() {/* 定义整型变量x,y,total*/ printf(please input x,y !);/*输出提示信息 *//*由键盘输入两个数分别赋予x和y*/ total=x+y;/*赋值语句 */printf(%d + %d=%d\n,x,y,total);/* 输出两个整数的和 */ }(2)从键盘输入两个整数,输出这两个整数的差。
c语言程序设计实验指导参考答案C语言程序设计实验指导参考答案在学习C语言程序设计的过程中,实验是不可或缺的一部分。
通过实验,我们可以巩固所学的知识,提高编程能力。
然而,有时候我们可能会遇到一些难题,不知道如何下手。
本文将为大家提供一些C语言程序设计实验的参考答案,希望能够帮助大家更好地完成实验任务。
1. 实验一:C语言基础实验一主要涉及C语言的基础知识,包括变量、运算符、控制语句等。
以下是一些常见的题目及参考答案:题目一:编写一个程序,实现两个整数的交换。
```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);swap(&a, &b);printf("交换后的结果为:%d %d\n", a, b); return 0;}```题目二:编写一个程序,求1到n的和。
```c#include <stdio.h>int sum(int n) {if (n == 1) {return 1;} else {return n + sum(n - 1);}}int main() {int n;printf("请输入一个正整数:");scanf("%d", &n);printf("1到%d的和为:%d\n", n, sum(n)); return 0;}```2. 实验二:数组和字符串实验二主要涉及数组和字符串的应用。
以下是一些常见的题目及参考答案:题目一:编写一个程序,找出数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大值为:%d\n", findMax(arr, n));return 0;}```题目二:编写一个程序,判断一个字符串是否为回文字符串。
4.2练习题
一、选择题
1.D
2.B
3.A
4.B和D
5.C
6.A
7.B
二、填空题
1.//或/* */
2.主或main
3.函数首部和函数体4.编译和连接
5.公号
5.2练习题
一、选择题
1.A
2.D
3.B
4.B
5.C
6.C
7.D
8.A
9.B
10.B
11.D
12.B
13.A或B
14.C
15.B
17.D
18.D
19.C
20.D
21.B
22.A
23.D
24.C
25.C
26.B
27.C
28.D
29.A
30.B
二、填空题
1.102,10
2.#define 宏名字符串
3.1
4.n=1
5.-4
6.a=1,b= ,c=2
7.c=A
8.n1=%d\nn2=%d
9.a+b>c&&a+c>b&&b+c>a
10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7
12.0
13.11110000
14.8,4
6.2练习题
一、选择题
1.A
2.C
3.D
4.C
5.A
7.A
8.D
9.B
10.C
11.A
12.A
13.C
14.B
15.正确答案为:12345678
二、填空题
1.10
2.y=1 x%i==0
3.屏幕中间输出一个由星号组成的菱形4.1
5.13
6.(cx=getchar())!=-1 front=cx; 7.m%n
8.4
9.*p px=&x py=&y
三、读程序,写结果
1.-1
2.3,1,-1,
3.a=16,y=60
4.x=12,y=4
5.59
7.2练习题
一、选择题
1.B
2.C
3.C
4.A
5.D
6.C
8.D
9.C
10.D
11.D
12.D
13.A
14.B
15.C
16.B
17.B
18.A
19.A
20.D
21.B
22.D
23.C
24.D
25.D
26.C
二、填空题
1.‘a’0
2.a[k] a[k] a[k]
3.0 6
4.A B C D E
A
5.1,6
6.k=p;
7.i<j
8.18
9.4,some string * test 10.you&me
三、读程序,写结果
1.5 4 8 2 0
2.10 24 15 6 3.love china! H w l 4.66 66 55
5.Front
一、选择题
1. A
2. A
3. B
4. B
5. B
6. A
7. D
8. C
9. A
10. A
11. A
12. B
13. B
14. A
15. B
16. B
17. C
二、填空题
1.12
2.Itis
3.fun(n-1)*n fun(k)
4.s[i]-t[i]
5.n%m i-1 x[d]
6.x=n x%10 x
7.m=f(a,4)+f(b,4)-f(a+b,3)
8.a=1,b=1
三、读程序,写结果
1.s=7
2.s=37
3.bij12
一、选择题
1. B
2. C
3. B
4. D
5. B
6. A
7. B
8. D
9. D
10. B
11. D
12. A
13. B
14. C
15. C
16. C
17. A
18. D
19. B
20. D
二、填空题
1.b->day (*b).day
2.DDBBCC
3.zhang 170.000000
wang 150.000000
4.99
5.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score
6.&r 1 feof(fp) break
7.BBB AAA 123
8.rewind
三、读程序,写结果
1.2002,shangxian
2.32。