C语言程序设计的试题及答案(3)

2020-08-06 试题

________________________) if(n%i==0) ________________________ if(i>k) printf("\t%2d",n); } return 0; } 3. 输出 200 以内能被 5 整除的数 #include"stdio.h" int main() { ________________________ for(________________________;n<=200; ________________________) { if (n%5!=0) ________________________ printf("%d ",n); } return 0; } 4. 求输入的十个整数中正数的个数及其平均值 #include int main() { int i,num=0,a; float sum=0; for(i=0; ________________________;________________________) { scanf("%d",&a); if(a>=0) { ________________________; ________________________; } } printf("%d plus integer's sum: %6.0f\n",num,sum); printf("Mean value:%6.2f\n",sum/num); return 0; }

  5. 求输入的十个整数中负数的个数及其平均值 #include int main() { int i,num,a; float sum=0; ________________________; ________________________; while(i<10) { scanf("%d",&a); if(a<=0) { ________________________; num++; } ________________________; } printf("%d plus integer's sum: %6.0f\n",num,sum); printf("Mean value:%6.2f\n",sum/num); return 0; } 6. 分解并打印出 X 的各个素数因子.如 18=1*2*3*3. #include int main() { int i,x; scanf(“%d”,&x); printf(“%d=1”,x); for(________________________;i<=x; ________________________) { while________________________ { printf(“*%d”,i); ________________________; } } return 0; } 7. 输出九九乘法表. #include int main() { int i,j; for (i=1; ________________________;________________________) { for(________________________;________________________;j++) printf("%2d*%2d=%2d", j, i ,i*j);

  printf("\n\n"); } return 0; } 8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和。 #include "stdio.h" int main() { int n,t,number=20; float a=2,b=1, ________________________; for( n=1; ________________________;________________________) { s=s+a/b; t=a; a=a+b; ________________________; } printf("sum is %9.6f\n",s); return 0; } 9. 求 1+2!+3!+...+20!的和. #include "stdio.h" int main() { float n, ________________________,t=1; ________________________;________________________;) { t*=n; ________________________; } printf("1+2!+3!...+20!=%e\n",s); return 0; }

  for(n=1;

  10. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和。 #include "stdio.h" int main() { int n,t,number=20; float a=2, ________________________,s=0; for(________________________;________________________;n++) { s=s+a/b; t=a; ________________________; b=t; }

  printf("sum is %9.6f\n",s); return 0; } 解答: 1. int n; n=1; n++ continue; 2. #include"math.h" n++ i++ break; 3. int n; n=1 n++ continue; 4. i<10 i++ num++ sum+=a 5. i=0; num=0; sum+=a; i++;

  6. i=1 i++ (x%i==0) x=x/i; 7. i<=9 i++ j=1 j<=i 8. s=0 n<=20 n++ b=t; 9. s=0 n<=20 n++ s+=t; 10. b=1 n=1 n<=20 a=a+b 四.改错题 解答:

  五.编程一 1. 试编写程序求 S=1+1*2+1*2*3+1*2*3*4+?+1*2*3*?*10 的值。

  2. 编程利用以下公式求π 的值。 (取 n=10000)

  3. 计算 s=1+1/2+1/3+?+1/n 的值,其中 n 的值由键盘输入。

  4. 编写程序,在屏幕上输出下面的图案(要求用 for 循环实现) 。 ***** ***** ***** ***** ***** 5. 编写程序,输入整数 n,并根据 n 的值打印图案(要求用 for 循环实现) 。 。 n 为中间一行的*号个数。例如,当 n=4时,图案为 * ** *** **** *** ** * 6. 从键盘输入若干个学生的成绩,-1 作为结束标志,求出平均成绩及最高成绩并输出其结 果。 7. 编写一程序,从键盘输入 n 个数,输出其最大数和最小数,并输出它们在序列中的序号。 8. 编程实现:输出由 0、1、2、3 组成的所有的各位数字均不相同的三位数,输出时每 8 个 数 占一行。 9. 输入一行字符,回车作为结束,分别统计出其中英文字母、空格、数字和其它字符的个 数。

  10. 求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时

  共 有 5 个数相加),几个数相加由键盘控制。

  解答: 1. #include void main() { int i; float s=0,term=1; for(i=1;i<=10;i++) { s=s+term; term=term*(i+1); } printf("sum%10.1f\n",s); } 2. #include void main() { int i; float e=1,term=1; for(i=1;i<=100;i++) { term=term*i; e=e+1./term; } printf("e=%10.6f\n",e); } 3. #include void main() { int i,n; float s=0; printf("input n\n"); scanf("%d",&n); for(i=1;i<=n;i++) s=s+1./i; printf("s=%10.6f\n",s); } 4. #include void main() { int i,j,k; for(i=1;i<=5;i++)

  {

  for(k=1;k<=2*i;k++) printf(" "); for(j=1;j<=5;j++) printf("* "); printf("\n");

  } }

  5. #include void main() { int i,j,n; printf("input n\n"); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) printf("* "); printf("\n"); } for(i=n-1;i>=1;i--) { for(j=1;j<=i;j++) printf("* "); printf("\n"); } } 6. #include void main() { int i,score,sum=0,max; i=0; printf("please input score:\n"); scanf("%d",&score); max=score; while (score!=-1) { sum=sum+score; if(score>max)max=score; i++; scanf("%d",&score); } printf("max=%d\n",max); printf("average=%f\n",(float)sum/i);

  } 7. #include void main() { int i, n,x,max,min,maxi=1,mini=1; printf("please input n:\n"); scanf("%d",&n); printf("please input x:\n"); scanf("%d",&x); max=x;min=x; for(i=2;i<=n;i++) { scanf("%d",&x); if(x>max) { max=x;maxi=i;} if(x void main() { int i,j,k,n=0; for(i=1;i<=3;i++) for(j=0;j<=3;j++) for(k=1;k<=3;k++) if(i!=j&&i!=k&&j!=k) { n++; printf("%5d",i*100+j*10+k); if(n%8==0)printf("\n"); } } 9. #include void main() { int shuzi=0,zimu=0,kge=0,qita=0; ch=getchar(); while(ch!='\n') { if(ch==' ') kge++; else if(ch>='0'&&ch<='9')

  char ch;

  shuzi++; else if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') zimu++; else qita++; ch=getchar(); } printf("数字=%d;字母=%d;空格=%d;其它%d",shuzi,zimu,kge,qita); } 10. #include void main() { int Sn=0,a,n,i=0,t; printf("Sn=a+aa+aaa+…+aaa…a\nplease input a,n:"); scanf("%d,%d",&a,&n);t=a; while(i

  ) ;形参实参都是

  4. 定义在一个程序块(函数)中的变量,称为( 它的程序块。

  5. 在函数原型声明中,必须声明函数参数的类型,但可以省略( 6. C 语言源程序中主函数名由系统规定为(

  ) 。

  ) ,程序员是不能改变的。

  7. 已知函数首部定义为:int stat(int a , float *p) 则此函数的两个参数类型分别是(

  ) 、 (

  ) 。

  8. 在 c 语言中,进行函数调用是,实参和实参之间有严格的规定,主要有三种要求分别是: ( ) 相等, ( )一致,并( )对应。 9. 若自定义的函数要求返回一个值,则应在该函数中有一条( )语句。

  10. 若函数头部定义为 int foo(), 则该函数中 return 语句返回的数据类型是( ) 。 11. 若函数头部定义为 struct stu * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 12. 若函数头部定义为 int * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 13. 若函数头部定义为 float foo(), 则该函数中 return 语句返回的数据类型是( ) 。 14. 若函数头部定义为 char foo(), 则该函数中 return 语句返回的数据类型是( ) 。 15. 若函数头部定义为 char * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 16. 若函数头部定义为 void foo(int a[]),在主程序中有如下语句: int a[5] = {1};? foo(a[5]); 这句函数调用的语句是 ( 正确” “错误” ) 17. 若函数头部定义为 void foo(int *a),在主程序中有如下语句: int array[5] = {1};? foo(array); 这样的语句是( 确” “错误” )

  ) 。 (填“

  ) 。 (填“正

  18. 若函数头部定位为 void foo (char * str), 在主程序中有如下语句: char array[5] = "good";? foo(array); 这样的语句是( “正确” “错误” )

  ) 。 (填

  19. 若一个函数中的主要语句是这样的, int a = 3; if (a > 3) return -1; return 0; 那 么 这 个 函 数 的 返 回 值 是 ( ) 。 20. 若函数头部定义为 void foo (int * a), 主程序中定义 int array[10], 现在要将 arra y 数据传进数组进行处理,正确函数调用语句是(

  )

  。 解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 二.阅读程序写结果 1. #include long fun(int x,int n); int main() { int x=3,n=3; long p; p=fun(x,n); printf("p=%ld\n",p); return 0; } long fun(int x,int n) { int i; long p=1; for(i=0;i int isDigit(char ch); int main() {

  char ch; while((ch=getchar())!='\n') { if(isDigit(ch)) putchar(ch); } printf("\n"); return 0; } int isDigit(char ch) { if(ch>='0' && ch<='9') return 1; else return 0; } 输入:Abc1d23eF45g<回车> 3. #include void odddivisor(int n); int main() { int n; scanf("%d",&n); odddivisor(n); return 0; } void odddivisor(int n) { int i; for(i=3;i<=n/2;i=i+2) if(n%i==0) printf("\n"); } 输入:15<回车>

  printf("%5d",i);

  4. #include

  void print(); int a=5; int main() { int a=1,b=2; a=a+b; print(); printf("%d %d\n",a,b); return 0; } void print() { int b=3; printf("%d %d\n",a,b); } 5. #include int fun1(int x); void fun2(int x); int main() { int x=1; x=fun1(x);

  printf("%d\n",x); return 0; } int fun1(int x) { x++; fun2(x); return x; } void fun2(int x) { x++; }

  6. #include int fun1(int a,int b,int c); int main() { int a=11,b=21,c=31; fun1(a,b,c); printf("%d %d %d\n",a,b,c); return 0; } int fun1(int a,int b,int c) { a=a+10; b=b+10; c=c+10; } 7. #include void fun(int x); int main() { fun(7); printf("\n"); return 0; } void fun(int x) { if(x/2>1) printf("%5d",x); }

  return c;

  fun(x/2);

  8. #include void fun(int a[]); int main() { int i,a[5]={1,2,3}; fun(a); for(i=0;i<5;i++) printf("%5d",a[i]); printf("\n"); return 0; } void fun(int a[]) { int i; for(i=0;i<5;i++) a[i]+=5; } 9. #include void fun ( int k ) ; void main ( )

  { int w = 5 ; fun ( w ) ; printf ( "\n" ) ; } void fun ( int k ) { if ( k>0 ) fun ( k-1 ) ; printf ( "%d" , k ) ; } 10. #include void f1(void); int a=1; void main( ) { int a=2; f1(); { int a=3; } printf("a3=%d\n",a); } void f1(void) { printf("a1=%d\n",a); }

  printf("a2=%d\n",a);

  11. #include void f(int a, int b, int *c) { a=20; b=10; *c=a+b; } void main() { int a=10,b=20,c=30,d=40; printf("%d,%d,%d\n",a,b,c); }

  f(a,b,&c);

  12. #include void swap(int a,int b); void main() { int a=2,b=3; printf("a=%d,b=%d\n",a,b);

  swap(a,b); printf("a=%d,b=%d\n",a,b); } void swap(int a,int b) { int c; c=a; a=b; b=c; } 13. #include void fun(int a,int b,int c); void main() { int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } void fun(int a,int b,int c) { a=456;b=567;c=678; } 14. #include float f(int n) { int i;float s=0.0; for(i=1;i int f(int a); void main() { int a=2,i; for(i=0;i<3;i++) printf("%d",f(i));

  } int f(int a) { int b=0,c=3; c++; return(a+b+c); } 16. #include int fun(); void main() { int i,x; for(i=0;i<=2;i++) x=fun(); printf("%d\n",x); } int fun() { int x=3; x++; return x; }

  b++;

  17. #include float add(float x,float y); void main( ) { float a,b,c; a=1.0; b=2.0; printf("%f\n",c); } float add(float x,float y) { float z; z=x+y; return(z); } 18. #include void fun(int x, int cp, int dp) { cp=x++; dp=++x; }

  c=add(a,b);

  void main(void) { int a,c=80, d=-20; a=30; printf("%d,%d\n", c,d); } 19. #include int f(int a,int b); void main() { int i=2,p; p=f(i,i+1); printf("%d\n",p); } int f(int a,int b) { int c; if(a>b) c=1; else if (a==b) c=0; else c=-1; return (c); }

  fun(a,c,d);

  20. #include int fun(int n) { if(n= =1) return 1; else return fun(n-1)+3; } void main() { int i,j=0; for(i=1;i<4;i++) j=j+fun(i); printf("j=%d\n",j); } 21. #include void f(int x,int y) { int t; if(x

  f(a,b);

  f(a,c); f(b,c); printf("%d,%d,%d",a,b,c); } 22. #include int age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return(c); } void main() { printf("%d",age(5)); } 23. #include void hello_world(void) { printf("Hello, world!\n"); } void three_hellos(void) { int counter; for (counter =1;counter <= 3;counter++) hello_world(); }

  void main(void) { three_hellos(); } 24. #include int f(int a,int b); void main() { int x,i=1,k=3; x=f(i,k); printf("x=%d \n",x); } int f(int a,int b) { int M=0; while(b!=0) M=M+a; b--; } return M; }

  {

  25. #include f(int b[ ],int m,int n) { int i,s = 0; for(i = m;i < n;i++) s += b[i]; return s; } int main() { int x,a[ ] = {1,2,3,4,5,6,7,8,9}, *p = a; x = f(p,3,7); printf("x=%d\n",x); return 0; } 26. #include void fun(int i, int j) { int x = 7; printf("i = %d; j = %d; x = %d\n", i, j, x); } int main() { int i = 2, x = 5, j = 7; fun(j, 6); printf("i = %d; j = %d; x = %d\n", i, j, x);

  return 0; } 27. #include void f(int a[]) { int i=0; while(a[i]<=10) { printf("%d",a[i]); i++; } } int main() { int a[]={1,7,17,9,11,34}; f(a+1); }

  28. #include void add(int x, int y, int z) { z = x + y; x = x * x; y = y * y; printf("(2) x = %d y = %d z = %d\n", x, y, z); }

  int main() { int x = 2, y = 3, z = 0; printf("(1) x = %d y = %d z = %d\n", x, y, z); add(x, y, z); printf("(3) x = %d y = %d z = %d\n", x, y, z); return 0; }

  29. #include int x1 = 30, x2 = 40; void sub(int x, int y) { x1 = x; x = y; y = x1; }

  int main() { int x3 = 10, x4 = 20; sub(x3, x4); sub(x2, x1); printf(" %d, %d, %d, %d\n", x3, x4, x1, x2); return 0; }

  30. #include int x; void cube() { x = x * x * x; }

  int main() { x = 5; cube(); printf(" %d\n", x); return 0; } 31. #include invert(int *s, int i, int j) { int t; if(i < j) { invert(s, i + 1,j - 1); t = *(s + i); *(s + i) = *(s + j); *(s + j) = t; } } void main( )

  { int a[6] = {10, 6, 23, -90, 0, 3}, i; invert(a, 0, 5); for(i = 0; i < 6; i++) printf("%d, ", a[i]); printf("\n"); } 32. int func(int a[][3])

  {

  int i,j,sum=0; for(i=0;i<3;i++)

  for(j=0;j<3;j++){

  a[i][j]=i+j;

  if(i==j)

  sum = sum+a[i][j];

  }

  return sum;

  }

  int main()

  {

  int a[3][3]={1,3,5,7,9,11,13,15,17};

  int sum;

  sum=func(a);

  printf("sum=%d",sum);

  return 0; }

  33. # include int i=10; void fun(); void main( ) { int i; for(i=2; i>0; i--) fun( ); } void fun() { i*=2; printf("i=%d\n", i); } 34. #include int fun(int n) { if(n<=1) return 1; else

  return fun(n-1)*n; } void main() { int i,j=0; for(i=1;i<=3;i++) j+=fun(i); printf("j=%d\n",j); }

  35. #include int funa(int a, int b) { int t; if (a > b) t = a/b; else t = a%22; return t; } void main() {

  int a=33, b=22,c; c=funa(a,b); printf("c=%d\n", c); }

  36. # include void fun(int i); void main( ) { int i; for(i=2; i>0; i--) fun(i); } void fun(int i) { i*=2; printf("+%d+", i); } 37. # include void fun(int n); void main( ) { int x=879; fun(x); } void fun(int n) { int a,b,c,t; a = n % 10; b = (n/10) % 10; t; } if ( b < c ) { t = b; b = c; c = t; } if ( a < b ) { t = a; a = b; b = t; } printf( "%d", b ); }

  c = (n/100) % 10;

  if ( a < b ) { t = a; a = b; b =

  38. #include int funa(int a, int b) { int t; if (a > b) { t = a; a = b; b = t; } return t; } void main() { int a=33, b=22,c; c=funa(a,b); printf("c=%d\n", c); } 39. #include int swap(int x, int y) { int z; z=x%10; x=y%10; y=z; z=x; return z; } void main() { int a=38, b=29,c;

小学一年级语文上册复习试题 高中语文趣味文学知识竞赛试题