错误语句:if (str[2]>string) string=str[2];
正确语句:if(strcmp(str[2],string)>0) strcpy(string,str[2]); 3.以下程序输出一个字符串:China,请改错。
#include
char c[5]={'C','h ','i','n','a '}; int i;
for(i=0;i<=5;i++) printf(\ printf(\ }
错误语句:for(i=0;i<=5;i++) 正确语句:for(i=0;i<5;i++)
4.下面程序为数组输入数据并输出结果;判断下面程序的正误,请改错。
#include
for (i=0; i<4; i++) scanf(“%d”,&a[i]); for (i=0; i<4; i++) printf(“%d”,a[i]);
}
错误语句:int a[3]={3*0} ; 正确语句:int a[4] ;
5.下面程序为数组输入数据并输出结果,判断下面程序的正误,请改错。
#include
for (i=0; i<3; i++) printf(“%d”,a[i]); }
错误语句: scanf(“%d%d%d”,&a);
正确语句: scanf(“%d%d%d”,&a[0],&a[1],&a[2]);
或者for(i=0;i<3;i++) scanf(“%d”,&a[i]);
四.编程题
1.用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21?。 #include
void main() { int i;
int t[40]={1,1}; for(i=2;i<40;i++)
t[i]=t[i-2]+t[i-1]; for(i=0;i<40;i++) {
if(i%5==0) printf(\ printf(\ } }
2.用选择法对20个整数排序。 #include
{int i,j,min,t,x[20]; for(i=0;i<20;i++) scanf(\ for(i=0;i<19;i++) {min=i;
for(j=i+1;j<20;j++) if(x[min]>x[j])min=j; t=x[i];
x[i]=x[min]; x[min]=t; }
for(i=0;i<20;i++) printf(\}
3.有一个3×5的矩阵,要求编程序求出其中值最小的那个元素的值,以及其所在的行号和列号。
#include
int i,j,s=0,t=0,min; int a[3][5];
for (i=0;i<3;i++)
for (j=0;j<5;j++)
scanf(\ min=a[0][0]; for (i=0;i<3;i++) for (j=0;j<5;j++)
if (a[i][j] s=i; t=j; } printf(\} 4.编一程序,将两个字符串连接起来,不要用strcat函数。 #include {char str1[80],str2[20]; int i=0,j=0; scanf(\ scanf(\ printf(\printf(\ while(str1[i]!='\\0') i++; /* 循环后i为最后一个字符之后 */ while(str2[j]!='\\0') {str1[i]=str2[j]; i++; j++;} str1[i]='\\0'; printf(\} 5.求一个5×5矩阵对角线元素之和(左上至右下之对角线)。 #include {float a[5][5],sum=0; int i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(\ for(i=0;i<5;i++) sum=sum+a[i][i]; printf(\} 6.编一程序,求数列的前10项:1,5,14,30?,即 f[1]=1;?;f[i]=f[i-1]+i*i。 #include void main() { int i; int f[10]={0}; for(i=1;i<10;i++) f[i]=f[i-1]+i*i; for(i=1;i<10;i++) { if(i%5==0) printf(\ printf(\ } } 第五章 函 数 一、选择题 1. 阅读下面程序段,则执行后输出的结果是( C #include “stdio.h” main( ) { char fun (char,int); char a=?A?; int b=13; a=fun(a,b); putchar(a); } char fun(char a,int b) { char k; k=a+b; return k; } A)A B)M C)N D)L 2. 阅读下面程序段,则执行后的结果是( C )。#include “stdio.h” main( ) { int m=4,n=2,k; k=fun(m,n); printf(“%d\\n”,k); } fun(int m,int n) 。 ) {return(m*m*m-n*n*n);} A)64 B)8 C)56 D)0 3.阅读下面程序段,则执行后的结果是( A )。 #include “stdio.h” long fun (int n) { if(n>2) return(fun(n-1)+fun(n-2)); else return(2);} main() {printf(“%ld﹨n”,fun(5));} A)10 B)15 C)20 D)以上3个答案都不正确 4. 阅读下面程序段,则执行后的结果是( D )。 #include “stdio.h” fun( ) { static int x=5; /*只赋一次*/ x++; return x; } main( ) { int i,x; for(i=0;i<3;i++) x=fun(); printf(“%d\\n”,x); } A)5 B)6 C)7 D)8 5. 阅读下面程序段,则执行后的结果是( D )。 #include “stdio.h” int fun(int x) {printf(“%d\\n”,++x);} main( ) {fun(12+5);} A)12 B)13 C)17 D)18 6. 阅读下面程序段,则执行后的结果是( A )。 #include “stdio.h” int aa(int x,int y); main( ) { int a=24,b=16,c; c=aa(a,b); printf(“%d\\n”,c); } int aa(int x,int y) { int w;