1、C语言程序设计实验与习题指导同步自测答案 2.1.3 同步自测 一、选择题 1.D 2.C 3.D 4.C 5.A 6.B 7.D 8.C 二、填空题 1.①c ②exe 2.①main 3.①函数说明部分 ②函数体 4.①主或main ②主或main 5.①; 2.2.3 同步自测 一、选择题 1.B 2.D 3.C 4.C 5.C 6.B 7.D 8.A 9.C 10.B 11.D 12.D 13.D 14.C
2、 15.C 16.D 17.C 18.C 19.B 20.A 21.D 22.A 23.D 24.C 25.D 26.B 27.B 28.D 29.D 30.C 31.A 32.B 33.D 34.B 35.C 2.3.3 同步自测 一、选择题 1.B 2.C 3.D 4.A 5.B 6.A 7.A 8.A 9.D 10.B 2.4.3 同步自测 一、选择题 1.B 2.A 3.B 4.C 5.B 6.D 7
3、C 8.A 9.D 10.B
二.编程题
1.
#include
4、"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d) {t=b;b=d;d=t;} if(c>d) {t=c;c=d;d=t;} printf("按新顺序输出的数为: %d %d %d %d",a,b,c,d); } 2.5.3 同步自测 一、选择题 1.C 2.C 3.D
5、 4.D 5.D 6.C 7.D 8.B 9.A 10.B 11.B 12.B 13.B 14.B 15.C 二、填空题 1.①getchar() 2.①n++ 3.①′\n′ ②num++; 4.①n<=m ②total=total+sum 5.①(i/100)*(i/100)*(i/100)+ ((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10) ②g==i 6.①10 7.①i%j=
6、0 8.①b 9.①y=1 ②x%i==0 10.①2*x+4*y==90 三.读程序写结果题 1. 8,17 2. 5723 3. 4 四.编程题 1. main() { int x,y,a,b; for(x=100;x<1000;x++) {y=0; a=x; while(a) { y=y*10+a%10; a=a/10; } if(x+y==1333) printf("a=%d;b=%d;c=%d
7、\n",x/100,(x/10)%10,x%10); } } 2. main() { long x,y/* 存放x */,n/* 记录x的位数 */,s/* 存放x*x */; long z /* 存放被取的顺序从右到左的相应部位数字 */,t/*十进制的权*/; for(x=1;x<=100;x++) { y=x; n=0; z=0; t=1; while(y) { n++; /* 记录x的位数 */ y=y/10; } s=x*x; for(;n>0;n--) {
8、 z+=(s%10)*t; /* 取相应部位数字 */ t*=10; s=s/10; } if(x==z) printf("%-10ld",x); } } 3. main() { int i; for(i=1;i<=100;i++) if((i+3)%5==0&&(i-3)%6==0) { printf("%d",i); break; } } 4. main() { int x,a,b,c; for(x=100;x<1000;x++) { a=x/100; b=(x/10)
9、10; c=x%10; if(a*a*a+b*b*b+c*c*c==1099) printf("%-10d",x); } } 5. main() { int x,a,b,c,count=0; for(x=100;x<1000;x++) { a=x/100; b=(x/10)%10; c=x%10; if(a+b+c==5) count++; } printf("共有%d个其各位数字之和是5的数字",count); } 2.6.3 同步自测 一、选择题 1.B 2.C 3.D 4.B
10、 5.A 6.D 7.D 8.D 9.D 10.B 11.B 12.A 13.D 14.D 15.B 16.B 17.A 18.A 19.B 20.A 21.A 22.D 23.D 24.A 25.A 二、填空题 1.① fac(n-1) 2.①a*a%8!=1 3.①a%b 4.①i++ 5.①j!=0 或 j ② n%10+’0’ 6.① x>=’a’&&x<=’z’ 7.① x=n ②n
11、10 ③x 三、读程序写结果题 4. 1 2 3 1. 9,19 2. f=6 3. 1 2 3 5. 30 6. -5,-12,-7 7. 10,20,30 8. !EDCBA 9. 4321 10. 7 15. 123 456 3 3 -2 2,5,1 123,456 14. 1,7,3 10,7,3 1,7,4 10,7,4 6,7,4 12.
12、 17,7,7
17,8,11
11. 2
13. 5,25
16. j=2
S=10
17. 15,145 18. 6
四、编程题
1.
#include
13、include
14、
gets(str);
delspace(str);
printf(“%s”,str);
}
3.
#include
15、me\n”,a);
}
int isprime(int x)
{ int j;
for(j=2;j<=sqrt(x);j++)
if(x%j==0) return 0;
return 1;
}
2.7.3 同步自测
一、选择题
1.C 2.A 3.C 4.A 5.D 6.C 7.C 8.D 9.B 10.B
11.D 12.C 13.D 14.D 15.B
二、填空题
1.① k=p 2.① a[i][j] 16、inue 5.① j=3 ② a[j-1][k-1]
6.① x/10 或int(x/10) 7.① !(s[i]>=’0’&&s[i]<=’9’)
8.① a[n-i-1]=temp
三、读程序写结果题
1. max=10,row=2,colum=1 2. 18,10
3. countryside 4. xbcdBCD
四、编程题
1. 参考程序及评分标准一:
#include 17、
for(i=0;i 18、 printf("%5d",a[i]);
putchar(‘\n’); //2分
}
参考程序及评分标准二:
#include 19、 insert(a,N,x); //2分
for(i=0;i<=N;i++)
printf("%5d",a[i]);
putchar(‘\n’); //2分
}
void insert(int v[],int n,int x)
{
int i,k;
for(i=0;v[i] 20、 v[k]=v[k-1];
v[i]=x; //2分
}
3.
#include 21、rse(s1);
puts(s1);
}
void reverse(char s[])
{ int i,j,c;
for(i=0,j=strlen(s)-1;i 22、e
{ copystr(str1,str2,m);
printf(“the result is :%s”,str2);
}
}
void copystr(char *p1,char *p2,int m)
{ int n=0;
while(n






