C语言程序复习题及参考答案
更新时间:2024-05-31 12:58:01 阅读量: 综合文库 文档下载
- c语言程序复制过去就出错推荐度:
- 相关推荐
C语言程序设计
目 录
第一章 C语言程序设计概述 .................................................................................... 1
一、主要内容......................................................................................................... 1 二、练习题部分..................................................................................................... 1 三、参考答案......................................................................................................... 3 第三章 数据类型、运算符和表达式........................................................................ 4
一、主要内容......................................................................................................... 4 二、练习题............................................................................................................. 5
(一)练习题之数据类型.............................................................................. 5 (二)练习题之 运算符和表达式................................................................ 8 三、参考答案....................................................................................................... 13
(一)练习题之数据类型 参考答案.......................................................... 13 (二)练习题之 运算符和表达式 参考答案............................................ 14
第四章 顺序程序设计.............................................................................................. 15
一、主要内容....................................................................................................... 15 二、练习题........................................................................................................... 15 三、参考答案....................................................................................................... 16 第五章 选择结构程序设计...................................................................................... 17
一、主要内容....................................................................................................... 17 二、练习题........................................................................................................... 17 三、参考答案....................................................................................................... 22 第六章 循环结构...................................................................................................... 26
一、主要内容....................................................................................................... 26 二、练习题........................................................................................................... 26 三、参考答案....................................................................................................... 35 第七章 数组.............................................................................................................. 40
一、主要内容....................................................................................................... 40 二、练习题........................................................................................................... 40 三、参考答案....................................................................................................... 50 第八章 函数.............................................................................................................. 55
一、主要内容....................................................................................................... 55 二、练习题........................................................................................................... 56 三、参考答案....................................................................................................... 63 第九章 预处理命令.................................................................................................... 68
一、主要内容....................................................................................................... 68 二、练习题........................................................................................................... 68 第十章 指针.............................................................................................................. 70
一、主要内容....................................................................................................... 70 二、练习题........................................................................................................... 70 三、参考答案....................................................................................................... 75 第十一章 结构体和共用体...................................................................................... 77
一、主要内容....................................................................................................... 77 二、练习题........................................................................................................... 77 三、参考答案....................................................................................................... 79 第十二章 位运算...................................................................................................... 83
一、主要内容....................................................................................................... 83 二、练习题........................................................................................................... 83 第十三章 文件.......................................................................................................... 84
一、主要内容....................................................................................................... 84 二、练习题........................................................................................................... 84 三、参考答案....................................................................................................... 86
第一章 C语言程序设计概述
一、主要内容
c程序基本结构特点
函数与主函数
1. 程序由一个或多个函数组成,函数由函数头和函数体构成。 2. 必须有且只能有一个主函数main()
3. 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。
程序语句
1. C程序由语句组成,用“;”作为语句终止符
2. /* */部分为注释,不能嵌套,不产生编译代码
编译预处理不是C语言的一部分
C程序的运行步骤
运行一个C程序,从输入源程序开始,要经过编辑源程序文件(?C)、编译生成目标文件(?obj)、连接生成可执行文件(?exe)和执行四个步骤
二、练习题部分
一、选择题:
1、C语言程序编译过程中产生的文件有: ( )
A. 索引文件和文本文件两种 B. 目标文件和可执行文件
C. 二进制文件一种 D. ASCII码文件和二进制文件两种
2、以下说法中正确的是 : ( )
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main函数中定义 C. C语言程序总是从main函数开始执行
D. C语言程序中,main函数必须放在程序的开始部分
3、C语言源程序的基本单位是:( )
A. 函数 B. 标识符 C. 表达式 D. 语句
4、以下叙述正确的是:( )
A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点
5、在一个C语言程序中 :( )
A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置
6、C++语言中工程文件的扩展名是: 。( )
A. .cpp B. .prj C. .c D. .obj
第 1 页 共 86页
(说明:BC++环境中工程文件扩展名.prj ,VC中为.dsp) 7、C文件的扩展名是:( )
(A).cpp (B).prj (C).c (D).txt
8、一个C程序的执行是从: ( )
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束
9、以下叙述正确的是: ( )
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
10、以下叙述不正确的是: ( )
A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数
D) 在C程序中,注释说明只能位于一条语句的后面
11、C语言规定:在一个源程序中,main函数的位置:( ) A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后
12、一个C语言程序是由 : ( )
A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成
13、以下叙述中正确的是:( )
A) C语言的源程序不必通过编译就可以直接运行
B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译
14、以下对C语言函数的描述中,正确的是 :( ) A) C程序必须由一个或一个以上的函数组成 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数
D) C程序中有调用关系的所有函数必须放在同一个程序文件中
15、C 语言的注释定界符是:( )
A. { } B. [ ] C. * * D. /* */
第 2 页 共 86页
二、填空题:
1、C程序的运行需要经过 _ 和 _ _两步进行。 2、C语言的编译单位是 __ __。 3、C语言程序由__ _组成。
4、结构化设计中的三种基本结构是_ _、_ _和_ __ 。 5、C 语言中,一个函数一般由两个部分组成,它们是_ __和__ _。 6、一个C语言程序总是从_ _函数开始执行程序。 7、一个 C 程序中至少应包括一个__ _。
8、C语言函数是由函数头和函数体两部分组成。其中,函数头包括_ __,__ __和__ _。
9、C程序中用/*……*/ 括起来的内容是程序的 。 10、C源程序的基本单位是 。
三、判断题:
1、C语言程序的三种基本结构是递归、选择、循环。 ( ) 2、函数若无返回值,则它的返回值是整数值0。 ( ) 3、函数若无返回值,则它一定无形参。 ( )
三、参考答案
一、选择题:
1~5:BCACB 6~10:BCACD 11~15:CBBAD 二、填空题: 1、编译 连接 2、文件 3、函数
4、顺序结构 选择结构 循环结构 5、函数首部 函数体 6、主函数(或main函数) 7、函数
8、函数类型 函数名 函数参数 9、注释 10、函数
三、判断题:
1、× 2、× 3、×
第 3 页 共 86页
第三章 数据类型、运算符和表达式
(温馨提示:本章内容非常繁琐,细节较多,请将所记笔记中的说明部分和例题好好看看,一般考选择题和填空题)
一、主要内容
标识符命名原则:
1. 合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。关
键字不可以作为用户标识符号。
2. main define scanf printf 及其他库函数的函数名都不是关键字可以用作标识
符。
3. If与if不同,If是可以做为用户标识符,因为C区分大小写。
基本数据类型:
1. 基本数据类型有哪些?所占空间大小及说明符。
2. 整型、实型、字符型常量的合法表示形式,字符串的表示形式。
a)实型数据的合法形式:小数形式和指数形式-----尤其要注意指数形式的格式e前必有数,e后必为整数。2.333e-1 就是合法的
b) 字符数据的合法形式:以单引号括起来的一个字符,注意转义字符P48表3-3。
如‘\\x6d’是合法的字符,ASCII码为十六进制的6d,‘\\141’也合法,ASCII码为八进制141,‘\\108’不合法。
c) 字符常量和字符串的区别:'a' 是字符占一个字节,
\是字符串占两个字节(含有一个结束符号)。
常量和变量
1. 符号常量的定义格式:eg #define PI 3.14159 (注意宏定义后无分号结尾) 2. 变量的定义格式:
3. 变量赋初值的方式。 int a=b=c=3;不合法
数据混合计算时数据类型的转换:P54图3-10。 a) 强制类型转换:一定是(int)a 不是 int(a),注意类型上一定有括号的。 b) 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。
运算符
1. 运算符的优先级别和结合方向: a) 单目运算>双目运算
b) 算术> 关系运算>逻辑运算>条件运算>赋值运算>逗号运算 2. 算术运算符:
a) %要求左右两边都是整型数,运算结果为余数。 b) /运算若左右两边都是整型数,结果为整数。
c) 自增自减运算符,前置先自增减,再运算;后置先运算,再自增减。自增自减运算
符只能作用于变量,不能作用于常量和表达式。
如:#define A 3
A++;是错误写法。 3. 关系运算符:
a)注意赋值=与关系= =的区别。
第 4 页 共 86页
b) c语言中没有逻辑类型,逻辑“真”用非0表示,逻辑“假”用0表示,
c) x在[a,b]间的关系表达式为x>=a && x<=b,不能写为a>=x>=b。但该表达式语法成
立,有运算结果。如3>=1>=5运算时从左向右依次运算,即3>=1为真,值为1,此时,表达式为1>=5,运算结果为假,值为0。所以整个1>=3>=5的值为0.
4. 逻辑运算符:
a)!优先级别比较高, !>&&>|| 。 b)&&和||运算时注意短路原则。(常考!)
5. 赋值运算符:
a)复合赋值运算符的使用。如a=12,则a+=a-=a*=a;运算后a的值
6. 条件运算符:
a)结合方向从右向左。
7. 逗号运算符:优先级别最低;也叫顺序执行运算符,表达式的数值逗号最右边的那个
表达式的数值。(2,3,4)的表达式的数值就是4
表达式
1. 能将数学表达式写成c表达式
2. 计算表达式的值,注意优先级别和结合方向。
二、练习题
(一)练习题之数据类型
一、选择题:
1、以下标识符中,不能作为合法的C用户定义标识符的是 ( ) A)putchar B)double C)_123 D)INT
2、下列字符序列中, 不可用作C 语言标识符的是 ( ) A. b70 B. #ab C. symbol D. a_1
3.以下不能定义为用户标识符的是:( )
A. MAIN B. _HJ C. 208ong D. LINE12 4. 以下是正确的字符常量是:( )。
A. \ B. '\\\\' C. 'W1' D. \
5. 以下各项是错误的整型常量的是:( )
A. -0xcdf B. 018 C. 0xe D. 011
6、下列四组选项中,均不是C语言关键字的选项是 :( ) A) define B) getc C) include D) while
第 5 页 共 86页
IF char scanf go type printf case pow
7、下面四个选项中,均是正确的八进制数或十六进制数的选项是:( ) A) -10 B) 0abc C) 0010 D) 0al2 0x8f -017 -0x11 -0xl23
-011 0xc 0xf1 -0x8
8、下面四个选项中,均是正确的数值常量或字符常量的选项是: ( ) A) 0.0 B) \C) '3' D) +001 0f 3.9E-2.5 011 0xabcd 8.9e lel0xFFOO 2e2 '&'
'\\' '' 0a 50.
9、下面不正确的字符串常量是:( )。 A) 'abc' B) \ D) \
10.设int类型的数据长度为2字节,则该类型数据的取值范围是: ( )
A. 0至65536 B. 0至65535 C. -32767至32768 D. -32768至32767
11、在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
12.若有以下程序段(n所赋的是八进制数) int m=32767,n=0327; printf(\执行后输出结果是:( )
A) 32767,327 B) 32767,0327 C) 32767,777 D) 32767,0777
13.设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为:( )
A. int B. float C. double D. 不确定
14. 在C语言中,char型数据在内存中的存储形式是:( )
A. 补码 B. 反码 C. 源码 D. ASCII码
15. 字符串\在内存中占据的字节个数为 : ( )
A. 0 B. 1 C. 2 D. 3
16.下列为字符常量的是:( )
第 6 页 共 86页
A.“a” B. ?ab? C. ?\\n? D.?\\084?
17.在C语言中,下面字符串能用作变量名的是:( ) A. a+b B. auto C. 2-and D. a2
18.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句
c2 = 'A' + '6' - '3';后c2中的值为( )
A) D B) 68 C) 不确定的值 D) C
19、在C语言中合法的字符型常量是。 ( ) A、“A” B、?\\t? C 、65 D、A
20、以下选项中,C中正确的整型常量形式是。 ( ) A、0x16 B、-202.18 C、1,000 D、0458
二、填空题:
1. 在C语言中的实型变量分为两种类型,它们是_ __ 和 ___ ___。
2.将下列字符串表示成C语言的字符串常量
(1)C:\\TC\\LIB_____________
(2)He said:\’m a student.\_________
(3)85% student passed.____________________________
3.在C语言中,标识符中英文字母的大小写________(是/不是)等价的。换句话说,sum、Sum、SUM是3个_______(相同/不同)的标识符。 4.已知char w; int x; float y; double z;
则表达式:w * x + z - y所求得的数据类型为 。 5.变量名由字母、数字和下划线组成,并且必须是______打头。
6. C语言的数据类型分为基本类型、构造类型、指针类型和空类型 。(正确/错误)。 7.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,
则表达式ch = 'a' + '8' - '3'的值为 。
三、看程序写结果
1.如果对以下程序进行编译和运行,其结果为________。 main()
{int x,y; x=555;y=x+2; y=x+2;
printf(“x=%d”,x,y);}
2.执行以下程序,写出程序运行结果________。 main() {
int c1,c2; c1=97;
第 7 页 共 86页
c2=98;
printf(\ printf(\ }
3.执行以下程序,写出程序运行结果________。 main()
{ char c1, c2;
c1='A' ; c2='a' ; c1=c1+2 ; c2=c2+2 ;
printf(\ }
(二)练习题之 运算符和表达式
一、选择题:
1、以下运算符中,优先级最高的运算符是( ) A. = B. != C. *(乘号) D. ()
2、若有以下定义,则能使值为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)
3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是 ( ) A. 6 B. 7 C. 8 D. 9
4、有以下程序运行后的输出结果是: ( ) main()
{ char a='A',b; print(\ printf(\ }
A. B,B B. B,C C. A,B D. A,C 5、有以下程序运行后的输出结果是 :( ) main()
{ char a='a';
printf (\ printf(\ }
A)b,b B)b,c C)a,b D)a,c
6、设a=6,b=4,则表达式b*=a+3的值为 : ( ) A)3 B)18 C)27 D)36
第 8 页 共 86页
7、有如下程序段,其输出结果是: ( )
int a=3;
float b=15.6,f=1.5;
printf(“%d”,a+(int)b/2+(int)f%3); A)10 B)11 C)12 D)13
8、以下程序的输出结果是: ( ) main( ) {int a=3 ;
printf ( \
A. 4 3 B. 4 4 C. 5 3 D. 5 4 9、以下程序的输出结果是( )。
main( ) {
int a=10;
printf ( \ }
(A)11 10 (B)11 11 (C)12 20 (D)12 11
10、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为( )。
(A)1.4 (B)1 (C)2.0 (D)2
11、若x,i,j和k都是int型变量, 则执行下面表达式x = (i = 4, j = 16, k = 32)后x的值为( )
A) 4 B) 16 C) 32 D) 52
12、若有代数式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
13、以下不正确的叙述是:( )
A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
14、已知各变量的类型说明如下: ( ) 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
第 9 页 共 86页
C) x % (-3) D) y = f1oat(i)
15、若有定义:int a = 7; float x = 2.5, y = 4.7; 则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是:( )
A) 2.500000 B) 2.7500OO C) 3.500000 D) 0.000000。
16、表达式b*=(b=3)+(a=10)的值为: ( ) (A)3 (B)19 (C)27 (D)39
17、假设所有变量均为整型,则表达式(a = 2, b = 5, b ++, a + b)的值是: ( A) 7 B) 8 C) 6 D) 2 18、若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k); printf(\ }
执行后的输出结果是: ( ) (A) 8,6 (B) 8,3 (C) 6,4 (D) 7,4
)
19.在C语言中运算对象必须是整型的运算符是:( ) A. % B. / C. = = D. <=
20.若有以下定义:int x=10,y=3,z; 则语句:printf(“%d\\n”,z=(x%y, x/y));的输出结果为 ( ) A. 1 B. 0 C. 2 D. 3
21.下列哪一个表达式的值是整数类型( )。 A. 15/2 B. 15/2+2.0 C. 25/5.0 D. 0.5*10
22.若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A. 3.500000 B. 3.000000 C. 2.000000 D. 3
23、以下运算符中优先级最低的是 ( )
A) && B) & C) || D) |
24、设以下变量均为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)
25.设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2
则下面语句中错误的是: ( ) (A) a++; (B) b++ (C) c++; (D) d++;
26、若有int x=12,n=5;则x%=(n%=2);后x的值是。 ( )
第 10 页 共 86页
A、1 B、0 C、-1 D、2
27、设有定义int k=0;则以下四个表达式中与其它三个的值不同的是。 ( ) A、k++ B、k+=1 C、++k D、k+1
二、填空题:
1、若有以下定义int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是 。 2、若a为int型变量,则下面表达式的值为 。 (a = 4 * 5, a * 2), a + 6
3、若a是int型变量,则执行表达式\后,a的值为 。 4、s=3,s++,s; 这个语句执行完后,s的值为 。
5、C语言中的标识符只能由三种字符组成,他们是字母、数字和 。 6、已知 i=5;写出语句 a= -- i, 执行后整型变量 a 的值是 。 7、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 8、int x=2;x*=y=z=4; 则x的值为 。 9、表达式 i++ 相当于表达式i= 。
10、若s是unsigned int型变量,则下面表达式的值是________。
s%2+(s+1)%2 11、程序段执行后c3的值是_______。
int c1=1,c2=2; float c3; c3=1/c2*c1;
12、已知’a’的ASCII码为97,printf(“\\\n”,’e’)的输出是______;
printf(“]\\n”,’e’)的输出是___________。 13、表达式:5%2=__________,2/3=__________。
14、在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。
15、设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是 。
16、算术表达式 a=b+3 中, a、b 称为_________, 3 称为________,=、+称为_________。
17、若有定义:int b = 7;float a = 2.5,c = 4.7;
则表达式a + (int)(b / 3 * (int)(a + c) / 2) % 4的值为 。 18.C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构
第 11 页 共 86页
成复合运算符。例如:x=x+5 用复合运算符可以写成 。 19、表达式1/4+2.75的值是 。
20、若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为 21、若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为 。 22、若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为 。 23、若x和n均是int型变量,且x的初值为12,n的初值为5,
则执行表达式“x%=(n%=2)”后,x的值为 。
24、设 int x=1/4;则x的值为 。
25、若 char w,int x,float y,double z;则表达式w*x+z-y的结果为 类型。 26、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 27、假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是 。 28、int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b的值为 。
29、执行语句\后,变量a、c的值依次为 、 。 30、表达式a = 3, a ++, - -a的值为 。
31、设a、b、c为整型数,且a = 3,b = 5,c = 2,则执行完以下语句:
a *= 16 + (b ++) - (++ c);后a的值是 。
32、以下程序运行后的输出结果是 main( )
{ int a=1,b=4,c=2; a=(a+b)/c;
printf(“%d \\n”,--a); }
运行结果 ;
33、设int a=3,b=5;float x=7.5,y=3.5;则表达式
(float)a+b/2+(int)x%(int)y; 的值是 34、在C语言的表达式中,x=x+5 用复合运算符可以写成 。 35、设a=12,表达式a/=a+a 运算后,a的值是 。 36.若定义:char c=‘\\010’;则变量c中包含的字符个数是 。 37.赋值语句是由 加上一个分号构成。 38.a=12,n=5,表达式a%=(n%=2)值是 。 39.设说明为 int a=10; 执行语句 a*=1+2+3; 后a的值是____________。 40、设int m=1,n=2;则m==--n的结果是 。
41、设x为int型变量,则执行语句x=10;x+=x-=x-x;后x的值为 。
第 12 页 共 86页
42、设所有变量均为整型,则表达式(a=5,b=3,--a,++b,a-b)的值为 。 三、看程序写结果:
1、写出以下程序运行的结果________。 main ( ) {
int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n); }
2、阅读下列程序,写出运行结果 #include
{ int a=1,b=4,c=2; a=(a+b)/c;
printf(“%d \\n”,--a); }
运行结果 ;
3、阅读下列程序,写出运行结果 main() { int n=1;
printf(\; }
运行结果 ;
4、main( )
{ int i=3 ;
printf(\ i++);
} 运行结果 ;
5、执行以下程序,写出程序运行结果 main() {
int a=-017L; printf(\}
三、参考答案
(一)练习题之数据类型 参考答案
第 13 页 共 86页
一、选择题:
1、B 2、B 3、C 4、B 5、B 6、A 7、C 8、D 9、A 10、D 11、A 12、A 13、C 14、D 15、C 16、C 17、D 18、A 19、B 20、A
二、填空题:
1、float double
2、 (1) ”c:\\\\TC\\\\LIB”
(2) ”He said :\\”I\\? am a student” (3)”85%% student passed” 3、不是 ,不同 4、double
5、字母、下划线 6、正确 7、 ‘f’
三、看程序写结果 1、x=555 2、 a b
97 98 3、67 c
(二)练习题之 运算符和表达式 参考答案
一、选择题:
1、D 2、D 3、D 4、A 5、A 6、D 7、B 8、A 9、A 10、B 11、C 12、C 13、D 14、A 15、A 16、D 17、B 18、C 19、A 20、D 21、A 22、B 23、C 24、C 25、D 26、B 27、D
二、填空题:
1、-16 2、 26 3、2 4、4 5、下划线 6、4 7、 75 8、8 9、i+1 10、1
11、0 12、□□□□e □□101 13、1 0
14、由右向左 条件运算符 15、9 16、变量 常量 运算符 17、5.5 18、x+=5 19、2.75 20、-60 21、1 22、12 23、0 24、0 25、double
26、75 27、6 28、4 29、11 6 30、3 31、54 32、1 33、6.0 34、x+=5 35、0
36、1 37、赋值表达式 38、0 39、60 40、 1 41、20 42、0
三、看程序写结果 1、9,11,9,10 2、 1 3、1 0 1 4、4,3 5、-15
第 14 页 共 86页
第四章 顺序程序设计
一、主要内容
输入输出函数
1. printf函数的格式考查:
a)格式:printf(“格式控制串”,输出表)
b)输出表:要输出的数据(可以没有,多个时以“,”分隔)
格式控制串:包含两种信息
? 格式说明: %[修饰符]格式字符 ,用于指定输出格式 ? 普通字符或转义序列:原样输出 c)修饰符m、n、l的功能: 修饰符 功能 m 输出数据域宽,数据长度 a)格式:scanf(“格式控制串”,地址表) b)格式控制字符串中包含的非格式控制字符要原样输入;如: scanf(“sum=%d”,&a); 输入时”sum=”也要输入。 scanf函数中没有精度控制,如:scanf(“%5.2f”,&a) ;是非法的。 3.getchar( )获取一个字符。 a)格式:char c; c=getchar(); 4. putchar()输出一个字符,括号中的参数是一个字符变量或常量 a)格式:putchar(‘a’); 二、练习题 一、选择题: 1.设有语句scanf(“%d,%d”,&m,&n);要使m、n的值依次为2,3,正确的输入是 ( ) A. 2?3↙ B. 2,3↙ C. 2;3 D. 2↙3↙ 2.______是C语言的标准函数名。 ( ) A. scanf B. case C. while D. int 3、若有int i=-19,j=i%4;printf(“%d”,j);结果为。 ( ) A、-3 B、1 C、3 D、-1 4、int x,y; 第 15 页 共 86页 scanf(“%d,%d”,&x,&y) ;若要使x得11,y得12,则以下输入形式中错误的是。 ( ) A、11,12↙ B、 11空格12↙ C、11,空格↙12↙ D、11,↙12↙ 二、填空题: 1、在TC中,printf()函数输出表列的求值顺序是 。 2、在scanf函数中, 表示变量的地址。 3、以下程序的运行结果是 。 main() { printf(\ 4、若想通过以下输入语句使 a=5.0,b=4,c=3,则输入数据的形式应该是 。 int b,c; float a; scanf(\,%d,c=%d\,&a,&b,&c); 5、若变量x、y已定义为int类型且X的值为99,y的值为9, 请将输出语句printf(_____,x/y);补充完整,使其输出的计算结果形式为:x/y=11。 6、表达式pow(2.8,sqrt(double(x)))值的数据类型为 。 7、 输入一个华氏温度,要求输出摄氏温度: void main( ) { float c,f; printf(\请输入一个华氏温度:\ ; ; /* 摄氏温度c= (f - 32) */ printf(\摄氏温度为%5.2f\\n\} 8、int x=102,y=012;printf(“-,-\\n”,x,y); 则执行结果是 。 三、参考答案 一、选择题: 1、B 2、A 3、A 4、B 二、填空题: 1、由右向左 2、& 3、computer,□□com 4、5,4,c=3 5、“x/y=%d” 6、double 7、scanf(“%f”,&f); c=5.0/9*(f-32); 8、102,10 第 16 页 共 86页 第五章 选择结构程序设计 一、主要内容 三种程序结构:顺序结构、选择结构、循环结构 if语句(条件选择语句) a)if语句的三种形式: b)if后面的表达式类型任意的;若执行语句是多条,必须为复合语句,即 写在一对花括号内。 c)if结构可以嵌套,注意缺省{ }时,else总是和它上面离它最近的未配对 的if配对 switch语句 a)格式中,E1,E2,…En是常量表达式,且值必须互不相同 b)注意执行时语句中有break和无break时,执行流程的区别。(本处常考) c)default可以不写。 二、练习题 一、选择题: 1、经过以下语句定义后, 表达式z+=x>y?++x:++y 的值为:( ) int x=1,y=2,z=3; A. 2 B. 3 C. 6 D. 5 2、能正确表示逻辑关系:\或a≤ 0\C 语言表达式是 : ( ) A. a>=10 or a<=0 B.a>=0|a<=10 C. a>=10&&a<=0 D. a>=10||a<=0 3.已知int a=5,b=7,c=3;则逻辑表达式a A. 1 B. 0 C. 3 D. 4 4、下列程序的输出结果是 :( ) main() { int x, y, z ; x=y=z=1 ; ++x&&++y||++z ; printf(\ } A.1 1 1 B. 2 2 2 C. 2 2 1 D. 2 1 1 5、在C语言中逻辑值“真”是用 表示的。 ( ) A. 预定义为真值的宏 B. 非零值 C. 正数 D. 非零整数 6、 设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句:( ) if (x=y) printf(\A. 语法错 B. 不能判断x和y是否相等 C. 编译出错 D. 能判断x和y是否相等 7、以下程序的输出结果是:( )。 main() { int a=5,b=4,c=6,d; printf(\ 第 17 页 共 86页 } A. 5 B. 4 C. 6 D. 不确定 8、若希望当A 的值为奇数时, 表达式的值为\真\的值为偶数时, 表达式的值为\假\则以下不能满足要求的表达式是 :( ) A. A%2==1 B. !(A%2==0) C. !(A%2) D. A%2 9、若希望当A 的值为奇数时, 表达式的值为\真\的值为偶数时, 表达式的值为\假\则以下不能满足要求的表达式是 :( ) A. A%2==1 B. !(A%2==0) C. !(A%2) D. A%2 10、执行以下语句后,a,b的值分别为:( )。 int a ,b ,c ; a=b=c=1 ; ++a||++b&&++c; (A)2 ,2 (B)1 ,1 (C)2 ,1 (D)1 ,2 11、 判断char型变量c l是否为小写字母的正确表达式为: ( ) A. ’a’<=c1<=’z’ B. (c1>=a)&&(c1<=z) C. (‘a’>=c1) (‘z’<=c1) D. (c1>=’a’)&&(c1<=’z’) 12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值分别是:( )。 if(x>y) z=x ; x=y ; y=z ; (A)x=10,y=20,z=30 (B)x=20,y=30,z=10 (C)x=20,y=30,z=30 (D)x=20,y=30,z=20 13、以下选项中非法的表达式是: ( ) (A) 0<=x<100 (B) i=j==0 (C) (char)(65+3) (D) x+1=x+1 14、阅读以下程序: main() { int x; scanf(\ if(x--<5) printf(\else printf(\} 程序运行后,如果从键盘上输人5,则输出结果是:( ) (A)3 (B) 4 (C) 5 (D) 6 15. C语言对于嵌套if语句规定else总是与( )匹配。 A)与最外层的if B.)与之前最近的if C)与之前最近的不带else的if D)与最近的{ }之前的if 16.以下有关switch语句的正确说法是________。 ( A)break语句是语句中必须的一部分 B)在switch 语句中可以根据需要使用或不使用break语句 C)break语句在switch 语句中不可以使用 D)在switch 语句中的每一个case都要用break语句 17.设有: int a=2,b=3,c=7,d=8,m=3,n=3; 执行 (m=a>b)&&(n=c>d) 后的_________。 A) 0 B) 1 C ) 2 D) 3 ) 第 18 页 共 86页 ) n 值为( 18.可判断非0变量 a为正,b为负的正确表达式是_________。 ) A) a*b <0 B) (a>0||b >0)&&a*b <0 C) (a<0||b<0)&&a*b <0 D) a>0&&a*b<0 ( 19.假定 int a=3, b=2, c=1, 表达式: (c==a>c)+(a/b) 的值是_________。 ) A) 1.75 B) 2 C) 1.5 D) 2.5 20.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的 ( 表达式是__________。 ( ) A) a&&b B) a<=b C) a||b+c&&b-c D) !((a 21、如果a=4,b=3,c=2,d=1,则条件表达式a<b?a:c<d?c:d的值是。 ( ) A、1 B、2 C、3 D、4 22、设有定义int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式(m=ad)后,n的值为。 ( ) A、1 B、2 C、3 D、0 二、填空题: 1、设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是 。 2、 当a=5,b=4,c=2时,表达式 a>b!= c的值是 _______。 3、 为表示关系x ≥ y ≥z,正确的C语言逻辑、关系表达式为 。 4、有int a=3,b=4,c=5,x,y;,则以下表达式的值为 !(x=a)&&(y=b)&&c 5、在C语言中,表示逻辑\真\值用 . 6、当a=3,b=2,c=1时,表达式f=a>b>c的值是 . 7、与if(x==0) 等价的表达式写法写法是 。 8、若定义:int a=5,b=2,c=1; 则表达式 a-b>c||b==c 的值是 ; 表达式 a-b>c&&b==c 的值是 。 9、 “: ?”条件运算符是C语言中唯一的三目运算符。由其连接的表达式为条件表达式, 其格式为: <表达式1>?<表达式2>:<表达式3> 。执行过程:首先计算表达式1的值,如果表达式1的值是“真”(非0),则整个表达式的值为 的值;如果表达式1的值是“假”(0),则整个表达式的值为 的值。 10.C语言提供的三种逻辑运算符是______、______和_______。 11.若已知a=10,b=20,则表达式!a 12.若a,b变量的值任意,表达式(a==b)&&(a>b)的值是_________。 13.设x,y,z均为int型变量,请写出: (1)x、y中至少有一个小于z的表达式_____________; (2)x、y都大于z的表达式____________; 14、能正确表示a>=10或a<=0的关系表达式为 。 15、以下程序的功能是:输出a、b、c三个变量中的最小值,请填空。 #include 第 19 页 共 86页 main() { int a,b,c,min; scanf(\ if( ) min=a; else min=b; if( ) min=c; printf(\ 三、看程序写结果: 1、main() { int x, y, z ; x=y=z=1 ; z=++x&&++y||++z ; 运行结果: printf(\ 2、main( ) { int m=5; if(m++>5)printf(\,m); 运行结果: else printf(\,m--); } 3、若从键盘输入58,则以下程序输出的结果是 。 main() { int a; scanf(“%d”,&a); if(a>50) printf(“%d”,a); if(a>40) printf(“%d”,a); if(a>30) printf(“%d”,a); } 4、 以下程序运行后的输出结果是 。 main() { int p,a=5; if(p=a!=0) printf(\else printf(\} 5、 源程序如下: #include { int a=2,b=7,c=5; switch(a>0) 第 20 页 共 86页 {case 1: switch(b<0) {case 1: printf(\ case 2: printf(\ } case 0: switch(c==5) {case 0: printf(\case 1: printf(\case 2: printf(\} default: printf(\} printf(\ 运行结果: 6、main( ) { int x=1, y=2; switch(x) {case 0 : case 1 : switch(y) 运行结果: { case 1: case 2: y+=2; } case 2 : x++; } printf(“ %d, %d\\n” , x, y) ; } 7.以下程序的输出结果是 。 main() { int x=1,y=1,a=0,b=0; switch(x) { case 1:switch(y) {case 0: a++; case 1: b++; case 2: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf(“a=%d,b=%d\\n”,a,b); } 8. 以下程序段的运行结果是_________。 int a,b,c; a=50;b=100;c=30; if(a>b) { a=b;b=c;c=a;} 第 21 页 共 86页 printf(\ 9.下面程序的输出结果是 void main() { int i=10; switch(i) { case 9:i+=1; case 10:i+=1; case 11:i+=1; case 12:i+=1; } printf(“i=%d\\n”,i); } ( ) 四、编程题: 1、从键盘输入3个整数,按照从大到小的顺序输出。 2、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。 2 3、求一元二次方程ax+bx+c=0的根,要求考虑所有根的情况。 4、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。 5.输入一个字符,判断其是否是大写字母,如果是,则转换成为小写字母,然后输出字符,如果不是小写字母,则直接输出字符。 6、有分段函数 x, x<1 y= 2x -1,1<=x<10 3x –11, x>=10 编写一程序,输入x,输出相应的y值。 7、分别用两种判断方法,写出判断一个年份为闰年的程序。 三、参考答案 一、选择题: 1~5 :CDCCB 6~10:BCCCC 11~15:DCDBC 16~20:BDDBD 21、A 22、B 二、填空题: 1、1 2、1 3、(x>=y)&&( y>=z ) 4、0 5、非零值 6、0 7、if(!x) 8、1 0 9、表达式2 ,表达式3 10、 ! ,&& ,|| 11、1 12、0 13、(1)x 第 22 页 共 86页 (2) x>z && y>z 14、a>=10||a<=0 15、(1)a 1、221 2、6 3、585858 4、1 5、#& 6、2,4 7、a=1,b=3 8、a=100,b=30,c=100 9、i=13 四、编程题: 1、从键盘输入3个整数,按照从大到小的顺序输出。 main() { int x,y,z,t; scanf(\if (x>y) {t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;} /*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;} /*交换z,y的值*/ printf(\} 2、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。 #include { double x,y; scanf(\if (x>0) y=sqrt(x); else if(x<0) y=(x+1)/(x*x+2); else y=0; printf(\} 2 3、求一元二次方程ax+bx+c=0的根,要求考虑所有根的情况。 教材P108例5.6 4、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。 第 23 页 共 86页 6、一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过了多少米?第10次反弹多高? 7、 编写程序,把100到200之间的能被3整除的数输出。 8、试编写程序输出100~300间的所能能同时被3和5整除的数。 9、 请编写程序解决如下数学计算问题: 一个整数被5除余3,被7除余5,被9除余7,这个数最小是几? 10、设计程序求自然数1~100(包含1和100)中所有素数的和。 11、编写程序,使用下面的公式求出e的近似值。 e≈1+ 11111???????? (精确要求?10?6) n!1!2!3!n! 12、求出所有的“水仙花数”并输出。提示:所谓水仙花数,是指一个3位数,其各位数字 333 。 立方和等于该数字本身,例如153是一个水仙花数,因为153=1+5+3。 三、参考答案 一、选择题: 1~5:BBCAC 6~10:DBDCA 11~15:ACACB 二、填空题: 1. continue break 2. 36 3. break 4.3 5. do…while 三、看程序写结果: 1. ***** *** ** * 2. s=0 3. value=2004 4. 0,9 1,8 2,7 3,6 4,5 5. * *** ***** ******* ********* *********** ************* *************** ***************** ******************* 6. value=2518 第 34 页 共 86页 7. 5 8. 3 10 14 9. 0 1 2 10. 52 11. 8467 四、完成程序: 1. (1) #include 3. (1)while(ch!= '\\n') (2)if(ch<'9'&&ch>'0') 4. (1) count=0 (2)while(j!=0) (3)s=s+j 5. (1) s=s*i 6. (1)x=0 (2)x=x+j 7. (1) i+=2 (2)-t 8. (1) i (2)flag=-flag 9. (1) a*10+2 (2) s+a 10.(1) a*10+i (2) s+a 11.(1) i%3||i%5 (2) printf(“%d ”,i) 五、编程题: 1、编程实现:输入两个正整数m和n,求其最大公约数和最小公倍数。 main() { int m,n,temp,s; printf(\ scanf(\ if(m while(n!=0)/*利用辗除法,直到n为0为止*/ { temp=m%n; m=n; n=temp; } printf(\printf(\} 2、求1+2+4+6+??+100之和。分别用三种循环语句实现(while,do-while,for)。 (1) main( ) { int i=2,sum=1; while (i<=100) { sum=sum+i; i=i+2; } printf(“sum=%d”, sum); 第 35 页 共 86页 } (2) main( ) { int i=2,sum=1; do { sum=sum+i; i=i+2;}while(i<=100); printf(“sum=%d”, sum); } (3) main( ) { int i,sum; for(i=2,sum=1;i<=100;i+=2) sum=sum+i; printf(“sum=%d”, sum); } 3、编写程序求2到100间的全部素数,要求每行输出5个数。 #include { int m,k,i,n=0; for(m=2;m<=100;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) { printf(“]”,m); n=n+1; } if(n%5==0) printf(“\\n”); } } 4、编程输出九九乘法表。 #include \main() { int i,j,result; printf(\ for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf(\ \表示左对齐,占3位*/ } printf(\每一行后换行*/ } } 5、编程求Fibonacci数列前20个数。这个数列有如下特点:第1、2两个数为1、1。 从第3个数开始,该数是其前面两个数之和。 main() {long int f1=1,f2=1,f; 第 36 页 共 86页 int i; printf(“]] ”,f1,f2); for(i=3;i<=20;i++) { f=f1+f2; printf(“]”,f); f1=f2; f2=f; } } 6、一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过了多少米?第10次反弹多高? main() { float sn=100.0,hn=sn/2; int n; for(n=2;n<=10;n++) { sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ } printf(\printf(\} 7、 编写程序,把100到200之间的能被3整除的数输出。 main() {int i; for(i=100;i<=200;i++) if(i%3= =0) printf(“]”,i); } 8、试编写程序输出100~300间的所能能同时被3和5整除的数。 main() {int i; for(i=100;i<=300;i++) if((i%3= =0)&&(i%5= =0) printf(“]”,i); } 9、 请编写程序解决如下数学计算问题: 一个整数被5除余3,被7除余5,被9除余7,这个数最小是几? main() {int i=8; while(1) {if((i%5= =3) if(i%7= =5) if(i%9= =7) {printf(“]”,i); break;} i=i+5; } 第 37 页 共 86页 } 10、设计程序求自然数1~100(包含1和100)中所有素数的和。 #include { int m,k,i,s=0; for(m=2;m<=100;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) s=s+m; } printf(“sum=%d”,s); } 11、编写程序,使用下面的公式求出e的近似值。 e≈1+ 11111???????? (精确要求?10?6) n!1!2!3!n!main() {int i=1 float sum=1,t=1; while(t<1e6) {t=t*i; sum=sum+1.0/t; i=i+1; } printf(“%.2f”,sum); } 12. 求出所有的“水仙花数”并输出 main() { int i,j,k,n; for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10;/*分解出十位*/ k=n;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf(\ } } 第 38 页 共 86页
正在阅读:
C语言程序复习题及参考答案05-31
斯维尔算量软件使用技巧01-26
家具卖场 终端爆破之天龙八步04-21
巴彦土地整理可研(初稿) - 图文06-11
大学生实习结束工作总结05-04
第七章 电化学04-15
伤感短语大全,2016伤感短语签名02-10
驾驶证扣分(机动车驾驶常识普及)08-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习题
- 语言程序
- 答案
- 参考
- 《电力系统分析》习题集及答案
- 布袋除尘操作规程
- 96分基于S7-200PLC的地铁排水控制系统毕业设计优秀论文
- 病理学笔记大全
- 考化学一轮复习第七章化学反应速率与化学平衡热点专题讲座7解答
- 湖南省咨询工程师考试《政策规划》重要知识点每日一讲(12月12日
- 高中物理必修二第七章,《机械能守恒定律》,全章教学设计,(教案)
- 第五节 肺痈
- ANSYS命令汇总
- 网络思科1-6章考试题整合
- 游戏规则的公平性 教学设计
- 年产1万吨高纯四氧化三锰工程项目可行性研究报告(150页
- 拟表彰安全生产监管监察先进个人名单
- (函数专题(四))
- 智慧城市思考与实践--之智慧政府
- C语言程序设计实验指导书
- 专题12:几何三大变换问题之旋转
- 学生学习共同体建设研究开题报告
- 测试题一 平法识1
- 29 - 世界自然遗产、自然与文化双遗产申报和保护管理办法(试行