资源描述
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 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.C 8.A 9.D 10.B
二.编程题
1.
#include<stdio.h>
void main()
{
int x,y;
printf("请输入自变量x的值: ");
scanf("%d",&x);
if(x<0) y=3*x+1;
else if(x<5) y=2*x;
else y=x+2;
printf("\n函数y的值为: %d",y);
}
2.
#include<stdio.h>
void main()
{
int a,b,c,d,t;
printf("请输入四个整数:\n");
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 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==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\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--)
{
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)%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 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%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. 17,7,7
17,8,11
11. 2
13. 5,25
16. j=2
S=10
17. 15,145 18. 6
四、编程题
1.
#include <stdio.h>
void delspace(char *s)
{ int i,j;
for(i=0,j=0;s[i]!=’\0’;i++)
if(s[i]!=’ ’)
{s[j]=s[i];j++}
s[j]=’\0’;
}
2.
#include <stdio.h>
#include <math.h>
void main()
{ int adddigit(int num);
int n;
scanf(“%d”,&n);
printf(“sum=%d\n”,addigit(n));
}
int addigit(int num)
{ int s=0;
num=abs(num);
do{s+=num%10;
num/=10;
}while(num);
return s;
}
void main()
{ char *str;
printf(“input string:”);
gets(str);
delspace(str);
printf(“%s”,str);
}
3.
#include <stdio.h>
#include <math.h>
void main()
{int isprime(int x);
int a;
printf(“please input the number:\n”);
scanf(“%d”,&a);
if(isprime(a))
printf(“the %d is a prime\n”,a);
else
printf(“the %d is not a prime\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]<min 3.① i+j==2
4.① continue 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<stdio.h>
#define N 5
viod main()
{ int a[N+1],x,i,k;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
scanf("%d",&x); //2分
for(i=0;a[i]<x&&i<N;i++)
; //3分
for(k=N;k>i;k--)
a[k]=a[k-1];
a[i]=x; //3分
for(i=0;i<=N;i++)
printf("%5d",a[i]);
putchar(‘\n’); //2分
}
参考程序及评分标准二:
#include<stdio.h>
#define N 5
viod main()
{ void insert(int v[],int n,int x);
int a[N+1],x,i;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
scanf("%d",&x); //2分
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]<x&&i<n;i++)
; //2分
for(k=N;k>i;k--)
v[k]=v[k-1];
v[i]=x; //2分
}
3.
#include <stdio.h>
#include <string.h>
void main()
{
void copystr(char *p1,char *p2,int m);
2.
#include<stdio.h>
#include<string.h>
void main()
{ void reverse(char s[]);
char s1[80];
gets(s1);
reverse(s1);
puts(s1);
}
void reverse(char s[])
{ int i,j,c;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
{ c=s[i];
s[i]=s[j];
s[j]=c;
}
}
char str1[20],str2[20];
scanf(“%s”,str1);
scanf(“%d”,&m);
if(strlen(str1)<m)
printf(“input error”);
else
{ copystr(str1,str2,m);
printf(“the result is :%s”,str2);
}
}
void copystr(char *p1,char *p2,int m)
{ int n=0;
while(n<m-1)
{n++; p1++;}
while(*p1!=’\0’)
{*p2=*p1;p1++;p2++;}
*p2=’\0’;
}
2.9.3 同步自测
一、选择题
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
11. 12. 13. 14. 15.
展开阅读全文