《2009年C语言程序设计实验指导答案》由会员分享,可在线阅读,更多相关《2009年C语言程序设计实验指导答案(38页珍藏版)》请在人人文库网上搜索。

1、includeint mian()return 0;#includeVoid main()实验二:变量类型与输入输出1. a=34,a=53,b=1234,b=4660 因为0x1234超出了字符类型的表示范围,因此打印的结果看起来奇怪。2. 输入:a回车输出:*ch1=a,97*ch2=10,* 解释ch2的输出:由于输入a回车,因此ch2的值就接受了这个回车,而回车的ascii码的值等于10,因此出现这种结果。如果要修改,需要在ch2=getchar()之前加入一句:getchar(); 3. 把scanf(“%d”,a)改为scanf(“%f”,&a)4. 把scanf(“%f”,&a)。

2、改为scanf(“%lf”,&a),因为a是double类型的。5. 4242123.123.1.e+0021.e+002 6. 正确的形式:a=3.12,b=9.0 c=10.0 注意的事项是在scanf()中,”中的内容按照原样输入,尽管在实践中没有按照此题那样进行类似输入。7. 此题不用看8. #include#define PI 3.14159int main()double radius,high,volume;printf(please input the radius and high!);scanf(%lf%lf,&radius,&high);volume=PI*radius*。

3、radius*high;printf(the volume is:%lf,volume);return 0;9 #includeint main()int i;printf(please input the value!);scanf(%d,&i);printf(%u,%o,%x,i,i,i);/分别以无符号、八进制、十六进制return 0;10 #includeint main()char ch;printf(please input the character!);scanf(%c,&ch);printf(its ASCII code is:%d,ch);/*字符型就是短整形因此用%d格。

4、式控制就可打印ascii code*/return 0;11 12 easy 忽略实验三:运算符与表达式1. 输出:a=2,b=1,i=2 ,这是因为+放在后面是“先使用后自加”。2. 输出:f=5.,(int)f=5,这是因为利用了强制类型转换(int)3. 输出:a=3,b=2,c=3,d=3解释:a和b值不同的原因是在给a赋值的时刻,2,3是用括号包围的,而b没有,而逗号表达式的值等于最后面的那个值。4. 输出:-264 原因是首先执行a-=a*a也就是a=12-(12*12)=-132,然后a+=a因此变为-2645. 输出:a=2,b=0,c=2,d=1 这是因为在执行b=a+ & 。

5、c+时,由于首先使用a的当前值为0,而在“&”运算符中当左侧的操作数为0时会发生“短路”现象,即不再计算右侧的”c+”直接就可以判定b=0,因此在这一步中c的值并没有发生变化,而运算完此步a=1。而在下一步d=a+ | +c中,同样会发生短路现象,因为此时首先利用a的当前值1直接就可以判定d=1,而不再执行+c 6. 输出:3,18输出:3,3 还是逗号运算符和赋值运算符的问题 7. 把s=1/2*a*b改为s=1.0/2*a*b 千万不要忘了在c语言中1/2=0 8. easy!9. #includeint main() char ch;printf(please input the low。

6、er character!);ch=getchar();ch-=32;putchar(ch);return 0;10 11 12 easy! 实验四:顺序结构程序设计1. 其中的两处错误发生在:scanf(“%d”,r)应该改为scanf(“%f”&r);另外一处发生在语句s=3.14*r*r和语句scanf(“%d”,r)次序颠倒,因为一个变量只有先有值之后才能使用。2. 执行结果为3,5,8,-,因为d没有赋初值因此打印出一个看起来非常奇怪的值。3. 输出 74. 输入27 输出 27,这是因为ch1=2,ch2=7输入2 7输出 4,这是因为ch1=2,ch2= (空格),而空格的asc。

7、ii码为32,0的ascii码为48因此算出结果为45 输出 1,1 6. 输出6,7 ,只需要知道+的前缀和后缀的区别即能做出此题。7. sum=d1+d2+d3+d4+d5;avg=(float)sum/5; /*需要强制类型转换*/8. #includeint main() int a,b,c,max;printf(please input the values of a,b and c!);scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=maxc?max:c;printf(the max value of a,b and c is:%d,max);retur。

8、n 0;9. #include#includeint main()double a,b,c,alpha;printf(please input the values of two edges and angle);scanf(%lf,%lf,%lf,&a,&b,&alpha);c=sqrt(a*a+b*b-2*a*b*cos(alpha);printf(the value of third edge is %f,c);return 0;本程序用到sqrt和cos函数,它们位于头文件,因此在使用它们之前首先要包含此头文件。另外,cos函数接受的弧度,而不是角度。10 程序如下:#includei。

9、nt main() double F,C;printf(please input the Fahrenheit!);scanf(%lf,&F);C=(double)5.0/9*(F-32);printf(the Celsius is:%f,C);return 0;本程序中要注意因为整数相除仍为整数,因此5/9永远为0,为了得到正确的结果,首先进行强制类型转换。 实验五:选择结构程序设计1.2 easy 忽略3. -1 此题简单4. 判定一个数位于一个区间,绝对不能出现60=60 & scorevoid main()int score;if(score=90 & score=80 & score。

10、=70 & score=60 & score0)的分支,应该改为:#includeint main() int a=2,b=-3;if(a0)if(b0)printf(a,b0);else printf(a0,bint main() char c;c=getchar();if(c=a & c=A & c=a & c=A & c=a & c=A & c=0 & x=10)10 easy11 easy!但是要注意a=0&b!=0时,此时有一个根。12 #includeint main() int birthYear,age;printf(“please input the year of your。

11、 birth!”);scanf(“%d”,&birthYear);age=2006-birthYear;age=age=0?age:12-(-age%12);switch(age%12) case 0:printf(“属狗”);break;case 1:printf(“属鸡”);break;case 2:printf(“属猴”);break;case 3:printf(“属羊”);break;case 4:printf(“属马”);break;case 5:printf(“属蛇”);break;case 6:printf(“属龙”);break;case 7:printf(“属兔”);brea。

12、k;case 8:printf(“属虎”);break;case 9:printf(“属牛”);break;case 10:printf(“属鼠”);break;case 11:printf(“属猪”);break;return 0;13 #includeint main()int score;printf(please input the score!);scanf(%d,&score);switch(score/10)case 12:case 11:case 10:case 9:printf(优);break;case 8:printf(良);break;case 7:printf(中);。

13、break;case 6:printf(合格);break;default:printf(不及格);return 0;实验六:循环结构程序设计(一)1. easy!2. 输出0 3. 循环次数:无限次 for(;)代表无限次循环4. 输出:-2-1 还是考后缀和前缀的问题5. 输出:-1 0把i+换成+i输出:-16.#includevoid main() int i;scanf(”%d”,&i);for(; i!=0;)scanf(”%d”,&i);7. 程序1输出:0,1,3,6,10,15,21,28,36,45,程序2输出:0,1,2,3,4,5,6,7,8,9,因为程序2的s在每次进。

14、入for循环体都要重新进行初始化为08 完成的功能是:s=1+2+3+n9. 完成的功能是:s=1!+2!+3!+n!10 完成的功能是:s=x1+x2+x3+xn 11.#includevoid main() int n,i;long t=1;/*防止阶乘较大而溢出*/printf(“please input the value of n”);scanf(“%d”,&n);for(i=1;ivoid main() int i,n,t=1;scanf(“%d”,&n);double s=0.0;for(i=1;i#include void main()int i=1;double x,item。

15、,s,eps=1e-4;scanf(“%lf”,&x);item=1;/第一项值s=0;/累加和初始值while(fabs(item)eps)s+=item;/把一项值加到s中item=item*x/i;/求出下一项i+;printf(“%lf,%lfn”,s,exp(x);/计算结果与exp()函数对比解决类似程序的关键就是找出后一项和前一项的关系在此程序中x n=xn-1 ,因此程序中出现item=item*x/i;这一语句。实验7:循环结构程序设计(二)1.输出 7 easy!2 easy!3 #includevoid main() int i=0,k=0;do k+=i;i+=3;pr。

16、intf(%dn,k); while(i #include int main()double s,t,eps=1e-5;s=2;/已包含第一项t=sqrt(2);/第二项分母while(fabs(2/t-1)eps)/最后一项接近1s=s*2/t;t=sqrt(2+t);/获得下一项分母printf(“%fn”,s);return 0;7. #include void main() int i,j,k,sum=0;for(i=1;iint main()char str10000;int i,letter_num=0,space_num=0,digit_num=0,other_num=0;get。

17、s(str);for(i=0;stri!=0;i+) if(stri=a& stri=A&stri=0 & striint main()int a=0,b=1,c,i=1;printf(%4d,%4d,a,b);while(iint main()int num;printf(please input the number!);scanf(%d,&num);while(num!=0)printf(%d,num%10);num/=10;return 0;11 #include/*下面的函数用于求最大公约数*/int gcd(int u,int v)int t;if(u#include/*下面的函数。

18、用于判断一个数是否是素数,如果是就返回1否则返回0*/int isPrime(int m) int i;for(i=2;iint main()double x,y;printf(please input the value of x!);scanf(%lf,&x);if(x-1 & xvoid main() int a,n,count=1;long int sn=0,tn=0;printf(please input a and nn);scanf(%d,%d,&a,&n);printf(a=%d,n=%dn,a,n);while(count/*下面的函数用于判断一个数是否是水仙花数如果是返回1。

19、否则返回0*/int isDaff(int i)int high,medium,low;high=i/100;medium=(i%100)/10;low=i%10;return (high*high*high+medium*medium*medium+low*low*low=i)?1:0;int main()int i;for(i=100;iint isTri(int a,int b,int c);/判断是否构成三角形,如果是返回1否则返回0int rangleTri(int a,int b,int c);/ 判断是否构成直角三角形,如果是返回1否则返回0int isoTri(int a,in。

20、t b,int c); /判断是否构成等腰三角形,如果是返回1否则返回0int equTri(int a,int b,int c);/ 判断是否构成等边三角形,如果是返回1否则返回0int main()int count=0;int a,b,c;printf(please input the values of three edges!);scanf(%d%d%d,&a,&b,&c);while(countc & a+cb & b+ca)?1:0;int rangleTri(int a,int b,int c)return (a*a+b*b=c*c | b*b+c*c=a*a | a*a+c*。

21、c=b*b)?1:0;int isoTri(int a,int b,int c)return (a=b | b=c | a=c)?1:0;int equTri(int a,int b,int c)return (a=b & a=c)?1:0;10. 因为两个数是互质数的概念是两个数的最大公约数是1,因此可以利用前面写的求最大公约数的函数#includeint gcd(int u,int v);/求两个数的最大公约数int huzhi(int u,int v);/判断两个数是否互质,是就返回1否则返回0int main()int m,n;printf(please input the value。

22、s of m and n!);scanf(%d%d,&m,&n);if(huzhi(m,n)printf(m and n are huzhi numbers!);elseprintf(m and n arent huzhi numbers!);return 0;int gcd(int u,int v)int t;if(u#include/*判断一个数是否是素数*/int isPrime(int m) int i;for(i=2;i#includeint isPrime(int m) int i;for(i=2;i#define N 10void main()int i;Int aN;For(i。

23、=0;iint main()int a44,i,j,k=0,t;for(i=0;iint main()int a10=2,3,4,5,6,len=5,i;/ len为有效长度for(i=len;i3;i-)ai=ai-1;/ 后移元素只能从后面开始a3=7; /插入元素len+; /有效长度增1for(i=0;i#define N 30void main() int i,k,m,numN; for(i=0;iint main()int i,j;int a77;for(i=0;ivoid main() char a100,b100;int i,j;gets(a);gets(b);i=j=0;wh。

24、ile(ai!=0)i+;while(bj!=0) ai=bj;i+;j+; ai=0;/这一步很重要,不要忘了在最后加上0;puts(a);9. #includeint main()char a100;int i;gets(a);for(i=0;ai!=0;i+)if(ai=a & ai=A & aivoid inverse(char *p)for(;*p!=0;p+)if(*p=a & *p=A & *p#includevoid function(char str); /*函数声明在外面*/void main() char str100;printf(请输入一行字符串:);gets(str。

25、);strstrlen(str)=#;function(str);void function(char str) int i=0,j=0,k=0;char str13030,str2100;int state = 0; /设制一个状态记录stri是不是字母, 0表示不是 1 表示是 for(i=0;stri!=0;i+) if(stri=a & stri=A & stristrlen(str2) /*总是让str2保持是最长的字符串*/strcpy(str2,str1i); printf(该字符串中最长的单词是:%sn,str2);12 #include#includeint main()ch。

26、ar ch16=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, output20;int input,temp,n,i=0;printf(请输入你想要转换的十进制数:);scanf(%d,&input);printf(请输入要转换的进制(2=0;i-)printf(%c,outputi);return 0;本题是对课本的扩展,扩展到任意进制输出,注意用除n取余法,并且逆序输出。实验11 课堂已讲忽略实验12 函数(一)1. 输出结果为1,2 要记住按值传递不改变实参的值而按地址传递可以改变实参的值2. 输出结果为,做这样的题目记住两点就可以,一是程序从main()函数开始执行。

27、,二是当调用完一个函数后,程序流程返回到发生函数调用的地方的下面一条语句继续执行。3. 填空为max(a,b);4. 第一个空为*maxp ,第二个空为 &min 其实这是利用形参传地址来使得函数可以返回多个值5. 填空为 swap(&ai,&aj)6. 第一个空为double pow(double m,int n); (这一步为函数声明)第二个空为m7. 第一个空为include第二个空为 return i;第三个空为 strlen(a);8. int* maxp(int a,int len)int max=a0,i;for(i=1;ifloat TriArea(float a,float 。

28、b,float c)float s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c);10 参考第八章第八题11 #include#includevoid inverse(char *str) char t;int i=0,j=strlen(str)-1;for(;idouble f(double x);double q(double x);int main()double x;printf(please input the value of x!);scanf(%lf,&x);printf(the value of q(x) is:%f,q(x);retur。

29、n 0;double f(double x)return (2*x*x*x+3*x*x-4*x+1)/(10*x*x+3);double q(double x)return 3*f(x)*f(x)*f(x)+2*f(x)*f(x)+f(x);9. #includeint strcat_new(char *str1,char *str2)char *p=str1,*q=str2;while(*p)/让p最终指向str1的0p+;while(*p+=*q+);/把str2连到str1的后面return p-1-str1;/返回长度指针相减求出的是指针之间的元素个数int main()char st。

30、r1100,str250;int i;gets(str1);gets(str2);i=strcat_new(str1,str2);puts(str1);printf(the length of new str1 is:%d,i);return 0;10. #includeint Fibo(int n)if(n=1 | n=2)return 1;elsereturn Fibo(n-1)+Fibo(n-2);int main()int n;scanf(%d,&n);printf(the nth of Fibo sequence is:%d,Fibo(n);return 0;11. 此题难度太大,可。

31、以忽略#includevoid bi(int n)if(n=0 | n=1)putchar(0+n%2);elsebi(n/2);putchar(0+n%2);void main()int num;printf(please input the number!);scanf(%d,&num);bi(num);12 虽然简单,但是未学函数指针,此题忽略输出:48 实验14 综合程序设计练习(二)1.easy!相当于对二维矩阵进行转置2.输出ABbcd3.输出124.easy!改为按地址传递void swap(int *p,int *q);5此题较难,忽略.#includevoid input_data( int(*p)5,int n)int i,j;printf(please input the numbers of two-dimensional array having %d rows!,n);for(i=0;iint is_twodigits_same(int n)int low_digit=n%10;int mid_digit=(n-low_digit)/10)%10;int high_。

c语言怎样将字符串存入指针属猪,2009年C语言程序设计实验指导答案相关推荐

  1. c语言怎样将字符串存入指针属猪,字符数组全排列 - Lu堅的个人空间 - OSCHINA - 中文开源技术交流社区...

    // win32Console.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include //参数为引用,函数调用多,所以定义我内联 ...

  2. c语言设计实验指导答案,C语言程序设计实验指导答案

    C语言程序设计部分实验参考答案 实验2 #include int main(){//2-1-2 int c,f=150; c=f*5/9-32*5/9; printf("fahr=%d, c ...

  3. 如何编程阶梯形c语言,阶梯式C语言程序设计实验指导书.doc

    阶梯式C语言程序设计实验指导书 C 语言课程实验教学案例目 录 项目级案例 .............................................................. ...

  4. c语言程序设计中国铁道出版社孙辉答案,C语言程序设计实验指导与习题集

    <C语言程序设计实验指导与习题集>分为两篇.一篇为实验指导,分为10章,一章由验证性实验组成,第2章至第7章每章由5个验证性实验.2个启发性实验和1个设计性实验组成,第8.9章每章由3个验 ...

  5. 数据结构c语言王海燕版课后答案,c语言程序设计实验指导(学生用).doc

    c语言程序设计实验指导(学生用).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  6. c语言程序设计实验指导交大答案,C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc...

    C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc 实验一 Visual C集成环境实验内容(一)程序改错1.(1)无法运行(2)将第二个C程序重 ...

  7. c语言程序设计书实验电子版,C语言程序设计实验指导书(学生用书)-修订版.pdf

    C语言程序设计 实验指导书 (试用版) 华中科技大学计算机学院 2004年3月 编写说明 C语言程序设计的上机实验是进一步深刻了解C语言的语法.语义,掌握用 C语言进行初步程序设计所需要的方法和技能的 ...

  8. c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc

    太原理工大学现代科技学院 C语言程序设计课程 实验报告 专业班级 学 号 姓 名 指导教师 C语言程序设计 实验指导及报告 实验说明: 1.共4次实验,每次实验完成1个内容. 2.实验报告命名统一为: ...

  9. 陕西国防 c语言第三章实训三答案,C语言程序设计实验指导

    <C语言程序设计实验指导与习题精选 >是编写团队多年教学的结晶,同时配套全国计算机等级考试内容,读者学习本书,可以加强实践环节训练,深入理解书中的算法,提高学习效率 /2019-03-01 ...

最新文章

  1. selenium之简单使用
  2. 新书上市|当我们讨论“量子计算”时我们在讨论什么?
  3. maven之setting.xml的配置详解
  4. java 闹钟代码_JAVA可视化闹钟源码
  5. Generic Access Profile (GAP)
  6. prometheus + influxdb + grafana + mysql
  7. C++中const关键字的使用总结
  8. python输入日期时间转换格式_python如何格式化日期?
  9. python中读取指定的行和列_Python怎么获取excle中指定行和列的值?
  10. dos系统重启计算机名,dos系统重启的命令是是
  11. 抽象数据类型,让Oracle数据库数据管理更加容易
  12. 雷军微博抽奖送蔚来汽车,中奖用户等9个月仍未兑现,蔚来官方回应...
  13. 大数据_Flink_数据处理_运行时架构2_作业提交流程_抽象架构---Flink工作笔记0017
  14. java excel 数组公式_Excel数组公式应用
  15. ant如何形成时间轴和图库_如何排版微信公众平台的文章?
  16. 微信推送封面尺寸_微信公众平台图片尺寸是多少?
  17. FLASH闪存原理与实验
  18. DDD理论学习系列(7)-- 值对象
  19. 罗技无线网卡linux,Linux Kernel 5.2将改进对Logitech无线设备的支持
  20. TrackMouseEvent处理鼠标消息

热门文章

  1. 【量化干货】用python搭建量化交易策略(附零基础学习资料)
  2. 《Linux就该这么学》 - 必读的红帽系统与红帽linux认证自学手册
  3. 每日感悟-华杉讲解论语-2022/1/24
  4. 上市欢庆后 阿里还有许多正事要做
  5. 留学计算机美国硕士,美国留学计算机硕士院校难度解析
  6. 【bzoj1770/Usaco2009 Nov】lights 燈——折半搜索
  7. 用scratch导入列表乱码问题解决
  8. 什么是ANR 如何避免它?
  9. MySQL面试题-SQL优化
  10. 百货集团数字化转型方案