《C语言程序设计》实验.设计.习题.答案
实验三 3.4 编写程序,用 getchar 函数读入两个字符 c1,c2,然后分别用 putchar 函数输出 void main() { char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); putchar( \n ); printf(“%c %c\n“,c1,c2); } 3.5 把 790 分钟换成用小时和分钟表示,然 后输出。 void main() { int s=790; printf(“%d 小时“,s/60); printf(“%d 分钟“,s%60); } 3.6 将读入三个数 a,b,c, 然后交换它们的值, 把 a 的值给 b,把 b 的值给 c,把 c 的值给 a. main() { int a,b,c,t; scanf(“%d,%d,%d“, t=a; a=b; b=c; c=t; printf(“%d,%d,%d“,a,b,c); 3.7 输入一个 double 类型的数,使该数保留 小数点后两位,对第三位小数进行四舍五入 处理,然后输出此数,验证处理是否真确。 #include void main() { float x,s,a; int z; scanf(“%f“, a=100*x+0.5; z=(int)(a); s=z/100.0; printf(“%.2f\n“,s); } main() { int a,b,t; double c; scanf(“%lf“, b=100*c; t=1000*c; a=t%10; if (a=5) b=b+1; else b=b+0; c=1.0*b/100; printf(“%7.2lf/n“,c); return 0; } void main() { int x,y; scanf(“%d“, if(x-5) y = x ; if(x==0) y = x-1; if(x0) y = x+1; printf(“%d“,y); } 实验四 4.2 不嵌套 if 语句 void main() { int x,y; scanf(“%d“, if(x-5) y = x ; if(x==0) y = x-1; if(x0) y = x+1; printf(“%d“,y); } 法二:嵌套 if 语句 void main() { int x,y; scanf(“%d“, if((x-5) else if(x==0) y=x-1; else if(x0) y=x+1; printf(“%d“,y); } 4.3 如下程序运用条件运算符求变量的绝对 值? void main() { int a,M; scanf(“%d“, M=a0?a:-a; printf(“abs(a)=%d“,M); 4.4 某服装店经营套服,也可单件出售,若 买的不少于 50 套,每套 80 元,不足 50 套 的每套 90 元,只买上衣每件 60 元,只买裤 子每条 45 元, (读入所买上衣 C 和裤子 t 的 件数,计算应付款 m。 void main() { int c,t,m; printf(“ the number of coat and trousers your want buy:\n“);; scanf(“%d%d“, if(t==c) if(c=50)m=c*80; else m=c*90; else if(ct) if(t=50) m=t*80+(c-t)*60; else m=t*90+(c-t)*60; else if(c=50) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf(“%d“,m ); } 4.5:从键盘中输入三个数,分别让他们代表 三条线段的长度,请编写程序,判断由这三 条线段组成的三角形将是什么三角形(不等 边,等腰,等边或不构成三角形)? Include main() { int a,b,c; scanf(“%d %d %d“, if(a+bc else if((a==b else printf(“不等边三角形“); } else printf(“不构成三角形“); } 4.6: 判断输入的整数是否既是 5 又是 7 的倍 数,若是,则输出 yes,否则输出 no void main() { int x; scanf(“%d“, if(x%5==0 else printf(“no“); } 实验五 5.2 输入一行字母,将字母加密输出(如“a’ 变成’c’,’b’变成’d’,,’z’变成‘b’) main() { int c; while ( (c=getchar () ) != \n ) { if (c= A ||c= a ) c += 2; else if (c== y ||c== Y ||c== z ||c== Z ) c=c-24; printf(“%c“,c); } putchar ( \n ) ; } 5.3 利用 for 循环编写程序 法一: #include“stdio.h“ main() { int i,j; for(i=1;i=1e-5) { s=s*i; t=1/s; e=e+1.0/s; i++; } printf(“%f\n“,e); printf(“%d“,i); } 5.6:如果一个数恰好等于它的所有因子(包 括 1 但不包括自身) 之和, 则称之为 “完数” , 例如:6 的因子为 1,2,3 且 6=1+2+3,所 以 6 是完数,输出完数 1+完数 2+.=和值。 void main() { int i,j,sum,k; for(i=2;i=1000;i++) { sum=0; for(j=1;ji;j++) {if(i%j==0) sum+=j;} if(sum==i) {printf(“%d 的因子:\n“,i); k=0; for(j=1;ji;j++) { if(i%j==0 else if(i%j==0) printf(“+%d“,j); k++; } printf(“=%d“,sum); printf(“\n“); } } } 实验六 6.2:将数组 xx(有 n 个元素)的前 K 个元 素 (kn=移到数组的尾部, 变为后 K 个元素, 但是数组的这两段(原前 K 个元素为一段, 另外的 n-k 为一段)例如:若输入 7 和 1 2 3 4 5 6 7,再输入 5,则输出 6 7 1 2 3 4 5. #include“stdio.h“ main() { int n,k,xx[20]; int i,j,t; printf(“\nPlease enter a number“); scanf(“%d“, printf(“\nPlease enter %d numbers:“,n); for(i=0;in;i++) scanf(“%d“, printf(“%\nPlease enter another number:“); scanf(“%d“, for(i=0;ik;i++) { t=xx[0]; for