C语言练习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
完成下列练习题:
练习一
单选题
2× 2x y。
(1) 下列C语言表达式能正确表达数学计算式1÷π
A、1/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、-16382
B、16382
C、16386
D、-16386
(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.500000 。
(18) 下列哪些是C语言中的错误表达式 _ 。
①++a+++b ②“ABC” “abc”③ -a++ ④ -++a
⑤++-a⑥ int(x) ⑦ x>y=2
(19)下列叙述中正确的是(21) 。
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("%ld%ld,&a,&b");
B. scanf("%d%d",a,b);
C. scanf("%d%d",&a,&b);
D. scanf("%ld%ld",&a,&b);
(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
B .int
C .short int
D .unsigned int (28) 数学式
b
a
2在C 程序中正确的表示形式为 。 A .sqrt(a)/2*b B .sqrt(a)/2/b C .sqrt(a)/2b D .sqrt a/(2*b)
二、填空题
1.在C 语言源程序中,不带任何修饰符的浮点数直接量(例如:3.14)都是按 double 类型数据存储的。
2.可以改变局部变量的生存期、但不能改变它的作用域的存储类别是 static 。 3.C 语言有效的预处理命令总是以 # 开头。