1、 目录 重要 次重要 重复或欲删除 基础 第一章 C 语言概述 1.1 选择题 1.2 填空题 第二章 数据类型、运算符与表达式 2.1 选择题 2.2 填空题 第三章 最简单的 C 程序设计 3.1 选择题 3.2 填空题 第四章 逻辑运算和判断选取控制 4.1 选择题 4.2 填空题 4.3 编程题 第五章 循环控制 5.1 选择题 5.2 填空题 5.3 编程题 第六章 数组 6.1 选择题 6.2 填空题 6.3 编程题 第七章 函数 7.1 选择题 7.2 填空题 7.3 编程题 第八章 编译预处理 8.1 选择题 8.2 填空题 8.3 编程题 第九章 指针 9.1 选择题 9.2
2、 填空题 第一章 C语言概述 1.1 选择题 *1.1 一个 C 程序的执行是从 。 A)本程序的 main 函数开始 ,到 main 函数结束 B)本 程序文件的第一个函数开始 ,到本程序文件的最后一个函数结束 C)本程序的 main 函数开始 ,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始 ,到本程序 main 函数结束 参考答案: A 参考分析: C 语言总是从 main函数开始 ,main函数结束。但是 C 语言中存在一个 exit(0)函数 ,它可以使得程序在任何时候、任何位置结束程序的运行。如果丌考虑 exit(0)等函数的特殊作用 ,C 则总是在 main函数结
3、束。 *1.2 以下叙述正确的是 。 A)在 C 程序中 ,main 函数必须位于程序的最前面 B)在 C 程序的每一行只能写一条语句 C)C 语言本身没有输入输出语句 D)在对一个 C 程序进行编译的过程中 ,可发现注释中的拼写错误 参考答案: C 参考分析: C 程序对 main 函数的位置没有任何要求;其书写格式自由 ,一行可以写多条语句 ,一条语句 (多关键字语句 )可以写在多行; C 语言忽略注释 ,把注释看作是一个空格,丌会对注释中的内容迚行语法检查。因此 ,如果注释中存在错误 ,系统是丌可能发现的。另外, C 语言的 I/O 操作均通过函数实现 ,系统本身未提供相应的语句。 1.
4、3 以下叙述不正确的是 。 A)一个 C 源程序可由一个 或多个函数组成 B)一个 C 源程序必须包含一个 main 函数 C)C 程序的基本组成单位是函数 D)在 C 程序中 ,注释说明只能位于一条语句的后面 参考答案: D 参考分析: C 语言中 ,注释语句的位置是任意的 ,当然 ,它丌能破坏标识符的完整性。 C 语言叧是将一个注释看作是一个空格,因此对注释内的任何错误都丌作检查。 1.4 C 语言规定:在一个源程序中 ,main 函数的位置 。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 参考答案: C *1.5 一个 C 语言程序 是由 。 A)一
5、个主程序和若干个子程序组成 B)若干函数组成 C)若干过程组成 D)若干子程序组成 参考答案: B 参考分析:通常许多语言程序由主程序和子程序构成 ,但是 C 语言是函数式语言 ,整个程序由众多函数组成。尽管有时习惯上称 main 函数为主程序,显然,严格地讲还是 B 更为符合 C 语言的规则。 1.2 填空题 1.6C 源程序的基本单位是【 】。 参考答案:函数 1.7 一个 C 源程序中至少应包括一个【 】。 参考答案: main()函数 1.8 在一个 C 源程序中 ,注释部分两侧的分界符分别为【 1】和【 2】。 参考答案:【 1】 /* 【 2】 */ 1.9 在 C 语言中,输入操
6、作是由库函数【 1】完成的,输出操作是由库函数【 2】完成的。 参考答案:【 1】 scanf 【 2】 printf 第二章 数据类型、运算符与表达式 2.1 选择题 *2.1C 语言中 (以 16 位 PC 机为例 ),各数据类型的存储空间长度的排列顺序为 。 A)charyx。 2.36 若有代数式 |x3+lgx|,则正确的 C 语言表达式是 。 A)fabs(x*3+log10(x) B)abs(pow(x,3)+log10(x) C)abs(pow(x,3.0)+log10(x) D)fabs(pow(x,3.0)+log10(x) 参考答案: D 参考分析:以上两题均未 说明 x
7、,y的类型,从表达式的性质可分析隐含为实型,因此应使用 fabs。 *2.37 在 C 语言中 ,char 型数据在内存中的存储形式是 。 A)补码 B)反码 C)原码 D)ASCII 码 参考答案: D 参考分析:计算机系统不能存储字符本身 ,存储的是字符的 ASCII码。 *2.38 设变量 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 参考
8、答案: B 参考分析: m=n*100+0.5赋值过程中有实型转整型的自动转换。 2.39 表达式 18/4*sqrt(4.0)/8 值的数据类型为 。 A)int B)float C)double D)不确定 参考答案: C 参考分析:表达式的类型由表达式结果的类型决定。 2.40 设 C 语言中 ,一个 int 型数据在内存中占 2 个字节 ,则 unsigned int 型数据的取 值范围为 。 A)0-255 B)0-32767 C)0-65535 D)0-2147483647 参考答案: C 参考分析:各种数据类型的取值范围是由其字长决定 ,字长确定的情况下 ,有符号数与无符号数的范
9、围应当容易计算得知。 2.41 设有说明: char w;int x;float y;double z;则表达式 w*x+z-y 值的数据类型为 。 A)float B)char C)int D)double 参考答案: D 参考分析:表达式的类型由表达式结 果的类型决定。虽然本题各变量没有具体的变量值,由于参与运算的变量中 z变量为 double型,表达式计算的结果肯定为 double型。 2.42 若有以下定义 ,则能使值为 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) 参考答案: D 参
10、考分析: A的值为 0,B、 C 两个表达式相同 ,值为 2,只有 D的值为 3。 2.43 设以下变量均为 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 参考答案: C 参考分析:经计算可知,只有 C 的值为 12,不为 7。 2.2 填空题 2.44 在 C 语言中(以 16 位 PC 机为例),一个 char 型数据在内存中所占的字节数为【 1】;一个 int 型数据在内存中所占的字节数为【 2】。 参考答案:【 1】 1 【 2】 2 2.45 在
11、C 语言中(以 16 位 PC 机为例),一个 float 型数据在内存中所占的字节数为【 1】;一个 double 型数据在内存中所占的字节数为【 2】。 参考答案:【 1】 4 【 2】 8 2.46 若有以下定义, int m=5,y=2;则计算表达式 y+=y-=m*=y 后 y 的值是【 】。 参考答案: 16 2.47 设 C 语言中,一个 int 型数据在内存中占 2 各字节,则 int 型数据的取值范围为【 】。 参考答案: -32768 32767 2.48 在 C 语言中的实型变量分为两种类型,它们是【 1】和【 2】。 参考答案 :【 1】 float 【 2】 doub
12、le *2.49 C 语言所提供的基本数据类型包括:单精度型、双精度型、【 1】 、【 2】和【 3】。 参考答案: 字符型 整型 枚举 参考分析:基本类型又称简单类型,若分为四种则为字符、整型、实型和枚丼,若分为五种,则将实型分为单精度型和双精度型两种。 *2.50 若 s 是 int 型变量,则表达式 s%2+(s+1)%2 的值为【 】。 参考答案: 1 参考分析:无论 s是奇数还是偶数表达式的值只能是 1。 *2.51 若 a 是 int 型变量,则表达式( a=4*5,a*2) ,a+6 的值为【 】。 参考答案: 26 *2.52 若 x 和 a 均是整型变量,则计算表达式 (1)
13、后的 x值为【 1】,计算表达式 (2)后 x的值 为【 2】。 (1)x=(a=4,6*2) (2)x=a=4,6*2 参考答案:【 1】 12 【 2】 4 2.53 若 a、 b 和 c 均是 int 型变量,则计算表达式 a=(b=4)+(c=2)后, a 的值为【 1】, b 的值为【 2】, c 的值为【 3】。 参考答案:【 1】 6 【 2】 4 【 3】 2 2.54 若 a 是 int 型变量,且 a 的初值为 6,则计算表达式 a+=a-=a*a 后 a 的值为【 】。 参考答案: 60 2.55 若 a 是 int 型变量,则计算表达式 a=25/3%3 后 a 的值为
14、【 】。 参考答案: 2 2.56 若 x和 n均是 int 型变量,且 x和 n的初值均为 5,则计算表达式 x+=n+后 x 的值为【 1】, n 的值为【 2】。 参考答案:【 1】 10 【 2】 6 2.57 若有定义 :int b=7;float a=2.5,c=4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4 的值为【 】。 参考答案: 5.5 2.58 若有定义 :int a=2,b=3;float x=3.5,y=2.5;则表达式 (float)(a+b)/2+(int)x%(int)y 的值为【 】。 参考答案: 3.5 2.59 若有定义: cha
15、r c=010;则变量 c 中包含的字符个数为【 】。 参考答案: 1 2.60 若有定义: int x=3,y=2;float a=2.5,b=3.5;则表达式 (x+y)%2+(int)a/(int)b 的值为【 】。 参考答案: 1 2.61 若有定义 :int x=12,n=5;则计算表达式 x%=(n%=2)后 x 的值为【 】。 参考答案: 0 2.62 若有定义 :int a,b;表达式 a=2,b=5,a+,b+,a+b 的值为【 】。 参考答案: 9 2.63 C 语言中的标识符只能由三种字符组成,它们是【 1】、【 2】和【 3】。 参考答案:【 1】字符 【 2】数字 【
16、 3】下划线 *2.64 已知字母 a的 ASCII码为十进制数 97,且设 ch为字符型变量,则表达式 ch=a+8-3的值为【 】。 参考答案: f 参考分析:表达式计算中取各个字符的 ASCII 码值进行计算,但 ch的值是以计算结果为码值的字符。 2.65 把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式为【 】。 参考答案: (5*x+3)*x-4)*x+2)*x+1)*x-6)*x+1)*x+10 2.66 若 double x=3.0,y=2.0;则表达式 pow(y,fabs(x)的值为【 】。 参考答案: 8.0 2.67 若有定义: int e=1,f=4,g=2;float m=10.5,n=4.0,k; 则计算表达式 k=(e+f)/g+ sqrt(double)n)*1.2/g+m 后 k 的值是【 】。 参考答案: 13.7 2.68 表达式 8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为 ( )。 参考答案: int 型 *2.69 表达式 pow(2.8,sqrt(double(x)值的数据类型为【 】 。 参考答案: double 型 *2.70 假设 m 是一个三位数,从左到右用 a、 b、 c 表示各位的数字,则从左到右各个数字是 bac 的三位数表达式是【 】。