第1章习题
1. C语言程序的基本结构是【】。
A) 函数B) 语句C) 字符D) 程序行
2. 下列四个叙述中,正确的是【】
A)在C程序中,主函数必须位于其他函数的最前面
B)在C程序中,一行只能写一条语句
C)C程序的基本结构是程序行
D)C语句是完成程序功能的最小单位
3. C语言规定,在一个C程序中,main()函数的位置是【】
A)必须在开始B) 必须在最后
C) 可以任意D) 必须在系统调用的库函数之后
4. 以下叙述中,正确的是【】。
A) C语言程序总是从第一个定义的函数开始执行 .
B) C语言程序中,要调用的函数必须在main()函数中定义
C) C语言程序总是从main()函数开始执行
D) C语言程序中的main()函数必须放在程序的开始部分
5. 在C语言提供的合法的关键字是【】
A)switch B)cher C)Case D)FLOAT
6. 以下用户标识符,其中合法的是【】
A) For B) 4d C) f2.G3 D) _f#
第2章习题
C语言所提供的五种基本数据类型包括:字符型、整型、双精度型、浮点型和【D】。
A) 指针型B)结构型C)数组型D)无值类型
2. 列四组数据类型中,C语言允许的一组是【B 】
A) 整型、实型、逻辑型,双精度型
B) 整型、实型、字符型,无值类型
C) 整型、双精度型、布尔型,无值类型
D) 整型、实型、复型、字符型
3. 下面均是合法整型常量的是【A 】。
A) 160 B) -0xcdf C) -01 D) -0x48a
-0xffff 01a 986.12 2e5
012 0xe 0668 0x
4. 在C语言中,合法的字符常量是【B 】
A)'\084' B)'\x43' C)'ab' D)"\0"
5. 下面错误的转义字符是【A】
A) '\091' B) '\\' C) '\0' D) '\''
6.下面不正确的字符串常量是【A 】。
A) …abc? B) “12?12” C) “0” D) “ ”
7. C语言中,int、char、和short三种类型数据占用的字节数是【D 】。
A) 用户自定义B) 均为2个字节C) 任意的D) 由机器字长决定
8. 在C语言中,合法的长整型常数是【A】
A) 0L B) 49627 C) 324562& D) 216D
9. 表达式5/2的值是【C 】。
A) 2.5 B) 2 C) 3 D) 1
10. 要求运算数必须是整型的运算符是【C 】。
A) / B) + C) % D) ++
11. 若希望当整型变量A的值为5时, 表达式的值为1, 则下面不能满足要求的表达式是【C 】。
A) A/2-1 B) A%2 C)(A-2)/2 D) (A+3)%2
12. 以下能正确定义变量a, b和c并为它们赋值的语句是【D 】
A) int a=5; b=5; c=5;
B) int a,b,c=5;
C) a=5,b=5,c=5;
D) int a=5, b=5, c=5;
13. int x=43, y=0; char ch=‘A’; 则表达式x*y+ch-‘B’的值是【D 】。
A) 43 B) 65 C) 1 D) -1
14. 设int a=1, d=4; float b=2.0, c=3.0, 则表达式a+b*c-d%2 的值是【D 】。
A) 5 B) 6 C) 5.0 D) 6.0
15. 若给定表达式2.5+3/2-7%2,则该表达式的值是【C】。
A) 2 B) 1 C) 2.5 D) 2.0
16. 下列运算符中,优先级最高的是【B 】。
A) * B) ++ C) + D) /=
17. 下列运算符中,运算优先级最低的是【D 】。
A) -- B) / C) + D) -=
18. 若有以下定义:
int x=3, y=2;
float a=2.5, b=3.5; 则表达式(x+y)%2+(int)a/(int)b 的值是【D 】。
A) 0 B) 2 C) 1.5 D) 1
19. 若有定义int b=7;float a=2.5,c=4.7 则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【A】。
A) 5.5 B) 5 C) 6.5 D) 6
20. a、b均为整数, 且b≠0, 则表达式a/b*b+a%b的值是【A 】。
A) a B) b C) a被b除的余数部分D) a被b除商的整数部分
21. 以下合法的赋值语句是【A】
A) x=y=100 B) d=9+e+f=d+9; C) x+y; D) c=int(a+b);
22. 设int a,b;则表达式a=2,b=++a*2的值为【A 】。
A) 6 B) 4 C) 8 D) 2
23. 若已定义int a; 则表达式a=10, a+10, a++的值是【B 】。
A) 20 B) 10 C) 21 D) 11
24. 有定义int a=2,b=3,c=10;则计算表达式a+=b+2,c-=a+1 后c的值是【B 】。
A) 3 B) 2 C) 1 D) 4
25. 设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a, b和c的值分别是【B】
A) 2, 1, 2 B) 2, 0, 3 C) 2, 2, 3 D) 2, 1, 3
26. 假定x和y为double型,则表达式x=2,y=x+3/2的值是【D】
A) 3.500000 B) 3 C) 2.000000 D) 3.000000
27. 设变量a为整型,f为实型,i为双精度型则表达式10+a+i*f值的数据类型是【C 】。
A)int B) float C) double D) 不确定
第3章习题
一、选择题
1. 结构化程序设计中使用的基本程序控制结构是【A】。
A) 选择结构、顺序结构、循环结构
B) 条件结构、嵌套结构、顺序结构
C) 嵌套结构、转移结构、递归结构
D) 模块结构、递归结构、循环结构
2. 设a为整型变量,则下列不能正确表达数学关系1 A)a>1&&a<5 B)a==2||a==3||a==4C)1=5) 3. 若希望当A的值为奇数时, 表达式的值为真, A的值为偶数时, 表达式的值为假,则下面满足要求 的表达式是【A】。 A)A%2==1 B)(A%2==0)C)!(A%2) D)(A%2=0) 4. 以下四条语句中,有语法错误的是【C】。 A)if(a>b) m=a; B)if(a=0) m=a; D)if((a=b)>=0) m=a; 5. 以下两条条件语句语义等价的是【B 】。 A)if(a=2) printf("%d\n", a); B)if(a-2) printf("%d\n", a); if(a==2) printf("%d\n", a); if(a!=2) printf("%d\n", a); C)if(a)printf("%d\n", a); D)if(a-2) printf("%d\n", a); if(a==0) printf("%d\n", a); if(a==2) printf("%d\n", a); 6. 下面程序运行的结果是【B】 main() { int i=-1; if(i>=0) printf("****\n"); else printf(“####\n”); } A) **** B) #### C) ####\n D) ****#### 7. 运行下面程序段的输出结果是【A 】。 int a=4,b=5,t; if(a t=a, a=b, b=t; printf("%d,%d\n",a,b); A)5,4 B)4,5 C)5,0 D)语法错误 8. 有程序如下: main( ) { int a ; float b , c ; scanf (“%2d %3f %4f”, &a,&b,&c); printf( “\na=%d,b=%f,c=%f\n”,a,b,c); } 若运行以上程序时从键盘输入9876543210 A)a=98 , b=765 , c=4321 B)a=10 , b=432 , c=8765 C)a=98 , b=765.000000 , c=4321.000000 D)a=98 , b=765.0 , c=4321.0 9. 下面的程序运行时,若从键盘输入1和2,则输出结果是【B】。 main( ) { int a,b,s; scanf("%d%d",&a,&b); s=a; if(s s=s*s; printf("%d\n",s); } A)6 B)4C)2 D)1 10. 设int i=2; 则表达式i==2 ? i:i-1的值为【B 】。 A) 1 B) 2 C) 0 D) 3 11. 已有定义:int a=1,b=2,c=3,d=4,z; 则表达式(a>b)?(z=c):(z=d) 的值为【A】。 A)4 B)2C)1 D)3 12. 已有定义:char ch=?A?; 则表达式ch = (ch>=?A?&&ch<=?Z?)?(ch+32):ch 的值为【B】。 A)A B)a C)Z D)z 13. 以下程序段在执行时,若从键盘输入3,则输出为【D】。 int x; scanf("%d",&x); switch (x) { case 5: printf("Excellent"); default: printf("Poor"); case 4: printf("Good"); case 3: printf("Pass"); case 2: printf("Fail"); } A)Pass B)Passpoor C)PoorPassFail D)PassFail 14. 如果定义double x=2.5; int a=2,b=100;,则下面四组答案中正确的是【D 】。 A) switch(a+b); { case 1: printf("10"); case 2: printf("100"); } B) switch(x) { case 1: printf("10"); case 2: printf("100"); } C) switch(x); { case 1.0: printf("10"); case 2.5: printf("100"); } D) switch(a+b) { case 10+1: printf("10"); case 100+2: printf("100"); } 15. 若定义int d, c=1;则执行下面的语句后,d的值为【C 】。 switch(c) { case 0:d=0;break; case 1: case 2:d=1; case 3: case 4:d=2;break; default:d=3; } A)0 B)1C)2 D)3 16. 若变量已正确定义,则以下程序段的运行结果是【A 】。 int a=2,b=7; switch(a>b) { case 0: printf("@"); break; case 1: printf("!"); break; case 2: printf("*"); break; default: printf("#"); } A)@ B)!C)* D)# 17. 语句while(!E);中的表达式!E等价于【A 】。 A)E==0 B)E!=1C)E!=0 D)E==1 18. 下列程序段的输出结果是【C】。 char m='a'; while (!m) printf("%c",m); A)a B)aaa... C)不输出任何信息D)'a' 19. 运行下列程序,输出结果是【A】。 main() { char m='a'; do { printf("%c",m); } while(!m); } A) a B) aaa... C) 'a' D) 不输出任何值 20. 下列程序段执行后,s的值为【D 】。 int k,s=0; for(k=1;k<=10;) s=s+k; k++; A)1+2+3+...+10 B)10C)11 D)死循环 21. 下列程序段执行后,s的值为【C】。 int k,s=0; for(k=1;k<=10;++k); s=s+k; A)55 B)0 C)11 D)10 22. 下列程序段执行后,s的值为【A 】。 int k,s=1; for(k=1;k<=10;++k) s=s*k; A)1*2*3*...*10 B)0C)11 D)10 23. 下列各程序段中,可以实现1×2×3×4×5×6×7×8×9×10的是【D 】。 A) long k=1,M=0; for (;k<11;++k) M*=k; B) long k=1,M=1; while (k<10); M*=k,k++; C) long k=1,M=1; for (;;++k); M*=k; D) long k=1,M=1; while (k<=10) {M*=k;k++;} 24. 下面程序段运行的结果是【C】。 int n=0; while(n++<=1) printf("%d",n); A) 1 B) 2 C) 1 D) 123 25. 运行下面程序段的输出结果是(【B 】)。 int n=10; while(n>7) { n--; printf("%d",n); } A) 876 B) 987 C) 789 D) 78 26. 下列程序段运行后的输出结果是【A】。 int a=4; do { printf("%2d",a-=3); } while(!(--a)); A) 1 -3 B) 1C) 是无限循环D) 1 -2 27. 下列程序执行时,若从键盘输入12,则输出为【A 】。 main() { int num,c; scanf("%d",&num); do { c=num%10; printf("%d",c); } while ((num/=10)>0); } A)21 B)2C)1 D)12 28. 下列程序段的输出结果是【C 】。 int i ; for(i=1;i<=50;i++) { if(i%2==0 && i%3==0 && i%7==0) printf("%d",i); } A)14 B)21C)42 D)6 29. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是【A 】。 for(i=5;i;i--) for(j=0;j<4;j++) { ...... } A) 20 B) 24C) 25 D) 30 30. 下面的程序运行后,输出为【D 】。 main() { int i=1,j=2,k=3; do { if(i%j==0 && i%k==0) { printf("%d\n",i); break;} i++; } while(1); } A)12 B)13 C)14 D) 6 1.下面程序运行后输出结果是【】。 main() { int f1=2, f2=3, f; printf("%d %d ",f1,f2); f1=f1+f2; f2=f1+f2; printf(" %d,%d\n", f1, f2 ); } 2.下面程序运行后输出结果是【】。 main() { int x=100,a=10,b=20,ok1=5,ok2=1; if(a if(b!=15) if(!ok1) x=1; else if (ok2) x=10; x=-1; printf("%d\n",x); } 3.运行下面程序段的输出结果是【】。 Int i, n=3, s=0, p=1; for( i=1; i<=n; ++i ) { p=p*a; s+=p; } printf("i=%d,p=%d,s=%d\n", i, p,s); 4.下面程序运行后输出结果是【】。 #include #include void main() { int i,j,k; for(i=2;i<=10;i++) { k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0) break; if(j>k) printf("%3d",i); } } 1. 以下程序实现了判断输入的一个整数是否能被5整除,若能整除,则输出"Y",否则输出"N"。在 【】中填入适当的选项。 #include "stdio.h" void main() { int k; printf("Enter a int number:"); scanf("%d",&k); if(【______】) printf("Y\n"); else printf("N\n"); } 2. 下面的程序是求s=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于0.00001为止。程序【】处应 填。 #include #include void main() { int m=1; float n=1.0, t=1.0, s=0.0; while((fabs(t))>=1e-5) { 【____________】; n=n+2; m=-m; t=m/n; } printf("s=%f\n",s); } 3. 下面的程序是求Fibonacci数列1,1,2,3,5,8,13……的前40个数(数列中的每一个数都 是它的前两个数之和)。请将程序填完整。 void main() { long int f1=1,f2=1; int i; for(i=1;i<=【_______】;i++) { printf("%12ld %12ld\n ", f1, f2 ); f1=【__________】; f2=【_____________ 】; } } 第4章习题 一、选择题 1. 下面关于一维数组的定义中,正确的是【】。 A)int n=10; float a[n]={1.0,2.1,3.2}; B)#define N 10 int a[N]={1,2,3}; C)int n; scanf("%d", &n); int a[n]; D)#define N 10; int a[N]={1,2,3}; 2. 下列一维数组定义中,不正确的是【】。 A)float a[5+6]; B)int n=10, a[n]; C)#define M 10 int a[M+5] ; D)float a[10], b[9] ; 3. 若有说明int a[5][4]; 则对其数组元素的正确引用是【】。 A)a[3+1][2] B)a(2)(3) C)a[0,2]D)a[3][5] 4. 在C语言中,引用数组元素时,其数组下标的数据类型允许是【】。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 5. 若有一维数组初始化语句int b[5]={1,2,3,4,5}; 且数组的起始地址为8050H(H表示十六进制),则 8058H是数组元素【】的起始地址(假设一个int型变量在内存占2个字节存储空间)。 A)b[1] B)b[4] C)b[0] D)b[2] 6. 要将20,30,40,50 存入数组b中, 下列正确的程序段是【】。 A)int i,b[4]; for(i=0; i<4; i++) b[i]=(i+2)*10; B)int b[4]; b={20,30,40,50}; C)int b[4]; b[1]=20,b[2]=30,b[3]=40,b[4]=50; D)int b[4]; b[4]={20,30,40,50}; 7. 下面的程序运行后输出结果是【】。 void main( ) { int i, s=90, a[]={3, 5, 7, 9, 11}; for (i=1;i<5;i+=2) s-=a[i]; printf("%d\n", s); } A)74 B)76 C)72 D)68 8. 下列程序运行后,输出值为【】。 void main() { int a[6]={1,3,5,7,9},b[]={2,4,6,7,3},c,d; c=a[1]*b[2]; d=a[5]/b[4]; printf("%d,%d\n",c,D); } A)4,3 B)4,0 C)18,0 D)18,不确定值 9. 下面程序的功能是求一维数组中的最大值,请选择合适的答案填空。 #include #define N 10 void main() { int a[N] = {66, 88, 94, 65, 98, 72, 76, 93, 79, 86}; int i,max; max=a[0]; for(i=1;i if(max max=【】; printf("Max is %d\n", max); } A)a[i-1] B)a[i] C)a[i+1] D)i 10. 下面的程序实现了求Fibonacci数列1,1,2,3,5,8,13……的前40个数(数列的前两项数 均是1,从第三项开始的数都是它的前两项数之和)。请选择合适的答案填空。 void main() { long int fib[40]={1,1}; int i; for(i=2;i<40;i++) fib[i]= fib[i-2]+【】; for(i=0;i<39;i+=2) printf("%12ld %12ld\n ",fib[i],fib[i+1]); } A)fib[i-1] B)fib[i-2] C)fib[i] D)fib[i+1] 11. 下列二维数组的定义中,正确的是【】。 A)int n=5; float a[n][5]; B)int a[][9]; C)#define L1 7 #define L2 8 float a[L1][L2]; D)int n, m; scanf ("%d%d",&n,&m); float a[m][n]; 12. 若有说明int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是【】。 A)2 B)3 C)4 D)无确定值13. 下列二维数组初始化语句中正确且与语句float a[]={0,1,2,0,4,0}等价的是【】。 A)float a[6]={0,1,2,0,4}; B)float a[]={0,1,2,0,4}; C)float a[7]={0,1,2,0,4,0}; D)float a[5]={0,1,2,0,4}; 14. 若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【】元素。 A)6 B)9 C)10 D)12 15. 若int data[5][6];且数组的起始地址为100(十进制), 则元素data[3][2]的地址为【】。 A)120 B)113 C)140 D)126 16. 若有说明double b[7][6]; 对数组元素的非法引用是【】。 A)b[3][5] B)b[7][5] C)b[2*3][4] D)b[0][9-6] 17. 下面程序段的输出结果是【】。 int i,j,s=0,a[3][3]={{1},{2,3},{4,5,6}}; for (i=0;i<3;i++) for (j=0;j<3;j++) s+=a[i][j]; printf("%d\n",s); A)11 B)10 C)21 D)不确知数 18. 下面程序段的输出结果是【】。 int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d",x[i][2-i]); A)1 4 7 B) 3 5 7 C) 3 6 9 D) 1 5 9 19. 下面的程序用来求方阵的主对角线元素之和,请将程序填完整。 #include void main() { int i=0,s=0; int a[ 4 ][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while (i<4) { s+= 【】; i++; } printf("%d\n",s); } A)a[3-i][3-j] B)a[i][3-i] C)a[i][i] D)a[3-i][4] 20. 下面的程序运行后, 输出结果是【】。 void main( ) { int i, j, a[5][5], s=0; for (i=0; i<3; i++) for (j=0;j<3; j++) a[i][j]=i+j; for (i=0; i<5; i++) s+=a[i][i]; printf("%d", s); } A)4 B) 6 C)0 D)不确定值 21. 运行下面的程序段,输出结果是【】。 int i; char s[3][5]={"123","456","789"}; int sum=0; for (i=0; i<3;i++) sum=sum*10+s[i][i]-'0' ; printf("%d",sum); A)159 B)456 C)123 D)789 22. 下面的程序用来求二维数组的最大元素及其位置,请选择合适答案填空。 #include void main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,max,row,col; max=a[0][0]; row=0; col=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(【】) { max=a[i][j]; row=i; col=j; } printf("max=%d,row=%d,col=%d\n",max,row,col); } A)max>a[i][j] B)max C)max=a[i][j] D)max==a[i][j] 23. 若有定义char s[ ]="a boy" ;则数组的长度自动定义为【A 】。 A) 6 B) 5 C)8 D)7 24. 下面字符数组初始化语句正确,且与语句char c[]="string"; 等价的是【B 】。 A)char c[]={'s','t','r’,'i’,'n','g'}; B)char c[]={'s','t','r’,'i’,'n','g',’\0’}; C)char c[]={'string'}; D)char c[]='string'; 25. 若有定义char str[7]; 要将键盘输入的字符串"a book" 赋给str,应使用【A 】。 A)gets(str); B)scanf("%s",str); C)str="a pear"; D)getchar(str); 26. 若已包含标题文件 给s1,下述语句中错误的是【B 】。 A)strcpy(s1,"abcd"); B)s1=”abcd”; C)for(i=0;i<5;i++) s1[i]=s2[i]; D)s[0]=?a?,s[1]=?b?,s[2]=?c?,s[3]=?d?;s[4]=?\0?; 27. 若有说明char s1[ ]=”good”, s2[]=”idea”, 则下列输出语句中正确的是【A】。 A)printf("%s%s",&s1[0],&s2[0]); B)printf("%c%c",s1,s2); C)putc(s1);putc(s2); D)puts(s1,s2); 28. 下面程序段的运行结果是【】。 char st[5]={…a?,?b?,?\0?,?c?,?\0?}; puts(st); A)‘a’’b’B)ab C)ab c D)ab 29. 若已经包含头文件 char s[]={…a?,?\0?,?c?,?o?,?d?,?e?,?\0?}; int i; 若要输出“a code”,应使用【D 】。 A)puts(s); B)for(i=0;i<6;i++) printf("%s",s[i]); C)printf("%s",s); D)for(i=0;i<6;i++) putchar(s[i]); 30. 下面程序运行后,输出结果是【】。 #include void main( ) { char s[]="abcde"; int i=3; s[i]=s[5]; printf("%s", s); } A)abcde B)abcd C)eabcd D)abc 31. 下面程序段运行后,输出结果是【】。 main() { char s[20]="1234\0abcd"; printf("%d,%d\n",strlen(s),sizeof(s)); } A)4,20 B)5,20 C)9,10 D)10,10 32. printf("%d \n ", strlen ("ATS\n012\1\\" )) ; 程序段的输出结果是【C 】。 A)11 B)10 C)9 D)8 33. 要将字符串str2连接到字符串str1后,应使用的函数是【C 】。 A)strcpy(str1,str2); B)strcat(str2,str1); C)strcat(str1,str2); D)strcmp(str2,str1); 34. 要将字符串str2复制到字符串str1,应使用的函数是【A 】。 A) strcpy(str1,str2); B)strcat(str2,str1); C)strcat(str1,str2); D)strcmp(str2,str1); 35. 设已包含标题文件 char s1[20]="135",s2[15]={"24"}; strcpy(s1,s2); printf("%d\n",strlen(s1)); A) 5 B) 4 C) 1 D) 2 36. 判断字符串s1是否小于字符串s2, 应该使用【D 】。 A)if (strcmp(s1,s2) >0) B)if (s1 C)if (strcmp(s2,s1) ) D)if (strcmp(s2,s1) >0) 37. 若已定义 char s1[]="go to bed"; s2[]="go on"; 假设已经执行预编译命令#include A)0 B)-5 C) 5 D)13 38. 运行下面的程序段,输出结果是(【】)。 char s1[10]="abcd", s2[10]="efg", s3[]="hi"; strcat(strcpy(s2,s3),s1); puts(s2); A)hiabcd B)higabcd C)abcdhi D)abcdhig 39. 下面的程序用来输出两个字符串中对应相等的字符, 请将程序填完整。 #include void main( ) { char s1[]="look", s2[]="for"; int i; for (i=0; s1[i]!='\0' && s2[i]!='\0'; i++) if( 【C 】); putchar(s1[i]); } A)strcmp(s1,s2) B)strcmp(s1[i],s2[i]) C)s1[i]==s2[i] D)s1[]!=s2[i] 40. 下面程序运行后,输出结果是【】。 #include void main( ) { char s[]="after",count=0; int i; for (i=0; i<5; i++ ) if (s[i] printf("%d", count); } A) 2 B) 1 C) 3 D) 5 41. 下列程序的输出结果是【C 】 #include"stdio.h" void main() { char s[]="father"; int i,j=0; for(i=1;i<6;i++) if(s[j]>s[i]) j=i; s[j]=s[6]; printf("%s",s); } A) frther B) father C) f D) fath 42. 设char str[4][5]; 所说明的数组在存储区的起始地址为50(十进制), 则数组元素str[3][3]在存储区中的地址为【】。 A)62 B)86 C)63 D)68 43. 下面程序的结果是【】。 void main( ) { int i=1,s=0; char a[ ][5]={"1203","0340","4567","6522"}; while (i<4) { s+=a[i][i]-…0?; i++; } printf("%d\n", s); } A)15 B)13 C)12 D)11 二、读程序写结果 1. 阅读下面程序,给出输出结果。 #include void main() { int i,j,m[2]={0}; for(i=0;i<2;i++) for(j=i;j<2;j++) m[j]=m[i]+1; printf("%d,%d\n", m[0], m[1]); } 2. 阅读下面程序,给出输出结果。 #include void main() { int i,a[8]={1,1}; for(i=0;i<8;i++) { if(i>=2) a[i]=a[i-1]+a[i-2]; if(i%2) printf("%d ",a[i]); } printf("\n"); } 3.阅读下面程序,给出输出结果。 #define N 10 #include void main() { int a[N]={5,8,7,3,4,2,6,1,0,9},i,t,j,k; for(i=0;i { k=i; for(j=i+1;j if(a[j] k=j; if(i!=k) { t=a[i]; a[i]=a[k]; a[k]=t; } } for (i=0;i<4;i++) printf("%d ", a[i]); } 4.阅读下面程序,给出输出结果。 #include void main() { int a[3][3]={1,2,3,4,5,6,10,8,9},i,s1=0,s2=0; for(i=0;i<3;i++) { s1+=a[i][i]; s2+=a[i][2-i]; } printf(“s1=%d,s2=%d\n”,s1,s2); } 5.运行下面程序,从键盘输入以下数据:1、6、9、12、1、4、8、14、6、12、11、10。 给出输出结果。 #include void main() { int a[3][4],i,j,max,row,col; for(i=0;i<3;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]); max=a[0][0]; row=0; col=0; for(i=0;i<3;i++) for(j=0;j<2;j++)