C语言习题集
第一章 C语言概述
复习要点:
1. 程序的构成,main函数和其他函数。 2.语句,注释
3.运行C程序的步骤和方法
习题:
1.C程序是由 函数 构成的,一个C程序中至少包含 一个main函数 。 2. 函数 是C程序的基本单位。(最小单位是表达式) 3.C程序有且只有一个 main函数 。 4.C程序从 main函数 开始执行。
5.C程序注释符是由 /* 和 */ 组成,且不能嵌套使用。 6.C程序的语句是以 ; 结束。
7.C程序一条语句可分多行写,需要以 \\ 为连接符。
8.C程序可以用 { 和 } 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过 源代码输入 ,编译 , 连接 , 运行 4个步骤。
10.C程序的源文件扩展名是 。c 。 11.以下叙述中正确的是( C)
A)C语言程序将从源程序中第一个函数开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以命名任意一个函数作为主函数 12.以下叙述中错误的是( D )
A)C语言源程序经编译后生成后缀为.obj的目标程序
B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 13.以下不是语句的是( A)
A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;} 14.运行以下程序 main() {
int a=10; /* 定义一个变量 a a=20; */
printf(“%d”,A); 此程序应该改写为:printf(“%d”,a) }
输出的结果是 B 。 A) 10 B)20
1
15.牢记VC++6.0的出错提示
英文提示 中文实际意义 missing ; , ( { 等 表示缺少 ; ,( {
'T' : undeclared identifier T没有定义(T要先定义然后才能使用)
'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含 'T' : redefinition T重复定义(可能是多次定义了T) Cannot open include file 头文件的拼写或路径的不对
第二章 数据类型,运算符与表达式
复习要点:
1. C的数据类型(整型,字符型,浮点型)及其定义方法。 2. C运算符的种类、运算优先级和结合性。 3. 不同类型数据间的转换与运算。
4. C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
习题:
1.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 大小写字母和下划线 。 2.字符常量使用一对 单引号 界定单个字符,而字符串常量使用一对 双引号 来界定若干个字符的序列。
3.浮点数有 十进制小数形式;(2)指数形式 两种表示形式。 4. C语言%(取余的操作符)要求两个操作数是 整 型。 5.关系运算的值是 整 型。
6.Sizeof(int)的意义 返回int型变量在内存中占的字节数 。
7.假设所有变量均为整型:a=b=5;i=++a;j=b++;则i等于 6 j等于 5 。
8.假设所有变量均为整型:a=3;b=5;a>b&&++a;a
9. 假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+B)的值为 9 。 提示:a=2,b=5,a++,b++,i=a,j=b,a+b的值 10. a=(2,5,2+5) 则a的值为 7 。 11.表达式:(int)(7.2/2)的值是 3 。
12.C语言中,不同运算符之间运算次序存在 先后 的区别,同一运算符之间运算次序存在 结合性 的规则。
13.32与八进制数 40 相等,75与十六进制数 4b 相等
14.已知x=2.5,a=7,y=4.7则x+a%3*(int)(x+y)%2/4的值是 2.5 15. 下列关于C语言用户标识符的叙述中正确的是( C ) A) 用户标识符中可以出现下划线和字母,可以和关键字同名 B) 用户标识符中不可以出现中划线,但可以出现下划线
C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
2
D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 16.有以下程序
#include
{ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5';
printf(\
}已知字母A的ASCII码为65,程序运行输出后的结果是( A ) A)E,68 B)D,69 C)E,D D)输出无定值 17.以下各组标识符中,合法的用户标识符是( D ) A)B01 table_1 0_t k% B)Fast_ void pbl book C)xy_ longdouble *p CHAR D)sj Int _xy w_y23
18.在C语言中,字符型数据在内存中以( D)形式存放。 A)原码 B)BCD码 C)反码 D)ASCII码
19.已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。执行语句printf(\后,输出结果是C
A)A,B B)A,68 C)65,66 D)65,68 20.1MB等于(D)
A)1000字节 B)1024字节 C)1000*1000字节 D)1024*1024字节 21. 与十六进制数200等值得十进制数为(B )
A)256 B)512 C)1024 D)2048
22.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( B )
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 23.以下叙述中错误的是(D )
A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C程序中,j++;是具有赋值功能的语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 24.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D ) A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定 25.已知x=10,y=20,则表达式y+=5+x的值为( C ) A) 25 B) -10 C) 35 D) 10 26.以下常量正确的是( B )
A)0X7a, 078, 6a, 57L,
B)10., -.5e3, 1e0, 0.0012e-101 C)‘ ’, ‘\\”’, ‘\\0127’, ‘\\xff’ D) 56, -.3, .e2, 1.2e2.1 ,”xy”
27.有以下定义语句,编译时会出现编译错误的是C
3
A) char a=’a’; B)char a=’\\n’; C) char a=’aa’; D)char a=’\\x2d’;
第三章 顺序结构
复习要点:
1. 赋值
2. 输入与输出函数的调用,正确输入数据并正确设计输出格式。 3. 常见的编程题
习题:
1.已知x=1,y=2,则表达式y*=5+x的值为 12 。
2.putchar(getchar( ));从键盘上输入A。则最终的输出是 A 。 3.printf函数和scanf函数的格式说明都使用 % 字符开始。
4. printf(“%-m . nf ”, A);其中-m表示 长度为m,左对齐 , n表示 小数位长度为n。
5.已知a=17则printf(“%o,%#o”,a,A);输出的结果是 。(#输出0八进制标志) 6.已知a=17则printf(“%*d,%d”,-5,a) ;输出的结果是 17 0 。;*表示跳过改项目,%d没有对应会输出0
7.scanf处理输入数据时,遇到下列情况时该数据认为结束: 空格 , Tab , 回车 。 8.一般地,调用标准字符或格式输入输出库函数时,程序开头应有包含头文件的预编译命令: stdio。h 。
9.下列符合语法的赋值语句是(cd )
A)a=7+b=8; B)++a=7; C)a=b,b++,a+7; D)a+=2*b,c=++b; 10.关于赋值过程中类型转换叙述错误的是(d )
A)实数赋值给整数变量时,将小数位不会四舍五入,会直接截断 B)整数赋值给实数变量时,整数位不变,小数位补0 C)整型变量赋值给short 时,则只保留2个低字节
D)Double变量赋值给float变量, 则只保留前面的7位有效数字 E)长度相同的有符号整型变量和无符号整型变量可以直接赋值 11.putchar ( )函数可以向终端输出一个。d A)整型变量表达式值 B)实型变量值
C)字符串 D)字符或字符型变量值 12.有以下程序 main()
{ printf(\
程序运行后的输出结果是(A )
A)0 B)1 C)-1 D)NULL没定义,出错 13.执行下列程序片段时输出结果是( a )。 unsigned int a=65535; printf(“%d”,A);
A)65535 B)-1 C)-32767 D)1 14.执行下列程序片段时输出结果是( B )。
4

