C语言理论练习题(1)及参考答案 下载本文

内容发布更新时间 : 2024/5/19 6:13:36星期一 下面是文章的全部内容请认真阅读。

单选题

(1) 下列 C语言表达式能正确表达数学计算式1÷2?× 2x y

A、 1.0/sqrt(2*3.14)*2*pow(x,y) B、1.0/sqrt(2?)*2*x**y C、 1.0/sqrt(6.28)*2x^y D、 1/6.28^0.5*2*pow(x,y) (2) 执行以下程序段后, 输出结果为__(14)_.

main( )

{

long a; a=(72*456-60)/2; printf(“%ld\\n”,a);

}

A、 -16832 B、 16832 C、 16382 D、-16382

(3) 可以用signed和unsigned 修饰的类型标识符是 。

①int ②float ③double ④char

A.①④ B.②③ C.①② D.①②③④

(4) 以下常量中, (4) 是符合语法要求的。

①0258 ②’\\0xaa’ ③1E-9 ④3.5f ⑤(1/2)e-2 ⑥3L ⑦0xFF

A. ①②③ B. ③⑤ C. ②③④⑦ D.③④⑥⑦

(5) 以下常量表示中错误的是 。

A.e2 B.-2L C.2.5f D. 0xabcd (6) 以下符号中不能用作标识符的是 。

A. _256 B. scanf C. void D. Struct (7) 以下关于变量的叙述中错误的是 。

A. 所有变量在使用前都必须声明

B. 变量声明可放在函数体中任何位置

C. 全局变量和局部变量可以同名

D. 声明变量时必须给出变量的数据类型但可以缺省存储类型

(8) 若已声明: int a=7 ;char b=1;float x=2.0 , y=4.7 ;

则下列表达式的值不为2的是: 。

A. x+a%3*(int)(x+y)%2/4 B. sizeof ‘A’ C. b+1

D. sizeof b

(9) 以下关于main函数的叙述中,错误的是 。

A. main函数是自定义函数

B. main函数可以有形式参数也可以没有形式参数 C. main函数定义必须出现在一个源文件的开头 D. 在一个源程序中只能有一个main函数 (10) 已知有声明:

char c=‘1’ ; int x=300 ;

float t=35000 ;

double d=3.1234567e10 ;

则以下表达式求值时除 外,其结果都可能是不准确的。 A、x=t/c B、t=d/x; C、t=d/1e5f D、t=x+c

(11) 设有定义 float y=3.45678; int x; 则以下表达式中能实现将y中数值保

留到小数点后2位,第3位四舍五入的表达式是 。

A、 y=(y*100+0.5)/100.0 B、 x=y*100+0.5, y=x/100.0 C、 y=y*100+0.5/100.0 D、 y=(y/100+0.5)*100.0

(12) 以下局部变量声明中,正确的是 。

A、 int 2x=1,2y=0;

B、 auto float x=2,y=sqrt(x); C、 char for=1;

D、 double f’=1.0;

(13) 以下常量中, 是符合语法要求的。

① 0218 ② ’\\0x1a’ ③ E-9 ④ 3.5f ⑤ (1/2)e-2 ⑥ 3L ⑦ 0xFF

A、①②③ B、 ③⑤ C、 ②④⑦ D、④⑥⑦

(14) C语言中要求两个操作数都必须是整型数的运算符是 。 A、= = B、 + C、 / D、 %

(15) 在内存中需 个字节存储下列字符串:

“\\t\\”Name\\\\Address\\n”

A、 19 B、 15 C、16 D、 17

(16) 若已声明 unsigned a = 1024; ,则表达式 a = -a 的值为 64512 (17) 若有定义:

int b=17; float a=4.5, c=6.5;

则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为 7.5 。 (18) 下列哪些是C语言中的错误表达式 _ ①⑤⑥⑦。

① ++a+++b ② “ABC” “abc” ③ -a++ ④ -++a

⑤ ++-a ⑥ int(x) ⑦ x>y=2 (19)下列叙述中正确的是 。

A. main函数必须出现在其他函数之前 B. main函数中至少必须有一条语句

C. 程序总是从main函数的第一条语句开始执行

D. 程序总是在执行完main函数的最后一条语句后结束

(20). 以下常量表示中正确的是 。 A. \\xff

B. 5L

C. aEb D. 3.14u

(21) 在以下各组标识符中,均可以用作变量名的一组是 。 A. a01, Int

B. table_1, a*.1

C. 0_a, W12 D. for, point

(22) 若有声明“long a,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是 。

A. scanf(\ B. scanf(\

C. scanf(\ D. scanf(\

(23) 若有程序段“char c=256; int a=c;”,则执行该程序段后a的值是 。 A. 256 B. 65536

C. 0 D. -1

(24) 已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为 。 A. auto B. register C. static D. extern (25) 以下叙述中正确的是 。

A.在编译时可以发现注释中的拼写错误 B.C语言程序的每一行只能写一条语句 C.main( ){}必须位于程序的开始

D.C语言程序可以由一个或多个函数组成 (26) 以下选项中不能用作变量名的是 。

A._float B.switch C.sum D._123 (27) 已知sizeof(int)的值为2,为将10!的值存储到变量f中(10!=3628800),变量f的

类型应声明为

。 A.long int (28) 数学式

a2b B.int C.short int D.unsigned int 在C程序中正确的表示形式为 。

A.sqrt(a)/2*b B.sqrt(a)/2/b C.sqrt(a)/2b D.sqrt a/(2*b)

二、填空题

1.在C语言源程序中,不带任何修饰符的浮点数直接量(例如:3.14)都是按 (1) 类型数据存储的。 double

2.可以改变局部变量的生存期、但不能改变它的作用域的存储类别是 (2) 。static 3.C语言有效的预处理命令总是以 (4) 开头。#

4.若有声明“double x=10,y=5;”,则计算xy的库函数调用形式是 (3) 。pow(x,y)

5. 设有声明“int a=3, b=4; float x=4.5, y=3.5;”,则表达式

“(float)(a+b)/2+(int)x%(int)y”的值是 (2) 。4.5