安徽大学C语言实验平台作业答案.doc

上传人:peixunshi 文档编号:15033873 上传时间:2022-03-06 格式:DOC 页数:54 大小:365.50KB
返回 下载 相关 举报
安徽大学C语言实验平台作业答案.doc_第1页
第1页 / 共54页
安徽大学C语言实验平台作业答案.doc_第2页
第2页 / 共54页
安徽大学C语言实验平台作业答案.doc_第3页
第3页 / 共54页
安徽大学C语言实验平台作业答案.doc_第4页
第4页 / 共54页
安徽大学C语言实验平台作业答案.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《安徽大学C语言实验平台作业答案.doc》由会员分享,可在线阅读,更多相关《安徽大学C语言实验平台作业答案.doc(54页珍藏版)》请在三一文库上搜索。

1、实验三 C 基本数据类型及运算1. 编程:根据需要定义相关变量,键盘输入10.0 、20.6 、5.0 三个实数分别赋给相关三个变量,输出该 3个变量的和 s 、乘积 p 和平均值 a。2. 编程:输入球的半径,计算球体表面积和球体积。3. 编程:定义 6 个变量,通过键盘将“ 10, 10, 40000 , a , 3.14 , hello ”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。4. 编程:从键盘接收 1 个字符给变量 s1 ,1 个字符串(允许带有空格)给字符数组s2 ,输出字符变量 s1 的 ASCII 码值及字符数组 s2 中的字符串。5. 编程:从

2、键盘输入二个整数分别赋给整型变量a、b,将它们按由小到大的顺序输出。6. 编程:调用标准库函数sin ( x)计算6800的正弦值(此题为选做)。7. 编程:键盘输入一个实数赋给变量x,计算y=x*x*x+x*x+x的值,分别输出y值、y值的整数部分和小数部分 (此题为选做)。8. 编程:键盘输入四个整数分别赋给整型变量a、b、c、d,用三目运算方法将它们按由大到小的顺序输出 (此题为选做)。1. #includemain()float x,y,z,s,p,a;scanf(x=%fy=%fz=%f,&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf(s=%f,p=%f

3、,a=%f,s,p,a);#includemain() float r,s,v;printf(input r);scanf(%f,&r);s=4*3.14*r*r;v=4/3*3.14*r*r*r;printf(s=%f,v=%f,s,v);2. #includemain()int a,b;long c;char d,st6;float e;scanf(%d%d%ld%c%f%s,&a,&b,&c,&d,&e,st);printf(a=%dn,b=%dn,c=%dn,d=%cn,e=%fn,ch=%s,a,b,c,d,e,st); 3. #includemain() char s1,s26;s

4、canf(%c%s,&s1,s2);4. #include main() int a,b;scanf(a=%db=%d,&a,&b);if (ab)printf(a=%db=%d,a,b);elseprintf(b=%da=%d,b,a);5. #include#includemain()float a,b;scanf(%f,&a);b=sin(a);printf(%f,b);#includemain()float x,y,b;int a;scanf(%f,&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf(%fn%dn%fn,y,a,b);实验四 C 分支结构程序

5、设计1. 编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它 字符输出“ Not letter! ”。2. 编程:判断输入的正整数是否既是 3 又是 5 的整数倍。若是,输出 Yes, 否则输出 No。3. 编程:从键盘输入三个整数,分别赋给变量a, b,c ,输出其中的最大值(要求不改变a、b、c的值)。4. 编程:用scanf输入任意两个数分别赋给变量a、b,若a大于等于b,则直接输出a、b,否则将a、 b 的值交换(即 a 的原值放入 b 中, b 的原值放入 a 中)后再输出。5. 编程:输入整数a和b,若a2+ b2大于100,则输出a2+ b

6、 2百位以上的数字,否则输出两数之和。6. 编程:从键盘输入三个整数,分别赋给变量a,b,c,请按从小到大的顺序依次输出 a、b、c(要求不改变 a、 b、 c 的值)。7. 编程:从键盘输入三个整数,分别赋给变量a,b,c,请按从小到大的顺序依次将这三个数存放于 a、 b、 c 中,最后输出 a、 b、 c。8. 编程:由系统生成一个 10 以内的随机整数,用户从键盘上输入一个10 以内的整数,如果两者相等输出“ 0K,否则输出“ ERRO”。注: 随机数的生成必须包含头文件 #include 、 #include ,必须用初始化语句 srand(unsigned)time(NULL);,表

7、达式 rand()%a+1 的值为 1a 内的随机整数#includemain()char x; scanf(%c,&x); if(x=a&x=A&x=Z) printf(%c,x+32); else printf(Not letter!);1. #include main() int x; scanf(%d,&x);if (x0) if(x%3=0&x%5=0) printf(Yesn); else printf(Non);else printf(Error!);2. #include main() int a,b,c,max; scanf(%d%d%d,&a,&b,&c); max=ab?

8、a:b; max=maxc?max:c; printf(a=%d,b=%d,c=%d,max=%d,a,b,c,max); 3. #include main() float a,b; scanf(%f%f,&a,&b); if(ab) a=a+b;b=a-b; a=a-b;printf(a=%f,b=%fn,a,b);5.#include main() int a,b,t,r,s; scanf(%d%d,&a,&b);s=a+b; r=a*a+b*b;t=r/100;if(r100) printf(%d,t);else printf(%d,s);6.#includeint main()int

9、a,b,c,d,max,min; scanf(%d%d%d,&a,&b,&c); if(a=b)max=a;min=b; else max=b;min=a; if(c=max) max=c; if(c=min) min=c;d=a+b+c-min-max;printf(%d %d %dn,min,d,max); 7.#include main() int a, b, c, d;scanf(%d%d%d,&a,&b,&c); if(a=b)d = a;a = b;b = d;else if(b=c)d = b;b = c;c = d; printf(a=%d b=%d c=%d,a,b,c);

10、8.#include #include #includemain()int a,b;srand(unsigned)time(NULL);b=rand()%10+1;scanf(%d, &a);printf(a=%d,随机数 b=%dn,a,b);if(a=b)printf(OK!n);else printf(ERROR!n);实验五C多分支结构程序设计*1. 编程:计算奖学金ss的值,已知奖学金ss与成绩s的关系为:0(s80)ss - 100 + s(80 s 90)200+*3/2(90 s 0)/(开)二 *0 (x = 0)-1 (x 0)具体要求:(1) 用条件表达式编程。(2 )用

11、if语句编程。(3) 用scanf函数给自变量赋值,且输入前有相应提示。(4) 结果输出时米用以下形式:乂=具体值,f(x)=具体值(5) 给出你所使用的测试用例。提示:按C的语法规则,标识符由字母、数字、下划线组成,不能将f(x)作为变量名,本题中,函数名可起为f或y等。但作为非格式控制字符,f(x)完全可以出现在printf函数的双引号内。3. 编程:输入一个整数,判断它能否被 3,5,7 整除,并输出以下信息之一:(1)能同时被 3,5,7 整除。(2)能被其中两数整除(指出是哪两个数)。( 3)能被其中一个数(指出是哪一个数)整除。( 4)不能被 3, 5,7 任一个数整除。4. 编程

12、:用 switch 语句编写一个简单的计算器程序,输入格式为: data1 op data2 。其中 data1 和 data2 为参加运算的两个数; op 为运算符,取值只能是 +、-、*、/ 。5. 编程:计算你的出生日期是星期几。(1)通过键盘输入你出生那一年的元旦是星期几( 2 )通过键盘输入你的出生日期(3)输出结果1.#includemain()int s; float ss;printf(Please input sn);scanf(%d,&s);if(s100)printf(ERROR!n);else if(s=0&s=80&s=90&s=100)ss=200+s*3/2;pr

13、intf( 成绩 s=%d, 奖学金 ss=%0.2fn,s,ss);2.#includemain()float x;int f;printf(Please input xn);scanf(%f,&x);if(x=0)f=0;else f=(x0)?1:-1; printf(x=%f,f(x)=%dn,x,f);3.#includemain()int x,a,b,c;printf( 请输入一个整数 x);scanf(%d,&x);a=x%3;b=x%5;c=x%7;if(a=0&b=0&c=0)printf(%d 能同时被 3,5,7 整除 n,x);else if(a=O & b=0) pr

14、intf(%d 能被 3,5 整除n, x);else if(a=0 & c=0) printf(%d 能被 3,7 整除 n,x);else if(b=O & c=0) printf(%d 能被 5 , 7 整除 n,x);else if(a=0) printf(%d 能被 3 整除 n,x);else if(b=0) printf(%d 能被 5 整除 n,x);else if(c=0) printf(%d 能被 7 整除 n, x);else printf(%d 不能被 3,5,7 任意一个数整除 n,x);4.#include main()char op;float d1,d2;pri

15、ntf( 请输入算式 );scanf(%f%c%f,&d1,&op,&d2);switch(op)case +: printf(%g+%g=%gn,d1,d2,d1+d2);break;case -: printf(%g-%g=%gn,d1,d2,d1-d2);break;case *: printf(%g*%g=%gn,d1,d2,d1*d2);break;case /: printf(%g/%g=%gn,d1,d2,d1/d2);break;5.#include main()int x,m,d;printf( 请输入你出生那年元旦的星期( 1 至 7):n);printf( 请输入你的出生

16、日期 ( mm/dd ) : n);scanf(%d,%d,%d,&x,&m,&d);switch (m*30+d)/7)case 0:printf(你出生那天为星期%d,x);break;case 1:printf(你出生那天为星期%d,x+1);break;case 2:printf(你出生那天为星期%d,x+2);break;case 3:printf(你出生那天为星期%d,x+3);break;case 4:printf(你出生那天为星期%d,x+4);break;case 5:printf(你出生那天为星期%d,x+5);break;case 6:printf(你出生那天为星期%d,

17、x+6);break;实验六 C 循环结构程序设计编程:输出 200 以内所有能被 7 整除的数1. 编程:求出11000之间能被13整除的最大的那个数。2. 编程:找出若干个非零数中的最小值m以及它们的平均值a。要求:若干个数由键盘输入,每次输入一个赋给变量x,x为零时,结束输入。3. 编程:求两个正整数 m n之间所有奇数之和 x与偶数之和y。要求:(1) m n的值由键盘输入。(2) 输入时,允许用户随意先输入大的或小的整数。4. 编程:计算函数y的值。要求键盘接收自变量x的值,若x的值不为零,计算函数 y的值并输出,再从键盘接收下一个 x的值,”,直到 x的值为零,显示“ Thank

18、You, Bye!”,尔后结束程序,已 知函数y与自变量x的关系为:3x+l(0x100)1.1.6. 编程:计算n的近似值,n的计算公式为1x3 3x55x7(2wl)x(2w+l)1.1.要求:(1) n值由键盘输入。(2) 分别输出当n为10、100、1000时的计算结果。(3) 输出时要求每行显示一组 n、n的值,每行形式如下:* =具体值,n = 具体值7. 我国现有人口 13亿,设年增长率为1%,编写程序,计算多少年后增加到 20亿。8. 求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5

19、阶;若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯最少共有多少阶?9. 每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。编程:求每天平均花多少钱?(此题为选做)#include main()1.int i;for(i=1;i=200;i+)if(i%7!=0) continue;printf(%d ,i);2.#includemain()int i,max=0; for(i=0;i=1000;i+) if(i%13!=0) continue;if (maxi)max=i;printf(max=%dn,max);3.#includ

20、emain()int i;float x,m,s,a;scanf(%f,&x);_+Aes-H + x(4%w(+UMVlumdoj 宀VUCM E lulm U A LU )?!= e03u03-=p%p%=)ueos omaomxtu-lu1u- ouroLU po Alroplsv(Dpnoutt寸I讯菩 1三、=)ku 匸 d宀Flu(xg 一X+SMS siealq (0MMX)J!= XXO3匸 =)ueos) (+=上)0 (xmsflu(oll.x)-printf(x=%dn,x);printf(y=%dn,y);5.#includemain()float x,y; print

21、f(input x:); scanf(%f,&x);for (;x=0;)if(x0&x=100)y=x*x-1;printf(%f,y);else printf(thank you bey !);break; scanf(%f,&x);6.#includemain()int n,i;double t,sum;printf( 请输入 n 的值 n);scanf(%d,&n);sum=2;i=1;t=2;while(in)t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1);i=i+1;printf(n=%d, n =%f,n,t);7.#includemain()double t=1

22、3,s=0;while(t=20)t=t*(1+0.01);s+;printf(” 需要经过 lf 年,s);8.#includemain()int x=7;while( !(x%2=1&x%3=2&x%5=4&x%6=5)x=x+7;printf(%dn,x);9.#include main()float s=0;int n=1,p=0,d=0;do d+;n=n*2;p=p+n;while(p+n*2=100);s=p*0.8/d;printf( 每天平均花 %g 元钱 !n,s);实验七 C 多重循环结构程序设计1. 编程:输出 100 以内个位数为 6 且能被 3 整除的所有数。2.

23、编程:键盘输入 6 位学生的 5 门课成绩,分别统计出每个学生的平均成绩。3. 编程:输入一个正整数,统计该数的各位数字中零的个数,并求各位数字中的最大者。4. 编程:分别用 do while 、 while 、 for 三种循环结构求: 1!+2!+3!+.+n!,要求 n 的值由键盘输入。5. 编程:计算 100 至 1000 之间有多少个数其各位数字之和是 5。6. 编程:从键盘输入的 10 个整数中,找出第一个能被 7 整除的数。若找到,输出此数后退出;若未 找到,输出“ not exist ”。7. 编程:输出 1 至 100 之间满足如下条件的数:各位数的乘积大于各位数的和。8.

24、编程:将整数 316 表示为两个加数的和,使这两个加数分别能被 13 和 11 整除。9. 编程:打印出所有的 水仙花数 。所谓的 水仙花数 是指一个 3 位数,其各位数字的立方和等于 该数本身。例如, 153 是一个 水仙花数 ,因为有 153=1*1*1+5*5*5+3*3*3 。10. 编程:一条有 10 个车站的铁路线,共需要准备多少种车票?1.#includemain()int i;for(i=1;i=100;i+)if(i%10=6&i%3=0)printf(%d ,i);2.#includemain()int i,j,a65;float s;for(i=0;i6;i+)s=0;f

25、or(j=0;j5;j+)printf( 请输入第 %d 个学生的第 %d 门成绩 ,i+1,j+1);scanf(%d,&aij);s=s+aij;s=s/5;%fn,i+1,s);printf( 第 %d 个学生平均成绩为3.#includemain()int x,i,max,t;i=0;max=0;scanf(%d,&x);dot=x%10;if(t=0) +i;else if(maxt) max=t;x=x/10;while(x);printf(i=%d,max=%d,i,max);4.#include main()int n,i,a,s=0; printf( 请输入 n:); sca

26、nf(%d,&n); a=1;for(i=1;i=n;i+)a=a*i;s=s+a;printf(s=%dn,s);#include main()int n,i=1,a=1,s=0; printf( 请输入 n:); scanf(%d,&n); while(i=n) a=a*i;s=s+a;i+;print(s=%d,s);#include main()int n,i=1,a=1,s=0; printf( 请输入 n:); scanf(%d,&n);doa=a*i;s=s+a;i+;while(i=n);printf(s=%d,s);5.void main() int i,s,k,count=

27、0;for(i=100;i1000;i+)s=0;k=i;while(k)s=s+k%10;k=k/10;if(s!=5)continue;elsecount+;printf(%dn,count);6.#include main()int x,i;for(i=1;i10)printf(not exist!);7.#include main ( )int n,k=1,s=0,m ;for (n=1;n=1)k*=m%10;s+=m%10;m=m/10 ;if(ks)8.#includemain()int i=0,j,k;doi+;k=316-13*i;while(k%11);j=k/11;pri

28、ntf(316=13*%d+11*%dn,i,j);9.#includemain()int i,j,k,n;for(n=100;n1000;n+) i=n/100;j=(n-i*100)/10;k=n%10;if(i*i*i+j*j*j+k*k*k=n)printf(%dn,n);实验八 C 程序控制结构综合应用1. 编程计算: s=1+12+123+1234+12345+123456+1234567 。2. 编程 : 找出 1 至 99 之间的全部同构数。所谓同构数是这样一组数: 它出现在其平方数的右边。 例 如: 5是25右边的数, 25是625右边的数, 5和25都是同构数。3. 若用

29、0 至 9 之间不同的三个数构成一个三位数,编程统计共有多少种方法。4. 编程:键盘输入一个不多于 5 位的正整数,要求: (此题为选做)(1) 求它是几位数(2) 逆序打印出各位数字。如原数为123,输出则为 321 。5. 编程:找出以下疑案的作案人 (此题为选做)已知该案涉及6个嫌疑人A、B、C、D E、F,并且:(1) A、B 至少有一人作案。(2) A 、E、F这3人中至少有 2人参与作案。(3) A、D 不可能是同案犯。(4) B、C或同时作案,或与本案无关。(5) C、D中有且仅有一人作案。(6) 如果D没有作案,则E也不可能参与作案。6. 编程:输出下列形式的杨辉三角形的前10

30、 行(此题为选做)11 11 2 11 3 3 11 4 6 4 11.#include main() int s=0,i=1,t=0;while(i10) t=t*10+i;s+=t;i+;printf(s=%dn,s);2.#includemain()int i;for(i=1;i=99;i+)if(i*i%10=i|i*i%100=i)printf(%dn,i);3.#include main()int i,j,k,count=0;for(i=1;i=9;i+)for(j=0;j=9;j+)if(i=j) continue;else for(k=0;k=9;k+)if(k!=i&k!=j

31、) count+;printf(%dn,count);实验九 C 的数组1. 编程实现:输入一个正整数n (1nwiO),再输入 n个整数,把这些数逆序存放到数组中再按顺序输出。例如:输入 5,再输入三个数 8、 23、 1 、7、 1 9 ,则输出为: 19、7、1、23、8。2. 编程实现:输入 1O 个正整数,将它们中的最小值与第一个数交换,最大值与最后一个数交换, 然后输出交换后的 1O 个数。3. 编程实现:已知二次等差数列的前 4 项为 2,5,1O,17 ,请定义一维整型数组存储该数列的前2O项,并每 5 个数为一行输出该数列的前 2O 项。4. 已知一组整型数据已按从小到大排列

32、好,现任意输入一个整数,请按原来排序的规律将它插入 到数组中 (例如:原来的一组整数为 1,3,5,8,9, 若输入的整数是 7,则最终的结果为 : 1,3,5,7,8,9) ,请编 程实现。5. 编程:将一个4X4的整型矩阵元素按副对角线(右上到左下)互换。要求:( 1 )键盘输入矩阵各元素的值。( 2)互换前,按矩阵形式输出矩阵。( 3)互换后,按矩阵形式输出矩阵。6. 求一个4X4的整数矩阵的副对角线(右上到左下)上所有奇数的和sum及偶数的平均值ave。要求:结果保留 2 位小数7. 通过循环按行顺序为一个 5X5的二维数组a赋1到25的自然数,然后输出该数组的左下半角 元素的值和它们

33、之和。8. 定义一个实数型数组,将10个实数输入到数组中,编程实现任一块区间所有元素的平均值,即输入两整数m, n,计算出数组中第 m个元素开始的后n个元素的平均值,包括第m个元素(若n值过大,即个数太多,超过数组的最后一个元素,则统计到最后一个元素 )。例如:数组元素为 1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,输入 3,5,则输出 5.0。9. 一个整型数组有10个元素,编写程序删除所有值为n的元素。女口:数组中为1,3,2,4,2,7,9,0,2,5,n的值为2,删除后输出数组元素应该为1,3,4,7,9,0,5。(此题为选做)10. 定义两个N行

34、N列的二维数组a、b,编写程序,将a数组最后一行放到 b数组的第0列中,把a数组中的第0行放到b数组的最后一列中,b所指二维数组中其他元素的数据不变。(此题为选做)11. 试编程实现如下功能: 先定义一个 4 行 5 列的数组(矩阵) ,调用库函数 rand() 随机产生 20-50 之间的整数给数组元素赋值,再将矩阵中第二列与第四列的元素互换。要求先输出原数组,再输出交换后 的数组( rand 函数的使用请参阅教材 259 页)。 (此题为选做)1.#includemain()int a10,n,i;scanf(%d,&n);for(i=n-1;i=0;i-)scanf(%d,&ai);fo

35、r(i=0;in;i+)printf(%d ,ai);printf(n);2.#include main()int n,i,a10,max,min,t,r,p;scanf(%d,&n);for (i=1;i=n;i+)scanf(%d,&ai);min=a1;for (i=1;i=n;i+)if (aia1)min=ai;r=i;t=a1,a1=min,ar=t;max=an;for (i=1;ian)max=ai;p=i;t=an,an=max,ap=t;for (i=1;i=a8)a9=n;for(i=0;i10;i+)printf(%d ,ai);printf(n );6.#includ

36、emain()int a44,i,j,t=0;float s1=0 ,s2=0,ave;for(i=0;i=3;i+) for(j=0;j=3;j+)printf(input 16 ints:);scanf(%d,&aij);for(i=0;i=0;j-) if(i+j=3)if(aij%2!=0) s1=s1+aij;elset+;s2=s2+aij;ave=s2/t;printf(s=%0.2fnave=%0.2fn,s1,ave);7.#include main()int i,j,k=1,s=0;int a55;for(i=0;i5;i+)for(j=0;j5;j+)aij=k;k+;p

37、utchar(10);for(i=0;i5;i+)for(j=0;j5;j+)printf(%dt,aij);printf(n);putchar(10);for(i=0;i5;i+)for(j=0;j=i;j+)printf(%dt,aij);printf(n);s=s+aij;printf(s=%d,s);实验十 C 字符数组和字符串函数1. 编写字符串拷贝程序,并要求拷贝过程中将字符串中的小写字母转换成大写字母。2. 从键盘输入两个字符串 a 和 b ,要求不使用库函数 strcat ,把串 b 的前 5 个字符连接到串 a 中; 如果b中的长度小于5,则把b的所有元素都连接到 a中。3. 输入一个以回车结束的字符串(少于 80 个字符),再输入一个字符,统计并输出该字符在字符 串中出现的次数,然后输出该字符串。4. 编程 : 输入一个字符串,输出该字符串中出现次数最多的字符以及出现的次数。5. 编程: 键盘接收一个字符串 (只含大、小写英文字母 ) ,将该字符串加密后输出。 加密规则为:若为小写字母则不变,若为大写字母则将其转换为小写后再后移一个字母,例如“A”应转换为“b”,“ B应转换为“c”,“ Y应转换为“ z”,而“ Z应转换为“a”。6. 编程:输入一个以回车结束的字符串a (少于80个字符),再输入一个字符串b,统计并输出b 在 a 中出现的次数,然

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1