
C 语言程序设计
复
习
题

目 录
选择题.................................................................................................................................................1
知识点 1:C 程序的基本结构和算法基本概念 ................................................................................1
知识点 2:数据和表达式计算 ...........................................................................................................2
知识点 3:输入输出 ...........................................................................................................................3
知识点 4:逻辑量和逻辑表达式 .......................................................................................................5
知识点 5:位运算 ...............................................................................................................................5
知识点 6:选择结构和 if、switch 语句 ........................................................................................5
知识点 7:循环结构 while 、do~while 和 for 语句 ....................................................................6
知识点 8:数组的基本概念和引用 ...................................................................................................7
知识点 9:变量的作用域和生存期 ...................................................................................................9
知识点 10:函数 .................................................................................................................................9
知识点 11:指针及其应用 ...............................................................................................................13
知识点 12:结构体和共用体 ...........................................................................................................15
知识点 13:用 typedef 声明数据类型 ...........................................................................................16
知识点 14:文件 ...............................................................................................................................16
知识点 15:编译预处理 .....................................................................................................................17
选择题答案: ....................................................................................................................................17
程序填空题......................................................................................................................................19
知识点 1:顺序,选择结构 .............................................................................................................19
知识点 2:循环结构 .........................................................................................................................20
知识点 3:函数 .................................................................................................................................23
知识点 4:数组 .................................................................................................................................27
知识点 5:指针 .................................................................................................................................31
程序填空答案: ................................................................................................................................33
写出程序运行的结果 ...................................................................................................................35
知识点 1:选择结构 .........................................................................................................................35
知识点 2:循环结构 .........................................................................................................................35
知识点 3: 数组 ...............................................................................................................................39
知识点 4:函数 .................................................................................................................................44
知识点 5:指针 .................................................................................................................................49
程序运行答案: ................................................................................................................................52
编程题...............................................................................................................................................55

1
选择题
知识点 1:C 程序的基本结构和算法基本概念
1. C 语言程序的基本单位为_______。
A) 程序行 B) 语句 C) 函数 D) 字符
2. 用 C 语言编写的代码程序______。
A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过解释就能执行
3. 以下叙述中正确的是______。
A)用 C 程序实现的算法必须要有输入和输出操作
B)用 C 程序实现的算法可以没有输出但必须要输入
C)用 C 程序实现的算法可以没有输入但必须要有输出
D)用 C 程序实现的算法可以既没有输入也没有输出
4. 结构化程序由三种基本结构组成,三种基本结构组成的算法____。
A)可以完成任何复杂的任务 B)只能完成部分复杂的任务
C)只能完成符合结构化的任务 D)只能完成一些简单的任务
5. 在一个 C 程序中______。
A) main 函数必须出现在所有函数之前
B) main 函数可以在任何地方出现
C) main 函数必须出现在所有函数之后
D) main 函数必须出现在固定位置
6. 下列关于 C 语言的叙述错误的是______。
A) 大写字母和小写字母的意义相同
B) 不同类型的变量可以出现在同一个表达式中
C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D 某些运算符号在不同的场合可以有不同的含义
7. 以下叙述中错误的是_______。
A)C 程序中的#include 和#define 行均不是 C 语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C 程序中,j++;是赋值语句
D)C 程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
8. 以下程序的功能是给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时出错,出错的原因是
________。
main()
/* Beginning */
{ int r; float s;
scanf("%d",&r);
s=p*r*r; printf("s=%f\n",s);
}
A)注释语句书写位置错误 B)存放圆半径的变量 r 不应该定义为整型
C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量

2
知识点 2:数据和表达式计算
9. 以下标识符中,不能作为合法的 C 语言用户定义标识符的是_____。
A) a3 B) if C) _123 D) IF
10. 以下数据中,不正确的数值或字符常量是_____。
A) 011 B) 3.987E-2 C) 018 D) 0xabcd
11. 若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是______。
A) ++x, y=x- - B) x+1=y C) x=x+10=x+y D) double(x)/10
12. 以下不正确的 C 语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x
13. 以下是正确的 C 语言标识符是____。
A) #define B) _123 C) %d D) \n
14. 正确的自定义标识符是_______。
15. 正确的自定义标识符是________。
A)a=2 B)a+b C)name D)default
16. C 语言的关键字是________。
A)NULL B)file C)include D)typedef
17. 在 C 语言中,错误的常数是______。
A)1E+0.0 B)5 C)0xaf D)0L
18. 在 C 语言中,错误的 int 类型的常数是____ 。
A) 32768 B) 0 C) 037 D) 0xAF
19. C 语言中最简单的数据类型包括_______。
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型,实型,逻辑型,字符型
20. 下列变量定义中合法的是_______。
A) short _a=1.1e-1; B) double b=1+5e2.5;
C) long do=0xfdaL; D) float 2_and=1.e-3;
21. 在C语言中,整数-8 在内存中的存储形式是________ 。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000
C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
22. C语言中字符型(char)数据在内存中的存储形式是____。
A) 原码 B) 补码 C) 反码 D) ASCII 码
23. 将字符 g(AscII 码值(八进制)为 147)赋给字符变量 c,正确的表达式是____ 。
A) c=\147 B) c="\147" C) c=' \147' D) c='0147'
24. 将空格符(AscII 码值为 32)赋给字符变量 c,正确的赋值语句是____。
A) c='\0' B) c=NULL C) c=0 D) c=32
25. 字符串"\"EOF\n=-\61\""的长度是____。
A) 8 B) 9 C) 14 D) 非法字符串
26. 字符串""的长度是____。
A) 0 B) 1 C) 2 D) 非法字符串
27. 错误的转义字符是____。
A)if B)iF C)a*b D)8bq

3
A) '\091' B) ' \\' C) '\0' D) ' \' '
28. 以下两组字符中,不正确的 C 语言转义字符分别是_____。
A) '\\' B) '071' C) '\b' D) ' \xaa'
29. 若有以下程序段,c3 中的值是_____。
int c1=1,c2=2,c3;
c3=c1/c2;
A) 0 B) 1/2 C) 0.5 D ) 1
30. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是_____。
A) 3 B) 4 C) 11 D) 12
31. 以下选项中,值为 1 的表达式______。
A)1-‘0’ B)1-‘\0’ C)’1’-0 D)’\0’-‘0’
32. 设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位(四舍五入)是_____ 。
A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0
C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0
33. 表达式 3.6-5/2+1.2+5%2 的值是______。
A)4.3 B)4.8 C)3.3 D)3.8
34. 已知 int a[3][2]={3,2,1};则表达式"a[0][0]/a[0][1]/a[1][0]"的值是____。
A) 0.166667 B) 1 C) 0 D) 错误的表达式
35. 逗号表达式"(a=3*5,a*4),a+15"的值是____。
A) 15 B) 60 C) 30 D) 不确定
36. 已知 int x=(1,2,3,4);变量 x 的值是____。
A) 1 B) 2 C) 3 D) 4
37. 如果 int a=1,b=2,c=3,d=4;则条件表达式"a<b?a:c<d?c:d"的值是____。
A) 1 B) 2 C) 3 D) 4
38. 与条件表达式"(n)?(c++):(c--)"中的表达式(n)等价的表达式是____。
A) (n==0) B) (n==1) C) (n!=0) D) (n!=1)
39. 已知 int x=1,y=1,z=1;表达式"x+++y+++z++"的值是____。
A) 3 B) 4 C) 5 D) 表达式错误
40. 已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转
换为对应小写字母的语句是_____。
A) c=(c-'A')%26+'a' B) c=c+32 C) c=c-'A'+'a' D) c=('A'+c)%26-'a'
41. sizeof(double)是 _____。
A) 函数调用 B) double 型表达式 C) int 型表达式 D) 非法表达式
知识点 3:输入输出
42. 下列程序的输出结果是_____。
A) 3 B) 3.2 C) 0 D) 3.07
main()
{ double d=3.2; int x,y;