C语言程序设计基础习题集
一、选择填空
知识点1:C程序的基本结构和算法基本概念
1. C语言程序的基本单位为_______。
2. A) 程序行 B) 语句 C) 函数 D) 字符
3. 用C语言编写的代码程序______。
4. A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
5. 以下叙述中正确的是______。
6. 出操作
A)用C程序实现的算法必须要有输入和输
7. 须要输入
B)用C程序实现的算法可以没有输出但必
8. 须要有输出
C)用C程序实现的算法可以没有输入但必
1
9. 没有输出
D)用C程序实现的算法可以既没有输入也
10.
结构组成的算法____。
结构化程序由三种基本结构组成,三种基本
11.
B)只能完成部分复杂的任务
A)可以完成任何复杂的任务
12.
D)只能完成一些简单的任务
C)只能完成符合结构化的任务
13. 在一个C程序中______。
14. A) main函数必须出现在所有函数之前
15. B) main函数可以在任何地方出现
16. C) main函数必须出现在所有函数之后
17. D) main函数必须出现在固定位置
18. 下列关于C语言的叙述错误的是______。
19. A) 大写字母和小写字母的意义相同
2
20. B) 不同类型的变量可以出现在同一个表达式中
21. C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
22. D) 同一个运算符号在不同的场合可以有不同的含义
23. 以下叙述中错误的是_______。
24. A)C程序中的#include和#define行均不是C语句
25. B)除逗号运算符外,赋值运算符的优先级最低
26. C)C程序中,j++;是赋值语句
27. D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
28. 以下程序的功能是给r输入数据后计算半径为r的圆面积s。程序在编译时出错,
出错的原因是________。
29. main()
30. /* Beginning */
31. { int r; float s;
32. scanf(\"%d\
3
33. s=p*r*r; printf(\"s=%f\\n\
34. }
35. 整型
A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为
36. 法变量
C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非
知识点2:数据和表达式计算
37. 以下标识符中,不能作为合法的C语言用户定义标识符的是_____。
38. A) a3 B) if C) _123 D) IF
39. 以下数据中,不正确的数值或字符常量是_____。
40. 0xabcd
A) 011 B) 3.987E-2 C) 018 D)
41. 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。
42. A) ++x, y=x- - B) x+1=y C) x=x+10=x+y D)
double(x)/10
4
43. 以下不正确的C语言标识符是____。
44. A) int B) a_1_2 C) ab1exe D) _x
45. 以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \\n
46. 下列不属于C语言关键字的是 ____。
A) default B) register C) enum D) external
47. 正确的自定义标识符是_______。
A)if B)iF C)a*b D)8bq
48. 正确的
自定义标识符是
________。
A)a=2 B)a+b C)name D)default
49. C语言的关键字是________。
A)NULL B)file C)include D)typedef
50. C语言程序从main()函数开始执行,所以main函数要写在____。
5
51. A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程
序文件的任何位置
52. 在C语言中,错误的常数是______。
53. A)1E+0.0 B)5 C)0xaf D)0L
54. 在C语言中,错误的int类型的常数是____ 。
55. A) 32768 B) 0 C) 037 D) 0xAF
56. C语言中最简单的数据类型包括_______。
57. A)整型、实型、逻辑型 B)整型、实型、字符型
58. C)整型、字符型、逻辑型 D)整型,实型,逻辑型,字符型
59. 下列变量定义中合法的是_______。
60. A) short _a=1-.le-1; B) double b=1+5e2.5;
61. C) long do=0xfdaL; D) float 2_and=1-e-3;
62. 在C语言中,整数-8在内存中的存储形式是________ 。
63. A) 1111 1111 1111 1000 B) 1000 0000 0000 1000
6
64. C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
65. C语言中字符型(char)数据在内存中的存储形式是____。
66. A) 原码 B) 补码 C) 反码 D) ASCII码
67. 将字符g赋给字符变量c,正确的表达式是____ 。
68. A) c=\\147 B) c=\"\\147\" C) c=' \\147' 69. 将空格符赋给字符变量c,正确的赋值语句是____。
70. A) c='\\0' B) c=NULL C) c=0 71. 字符串\"\\\"EOF\\n=-\\61\\\"\"的长度是____。
72. A) 8 B) 9 C) 14 73. 字符串\"\"的长度是____。
74. A) 0 B) 1 C) 2 75. 错误的转义字符是____。
76. A) '\\091' B) ' \\\\' C) '\\0' 7
D) c='0147'
D) c=32
非法字符串
D) 非法字符串 D) ' \\''
D)
77. 以下两组字符中,不正确的C语言转义字符分别是_____。
78. A) '\\\\' B) '071' C) '\\b' D) ' \\xaa'
79. 若有以下程序段,c3中的值是_____。
80. int c1=1,c2=2,c3;
81. c3=c1/c2;
82. A) 0 B) 1/2 C) 0.5 D ) 1
83. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是_____。
84. A) 3 B) 4 C) 11 D) 12
85. 以下选项中,值为1的表达式______。
86. A)1-\"0\" B)1-\"\\0\" C)\"1\"-0 D)\"\\0\"-\"0\"
87. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两
位,并将第三位四舍五入的是_____ 。
88. A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0
89. C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0
8
90. 表达式3.6-5/2+1.2+5%2的值是______。
91. A)4.3 B)4.8 C)3.3 D)3.8
92. 已知 int a[3][2]={3,2,1};则表达式\"a[0][0]/a[0][1]/a[0][2]\"的值是____。
93. A) 0.166667 B) 1 C) 0 D) 错误的表达式
94. 逗号表达式\"(a=3*5,a*4),a+15\"的值是____。
95. A) 15 B) 60 C) 30 D) 不确定
96. 已知int x=(1,2,3,4);变量x的值是____。
97. A) 1 B) 2 C) 3 D) 4
98. 如果int a=1,b=2,c=3,d=4;则条件表达式\"a99. A) 1 B) 2 C) 3 D) 4
100. 与条件表达式\"(n)?(c++):(c--)\"中的表达式(n)等价的表达式是____。
101. A) (n==0) B) (n==1) C) (n!=0) D) (n!=1)
102. 已知 int x=1,y=1,z=1;表达式\"x+++y+++z++\"的值是____。
9
103. A) 3 B) 4 C) 5 D) 表达式错误
104. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是_____。
105. A) c=(c-'A')%26+'a' B) c=c+32 C) c=c-'A'+'a' D) c=('A'+c)%26-'a'
106. 表达式sizeof(double)是 _____。
107. A) 函数调用 B) double型表达式 C) int型表达式 表达式
知识点3:输入输出
108. 下列程序的输出结果是_____。
109. A) 3 B) 3.2 C) 0 D) 3.07
110. main()
111. { double d=3.2; int x,y;
112. x=1.2; y=(x+3.8)/5.0;
113. printf(\"%d \\n\
10
D) 非法
114. }
115. 下列程序执行后的输出结果是(小数点后只写一位)_____。
116. A) 6 6 6.0 6.0 B) 6 6 6.7 6.7
117. C) 6 6 6.0 6.7 D) 6 6 118. main()
119. { double d; float f; ling l; int i;
120. i=f=1=d=20/3;
121. printf(\"%d %ld %f %f \\n\
122. }
123. 执行语句 printf(\"%x\;屏幕显示____。124. A) -1 B) 1 125. 若a为整型变量,则以下语句______。
126. a=-2L;
11
6.7 6.0
C) -ffff
D) ffff
127. printf(\"%d\\n\",a);
128. A) 赋值不合法 B) 输出值为-2 C)输出为不确定值 D) 输出值为2
129. 若变量都已正确定义,则程序段______。
130. a=3; b=4;
131. a>b?printf(\"* * *a=%d\=%d\",b++);
132. A) 输出为:* * * a=4 B) 输出为:* * * a=3
133. C) 输出为:# # # b=4 D) 输出为:# # # b=5
134. 使用语句scanf(\"x=%f,y=%f\输入变量x、y的值(□代表空格),正确的输入是____。
135. A) 1.25,2.4 B) 1.25□2.4 C) x=1.25,y=2.4 D) x=1.25□y=2.4
136. 设有输入语句 scanf(\"a=%d b=%d\如果运行程序,该如何输入数据______。
137. A) a=6,b=7 B) 6 7 C) a=6 b=7 D) 6,7
12
138. 设int a=3,b=4; 执行printf(\"%d,%d\后的输出结果是_____
139. A) 3,4 B)4,3 C)4,4 D)3,3
140. 有以下程序,以下叙述中正确的是_____。
141. main()
142. { char a1='M', a2='m';
143. printf(\"%c\\n\
144. A)程序输出大写字母M 145. C)格式说明符不足,编译出错 146. 有以下程序
147. main()
148. { int m=12,n=34;
149. printf(\"%d%d\
150. printf(\"%d%d\\n\
B)程序输出小写字母m
D)程序运行时产生出错信息
13
151. }
152. 程序运行后的输出结果是______。
153. A)12353514 B)12353513 C)12343514 D)12343513
知识点4:逻辑量和逻辑表达式
154. 在C语言中,能代表逻辑值“真”的是______。
155. A) true B)大于0的数 C)非0整数 D)非0的数
156. 设int x=0,y=1;则表达式(x&&- -y)运算完毕后,y的值是_____。
157. A) 0 B) 1 C) 2 D) –1
158. 设 int x=1, y=1; 表达式(!x||y--)的值是
159. A) 0 B) 1 C) 2 D) -1
160. 设int x=1,y=1;则表达式(x||- -y)运算完毕后,y的值是( ):
161. A) 0 B) 1 C) 2
14
D) –1
162. 已知:char a;int b;float c;double d;执行语句\"c=a+b+c+d;\"后,变量c的数据类型是____ 。
163. A) int B) char C) float D) double
164. 设int a=0,b=5; 执行表达式++a||++b,a+b后,a,b和表达式的值分别是_____。
165. A)0,0,0 B)0,5,5 C)1,5,6 D)1,6,7
166. 已知int x=1,y;执行下述语句后变量x的值是____。
167. y=++x>5&&++x<10;
168. A) 1 B) 2 C) 3 D) 4
169. 关系表达式a≤x<b的正确描述是
170. A)a<=x=a&&x=a||x=b)
171. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为
172. A)0 B)1 C)2 D)3
173. 为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。
15
174. A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122
175. B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)
176. C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122
177. D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)
178. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为
179. A)0 B)1 C)2 D)3
知识点5:位运算
180. 在位运算中,操作数每右移一位,其结果相当于____。
181. A) 操作数乘以2 B) 操作数除以2 C) 操作数除以16 D) 操作数乘以16
182. 已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应是____。
183. A) 11110000 B) 00001111 C) 11111111 D) 00000000
184. 已知 int a=15,执行语句a=a<<2以后,变量a的值是____。
16
185. A) 20 B) 40 C) 60 D) 80
知识点6:选择结构和if、switch 语句
186. 把以下四个表达式用作if语句的控制表达式时,选项_______与其它三个选项含义不同。
187. 188. 189. 190. 191. 192. 193. 194. 195. 196. A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1
在嵌套使用if语句时,C语言规定else总是________。
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
在以下给出的表达式中,与while(E)中的(E)不等价的表达式是_______。
A)(!E==0) B)(E>0‖E<0)
C)(E==0) D)(E!=0)
下列叙述中正确的是________。
17
197. A)break语句只能用于switch语句
198. B)在switch语句中必须使用default
199. C)break语句必须与switch语句中的case配对使用
200. D)在switch语句中,不一定使用break语句
201. 下列条件语句中,功能与其他语句不同的是______。
202. A) if(a) printf(\"%d\\n\
203. B) if(a==0) printf(\"%d\\n\
204. C) if (a!=0) printf(\"%d\\n\
205. D) if(a==0) printf(\"%d\\n\
206. 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是________。
A) if((a>b) &&(b>C) ) k=1; B) if((a>b) ||(b>C) ) k=1
else k=0;
C) if(a<=b) k=0; D) if(a>b) k=1;
18
else if(b<=C) k=1; else if(b>C) k=1;
else k=0;
207. 已知int i=1,j=0;执行下面语句后j的值是____。
208. while(i)
209. switch(i)
210. { case 1: i+=1;j++;break;
211. case 2: i+=2;j++;break;
212. case 3: i+=3;j++;break;
213. default: i--;j++;break;
214. }
215. A) 1 B) 2 C) 3 知识点7:循环结构 while 、do~while和for语句
216. 下面的for语句______ 。
19
死循环
D)
217. for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ;
218. A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次
219. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是______。
220. A)(!E==0) B)(E>0‖E<0) C)(E==0) D)(E!=0)
221. 有以下程序段,则while循环执行的次数为_______。
222. int k=0;while(k=1) k++;
223. while循环执行的次数为_______。
224. A)无限次 B)有语法错,不能执行 C)一次也不执行 D)执行1次
225. 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是________。
226. A)while((ch=getchar())!=′N′)printf(\"%c\
227. B)while(ch=getchar()!=′N′)printf(\"%c\
228. C)while(ch=getchar()==′N′)printf(\"%c\
20
229. D)while((ch=getchar())==′N′)printf(\"%c\
230. 已知int i=1; 执行语句while (i++<4) ;后,变量i的值为____。
231. A) 3 B) 4 C) 5 D) 6
232. 233. 234. 235. 236. 237. 238. 239. _____。
240. 241. 以下程序执行后的输出结果是______。
main()
{int y=10;
while(y--);printf(\"y=%d\\n\",y);
}
A)y=0 B)y=-1
C)y=1 D)while构成无限循环
若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A)for(i=1,p=1;i<=5;i++) p*=i;
B)for(i=1;i<=5;i++){ p=1; p*=i;}
21
242. C)i=1;p=1;while(i<=5){p*=i; i++;}
243. D)i=1;p=1;do{p*=i; i++; }while(i<=5);
244. 有以下程序段,为使此程序段不陷入死循环,从键盘输入的数据应该是______。
245. int n,t=1,s=0;
246. scanf(\"%d\
247. do{ s=s+t; t=t-2; }while (t!=n);
248. A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数
249. 以下程序执行后的输出结果是_______。
250. main( )
251. { int i,s=0;
252. for(i=1;i<10;i+=2) s+=i+1;
253. printf(“%d\\n”,s);
254. }
22
255. A) 自然数1~9的累加和 B) 自然数1~10的累加和
256. C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和
知识点8:数组的基本概念和引用
257. 258. 259. 260. 261. 262. ______。
263. 264. 265. 266. 下述对C语言字符数组的描术中错误的是______。
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A)#define N 10 B)#define n 5
int a[N] int a[2*n]
C)int a[5+5] D)int n=10,a[n]
以下语句中存在语法错误的是________。
23
267. A)char ss[6][20];ss[1]= \"right? \";
268. B)char ss[][20]={ \"right? \
269. C)char *ss[6];ss[1]= \"right? \";
270. D)char *ss[]={\"right? \
271. 设有数组定义:char array [ ]=\"China\"; 则数组 array所占的空间为______。
272. A)4字节 B)5字节 C)6字节 D)7字节
273. 二维数组的正确说明是____。
274. A) int a[][]={1,2,3,4,5,6}; B) int a[2][]={1,2,3,4,5,6};
275. C) int a[][3]={1,2,3,4,5,6}; D) int a[2,3]={1,2,3,4,5,6};
276. 对字符数组s赋值,不合法的一个是____。
277. A) char s[]=\"Beijing\";
278. B) char s[20]={\"beijing\;
279. C) char s[20];s=\"Beijing\";
24
280. D) char s[20]={'B','e','i','j','i','n','g'};
281. 字符数组str赋初值,str不能作为字符串使用的一个是____。
282. A) char str[]=\"shanghai\";
283. B) char str[]={\"shanghai\;
284. C) char str[9]={'s','h','a','n','g','h','a','i'};
285. D) char str[8]={ 's','h','a','n','g','h','a','i'};
286. 以下能正确定义字符串的语句是_____。
287. A)char str[ ]={′\\064′}; B)char str=\"kx43\";
288. C)char str=\"; D)char str[ ]=\"\\0\";
289. 有以下程序,则以下叙述中正确的是______。
290. #include
291. main()
292. { char p[]={'a', 'b', 'c'}, q[10]={'a', 'b', 'c'};
25
293. printf(\"%d %d\\n\
294. }
295. A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
296. 3
297. 3
298. 299. 300. 301. 302. 303. 304. B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为D)由于p和q数组中都没有字符串结束符,故长度都不能确定
已有定义:char a[]=\"xyz\,以下叙述中正确的是______。
A)数组a和b的长度相同 B)a数组长度小于b数组长度
C)a数组长度大于b数组长度 D)上述说法都不对
以下叙述中错误的是______。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
26
305. C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
306. D)可以通过赋初值的方式确定数组元素的个数
知识点9:变量的作用域和生存期
307. 如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。
308. A) 静态变量 B) 动态变量 C) 外部变量 D) 内部变量
309. 在一个C源程序文件中,•若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是 。
310. A) extern B) register C) auto D) static
311. 某文件中定义的静态全局变量(或称静态外部变量)其作用域是______。
312. A)只限某个函数 B)本文件 C)跨文件 D)不限制作用域
知识点10:函数
313. 函数返回值的类型是由______。
27
314. A)return决定 B)调用函数决定 C)定义函数时指定
D)main函数决定
315. 若用数组名作为函数调用时的实参,则实际上传递给形参的是 。
316. A) 数组首地址 B) 数组的第一个元素值
317. C) 数组中全部元素的值 D) 数组元素的个数
318. 当调用函数时,实参是一个数组名,则向函数传递的是______。
319. A)数组的长度 B)数组每一个元素地址 C)数组的首地址 每个元素中的值
320. 以下说法中正确的是_____。
321. A) C语言程序总是从第一个的函数开始执行
322. B) 在C语言程序中,要调用的函数必须在main()函数中定义
323. C) C语言程序总是从main()函数开始执行
324. D) C语言程序中的main()函数必须放在程序的开始部分
325. 在C语言中,正确的说法是_____。
28
D)数组
326. A)函数内部和外部定义的变量同名是合法的
327. B)没有return 的函数就失去了返回功能
328. C)变量的定义和声明(也称说明)功能是相同的
329. 330. 331. 332. 333. 334. 335. 336. 337. 法确定
338. D)只要形参和实参都是变量,那么形实结合一定是地址传递
在C语言中,函数的数据类型是指____。
A) 函数返回值的数据类型 B) 函数形参的数据类型
C) 调用该函数时的实参的数据类型 D) 任意指定的数据类型
已知如下定义的函数,则该函数的数据类型是______。
fun1(a)
{ printf(\"\\n%d\;
}
A) 与参数a的类型相同 B) void型 C) 没有返回值 D) 无一个函数内有数据类型说明语句double x,y,z(10); ,关于此语句的解释,下
29
面说法正确的是____。
339. A) z是一个数组,它有10个元素。
340. B) z是一个函数,小括号内的10是它的实参的值。
341. 342. 343. ____。
344. 345. 346. 347. 348. 349. 350. C) z是一个变量,小括号内的10是它的初值。
D) 语句中有错误。
已知函数定义如下,主调函数中有int a=1,b=0;可以正确调用此函数的语句是float fun1(int x,int y)
{ float z;
z=(float)x/y;
return(z);
}
A) printf(\"%f\; B) printf(\"%f\;
C) printf(\"%f\; D) 调用时发生错误
30
351. 下面函数的功能是____。
352. a(s1,s2)
353. char s1[],s2[];
354. 355. 356. 接 357. 358. 359. 360. 361. 362. 363. { while(s2++=s1++) ;
}
A) 字符串比较 B) 字符串复制 C) 字符串连 D) 字符串反向
函数调用语句是:fun (e1,(e2,e3),(e4,e5,e6)); 实际参数的个数是_____。
A)1 B)2 C)3 D)6
以下关于函数的叙述中正确的是
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
31
364. 若有以下函数首部,则下面针对此函数声明语句中正确的是______。
365. int fun(double x[10],int *n)
366. A)int fun(double x,int *n); B)int fun(double ,int);
367. C)int fun(double*x,int n); D)int fun(double *,int*);
368. 若程序中定义了以下函数,并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是______。
369. double myadd(double a,double B)
370. { return (a+B) ;}
371. A) double myadd(double a,B) ;
372. B) double myadd(double,double);
373. C) double myadd(double b,double A) ;
374. D) double myadd(double x,double y);
375. 设函数fun的定义形式为则以下对函数fun的调用语句中,正确的是______。
376. void fun(char ch, float x ) { … }
32
377. A)fun(\"abc\ B)t=fun('D',16.5); C)fun('65',2.8); D)fun(32,32);
378. 以下程序运行后的输出结果是______。
379. int f1(int x,int y){return x>y?x:y;}
380. 381. 382. 383. 384. 385. 386. 387. 388. 5,7
int f2(int x,int y){return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf(\"%d,%d%d\\n\
}
A)4,3,7 B)3,4,7 33
C)5,2,7 )2, D
389. 以下程序执行后输出结果是______。
390. void f(int v , int w)
391. { int t;
392. t=v;v=w;w=t;
393. }
394. main( )
395. { int x=1,y=3,z=2;
396. if(x>y) f(x,y);
397. else if(y>z) f(y,z);
398. else f(x,z);
399. printf(“%d,%d,%d\\n”,x,y,z);400. }
401. A) 1,2,3 B) 3,1,2 C) 1,3,2 34
D) 2,3,1
402. 若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是______。
403. A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参
404. C) 调用可以出现在表达式中 D) 调用可以作为一个函数的形参
405. 已定义以下函数,则fun函数返回值是______。
406. int fun(int *p)
407. {return *p;)
408. A)不确定的值 B)一个整数 C)形参p中存放的值 的地址值
409. 有如下程序,执行后输出结果是______。
410. void f(int x,int y)
411. { int t;
412. if(x 414. main() 35 形参P D) 415. { int a=4,b=3,c=5; 416. f(a,b); f(a,c); f(b,c); 417. printf(\"%d,%d,%d\\n\ 418. } A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5 419. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。 420. A) void B) int C) float D) double 421. 若有以下程序,则以下叙述中不正确的是_____。 422. #include 423. void f(int n); 424. main() 425. { void f(int n); 426. f(5); 36 427. } 428. void f(int n) 429. { printf(\"%d\\n\} 430. A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f 431. B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f 432. C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明 433. D) 函数f无返回值,所以可用void将其类型定义为无值型 434. 以下函数值的类型是_______。 435. fun ( float x ) 436. { float y; 437. y= 3*x-4; 438. return y; 439. } 37 440. A) int B) 不确定 C) void D) float 441. 以下所列的各函数首部中,正确的是________。 442. A) void play(var :Integer,var b:Integer) B) void play(int a,b) 443. C) void play(int a,int b) integer,b as integer) 444. 以下程序的输出结果是________。 445. A) 0 B) 29 C) 31 446. fun(int x, int y, int z) 447. { z=x*x+y*y; } 448. main() 449. { int a=31; 450. fun(5,2,a); 451. printf(“%d”,a); 452. } 38 D) Sub play(a as 无定值 D) 453. 有如下函数调用语句,该语句中含有的实参个数是______。 454. func(rec1,rec2+rec3,(rec4,rec5); 455. A) 3 B) 4 C) 5 D) 有语法错 456. 以下程序的执行结果是_______。 457. char fun(char x , char y) 458. { if(x 460. } 461. main( ) 462. { int a=’9’,b=’8’,c=’7’; 463. printf(“%c\\n”,fun(fun(a,B) ,fun(b,C) ));464. } 465. A) 函数调用出错 B)8 39 C)9 D)7 466. 设函数fun的定义形式如下,则以下对函数fun的调用语句中,正确的是_____ 467. void fun(char ch, float x ) { … }。 468. A) fun(\"abc\ B) t=fun('D',16.5); 469. C) fun('65',2.8); D) fun(32,32); 470. 以下叙述中不正确的是______。 471. A) 在不同的函数中可以使用相同名字的变量 472. B) 函数中的形式参数是局部变量 473. C) 在一个函数内定义的变量只在本函数范围内有效 474. D) 在一个函数内的复合语句中定义的变量在本函数范围内有效 475. 以下程序输出结果是_______。 476. viod fun (int a,int b,int c) 477. { a=456; b=567; c=678;} 478. main() 40 479. { int x=10, y=20,z=30; 480. fun (x,y,z); 481. printf(\"%d,/%d\\n\ 482. } 483. A)30,20,10 B)10,20,30 C) 456,567,678 D) 678,567,456 知识点11:指针及其应用 484. 设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是______。 485. A)10,11,12 B)11,12,12 C)10,12,12 D)11,11,12 486. 设char s [10], *p; 正确的操作语句是_______。 487. A)p=\"MBA\"; B)s++; C)s=\"MBA\"; D)s[ ]=\"MBA\" 488. 设置int a[10],*p=a;与a[1]等价的是______。 41 489. A)*(a+1) B)*(p+1) C)p[1] D)(*p)++ 490. 变量的指针含意是指变量的______。 491. A)值 B)地址 C)存储 D) 名字 492. 493. 量地址 494. 495. 496. 497. ______。 498. 499. 设int a,*p;则语句p=&a;中的运算符“&”的含义是______ A)位与运算 B)逻辑与运算 C)取指针内容 D)取变已知:int a, *y=&a;则下列函数调用中错误的是_______ 。 A) scanf(\"%d\; B) scanf(\"%d\; C) printf(\"%d\; D) printf(\"%d\; 若有定义:char *x= “abcdefghi”;,以下选项中正确运用了strcpy函数的是A)char y[10]; strcpy(y,x[4]); B)char y[10]; strcpy(++y,&x[1]); 42 500. C)char y[10],*s; strcpy(s=y+5,x); 501. D)char y[10],*s; strcpy(s=y+1,x+1); 502. 说明语句\"int (*p)( );\"的含义是_______ 。 503. A) p是一个指向一维数组的指针变量 504. B) p是指针变量,指向一个整型数据 505. C) p是一个指向函数的指针,该函数的返回值是一个整型 506. D) 以上都不对 507. 设有说明int (*p)[4];其中的标识符p是______ 。 508. A) 4个指向整型变量的指针变量 509. B) 指向4个整型变量的函数指针 510. C) 一个指向具有4个整型元素的一维数组的指针 511. D) 具有4个指向整型变量的指针元素的一维指针数组 512. 已知:char s[10], *p=s,则在下列语句中,错误的语句是_____ 。 43 513. A) p=s+5; B) s=p+s; C) s[2]=p[4]; D) *p=s[0]; 514. 已知:char s[100];int i;则引用数组元素的错误的形式是______ 。 515. A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i) 516. 已知:char s[6], *ps=s;则正确的赋值语句是 _________。 517. A) s=\"12345\"; B) *s=\"12345\"; C) ps=\"12345\"; ps=\"12345\"; 518. 以下函数的功能是______。 519. fun(char *a,char *b) 520. { while((*a!='\\0')&&(*b!='\\0')&&(*a==*b)) 521. { a++;b++; } 522. return(*a-*b); 523. } 524. A)计算a和b所指字符串的长度之差 44 D) * 525. B)将b所指字符串连接到a所指字符串中 526. C)将b所指字符串连接到a所指字符串后面 527. D)比较a和b所指字符串的大小 528. 若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是______。 529. A) *(*w+3) B) *(w+1)[4] C) *(*(w+1)) D) *(&w[0][0]+1) 530. 若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是________。 531. A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k; 532. 已知:char a[3][10]={\"BeiJing\;不能正确显示字符串\"ShangHai\"的语句是_____ 。 533. A) printf(\"%s\; B) printf(\"%s\; 534. C) printf(\"%s\; D) printf(\"%s\; 535. 已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; 536. int (*ptr)[3]=a,*p=a[0]; 537. 则以下能够正确表示数组元素a[1][2]的表达式是_______ 。 45 538. A) *(*(a+1)+2) B) *(*(p+5)) C) (*ptr+1)+2 D) *((ptr+1)[2]) 539. 已知:int a[]={1,2,3,4}, y, *p=a;则执行语句y = (*++p)--;之后, 数组a各元素的值变为______。 540. A) 0,1,3,4 B) 1,1,3,4 C) 1,2,2,4 D) 1,2,3,3 541. 已知:int x[ ]={ 1,3,5,7,9,11 },*ptr=x;则能够正确引用数组元素的语句是_____ 。 542. A) x B) *(ptr--) C) x[6] D) *(--ptr) 543. 若有语句:char *line[5];,以下叙述中正确的是_____。 544. A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 545. B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 546. C)定义line是一个指针数组,语句中的*号称为间址运算符 547. D)定义line是一个指向字符型函数的指针 548. 程序中对fun函数有如下说明,此说明的含义是______。 46 549. void *fun(); 550. A) fun函数无返回值 551. B )fun函数的返回值可以是任意的数据类型 552. C) fun函数的返回值是无值型的指针类型 553. D) 指针fun指向一个函数,该函数无返回值 554. 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是_____。 555. A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; 556. 若有定义:int x=0, *p=&x;,则语句printf(\"%d\\n\的输出结果是______。 557. A)随机值 B)0 C)x的地址 D)p的地址 558. 有以下程序,经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: 559. ex abcd efg h3 k44 ,执行后输出结果是________。 560. #include 47 561. main(int argc ,char *argv[ ]) 562. { int i,len=0; 563. for(i=1;i 565. } 566. A) 14 B) 12 C) 8 D) 6 知识点12:结构体和共用体 567. 有定义如下,如果 p=&data;则对于结构变量data的成员a的正确引用是______。 568. struct sk 569. { int a; 570. float b; 571. }data ,*p; 572. A)(*).data.a B) (*p).a C) p->data.a D) p.data. 48 a 573. 已知有如下声明,则sizeof(test)的值是_______。 574. struct 575. { int i; 576. char c; 577. float a; 578. }test; 579. A) 4 B) 5 C) 6 D) 7 580. 已知有如下声明,则执行\"temp.i=266;printf(\"%d\的结果是_____。 581. union u_type 582. { int i; 583. char ch; 584. float a; 49 585. }temp; 586. A) 266 B) 256 C) 10 D) 1 587. 若有以下说明语句,则对结构变量pup中sex域的正确引用是________ 。 588. struct pupil 589. { char name[20]; 590. int sex; 591. }pup,*p; 592. p=&pup; 593. A) p.pup.sex B) p->pup.sex D) (*p).sex 594. 以下对结构变量stul中成员age的非法引用是______ 。 595. struct student 596. { int age; 597. int num; 50 C) (*p).pup.sex 598. }stu1,*p; 599. p=&stu1; 600. A) stu1.age B) student.age C) p->age D) (*p).age 601. 若有以下说明和定义,则以下叙述中错误的是______。 602. union dt 603. {int a;char b;double c;}data; 604. A) data的每个成员起始地址都相同 605. B) 变量data所占的内存字节数与成员c所占字节数相等 606. C) 程序段:data.a=5;printf(\"%f\\n\输出结果为5.000000 607. D) data可以作为函数的实参 608. 若有以下定义和语句,则以下语句正确的是_____。 609. union data 610. { int i; 51 611. char c; 612. float f; 613. }a; 614. int n; 615. A) a=5; B) a={2,'a',1.2}; C) printf(\"%d\\n\; D) n=a; 知识点13:用typedef声明数据类型 616. 设有以下语句 617. typedef struct TT 618. {char c; int a[4];}CIN; 619. 则下面叙述中正确的是______。 620. A)可以用TT定义结构体变量 B)TT是struct类型的变量 621. C)可以用CIN定义结构体变量 D)CIN是struct TT类型的变量 622. 以下叙述中错误的是_______。 52 623. A)可以通过typedef增加新的类型 624. B)可以用typedef将已存在的类型用一个新的名字来代表 625. C)用typedef定义新的类型名后,原有类型名仍有效 626. D)用typedef可以为各种类型起别名,但不能为变量起别名 知识点14:文件 627. 以下叙述中正确的是_______。 628. A)C语言中的文件是流式文件,因此只能顺序存取数据 629. B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 630. C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据 631. D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 632. 设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为_______。 633. A)EOF B)非0值 C)0 D)NULL 53 634. 数字12345写入二进制文件和文本文件所占用的字节数分别是____。 635. A)5,5 D)2,5 B)5,2 C)2,2 636. C语言中文件的存取的单位是 637. D)记录 638. 639. 640. 641. 642. 643. 644. 645. A)函数 B)语句 C)字节 要打开一个已存在的非空文件\"file\"用于修改,选择正确的语句_______。 A) fp=fopen(\"file\; B) fp=fopen(\"file\; C) fp=fopen(\"file\; D) fp=fopen('file\ 当顺利执行了文件关闭操作时,fclose函数的返回值是 _____。 A) -1 B) TRUE C) 0 D) 1为了向二进制文件尾部增加数据,打开文件的方式应采用_______。 A)″ab″ B)″rb+″ C)″wb″ D)″wb+″ fscanf函数的正确调用形式是_______。 54 646. A) fscanf (文件指针, 格式字符串, 输出列表); 647. B) fscanf (格式字符串, 输出列表, 文件指针); 648. C) fscanf (格式字符串, 文件指针, 输出列表); 649. D) fscanf (文件指针, 格式字符串, 输入列表); 知识点15:编译预处理 650. 以下叙述中正确的是______。 651. A)预处理命令行必须位于源文件的开头 652. B)在源文件的一行上可以有多条预处理命令 653. C)宏名必须用大写字母表示 654. D)宏替换不占用程序的运行时间 655. 已知宏定义如下,执行语句z=2*(N+Y(5+1));后,变量z的值是____。 656. #define N 3 657. #define Y(n) ((N+1)*n) 55 658. A) 42 B) 48 C) 52 D) 出错 659. 已知宏定义 #define SQ(x) x*x,执行语句printf(\"%d\;后的输出结果是____。 660. A) 1 B) 3 C) 9 D) 10 661. 以下程序执行后输出结果是_______。 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\\n”,i); } A) 28 B) 22 C) 16 D) 4 662. 已知宏定义如下,若程序中的语句是 PR(D1,a);经预处理后展开为____。 663. #define PR printf 56 664. #define NL \"\\n\" 665. #define D \"%d\" 666. #define D1 DNL 667. A) printf(%d\\n,a); 668. C) printf(\"%d\"\"\\n\",a); 二、程序填空 一顺序,选择结构 1下面程序的功能是计算圆的面积。#define __________________ main() { float r,s; printf(\"Enter a number r:\"); B) printf(\"%d\\n\; D) 原语句错误 57 ___________________; s=PI*r*r; printf(\"s=%f\ } 2下面程序的功能是输入一个三位数,将它反向输出,如输入258,输出852。 main() { int x ,a ,b ,c, y; ; a =x/100; b=x/10-a*10; c= ; y=100*c+10*b+a; printf(\"y=%d\\n\ 58 } 3 判断输入字符种类 #include main( ) { char c; printf(\"Enter a character:\"); ; if(c<0x20) printf(\"This is a control character\\n\"); else if( ) printf(\"This is a digit\\n\"); else if(c>='A'&&c<='Z') printf(\"This is a capital letter\\n\"); else if(c>='a'&&c<='z') printf(\"This is a lower letter\\n\"); else printf(\"This is other character\\n\"); } 59 4 填空使运行结果为a=2,b=1 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: ; break; case 1: b++; break; } case 2: a++;b++; ; case 3: a++;b++; } printf(“\\na=%d,b=%d”,a,b); 60 } 5.将大写字母改为小写字母 #include main() { ; scanf(“%c”,&a); if( a>=‘A’ && a<=‘Z’ ) printf(“%c”, ); else printf(“please input right char!\\n”); } 二循环结构 61 1下面程序的功能是计算n!。 main() { int i,n; float fac; ; scanf(\"%d\ for(i=1;i<=n;i++) ; printf(\"%.0f\\n\ } 2读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+⋯⋯对值小于eps。 #include 62 ,直到最后一项的绝#include void main( ) { int temp, flag; double eps, item, sum; ___________ ; sum = 0; item = flag = temp = 1; while(fabs(item)>=eps){ sum = sum + item; temp =___________ ; ___________; item =flag/temp; } 63 printf(\"%f\\n\ } 3从键盘输入一个正整数,如果它是素数,则输出该数,否则输出该数的所有因子(除去1和自身) main() { int m,i,flag; flag=1; scanf(\"%d\ for(i =2; i {flag=0;printf(\"%5d\printf(\"\\n\"); if(____________) printf(\"%d\\n\ 64 } 4 /*有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,… 求出这个数列的前20项之和*/ main() { int i ,t,n=20; float a=2,b=1,_______________; for(i=1; i<=n; i++) { s=s+a/b; _________________; a=a+b; __________________;_} printf(\"sum=%9.6f\\n\ } 65 5 /*判断某个一位数n是否在一个不高于四位的整数m中出现*/ main() {int m,n; int flag; ___________; scanf(\"%d,%d\ while(m!=0) { if(n==m%10) { flag=0; ___________;} ___________; } if(flag= =0) printf(\"yes\\n\"); 66 else printf(\"no\\n\"); } 6以下程序求1+2+...+100。 main( ) { int a=1,b=________; while (a<=100) {b=b+a; ________;} printf(\"\\n a=%d,b=%d\ } 7 求两个数的最大公约数 main() 67 { int m,n,r,t; scanf(“%d%d”,&m,&n); if(m do { ________; m=n; n=r; } while(________); prinf(“fac=%d”,m); 68 } 8 把100~200 之间的不能被3 整除的数打印出来. main() { int n; printf(\"不能被3整除的数是:\\n\"); for(________;n<=200;n++) { if(n%3==0) ________; printf(\"%-5d\\n\ } } 69 9求sn=a+aa+aaa+…+a…a,其中a是一个一位整数。 main() {long int s=0,t; int a,n,i; ________; t=a; for(i=1;i<=n;i++) { s+=t; ________ } printf(\"s=%ld\\n\ } 70 10 打印九九乘法表 main() { int i,j; for(i=1;i<10;i++) { for(j=1; ________;j++) printf(________________); printf(\"\\n\") ; } } 三函数 1下面程序的功能是求10个数平均值。 71 float av(float a[],int n) { int i;float s=0; for(i=0;i return (s/n); } main() { int i; float a[10]; ; for (i=0; ;i++) scanf(\"%f\ ); 72 printf(\"%f\ } 2 定义函数f(number),它的功能是返回number 的逆序数。例如f(-123)的返回值是-321。 long f(long number) { int flag, digit; long res = 0; flag = number<0 ? -1 : ___________; if(number<0) number = - number; while(number!=0) { ___________ ; number /= 10; } ___________ ; 73 } 3 请仔细阅读函数f1,然后在函数f2 中填入正确的内容,使函数f1 和函数f2 有相同的功能。 void f1(char s[ ], char t[ ]) { int j, k; j=k=0; while(s[j]!='\\0') j++; while((s[j++]=t[k++])!='\\0') ; } void f2(char *s, char *t) { while(___________ ) 74 ___________ ++; while(___________ ) ; } 4下面程序的功能是计算100~1000之间有多少个这样的整数:它的各位数字之和等于5。 int f(int m ) { int a,b,c,d; a=m/100; b=(m-a*100)/10; c=m%10; d=a+b+c; ____________; } 75 main() { int n,count=0; for(n=100;n<1000;n++) if(____________) count++; printf(\"%d\\n\ } 5以下函数fun用于求两个整数a和b的最大公约数. int fun (int a, int b) { int m; m=a%b; while ( ) { ; 76 ; m=a%b; } return ; } 6以下cpy函数把字符串数组s1中全部字符复制到字符数组s2中。 void cpystr( ) { int i ; for (i=0; ; i++) =s1[ i ] ; s2[ i ]= '\\0'; } 7输入年月日,编一函数,计算该日是该年的第几天,要求年月日的输入及结果输出在主函数中实现 77 int pro(int y,int m,int d) { int i,n=0; for(i=1;i if(i%2) n+=31; else if(i!=2) n+=30; else if(y%4==0&&y%100!=0||y%400==0) n+=29; else n+=28; else if(i%2) n+=30; else n+=31; _______________; return(n); 78 } main() { printf(\"Input a Date(Year/Mouth/Day):\\n\"); scanf(\"%d/%d/%d\ n=pro(y,m,d); printf(\"N=%d\\n\ } 8下面程序能够统计主函数调用count函数的 次数(用字符#作为结束输入的标志),请 在 处填入正确内容。 main ( ) { 79 char ch; while ( ) { scanf(\"%c\" , &ch) ; if( ) break; count( ); } } count (char c) { static int i=0; 80 i++; if ( ) printf(\"count = %d\\n\" ,i) ; } 9求两个数的最大公约数和最小公倍数 int maxcom(int x,int y) { int z,i; for(i=x>y?x:y;i>0;i--) if(x%i==0&&y%i==0) { z=i; ; } 81 return z; } int mincom(int x,int y) {int z; z=x*y/maxcom(x,y); ; } main() {int a,b,p,q; scanf(\"%d%d\ ; q=mincom(a,b); printf(\"%d,%d,maxcom=%d,mincom=%d\\n\ 82 } 10 填空使程序的运行结果为7 8 9。 #include int f(int a) { auto int b=0; ; b=b+1; c=c+1; return (a+b+c); } main() { int a=2,i; 83 for(i=0;i<3;i++) printf(\"%d \ ); } 四数组 1下面程序的功能是求主次对角线之和。 main() { int a[ ][3]={9,7,5,1,2,4,6,8}; int i,j,s1=0,s2=0; for(i=0;i<3;i++) for(j=0;j<3;j++) {if( ) s1=s1+a[i][j]; 84 if( ) s2=s2+a[i][j]; } printf(\"%d\\n%d\\n\ } 2 /*下面程序能够按以下形式输出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ..................... */ 85 #define N 11 main( ) {int i,j,a[N][N]; for (i=1,i _______________=1; } for (______________;i a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i for (j=1;j<=i;j++) 86 printf(\"%6d\j]); printf (\"\\n\" ); } printf (\"\\n\" ); } 3下面程序用来找出三个字符串中的最大者,请在 处填入正确内容: main( ) { char str[20], s[3][20]; int i; for (i =0;i<3;i++) gets( ); if (strcmp( )>0) strcpy (str,s[0]); 87 else strcpy(str,s[1]); if (strcmp(s[2],str)> 0) strcpy(str,s[2]); printf(\"The largest string is :\\n%s\\n\ } 4下面程序的作用是将以下给出的字符按其格式读入数组ss中,然后输出行、列号之和为3的数组元素,请在 处填入正确内容。 A a f c B d e b C g f D main( ) { static char ss [4][3]= {'A' ,'a' ,'f' ,'c' ,'B' ,'d' ,'e' ,'b','C', 'g','f','D'}; int x,y,z; 88 for(x =0; ;x++) for(y= 0; ;y++) { z=x+y; if( ) printf(\" %c\\n\ } } 5 下面程序用来输出两个字符串中短串的长度, 请在 处填入正确内容。 #include #include main( ) { 89 char p1[20],p2[20]; int i1,i2,num; gets(p1); gets (p2) ; i1= ; i2= ; num=(i1 } 6 冒泡法排序 #define N 10 main() { 90 int a[N]; int i,j,t; printf(\"Input 10 numbers:\\n\"); for(i=0;i for(i=1;i if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } 91 printf(\"The sorted numbers:\\n\"); for(i=0;i printf(\"\\n\"); } 7 选择法排序 #define N 10 main() { int a[N]; int i,j,t; printf(\"Input 10 numbers:\\n\"); for(i=0;i scanf(\"%d\ for(i=0;i min=i; for(j=i+1; ;j++) if(a[min]>a[j]) ; t=a[i]; a[i]=a[min]; a[min]=t; } printf(\"The sorted numbers:\\n\"); for(i=0;i printf(\"\\n\"); } 93 8 求2×3矩阵的转置矩阵 main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(\"Array a:\\n\"); for(i=0;i<2;i++) { for(j=0;j<3;j++) {printf(\"%5d\ ; } printf(\"\\n\"); 94 } printf(\"Array b:\\n\"); for(i=0;i<3;i++) { for(j=0;j<2;j++) printf(\"%5d\j]); ; } } 9 输入10个数,输出其中的最大值和最小值 #define N 10 main() { 95 int i,a[N],max,min; printf(\"Input Data:\\n\"); for(i=0;i ; for(i=1;i if(max; } printf(\"Max=%d,Min=%d\ } 10 输入一串字符,逆序排列并输出。(要求只用一个数组) #include\"stdio.h\" 96 #include\"string.h\" main() { char str[80],c; int i,j; ; for(i=0, ; i str[i]=str[j]; str[j]=c; } puts(str); 97 } 五指针 1将两个数按大小顺序输出,程序为; main() {int a, b, *p1, *p2, t; scanf(\"%d%d\ if(*p1>*p2) { t =*p1; } printf(\"%5d%5d\ ); } 2输入a 和b 两个整数,按先大后小的顺序输出a 和b 。 void swap(pa,pb) int *pa,*pb; 98 { int t; t=*pa;*pa=*pb;*pb=t; } main() { int a,b,*p1=&a,*p2=&b; ; printf(\"A=%d,B=%d\\n\ if(a; printf(\"A=%d,B=%d\\n\ } 99 3输入一行字符,求其中字母、数字、空格和其它字符的个数(函数实现)。 #include\"stdio.h\" #include\"string.h\" void pro(s,n,p1,p2,p3,p4) { int i; for(i=0;i else if(s[i]>='0'&&s[i]<='9') else if(s[i]==' ') (*p3)++; else (*p4)++; } (*p2)++; 100 main() { char str[80]; int n1,n2,n3,n4; gets(str); ; pro(str,strlen(str),&n1,&n2,&n3,&n4); printf(\"N1=%d,N2=%d,N3=%d,N4=%d\\n\ } 4把字符串a 复制给字符串b main() { char a[]=\"Hello world\"; 101 char b[20]; char *p1,*p2; p1=a;p2=b; for(; ;p1++,p2++) *p2=*p1; ; printf(\"a:%s\\n b:%s\\n\ } 5 利用指针变量实现数组的输入输出#define N 10 main() { int a[N],*p; 102 for( ;pscanf(\"%d\