1. 一个 C 程序的执行是从 : A) 本程序的 main 函数开始, 到 main 函数结束 B) 本程序文件的第一个函数开始, 到本程序文件的最后一个函数结束 C) 本程序的 main 函数开始, 到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始, 到本程序 main 函数结束 2. 以下叙述正确的是 : A) 在 C 程序中,main 函数必须位于程序的最前面 B)C 程序的每行中只能写一条语句 C)C 语言本身没有输入输出语句 D) 在对一个 C 程序进行编译的过程中, 可发现注释中的拼写错误 3. 以下叙述不正确的是 : A) 一个 C 源程序可由一个或多个函数组成 B) 一个 C 源程序必须包含一个 main 函数 C)C 程序的基本组成单位是函数 D) 在 C 程序中, 注释说明只能位于一条语句的后面 4.C 语言规定, 在一个源程序中,main 函数的位置 : A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 5. 一个 C 语言程序是由 : A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 6. 在 C 语言中 ( 以 16 位 PC 机为例 ),5 种基本数据类型的存储空间长度的排列顺序为 : A)char < int < 1ong int <= float < double B)char = int < 1ong int <= float < double C)char < int < 1ong int = float = double D)char = int = 1ong int <= float < double 7. 若 x,i,j 和 k 都是 int 型变量, 则执行下面表达式后 x 的值为 : x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 8. 假设所有变量均为整型, 则表达式 (a=2,b=5,b++,a+b) 的值是 : A)7 B)8 C)6 D)2 第 1
9. 下列四组选项中, 均不是 C 语言关键字的选项是 : A) B) C) D) define getc include while IF char scanf go type printf case pow 10. 下面四个选项中, 均是 C 语言关键字的选项是 : A) B) C) D) auto switch signed if enum typedef union struct include continue scanf type 11. 下面四个选项中, 均是不合法的用户标识符的选项是 : A) B) C) D) A float b-a -123 P_0 1a0 goto temp do -A int INT 12.C 语言中的标识符只能由字母 数字和下划线三种字符组成, 且第一个字符 : A) 必须为字母 B) 必须为下划线 C) 必须为字母或下划线 D) 可以是字母, 数字和下划线中任一种字符 13. 下面四个选项中, 均是合法整型常量的选项是 : A) B) C) D) 160-0xcdf -01-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 14. 下面四个选项中, 均是不合法的整型常量的选项是 : A) B) C) D) -0f1-0Xcdf -018-0x48eg -0xffff 017 999-068 0011 12,456 5e2 03f 15. 下面四个选项中, 均是不合法的浮点数的选项是 : A) B) C) D) 160. 123 -.18 -e3 0.12 2e4.2 123e4.234 e3.e5 0.0 1e3 16. 下面四个选项中, 均是合法浮点数的选项是 : 第 2
A) B) C) D) +1e+1 -.60 123e -e3 5e-9.4 12e-4 1.2e-.4.8e4 03e2-8e5 +2e-1 5.e-0 17. 下面四个选项中, 均是合法转义字符的选项是 : A) B) C) D) '\'' '\' '\018' '\\0' '\\' '\017' '\f' '101' '\n' '\"' 'xab' 'xlf' 18. 下面四个选项中, 均是不合法的转义字符的选项是 : A) B) C) D) '\'' '\1011' '\011' '\abc' '\\' '\' '\f' '\101' '\xf' '\a' '\' 'xlf' 19. 下面正确的字符常量是 : A)"a" B)'\\'' C)'W' D)'' 20. 下面四个选项中, 均是不正确的八进制数或十六进制数的选 项是 : A) B) C) D) 016 0abc 010 0a12 0x8f 017-0x11 7ff 018 0x8 0x16-123 21. 下面四个选项中, 均是正确的八进制数或十六进制数的选 项是 : A) B) C) D) -10 0abc 0010 0a12 0x8f -017-0x11-0x123-011 0xc 0xf1-0x8 22. 下面四个选项中, 均是正确的数值常量或字符常量的选项 是 : A) B) C) D) 0.0 "a" '3' +001 0f 3.9E-2.5 011 0xabcd 8.9e 1e1 0xFF00 2e2 '&' '\''' 0a 50. 23. 下面不正确的字符串常量是 : A)'abc' B)"12'12" C)"0" D)"" 第 3
24. 若有代数式 3ae/bc, 则不正确的 C 语言表达式是 : A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 25. 已知各变量的类型说明如下 : int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合 C 语言语法的表达式是 : A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3) 26. 已知各变量的类型说明如下 : int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合 C 语言语法的表达式是 : A)a+=a-=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float(i) 27. 以下不正确的叙述是 : A) 在 C 程序中, 逗号运算符的优先级最低 B) 在 C 程序中,APH 和 aph 是两个不同的变量 C) 若 a 和 b 类型相同, 在执行了赋值表达式 a=b 后 b 中的值将放人 a 中, 而 b 中的值不变 D) 当从键盘输入数据时, 对于整型变量只能输入整型数值, 对于实型变量只能输入实型数值 28. 以下正确的叙述是 : A) 在 C 程序中, 每行中只能写一条语句 B) 若 a 是实型变量,C 程序中允许赋值 a=10, 因此实型变量中允许存放整型数 C) 在 C 程序中, 无论是整数还是实数, 都能被准确无误地表示 D) 在 C 程序中,% 是只能用于整数运算的运算符 29. 以下符合 C 语言语法的赋值表达式是 : A)d=9+e+f=d+9 B)d=9+e,f=d+9 C)d=9+e,e++,d+9 D)d=9+e++=d+7 30. 已知字母 A 的 ASCII 码为十进制数 65, 且 c2 为字符型, 则执 行语句 c2='a'+'6'-'3'; 后,c2 中的值为 : A)D B)68 C) 不确定的值 D)C 31. 在 C 语言中, 要求运算数必须是整型的运算符是 : 第 4
A)/ B)++ C)!= D)% 32. 若以下变量均是整型, 且 num=sum=7; 则执行表达 式 sum=num++,sum++,++num 后 sum 的值为 : A)7 B)8 C)9 D)10 33. 在 C 语言中,int char 和 short 三种类型数据在内存中所占用的字节数 : A) 由用户自己定义 B) 均为 2 个字节 C) 是任意的 D) 由所用机器的机器字长决定 34. 若有说明语句 :char c='\72', 则变量 c: A) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明不合法,c 的值不确定 35. 若有定义 :int a=7;float x=2.5,y=4.7; 则表达 式 x+a%3*(int)(x+y)%2/4 的值是 : A)2.500000 B)2.750000 C)3.500000 D)0.000000 36.sizeof(float) 是 : A) 一个双精度型表达式 B) 一个整型表达式 C) 一种函数调用 D) 一个不合法的表达式 37. 设变量 a 是整型,f 是实型,i 是双精度型, 则表达 式 10+'a'+i*f 值的数据类型为 : A)int B)float C)double D) 不确定 38. 下面四个选项中, 均是非法常量的选项是 : A) B) C) D) 'as' '\\' -0x18 0xabc -0fff '\01' 01177 '\0' '\0xa' 12,456 0xf "a" 39. 在 C 语言中,char 型数据在内存中的存储形式是 : A) 补码 B) 反码 C) 原码 D)ASCII 码 40. 设变量 n 为 float 类型,m 为 int 类型, 则以下能实现将 n 中的数值保留小数点后两位, 第三位进行四舍五入运算的表达式是 : A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 41. 表达式 18/4*sqrt(4.0)/8 值的数据类型为 : A)int B)float C)double D) 不确定 第 5
42. 设 C 语言中, 一个 int 型数据在内存中占 2 个字节, 则 unsigned int 型数据的取值范围为 : A)0~255 B)0~32767 C)0~65535 D)0~ 2147483647 43. 设有说明 :char w;int x;float y;double z; 则表达 式 w*x+z-y 值的数据类型为 : A)float B)char C)int D)double 44. 若有以下定义, 则能使值为 3 的表达式是 : int k=7,x=12; A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%k)-(k%=5) 45. 设以下变量均为 int 类型, 则值不等于 7 的表达式是 : A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1) 46.putchar 函数可以向终端输出一个 : A) 整型变量表达式值 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 47.printf 函数中用到格式符 %5s, 其中数字 5 表示输出的字符串占用 5 列 如果字符串长度大于 5, 则输出按方式 : A) 从左起输出该字串, 右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串, 左补空格 D) 输出错误信息 48.printf 函数中用到格式符 %5s, 其中数字 5 表示输出的字符串占用 5 列 如果字符串长度小于 5, 则输出按方式 : A) 从左起输出该字串, 右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串, 左补空格 D) 输出错误信息 49. 已有定义 int a=-2; 和输出语句 :printf("%8lx",a); 以下正确的叙述是 : A) 整型变量的输出格式符只有 %d 一种 B)%x 是格式符的一种, 它可以适用于任何一种类型的数据 C)%x 是格式符的一种, 其变量的值按十六进制输出, 但 %8lx 是错 第 6
误的 D)%8lx 不是错误的格式符, 其中数字 8 规定了输出字段的宽度 50. 若 x,y 均定义为 int 型,z 定义为 double 型, 以下不合法的 scanf 函数调用语句是 : A)scanf("%d%lx,%le",&x,&y,&z); B)scanf("%2d * %d%lf"&x,&y,&z); C)scanf("%x %* d%o",&x,&y); D)scanf("%x%o%6.2f",&x,&y,&z); 51. 已有如下定义和输入语句, 若要求 a1,a2,c1,c2 值分别为 10,20,A 和 B, 当从第一列开始输入数据时, 正确的数据输入方式是 : int a1,a2;char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); A)10A 20B B)10 A 20 B C)10A20 D)10A20 B 52. 已有定义 int x;float y; 且执行 scanf("%3d%f",&x,&y); 语 句, 若从第一列开始输入数据 12345 678( 回车 ), 则 x 的值为 : A)12345 B)123 C)45 D)345 53. 已有定义 int x;float y; 且执行 scanf("%3d%f",&x,&y); 语 句, 若从第一列开始输入数据 12345 678( 回车 ), 则 y 的值为 : A) 无定值 B)45.0000 C)678.000000 D)123.00000 54. 已有如下定义和输入语句, 若要求 a1,a2,c1,c2 的值分别 为 10,20,A,B, 当从第一列开始输入数据时, 正确的数据输入方式是 : int a1,a2;char c1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2); A)1020AB<CR> B)10 20AB<CR> C)10 20 AB<CR> D)10 20AB<CR> 55. 已有程序段和输入数据的形式如下, 程序中输入语句的正确形式应当为 : int a;float f; printf("\ninput number:"); 输入语句 printf("\nf=%f,a=%d\n,f,a); Input number:4.5 2<CR> A)scanf("%d,%f",&a,&f); B)scanf("%f,%d",&f,&a) C)scanf("%d%f",&a,&f); D)scanf("%f%d",&f,&a); 第 7
56. 根据定义和数据的输入方式, 输入语句的正确形式为 : 已有定义 :float f1,f2; 数据的输入方式 :4.52 3.5 A)scanf("%f,%f",&f1,&f2); B)scanf("%f%f",&f1,&f2); C)scanf("%3.2f%2.1f",&f1,&f2); D)scanf("%3.2f%2.1f",&f1,&f2); 57. 阅读以下程序, 当输入数据的形式为 25,13,10<CR> 时, 正确的输出结果为 : int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n,x+y+z); A)x+y+z=48 B)x+y+z=35 C)x+z=35 D) 不确定值 58. 阅读下程序, 若运行结果为如下形式, 输入输出语句的正确内容是 : int x;float y;printf("enter x,y:") 输入语句输出语句 输入形式 enter x,y: 2 3.4 输出形式 x+y=5.40 A)scanf("%d,%f",&x,&y);printf("\nx+y= %4.2f",x+y); B)scanf("%d%f",&x,&y);printf("\nx+y=%4.2f",x+y); C)scanf("%d%f",&x,&y);printf("\nx+y=%6.1f",x+y); D)scanf("%d%3.1f",&x,&y );printf("\nx 十 y=%4.2f",x+y); 59. 以下说法正确的是 : A) 输入项可以为一实型常量, 如 scanf("%f",3.5); B) 只有格式控制, 没有输入项, 也能进行正确输入, 如 scanf("a=%d,b=%d"); C) 当输入一个实型数据时, 格式控制部分应规定小数点后的位数, 如 scanf("%4.2f",&f); D) 当输入数据时, 必须指明变量的地址, 如 scanf("%f",&f); 60. 根据下面的程序及数据的输入方式和输出形式, 程序中输入语句的正确形式应该为 : char ch1,ch2,ch3; 输入语句 printf("%c%c%c",ch1,ch2,ch3); 第 8
输入形式 :A B C 输出形式 :A B C A)scanf("%c%c%c",&ch1,&ch2,&ch3); B)scanf("%c,%c,%c",&ch1,&ch2,&ch3); C)scanf("%c %c %c",&ch1,&ch2,&ch3); D)scanf("%c%c",&ch1,&ch2,&ch3); 61. 有输入语句 :scanf("a=%d,b=%d,c=%d",&a,&b,&c); 为使变量 a 的值为 1,b 为 3,c 为 2, 从键盘输入数据的正确形式应当是 : A)132( 回车 ) B)1,3,2( 回车 ) C)a=1b=3c=2( 回车 ) D)a=1,b=3,c=2( 回车 ) 62. 以下能正确地定义整型变量 a,b 和 c, 并为其赋初值 5 的语句是 : A)int a=b=c=5; B)int a,b,c=5; C)a=5,b=5,c=5; D)a=b=c=5; 63. 已知 ch 是字符型变量, 下面不正确的赋值语句是 : A)ch='a+b'; B)ch='\0'; C)ch='7'+'9'; D)ch=5+9; 64. 已知 ch 是字符型变量, 下面正确的赋值语句是 : A)ch='123'; B)ch='\xff'; C)ch='\08'; D)ch="\"; 65. 若有以下定义, 则正确的赋值语句是 : int a,b;float x; A)a=1,b=2, B)b++; C)a=b=5 D)b=int(x); 66. 设 x,y 均为 float 型变量, 则以下不合法的赋值语句是 : A)++x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0; 67.x,y,z 均为 int 型变量, 则执行语句 x=(y=(z=10)+5)- 5; 后,x,y 和 z 的值是 : A) B) C) D) x=10 x=10 x=10 x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 68. 逻辑运算符两侧运算对象的数据类型 : A) 只能是 0 或 1 B) 只能是 0 或非 0 正数 C) 只能是整型或字符型数据 第 9
D) 可以是任何类型的数据 69. 下关于运算符优先顺序的描述中正确的是 : A) 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑与运算符 B) 逻辑与运算符 < 关系运算符 < 算术运算符 < 赋值运算符 C) 赋值运算符 < 逻辑与运算符 < 关系运算符 < 算术运算符 D) 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑与运算符 70. 下列运算符中优先级最高的是 : A)< B)+ C)&& D)!= 71. 能正确表示 " 当 x 的取值在 [1,10] 和 [200,210] 范围内为真, 否则为假 " 的表达式是 : A)(x>=1) && (x<=10) && (x>=200) && (x<=210) B)(x>=1) (x<=10) (x>=200) (x<=210) C)(x>=1) && (x<=10) (x>=200) && (x<=210) D)(x>=1) (x<=10) && (x>=200) (x<=210) 72. 表示图中坐标轴上阴影部分的正确表达式是 : ///// ////// ///// ////// ----------------------------->x a b c A)(x<=a) && (x>=b) && (x<=c) B)(x<=a) (b<=x<=c) C)(x<=a) (x>=b) && (x<=c) D)(x<=a) && (b<=x<=c) 73. 判断 char 型变量 ch 是否为大写字母的正确表达式是 : A)'A'<=ch<='Z' B)(ch>='A')&(ch<='Z') C)(ch>='A')&&(ch<='Z') D)('A'<=ch)AND('Z'>=ch) 74. 设 x,y 和 z 是 int 型变量, 且 x=3,y=4,z=5, 则下面表达式中值为 0 的是 : A)'y'&&'y' B)x<=y C)x y+z && y-z D)!(x<y) &&!z 1) 您的答案 : 75. 已知 x=43,ch='a',y=0 则表达式(x>=y && ch<'b'&&!y) 的 值是 : A)0 B) 语法错误 C)1 D)" 假 " 76. 若希望当 A 的值为奇数时, 表达式的值为 真,A 的值为偶数时表达式的值为 " 假 " 则以下不能满足要求的表达式是 : 第 10
A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%2 77. 设有 int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&&(n=c>d) 后 n 的值为 : A)1 B)2 C)3 D)4 78. 判断 char 型变量 c1 是否为小写字母的正确表达式为 : A)'a'<=c1<='z' B)(c1>=a) && (c1<=z) C)('a'>=c1) ('z'<=c1) D)(c1>='a') && (c1<='z') 79. 以下程序的运行结果是 : #include "stdio.h" int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d",a,b); A)6,1 B)2,1 C)6,0 D)2,0 80. 执行以下语句后 a 的值为 : int a,b,c; a=b=c=1; ++a ++b && ++c; A) 错误 B)0 C)2 D)1 81. 执行以下语句后 b 的值为 : int a=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z); A)6 B)0 C)1 D)4 82. 以下不正确的 if 语句形式是 : A)if(x>y && x!=y); B)if(x==y) x+=y C)if(x!=y)scanf("%d",&x) else scanf("%d",&y); D)if(x<y)x++;y++; 83. 下列运算符中优先级最低的是 : A)?: B)&& C)+ D)!= 84. 以下 if 语句语法正确的是 : A) if(x>0) printf("%f",x) else printf("%f",--x); B) if(x>0) 第 11
x=x+y;printf("%f",x); else printf("f",-x); C) if(x>0) x=x+y;prinrf("%f",x);; else printf("%f",-x); D) if(x>0) x=x+y;printf("%f",x) else printf("%f",-x); 85. 请阅读以下程序 : int a=5,b=0,c=0; if(a=b+c) printf("***\n"); else printf("$$$\n"); 以上程序 : A) 有语法错不能通过编译 B) 可以通过编译但不能通过连接 C) 输出 *** D) 输出 $$$ 86. 以下程序的运行结果是 : int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); A)4 B)5 C)6 D)7 87. 当 a=1,b=3,c=5,d=4, 执行完下面一段程序后 x 的值是 : if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7; A)1 B)2 C)3 D)6 88. 以下程序的输出结果是 : int a=100,x=10,y=20,ok1=5,ok2=0; if(x<y) if(y!=10) if(!ok1) a=1; else if(ok2) a=10; a=-1; printf( "%d\n",a); 第 12
A)1 B)0 C)-1 D) 值不确定 89. 以下程序的输出结果是 : int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z+=1; printf("%d\n",z); A)3 B )2 C)1 D) 0 90. 为了避免在嵌套的条件语句 if-else 中产生二义性,C 语言规定 else 子句总是与 ( ) 配对 A) 缩排位置相同的 if B) 其之前最近的 if C) 之后最近的 if D) 同一行上的 if 91. 以下不正确的语句为 : A)if(x>y); B)if(x=y) && (x!=0) x+=y; C)if(x!=y) scanf("%d",&x); else scanf("%d",&y); D)if(x<y)x++;y++; 92. 请阅读以下程序 : float a,b; scanf("%f",&a); if(a<10.0) b=1.0/x; else if((a<0.5) && (a!=2.0)) b=1.0/(a+2.0); else if(a<10.0) b=1.0/x; else b=10.0; printf("%f\n",y); 若运行时输入 2.0( 回车 ), 则上面程序的输出结果是 : A)0.000000 B)0.500000 C)1. 000000 D)0.250000 您的答案 : 93. 若有条件表达式 (exp)? a++ : b--, 则以下表达式中能完全等价于表达式 (exp) 的是 : A)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1) 94. 若运行时给变量 x 输入 12, 则以下程序的运行结果是 : int x,y; 第 13
scanf("%d",&x); y=x>12? x+10 : x-12; printf("%d\n",y); A)0 B)22 C)12 D)10 95. 以下程序的运行结果是 : int k=4,a=3,b=2,c=1; printf("\n%d\n",k<a? k : c<b? c : a); A)4 B)3 C)2 D)1 96. 执行以下程序段后, 变量 a,b,c 的值分别是 : int x=10,y=9; int a,b,c; a=(--x==y++)? --x : ++y; b=x++; c=y; A)a=9,b=9,c=9 B)a=8,b=8,c=10 C)a=9,b=10,c=9 D)a=1,b=11,c=10 97. 若 w,x,y,z,m 均为 int 型变量, 则执行下面语句后的 m 值是 : w=1;x=2;y=3;z=4; m=(w<y)? w : x; m=(m<y)? m : y; m=(m<z)? m : z; A)1 B)2 C)3 D)4 98. 若 w=1,x=2,y=3,z=4, 则条件表达式 w<x?w:y<z?y:z 的值是 : A)4 B)3 C)2 D)1 99. 执行以下程序段后的输出结果是 : int w=3,z=7,x=10; printf("%d\n",x>10? x+100 : x-10); printf("%d\n",w++ z++); printf("%d\n",!w>z); printf("%d\n",w && z); A)0 B)1 C)0 D)0 您的答案 :0111 100. 设有程序段 : int k=10; while(k=0) k=k 1; 则下面描述中正确的是 : A)while 循环执行 10 次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 第 14
101. 有以下程序段 : int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则 : A) 运行程序段后输出 0 B) 运行程序段后输出 1 C) 程序段中的控制表达式非法 D) 程序段执行无限次 101-1. 语句 while(!e) 中的表达式!E 等价于 : A)E==0 B)E!=1 C)E!=0 D)E==1 101-2. 下面程序段的运行结果是 : a=1;b=2;c=2; while(a<b<c)t=a;a=b;b=t;c--; printf("%d,%d,%d",a,b,c); A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1 102. 下面程序段的运行结果是 : x=y=0; while(x<15) y++,x+=++y; printf("%d,%d",y,x); A)20,7 B)6,12 C)20,8 D)8,20 102-1. 下面程序段的运行结果是 : int n=0; while(n++<=2);printf("%d",n); A)2 B)3 C)4 D) 有语法错误 103. 设有程序段 : t=0; while(printf("*")); t++; if(t<3) break; 下面描述正确的是 : A) 循环控制表达式与 0 等价 B) 循环控制表达式与 '0' 等价 C) 循环控制表达式是不合法的 D) 以上说法部不对 104. 下面程序的功能是将从键盘输入的一对数, 由小到大排序输出 当输入一对相等数时结束循环, 请选择填空 1 : #indude<stdio.h> int a,b,t; scanf("%d%d",&a,&b); while( 1 ) 第 15
if(a>b) t=a;a=b;b=t; printf("%d,%d",a,b); scanf("%d%d",&a,&b); A)!a=b B)a!=b C)a==b D)a=b 105. 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数 m 和小写字母的个数 n, 并输出 m,n 中的较大者, 请选择填空 1 : #indude"stdio.h" int m=0,n=0; char c; while(( 1 )!='\n') if(c>='a' && c<='z') m++; if(c>='a' && c<='z') n++; printf("%d\n",m<n? n : m); A)c=getchar() B)getchar() C)c=getchar() D)scanf("%c",c) 106. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母 其中 y 变成 A,z 变成 B 请选择填空 #include "stdio.h" char c; while((c=getchar())!='\n') if(c>='a' && c<='z') c-=30; if(c>'z' && c<='z'+2) 2 ; printf("%c",c); A)c='B' B)c='A' C)c-=26 D)c=c+26 107. 下面程序的功能是在输入的一批正整数中求出最大者, 输入 0 结束循环, 请选择填空 1 int a,max=0; scanf("%d",&a); while( 1 ) if(max<a) max=a; scanf("%d",&a); printf("%d",max); A)a==o B)a C)!A==1 D)!a 108. 下面程序的运行结果是 : 第 16
int num=0; while(num<=2) num++; printf("%d\n",num); A) 1 2 3 4 您的答案 : B) 1 2 3 C) 1 2 109. 以下程序段 : x=-1; dox=x*x; while(!x); A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误 110. 以下描述中正确的是 : A) 由于 do-while 循环中循环体语句只能是一条可执行语句, 所以循环体内不能使用复合语句 B)do-while 循环由 do 开始, 用 while 结束, 在 while( 表达式 ) 后面不能写分号 C) 在 do-while 循环体中, 一定要有能使 while 后表达式值变为零 (" 假 ") 的操作 D)do-while 循环中, 根据情况可以省略 while 您的答案 : 111. 若有如下语句 : int x=3; doprintf("%d\n",x-=2); while(!(--x)); 则上面程序段 : A) 输出的是 1 B) 输出的是 1 和 -2 C) 输出的是 3 和 0 D) 是死循环 112. 下面程序的功能是计算正整数 2345 的各位数字平方和, 请选择填空 2 t;t;> int n,sum=0; n=2345; dosum=sum+(n%10)*n%10); n= 2 ; while(n); printf("sum=%d",sum); A)n/1000 B)n/100 C)n/10 D)n%10 D) 1 第 17
113. 下面程序是从键盘输入学号, 然后输出学号中百位数字是 3 的学号, 输入 0 时结束循环 请选择填空 1 long int num; scanf("%ld",&num); doif( 1 ) printf("%ld",num); scanf("%ld",&num); while(!num==0); A)num B)num>0==0 C)!num==0 D)!num!=0 您的答案 : 114. 下面程序的功能是把 316 表示为两个加数的和, 使两个加数分别能被 13 和 11 整除 请选择填空 1 int i=0,j,k; doi++;k=316-13*i; while( 1 ); j=k/11; printf("316=13*%d+11*%d",i,j); A)k/11 B)k%11 C)k/11==0 D)k/11==0 115. 下面程序的运行结果是 : int y=10; doy--; while(--y); printf("%d\n",y--); A)-1 B)1 C)8 D)0 116. 若运行以下程序时, 从键盘输入 ADescriptor<CR>(CR 表示回车 ), 则下面程序的运行结果是 : char c; int v0=0,v1=0,v2=0; do switch(c=getchar()) case 'a':case'a': case 'e':case'e': case 'i':case'i': case 'o':case'o': case 'u':case'u': 第 18
v1+=1; default: v0+=1;v2+=1; while(c!='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11 D)v0=12,vl=4,v2=12 117. 下面程序的运行结果是 : int a=1,b=10; dob-=a;a++; while(b--<0); printf("a=%d,b=%d\n",a,b); A)a=3,b=11 B )a=2,b=8 C)a=1, b=-1 D)a=4,b=9 118. 下面有关 for 循环的正确描述是 : A)for 循环只能用于循环次数已经确定的情况 B)for 循环是先执行循环体语句, 后判断表达式 C) 在 for 循环中, 不能用 break 语句跳出循环体 D)for 循环的循环体语句中, 可以包含多条语句, 但必须用花括号括起来 119. 对 for( 表达式 1;; 表达式 3) 可理解为 : A)for( 表达式 1;0; 表达式 3) B)for( 表达式 1;1; 表达式 3) C)for( 表达式 1; 表达式 1; 表达式 3) D)for( 表达式 1; 表达式 3; 表达式 3) 120. 若 i 为整型变量, 则以下循环执行次数是 : for(i=2;i==0;) printf("%d",i--); A) 无限次 B)0 次 C)1 次 D)2 次 121. 以下 for 循环的执行次数是 : for(x=0,y=0;(y=123) && (x<4);x++); A) 是无限循环 B) 循环次数不定 C) 执行 4 次 D) 执行 3 次 122. 以下不是无限循环的语句为 : A)for(y=0,x=1;x>++y;x=i++) i=x; B)for(;;x++=i); C)while(1)x++; D)for(i=10;;i--) sum+=i; 第 19
123. 下面程序段的运行结果是 : for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf("x=%d,y=%d",x,y); A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27 124. 下面程序段的运行结果是 : for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x); A) **3 ##4 **5 B) ##3 **4 ##5 C) ##3 **4##5 D) **3##4 **5 125. 下列程序段不是死循环的是 : A) int i=100; while(1) i=i%100+1; if(i>100) break; B) for(;;); C) int k=0; do++k; while(k>=0); D) int s=36; while(s);--s; 126. 执行语句 for(i=1;i++<4;); 后变量 i 的值是 : A)3 B)4 C)5 D) 不定 127. 下面程序的功能是计算 :1 至 50 中是 7 的倍数的数值之和, 请选择填空 1 int i,sum=0; for(i=1;i<=50;i++) if( 1 ) sum+=i; printf("%d",sum); A)(int)(i/7)==i/7 B)(int)i/7==i/7 C)i%7=0 D)i%7==0 128. 下面程序的功能是计算 1 至 10 之间的奇数之和及偶数之和 请选择填空 1 第 20
int a,b,c,i; a=c=0; for(i=0;i<=10;i+=2) a+=i; 1 ; c+=b; printf(" 偶数之和 =%d\n",a); printf(" 奇数之和 =%d\n",c-11); A)b=i-- B)b=i+1 C)b=i++ D)b=i-1 129. 下面程序的运行结果是 : int i; for(i=1;i<=5;i++) switch(i%5) case 0 : printf("*"); break; case 1 : printf("#"); break; default : printf("\n"); case 2 : printf("&"); A) #&&&* & & B) #& & & * C) # D) #& 130. 下面程序的运行结果是 : int x,i; for(i=1;i<=100;i++) x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%d",x); A)39 81 B)42 84 C)26 68 D)28 70 131. 下面程序段的功能是计算 1000! 的末尾含有多少个零 请选 择填空 1 ( 提示 : 只要算出 1000! 中含有因数 5 的个数即可 ) 第 21
for(k=0,i=5;i<=1000;i+=5) while( 1 )k++; m=m/5; A)m%5==0 B)m=m%5==0 C)m%5==0 D)m%5!=0 132. 下面程序的运行结果是 : int i,b,k=0; for(i=1;i<=5;i++) b=i%2; while(b-->=0) k++; printf("%d,%d",k,b); A)3,-1 B)8,-1 C)3,0 D)8,-2 133. 以下正确的描述是 : A)continue 语句的作用是结束整个循环的执行 B) 只能在循环体内和 switch 语句体内使用 break 语句 C) 在循环体内使用 break 语句或 continue 语句的作用相同 D) 从多层循环嵌套中退出时, 只能使用 goto 语句 134. 下面程序段 : for(t=1; t<=100; t++) scanf("%d",&x); if(x<0) continue; printf("%3d",t); A) 当 x<0 时整个循环结束 B)x>=0 时什么也不输出 C)printf 函数永远也不执行 D) 最多允许输出 100 个非负整数 135. 下面程序段 : x=3; do y=x--; if(!y) printf("x");continue; printf("#"); while(1<=x<=2); A) 将输出 ## B) 将输出 ##* C) 是死循环 D) 含有不合法的控制表达式 136. 以下描述正确的是 : A)goto 语句只能用于退出多层循环 B)switch 语句中不能出现 continue 语句 第 22
C) 只能用 continue 语句来终止本次循环 D) 在循环中 break 语句不能独立出现 137. 与下面程序段等价的是 : for(n=100; n<=200; n++) if(n%3==0) continue; printf("%4d",n); A)for(n=100;(n%3) && n<=200;n++) printf("%4d",n); B)for(n=100;(n%3) n<=200;n++) printf("%4d",n); C)for(n=100;n<=200;n++)if(n%3!=0) printf("%4d",n); D)for(n=100;n<=200;n++) if(n%3) printf("%4d",n); else continue; break; 138. 下面程序的运行结果是 : int k=0; char c='a'; do switch(c++) case 'A':k++; break; case 'B':k--; case 'C':k+=2; break; case 'D':k=k%2; continue; case 'E':k=k*10; break; default:k=k/3; k++; while(c<'g'); printf("k=%d",k); A)k=3 B)k=4 C)k=2 D)k=0 139. 若运行以下程序时, 从键盘输入 3.6,2.4<CR>(<CR> 表示回车 ), 则下面程序的运行结果是 : #include<math.h> float x,y,z; scanf("%f,%f",&x,&y); z=x/y; while(1) if(fabs(z)>1.0)x=y; y=z; z=x/y; else break; 第 23
printf("%f",y); A)1.5 B)1.6 C)2.0 D)2.4 140. 下面程序的运行结果是 : #include"stdio.h" int a,b; for(a=1,b=1; a<=100; a++) if(b>=20) break; if(b%3==1)b+=3; continue; b-=5; printf("%d\n",a); A) 7 B) 8 C)9 D) 10 141. 下面程序的运行结果是 : #include"stdio.h" int i; for(i=1; i<=5; i++) if(i%2) printf("#"); else continue; printf("*"); printf("$"); A)*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ 142. 下面程序的运行结果是 : int i,j,a=0; for(i=0; i<2; i++) for(j=0; j<=4; j++) if(j%2) break; a++; a++; printf("%d\n",a); A)4 B)5 C)6 D)7 第 24
179. 在 c 语言中, 引用数组元素时, 其数组下标的数据类型允许是 : A) 整型常量 B) 整型表达式 C) 整型常量或整型表达式 D) 任何类型的表达式 180. 以下对一维整型数组 a 的正确说明是 : A)int a(10); B)int n=10,a[n]; C)int n; scanf("%",&n); int a[n]; D)#define SIZE 10 int a[size]; 181. 若有说明 :int a[10]; 则对 a 数组元素的正确引用是 : A)a[10] B)a[3.5] C)a[5] D)a[10-10] 您的答案 : 182. 在 C 语言中, 一维数组的定义方式为 : 类型说说明符 + 数组名 +: A)[ 常量表达式 ] B)[ 整形表达式 ] C)[ 整型常量 ] 或 [ 整型表达式 ] D)[ 整型常量 ] 183. 以下能对一维数组 a 进行正确初始化的语句是 : A)int a[10]=(0,0,0,0,0); B)int a[10]=; C)int a[]=0; D)int a[10]=10*1; 您的答案 : 184. 以下对二维数组 a 的正确说明是 : A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 185. 若有说明 :int a[3][4]; 则对 a 数组元素的正确引用是 : A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1); 186. 若有说明 :int a[3][4]; 则对 a 数组元素的非法引用是 : A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 187. 以下能对二维数组 a 进行正确初始化的语句是 : A)int a[2][]=1,0,1,5,2,3; B)int a[][3]=1,2,3,4,5,6; C)int a[2][4]=1,2,3,4,5,6; D)int a[][3]=1,0,1,,1,1; 188. 以下不能对二维数组 a 进行正确初始化的语句是 : 第 25
A)int a[2][3]=0; B)int a[][3]=1,2,3,4,5,6; C)int a[2][4]=1,2,3,4,5,6; D)int a[][3]=1,0,1,,1,1; 您的答案 : 189. 若有说明 :int a[3][4]=0; 则下面正确的叙述是 : A) 只有元素 a[0][0] 可得到初值 0 B) 此说明语句不正确 C) 数组 a 中各元素都可得到初值, 但其值不一定为 0 D) 数组 a 中每个元素均可得到初值 0 190. 若有说明 :int a[][4]=0,0; 则下面不正确的叙述是 : A) 数组 a 的每个元素都可得到初值 0 B) 二维数组 a 的第一维大小为 1 C) 因为二维数组 0 中第二维大小的值除以初值个数的商为 1, 故数组 a 行数为 1 D) 只有元素 a[0][0] 和 a[0][1] 可得初值 0, 其余元素均得不到初值 0 191. 若有说明 :int a[3][4]; 则数组 a 各元素 : A) 可在程序的运行阶段得到初值 0 B) 可在程序的编译阶段得到初值 0 C) 不能得到确定的初值 D) 可在程序的编译或运行阶段得初值 0 192. 以下各组选项中, 均能正确定义二维实型数组 a 的选项是 : A) float a[3][4]; float a[][4]; float a[3][]=1,0; B) float a(3,4); float a[3][4]; float a[][]=0,0; C) float a[3][4]; static float a[][4]=0,0; auto float a[][4]=0,0,0; D) float a[3][4]; float a[3][]; float a[][4]; 193. 下面程序 ( 每行程序前面的数字表示行号 ): 1 2 3 int a[3]=3*0; 第 26
4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf("%d\n",a[0]); 8 A) 没有错误 B) 第 3 行有错误 C) 第 5 行有错误 D) 第 7 行没有错误 194. 下面程序 ( 每行程序前面的数字表示行号 ): 1 2 3 float a[10]=0.0; 4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=0;i<10;i++) a[0]=a[0]+a[i]; 7 printf("%d\n",a[0]); 8 A) 没有错误 B) 第 3 行有错误 C) 第 5 行有错误 D) 第 7 行有错误您的答案 : 195. 下面程序有错的行是 : 1 2 3 int a[3]=1; 4 int i; 5 scanf("%d",&a); 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf("a[0]=%d\n",a[0]); 8 A)3 B)6 C)7 D)5 196. 下面程序 ( 每行程序前面的数字表示行号 ): 1 2 3 int a[3]=0; 4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=1;i<4;i++) a[0]=a[0]+a[i]; 7 printf("%d\n",a[0]); 8 A) 没有错误 B) 第 3 行有错误 C) 第 5 行有错误 D) 第 6 行有错误 197. 若二维数组 a 有 m 列, 则计算任一元素 a[i][j] 在数组中位 置的公式为 :( 假设 a[0][0] 位于数组的第一个位置上 ) A)i*m+j B)j*p+i C)i*m+j-1 D)i*m+j+1 198. 对以下说明语句的正确理解是 : int a[10]=6,7,8,9,10; A) 将 5 个初值依次赋给 a[1] 至 a[5] 第 27
B) 将 5 个初值依次赋给 a[0] 至 a[4] C) 将 5 个初值依次赋给 a[6] 至 a[10] D) 因为数组长度与初值的个数不相同, 所以此语句不正确 199. 以下不正确的定义语句是 : A)double x[5]=2.0,4,0,6.0,8.0,10.0; B)int y[5]=0,1,3,5,7,9; C)char c1[]='1','2','3','4','5'; D)char c2[]='\x10','\xa','\x8'; 200. 若有说明 :int a[][3]=1,2,3,4,5,6,7; 则 a 数组第一维 的大小是 : A)2 B)3 C)4 D) 无确定值 201. 若二维数组 a 有 m 列, 则在 a[i][j] 前的元素个数为 : A)j*m+j B)i*m+j C)j*m+i D)i*m+j+1 202. 定义如下变量和数组 : int k; int a[3][3]=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是 : for(k=0;k<3;k++) printf("%d",a[k][2-k]); A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 203. 若有以下程序段 : int a[]=4,0,2,3,1,i,j,t; for(i=1;i<5;i++) t=a[i];j=i-1; while(j>=0&&t>a[j]) a[j+1]=a[j];j--; 则该程序段的功能是 : A) 对数组 a 进行插入排序 ( 升序 ) B) 对数组 a 进行插入排序 ( 降序 ) C) 对数组 a 进行选择排序 ( 升序 ) D) 对数组 a 进行选择排序 ( 降序 ) 204. 以下正确的定义语句是 : A)int a[1][4]=1,2,3,4,5; B)float x[3][]=1,2,3; C)long b[2][3]=1,1,2,1,2,3; D)double y[][3]=0; 第 28
205. 下面程序的运行结果是 : int a[6][6],i,j; for(i=1; i<6; i++) for(j=1; j<6; j++) a[i][j]=(i/j)*(j/i); for(i=1; i<6; i++) for(j=1; j<6; j++) printf("%d",a[i][j]); printf("\n"); A) 11111 11111 11111 11111 11111 B) 00001 00010 00100 01000 10000 C) 10000 01000 00100 00010 00001 206. 下面程序的运行结果是 : int a[6],i; for(i=1; i<6; i++) a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); A) 40404 B) 40403 C)-40443 D)-40440 D) 10001 01010 00100 01010 10001 207. 下面是对 s 的初始化, 其中不正确的是 : A)char s[5]="abc"; B)char s[5]='a','b','c'; C)char s[5]=""; D)char s[5]="abcdef"; 208. 下面程序段的运行结果是 : char c[5]='a','b','\0','c','\0'; printf("%s",c); A)'a' 'b' B)ab C)ab c D)ab 209. 对两个数组 a 和 6 进行如下初始化 : char a[]="abcdef"; char b[]= A, B, C, D, E, F ; 则以下叙述正确的是 : A)a 与 b 数组完全相同 B)a 与 b 长度相同 C)a 和 b 中都存放字符串 D)a 数组比 b 数组长度长 第 29
210. 有两个字符数组 a,b, 则以下正确的输入格式是 : A)gets(a,b); B)scanf("%s%s",a,b); C)scanf("%s%s",&a,&b); D)gets("a"),gets("b"); 211. 有字符数组 a[80] 和 b[80], 则正确的输出形式是 : A)puts(a,b); B)printf("%s,%s",a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 212. 下面程序段的运行结果是 : char a[7]="abcdef"; char b[4]="abc"; strcpy(a,b); printf ("%c",a[5]); A) 空格 B)\O C)e D)f 213. 有下面的程序段 : char a[3],b[]="china"; a=b; printf("%s",a); 则 : A) 运行后将输出 china B) 运行后将输出 ch C) 运行后将输出 chi D) 编译出错 214. 下面程序段的运行结果是 : char c[]="\t\v\\\0will\n"; printf("%d",strlen(c)); A)14 B)3 C)9 D) 字符串中有非法字符, 输出值不确定 215. 判断字符串 a 和 b 是否相等, 应当使用 : A)if(a==b) B)if(a=b) C)if(strcpy(a,b)) D)if(strcmp(a,b)) 216. 判断字符串 s1 是否大于字符串 s2 应当使用 : A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0) 217. 下面程序段是输出两个字符串中对应字符相等的字符 请选择填空 1 char x[]="programming"; char y[]="fortran"; int i=0; while(x[i]!='\0' && y[i]!='\0') if(x[i]==y[i]) printf("%c", 1 ); else i++; 第 30
A)x[i++] B)y[++i] C)x[i] D)y[i] 218. 下面描述正确的是 : A) 两个字符串所包含的字符个数相同时, 才能比较字符串 B) 字符个数多的字符串比字符个数少的字符串大 C) 字符串 "STOP" 与 "stop" 相等 D) 字符串 "That" 小于字符串 "The" 219. 下述对 C 语言字符数组的描述中错误的是 : A) 字符数组可以存放字符串 B) 字符数组的字符串可以整体输入 输出 C) 可以在赋值语句中通过赋值运算符 "=" 对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较 220. 有已排好序的字符串 a, 下面的程序是将字符串 s 中的每个字符按 a 中元素的规律插入到 a 中 请选择填空 2 #indude<stdio.h> char a[20]="cehiknqtw"; char s[]="fbla"; int i,k,j; for(k=0; s[k]!='\0'; k++) j=0; while(s[k]>=a[j]&&a[j]!='\0') j++; for(i=strlen(a); i>=j; i--) 2 ; a[j]=s[k]; puts(a); A)a[i]=a[i+1] B)a[i+1]=a[i]; C)a[i]=a[i-1] D)a[i-1]=a[i]; 221. 下面程序的功能是将字符串 s 中所有的字符 c 删除 请选择填空 1 char s[80]; int i,j; gets(s); for(i=j=0; s[i]!='\0'; i++) if(s[i]!='c') 1 ; s[j]='\0'; puts(s); A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[i];j++ D)s[j]=s[i] 第 31
222. 下面程序的功能是从键盘输入一行字符, 统计其中有多少个单词, 单词之间用空格分隔 请选择填空 1 char s[80],c1,c2=''; int i=0,num=0; gets(s); while(s[i]!='\0') c1=s[i]; if(i==0) c2=''; else c2=s[i-1]; if( 1 ) num++; i++; printf("there are %d words.\n",num); A)c1=='' && c2=='' B)c1!='' && c2=='' C)c1=='' && c2!='' D)c1!='' && c2!='' 223. 下面程序的运行结果是 : char ch[7]="12ab56"; int i,s=0; for(i=0; ch[i]>='0' && ch[i]<='9'; i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); A) 1 B) 1256 C) 12ab56 D) 1 2 5 6 224. 当运行以下程序时, 从键盘输入 : aa bb<cr> cc dd<cr> (<CR> 表示回车 ), 则下面程序的运行结果是 : char a1[5],a2[5],a3[5],a4[5]; scanf("%s%s",a1,a2); gets(a3); gets(a4); puts(a1); puts(a2); puts(a3); puts(a4); A) B) C) D) aa bb cc dd aa bb cc aa bb cc dd aa bb cc dd 第 32
dd 225. 当运行以下程序时, 从键盘输入 : ab<cr> c<cr> dd<cr> (<CR> 表示回车 ), 则下面程序的运行结果是 : #define N 6 char c[n]; int i=0; for(; i<n; c[i]=getchar(),i++); for(i=0; i<n; i++) putchar(c[i]); A) abcdef B) a b c e f 226. 当运行以下程序时, 从键盘输入 :AhaMA Aha<CR>(<CR> 表示回车 ), 则下面程序的运行结果是 : #include"stdio.h" char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') if(s[i]==c) s[i]=s[i]-32; else if(s[i]==c-32) s[i]=s[i]+32; i++; puts(s); A)ahAMa B)AhAMa C)AhAMa aha D)ahAMa aha ee C) b c d 227. 下面程序的运行结果是 : #include<string.h> char a[80]="ab",b[80]="lmnp"; int i=0; strcat(a,b); while(a[i++]!='\0') b[i]=a[i]; puts(b); D) ab c d 第 33
A)LB B)ABLMNP C)AB D)LBLMNP 228. 下面程序的运行结果是 : char str[]="ssswlia",c; int k; for(k=2; c=str[k]!='\0'; k++) switch(c) case 'I':++k; break; case 'L':continue; default:putchar(c); continue; putchar('*'); A)SSW* B)SW* C)SW*A D)SW 229. 下面程序的运行结果是 : char a[]="morning",t; int i,j=0; for(i=1; i<7; i++) if(a[j]<a[i]) j=i; t=a[j]; a[j]=a[7]; a[7]=a[j]; puts(a); A)mogninr B)mo C)morning D)mornin 说明如下 ( 已改为白色文本 ): 更正及排版说明 : 1. 修改了大量中英文标点问题 ; 2. 使用了等宽字体, 代码显示更规整 ; 3. 代码全部重新排版, 修改了大量扫描识别错误, 如 :l 与 1, 一与 -, 十与 +, 及缺字错字多字, 大小写错误, 空格错误等等, 大部分代码测试复制下来可以直接运行 ; 4. 少量题目本身有问题或有缺陷, 做了一些修改 ; by 段育凯 2014 年 12 月 第 34