非常好的C语言章节习题集带答案 下载本文

内容发布更新时间 : 2024/12/22 18:18:01星期一 下面是文章的全部内容请认真阅读。

A.A B B.A B C.a b D.a b 65 66 97 98 65 66 97 98

36.如果将一个函数的返回值类型说明为void,则表示_________。

A.该函数可以返回任意类型的值 B.该函数不能返回任何值

C.该函数可以返回基本类型的值 D.该函数是main函数,是程序运行的起点 37.对于int型常量,不正确的是__________。

A.029 B.-25 C.0x2A D.-0X28 38.下列整型常量,错误的是__________。

A.025 B.285L C.-285u D.285lu 39.以下有关整型变量的定义中,错误的是___________。

A.short int x; B.long x; C.unsigned x; D.short x; 40.下列实型常量,错误的是__________。

A.3.2f B.-2.2E-2F C.-12.0 D.e3

41.在VC++6.0环境下,sizeof(int)和sizeof(float)的值分别为__________。

A.2,2 B.2,4 C.4,4 D.4,8 42.对于浮点型数据,下列说法中不正确的是______。

A.浮点数在存储时存在舍入误差

B.程序设计时,不能直接对两个浮点型数据进行相等比较

C.将一个很小的浮点数和一个很大的浮点数进行相加,结果可能不正确 D.C语言中的浮点型变量有float和double两种

43.若ch为字符型变量,则不能使ch表示字符'B'的语句是__________。

A.ch=B; B.ch=66; C.ch='\\102'; D.ch='\\x42'; 44.以下程序运行后的输出结果是_________。

#include \int f(int x,int y) { return 2*x+y; } void main()

{ int a=3,b=2,t=0; t= f(b,a);

printf(\

A. 0 B. 5 C. 7 D. 8 45.以下程序运行后的输出结果是_________。

#include \void main() { char ch='a'; int x=5;

float s=2.5F;

printf(\

6

A.1,2,4 B.1,4,4 C.1,4,8 D.a,5,2.5 (三)、编程题

1.已知长方形的长和宽分别为x和y,计算其周长和面积。

2.编写一个程序,其功能为:从键盘上输入两个整型数据,分别存放在整型变量a和b中,然后输出表达式a/b和a%b的值。

3.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。

4.编写一个程序,其功能为:从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值。

提示:大写字母A~Z的ASCII码值为65~90,小写字母a~z的ASCII码值为97~122。可见,对应的大小写字母的ASCII码值相差32,所以大写字母转换成小写字母就是将其ASCII值加上32,小写字母转换成大写字母就是将其ASCII值减去32。

5.输入一个华氏温度F,根据公式c=5(F-32)/9计算输出对应的摄氏温度。要求:输入要有提示,输出要有说明。

四、习题答案

(一)、是非题

1.A 2.B 3.B 4.A 5.B 6.A 7.A 8.B 9.A 10.B 11.A 12.B 13.B 14.A 15.B 16.A 17.A 18.B 19.B 20.A 21.B 22.A 23.B 24.A 25.A (二)、选择题

1.C 2.C 3.B 4.D 5.D 6.A 7.C 8.A 9.C 10.D 11.C 12.C 13.C 14.B 15.B 16.D 17.D 18.A 19.B 20.A 21.A 22.C 23.A 24.A 25.A 26.C 27.C 28.B 29.D 30.D 31.A 32.D 33.A 34.B 35.A 36.B 37.A 38.C 39.C 40.D 41.C 42.D 43.A 44.C 45.B

7

第2章 顺序结构

二、习题

(一)是非题

1.表达式1/4+2.75的值是3。

A.对 B.错

2.C语言中浮点型变量可以进行自增或自减操作。

A.对 B.错

3.如果整型变量a、b、c已经正确定义,那么c=b=a=012是一个正确的表达式。

A.对 B.错

4.算术运算符和赋值运算符的结合方向均由左自右。

A.对 B.错

5.在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。

A.对 B.错

6.语句char c=\定义了字符型变量c,并将其初始化为A。

A.对 B.错

7.运算符“%”的操作数不允许为单精度和双精度浮点型,允许为字符型和整型。

A.对 B.错 8. 运算符++的优先级高于运算符+。

A.对 B.错

9.逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。

A.对 B.错 10.“=”运算符用于判断两个数是否相等。

A.对 B.错

11.C语言本身不提供输入输出语句,但可以通过输入输出函数来实现数据的输入输出。

A.对 B.错

12.在使用函数scanf输入数据时必须与函数参数指定的输入格式一致。

A.对 B.错

13.getchar()函数用于输入单个字符,putchar()函数用于输出单个字符。

A.对 B.错 14.123、029、-0xEFF均是合法的整型常量。

A.对 B.错 15.假定已有定义char c;,sizeof c中的sizeof是容量运算符,而sizeof(char)中由于使用了括号形式,称为容量函数。 A.对 B.错

16.假定已有整型变量x的定义,则(x+1)++是一个合法的表达式。

8

A.对 B.错

17.假定已有整型变量初始化语句int x=2;,那么表达式x++,x *=2+1的值为9。

A.对 B.错

18.假定已有变量定义语句:int m=3,n=2;,那么(float)(m/n)表达式的值是1.5。

A.对 B.错 19.C语言中,表达式1/2*2的值为0。

A.对 B.错

20.若scanf函数的格式说明中有一个空格,在输入时也一定要在对应位置输入一个空格。

A.对 B.错 (二)选择题

1.数字字符0的ASCII值为48,则以下程序运行后的输出结果是______。

#include main()

{ char a='1',b='2'; printf(\A.3,2 B.50,2 C.2,2 D.2,50 2.以下程序运行后的输出结果是______。 #include main()

{ int m=12,n=34;

printf(\ printf(\

A.12353514 B.12353513 C.12343514 D.12343513

3.若整型变量a、b、c、d中的值依次为1、2、3、4。则表达式a+b/d*c的值是______。 A.1 B.2.5 C.0.25 D.2 4.以下程序运行后的输出结果是______。 #include main()

{ int a,b,c;

a=10; b=20; c= a%b+a/b;

printf(\A.10200 B.10 20 10 C.102011 D.10 20 1

5.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。 #include main()

{ int r; float s; scanf(\s=*p*r*r;

printf(\

A.注释语句书写位置错误 B.存放圆半径的变量r不应该定义为整型

9

C.s=*p*r*r;语句中使用了非法变量 D.输出语句中格式描述符非法 6.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是______。 A.k=k+=k B.-k++ C.k%int(f) D.f=k%m

7.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。 A.a%b%c B.a/b/c C.a=b=c D.a,b,c

8.有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3 9.以下程序运行后的输出结果是______。

#include main()

{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);

printf(\A.2 20 B.2 20.000000 C.100 10 D.50 10.000000 10.已知字母A的ASCII码为65,则以下程序运行后的输出结果是 ______。

#include main() { char a,b;

a='A'+'5'-'3'; b=a+'6'-'2'; printf(\A.6771 B.67G C.CG D.C71 11.表达式3.6-5/2+1.2+5%2的值是______。

A.3.3 B.3.8 C.4.3 D.4.8

12.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。 A.++x,y=x-- B.x+1=y C.x=x+10=x+y D.double(x)/10 13.以下程序运行后的输出结果是________。 #include main()

{ int x,y,z; x=y=1;

z=x++,y++,++y;

printf(\A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 14.以下选项中,值为1的表达式是________。

A.1-'0' B.1-'\\0' C. '1'-0 D. '\\0'-'0' 15.设有定义:int k=0;,以下选项的________与其他三个表达式的值不相同。 A.k++ B.k+=1 C.++k D.k+1 16.执行以下程序后的输出结果是________。

#include

10