10. i×m+j+1 11.[1] 0 、 [2] 6 12.[1] j=2 、[2] j>=0 13. [1] i=j+1 、 [2] found=1 14. [1] a[i][j]+b[i][j] 、[2] printf(“\\n”) 15. 9
16. [1] i<=7 [2] j=i+7
17. [1] (strcmp(str[0],str[1])<0?str[0]:str[1]) [2] s 18 he
19. [1] k [2] -1 20.【1】a[i-1],【2】a[9-i] 21.【1】5,【2】4
22.【1】 x[i][i],【2】 x[i-1][j-1]+x[i-1][j] 或 x[i-1][j]+x[i-1][j-1]
三、程序分析题
1. 10010 2. 0 3. 852
0
4. f 5. #&*&%
6. aabcd 7. sum=6 8. 5109 9. Sun=3 Moon=4 10、you&me 11、18
31
四、编程题
1、解
# define M 10 main()
{ int a[M],c[5],i,n=0,x; printf(\ scanf(\ while(x!=-1)
{ if(x>=0 && x<=4) { a[n]=x;n++;} scanf(\ }
for(i=0;i<5;i++) c[i]=0; for(i=0;i printf(\ printf(\ } 2、解 main() { int a[5][5],i,j,n=1; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=n++; printf(\ for(i=0;i<5;i++) {for(j=0;j<=i;j++) printf(\ printf(\ } } 3、解 #include int alphabetic(char c) 32 { if((c>='a' && c<='z') || (c>='A' && c<='Z')) return (1); else return (0); } int longest( char string[]) { int len=0,i,length=0,flag=1,place=0,point; for(i=0;i<=strlen(string);i++) if(alphabetic(string[i])) if(flag) { point=i; flag=0; } else len++; else {flag=1; if(len>=length) { length=len; place=point; len=0; } } return (place); } main() { int i; char line[100]; printf(\ gets(line); printf(\ for(i=longest(line); alphabetic(line[i]);i++) printf(\ printf(\ } 4、解 # include 33 { int inverse(char str[]); char str[100]; printf(\ gets(str); inverse(str); printf(\ } int inverse( char str[]) { char t; int i,j; for(i=0,j=strlen(str);i str[i]=str[j-1]; str[j-1]=t; } } 5、解 #include if((i=n/10)!=0) convert(i); putchar(n+'0'); } main() { int number; printf(\ scanf(\ printf(\ if(number<0) { putchar('-'); number=-number; } convert(number); } 34 6、 int sum(int a[],int n) { int i,sum=0; for(i=0;i if(i%2 == 0) sum+=a[i]; } return sum; } 7、解 #include char string[81],c; int i,num=0,word=0; gets(string); for(i=0;string[i]!='\\0';i++) if(string[i]==' ') word=0; else if(word= =0){word=1;num++;} printf(“\\nThere are %d words.”, num); } 8、输出一个3行4列的矩阵中最大元素的值及其行下标和列下标。 #include int a[3][4]; int i,j,max,maxi,maxj; printf(\ for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(\ printf(\ 35