完成下列练习题
(1)下列哪些是C语言中的错误表达式 _ 。①⑤⑥⑦
① ++a+++b ② “ABC” “abc” ③ -a++ ④ -++a ⑤ ++-a ⑥ int(x) ⑦ x>y=2
(2) 已知变量声明:int w; long x, float y; double z; ,则以下语句在执行时,
只有 能将键盘输入的值正确地送入到w,x,y,z各变量中。
A. scanf(“%d%d%d%d”,&w, &x,&y,&z); B. scanf(“%d%d%f%f”,&w,&x,&y,&z ); C. scanf(“%d%ld%f%lf”,&w,&x,&y,&z); D. scanf(“%d%ld%f%lf”,w,x, y,z);
(3) 以下程序段执行后,将输出 。no
unsigned char x,a,b;
x=0; a=x-1;b=x;
if(a
(4) 若有声明“float f=123.45678;”,则执行语句“printf( \后,输出结果是 。 A. 1.23e+02
B. 123.457
C. 123.456780 D. 1.234e+02
(5)若有声明“long a,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确
的是 (23) 。
A. scanf ( \B. scanf ( \C. scanf ( \D. scanf ( \
(6)若有声明 “ int a=5 , b=2 ; ” ,则表达式: b+=(float)(a+b)/2 运算后b的值为
。5 (7)设有声明 “ int a=3, b=4; float x=4.5, y=3.5; ”,则表达式: (float)(a+b)/2+(int)x%(int)y ” 的值是 。4.5
(8)已知某程序中有以下片断:
#define p 2.5 main( ) {
float x; x=p; ??. }
则main函数中标识符p代表一个 。
A、float型变量 B、double 型变量
C、float型常量 D、double 型常量 (9)若有“abc\\n\\t\\101\\n\\n”,其中包含 个字符。
A、15 B、13 C、8 D、 9 (10)对于一个用户自定义函数,以下叙述中 是不正确的。 A、函数体内任何位置声明的变量不能与该函数的函数名同名。
B、函数体中嵌入的复合语句内声明的变量可以与所在函数的形式参数同名。 C、同一函数体内不同的复合语句中声明的变量可以同名。
D、函数体内任何位置声明的变量都可以与在所有函数之外声明的变量同名。 (11)关于全局变量,以下叙述中正确的是 。 A、可以在所有函数中对一个全局变量做赋值或引用操作。 B、全局变量不能与某个函数的形参变量同名。
C、全局变量声明语句可以放在源程序文件中的函数之外的任何位置。 D、全局变量的初值是不确定的。
(12)一个C语言源程序文件由一个或若干个函数定义、若干个外部对象声明与说
明及_ __组成.预处理命令
(13)若有声明 “double t ;”,则表达式 t=1 , t+5 , t++ 的值是 。
A. 0 B. 1.0 C. 2.0 D. 6.0 (14)执行a=strlen(“\\028389”) 后,变量a的值是 。
A. 3 B. 4 C. 5 D. 6 (15)以下程序运行时输出结果为 。
#include
printf(\} A、2
B、4 C、8 D、 2.5
22(16)当定义一个无返回值函数时,函数的返回值类型标应为 。void
x?y(17)数学式“ ”所对应的C语言表达式是 。fabs(exp(sqrt(x*x+y*y))) |e|(18)若已声明 float a=3.14; , 则表达式 36/printf( “%f\\n”, a) 的值为 。4 (19)若已有声明 float d = 1 ; double f=1 , long g ; 和语句 printf(“ ”,
g = 10+‘i’ +(int)g*f ); 为了正确地以十进制形式输出 printf参数表中第二个参数的值,则在第一个参数中的下划线位置处应填写的格式转换说明符是 。”%ld” (20)下列程序执行后的输出结果是 。0 main( )
{ unsigned short x=65536; int y; printf(“%d\\n”, y=x); }
(21)若有 int x=11; 则表达式 1/3*x++的值为 。0 (22)执行下列程序段后, c 的值为 。880 #define a 80
#define b a+40
main( )
{ int c; c=b*20; }