




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二:变量类型与输入输出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)改为scanf(“%lf”,&a),因为a是double类型的。5. 42 42123.540000 123.5400001.235400e+0021.235400e+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*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格式控制就可打印 ascii code*/return 0;11 12 easy 忽略实验三:运算符与表达式1. 输出:a=2,b=1,i=2 ,这是因为+放在后面是“先使用后自加”。2. 输出:f=5.750000,(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+ & 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 lower 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,-858993444,因为d没有赋初值因此打印出一个看起来非常奇怪的值。3. 输出 74. 输入27 输出 27,这是因为ch1=2,ch2=7输入2 7输出 4,这是因为ch1=2,ch2= (空格),而空格的ascii码为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); return 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 程序如下:#includeint main() double F,C; printf(please input the Fahrenheit!); scanf(%lf,&F); C=(double)5/9*(F-32); printf(the Celsius is:%f,C); return 0;本程序中要注意因为整数相除仍为整数,因此5/9永远为0,为了得到正确的结果,首先进行强制类型转换。 实验五:选择结构程序设计1.2 easy 忽略3. -1 此题简单4. 判定一个数位于一个区间,绝对不能出现60=score=60 & score70)此程序修改为: #include void main()int score;if(score=90 & score=80 & score=70 & score=60 & score0)的分支,应该改为:#includeint main() int a=2,b=-3; if(a0) if(b0) printf(a,b0); else printf(a0,b0);elseprintf(a0); return 0;7. #includeint main() char c; c=getchar(); if(c=a & c=A & c=a & c=z)写成if(a=c=A & c=a & c=A & c=0 & x=10)10 easy11 easy!但是要注意a=0&b!=0时,此时有一个根。12 #include int main() int birthYear,age; printf(“please input the year of your 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(“属兔”); break; 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(中);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输出:013645程序2输出:01239因为程序2的s在每次进入for循环体都要重新进行初始化为08 完成的功能是:s=1+2+3+n9. 完成的功能是:s=1!+2!+3!+n!10 完成的功能是:s=x1+x2+x3+xn 11.#include void main() int n,i; long t=1;/*防止阶乘较大而溢出*/ printf(“please input the value of n”); scanf(“%d”,&n);for(i=1;i=n;i+) t*=i; printf(“the factorial of n is:%ld”,t); 12 #includevoid main() int i,n,t=1; scanf(“%d”,&n); double s=0.0; for(i=1;i=n;i+) t*=i; s+=1/(double)t; printf(“%lf”,s);注意:在此程序中,整数除以整数还是整数,因此1/2的结果为0而不是0.5,这也是很多同学无论输入的n值是多少都得出结果为1,因此需要设置s为double类型,并且需要对得出的阶乘进行强制类型转换。13 #include #include void main()int i=1;double x,item,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; printf(%dn,k); while(i10); 4. 输出 1,2 3,3 5. 输出1,26 #include #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;i=4;i+) for(j=1;j=4;j+) for(k=1;k=4;k+) if(i!=j&i!=k&j!=k) printf(%d%d%d ,i,j,k); sum+; printf(n); printf(sum=%d,sum);8. #includeint main()char str10000;int i,letter_num=0,space_num=0,digit_num=0,other_num=0;gets(str);for(i=0;stri!=0;i+) if(stri=a& stri=A&stri=0 & stri=9) digit_num+; else other_num+;printf(英文字母个数为%d,空格个数%d,数字个数%d,其他字符个数%d,letter_num,space_num,digit_num,other_num);return 0;9. #includeint main()int a=0,b=1,c,i=1;printf(%4d,%4d,a,b);while(i=18)c=a+b;a=b;b=c;printf(%4d,c);i+;return 0;10 #includeint 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(uv)t=u;u=v;v=t;while(u%v!=0) t=u; u=v; v=t%v; return v;/*下面的函数用于求最小公倍数*/int gmd(int u,int v)return gcd(u,v)*(u/gcd(u,v)*(v/gcd(u,v);int main()int m,n;printf(please input the values of m and n!);scanf(%d%d,&m,&n);printf(最大公约数是%d,最小公倍数是%d,gcd(m,n),gmd(m,n);return 0;12. #include#include/*下面的函数用于判断一个数是否是素数,如果是就返回1否则返回0*/int isPrime(int m) int i; for(i=2;i=sqrt(m);i+) if(m%i=0) return 0; return 1;/*对形参v求出其素数表达式*/void get_expr(int v)int i=2;printf(%d=,v); while(v!=1) while(v%i=0 & isPrime(i) v/=i; printf(%d*,i); i+;printf(1);int main()int i;printf(please input the value of i!);scanf(%d,&i);get_expr(i);return 0;实验8 综合程序设计练习(一)1. 输出:3 注意x=1.000000而不是1.800000。2. 输出:5,7,同样是考查前缀和后缀问题3.easy忽略4.输出:a=8,b=225.填入的内容为:if(k%3=0 | k%7=0)6. #includeint main()double x,y;printf(please input the value of x!);scanf(%lf,&x);if(x-1 & x=1)y=-1;elsey=1-x;printf(y=%f,y);return 0;7. #includevoid 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=n) tn=tn+a; sn=sn+tn; a=a*10; +count; printf(a+aa+.=%ldn,sn);8. #include/*下面的函数用于判断一个数是否是水仙花数如果是返回1否则返回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;i=999;i+)if(isDaff(i)printf(%dt,i);return 0;9. #includeint isTri(int a,int b,int c);/判断是否构成三角形,如果是返回1否则返回0int rangleTri(int a,int b,int c);/ 判断是否构成直角三角形,如果是返回1否则返回0int isoTri(int a,int 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*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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南交通职业技术学院《装配式混凝土建筑技术》2023-2024学年第二学期期末试卷
- 广西城市职业大学《短视频创作实训》2023-2024学年第二学期期末试卷
- 天津外国语大学滨海外事学院《艺术素质》2023-2024学年第二学期期末试卷
- 无锡南洋职业技术学院《场地设计B》2023-2024学年第二学期期末试卷
- 浙江安防职业技术学院《Hadoop技术与应用实训》2023-2024学年第二学期期末试卷
- 郑州食品工程职业学院《装饰基础》2023-2024学年第二学期期末试卷
- 2025年四川省南充市中考化学试卷及答案
- MB-660R-NHS-Ester-生命科学试剂-MCE
- 工业品品牌的塑造与市场推广策略
- 工业品电商平台的创新与发展
- 生物基可降解地膜行业深度调研及发展项目商业计划书
- 出租车租凭合同协议书
- GB/T 24217-2025洗油
- 宁波辅警考试题库2024
- 2025年中考地理真题试题(含解析)
- 2025年社区工作者考试试题及答案
- 软件知识产权授权管理框架与合规性研究
- ISO9001质量管理体系培训考试试题含答案
- 2025-2030中国雷达告警接收机行业市场发展趋势与前景展望战略研究报告
- 一例高血压合并糖尿病患者的个案护理课件
- DVD在线租赁的分配问题
评论
0/150
提交评论