C语言基础知识习题

A.包含1个字符 B.包含2个字符 C.包含3个字符 D.是非法表示

89.设int i=10;,表达式30-i<=i<=9的值是( )

A.0 B.1 C.9 D.20 90.以下不能看作一条C语句的是( )

A.{;} B.a=5,b=5,c=5; C.if(x>=0&&y=0); D.if(x==0)a=5;b=10; 91. 下列关于C语言的叙述错误的是( ) A. 英文字母大小写不加以区分

B. 不同类型的变量可以出现在同一个表达式中 C. 在赋值表达式中赋值号两边的类型可以不同 D. 某些运算符在不同的场合可以有不同的含义 92. 下列转义字符中错误的是( )

A. ′\\000′ B. ′\\14′ C. ′\\x111′ D. ′\\2 93. 设float a=2,b=4,c=3;以下C语言表达式与代数式 (a+b)c计算结果不一致的是( ) A. (a+b)*c/2 B. (1/2)*(a+b)*c C. (a+b)*c*1/2 D. c/2*(a+b) 94. 设int a=10, b=20, c=30;条件表达式a

A. 1 B. 1.8 C. 2 D. 2.3 96.设int a;,则逗号表达式a=2,4,a+1的值是( )

A.1 B.2 C.3 D.4

97.设int i; float f; double d; long int e;,则表达式10+′a′+i*f-d/e结果的类型是( )

A. double B.long C. int D. float 98.设int a=0,b=0,m=0,n=0;,则执行(m=a= =b)‖(n=b= =a)后m和n的值分别是( )

A.0,0 B.0,1 C.1,0 D.1,1

二、填空题

1.表达式4&&5+3||1的值是 。

2.设int j=5;,则执行语句j+=j-=j*j;后j的值是 。

3.设int a,b=2,c=3;执行表达式a=(b>c)?(b+1):(c+2),后a的值是 _。

4.在C语言中,++运算符的结合性是 。

5.表达式(int)((double)(5/2)+2.5)的值是 。 6.若有定义语句:int a=5;,则表达式:a++的值是 _。

7.若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为 。

8.表达式3 !=6的值是 。

9.设int x=10,y=3;,执行printf(“%d,%d\\n\,x--,++y);后的输出结果

是 。

10.设int a,b,c;,表达式a=2,b=5,b++,a+b的值是 。 11.设int a=1,b=2,m=2,n=2;,执行表达式(m=a

12.设int x=4,y=2;,表达式x

13.设int x=3;,执行语句printf((x%2)?(\%d\n\:(\%d\\n\,x);后,输出结果是 。

14.执行printf(“%d\\n”,1+!2+(3<=4)+5/6+7%8);后的输出结果是 。

15.设int m=0;,执行表达式m||(m=2) || (m=3)||(m=4)后,m的值是 。

16.设int n;,“n的值能同时被3和5整除”的逻辑表达式是 _。

17.设int i;float f=3.14;,执行i=(int)f;后,变量f的值是 。 18.设double x;,则表达式x=5,(x+5)/2的值是 。 19.赋值运算符的结合性是 。 20.设char ch;,判断ch是 。

为数字字符的逻辑表达式

21.设int x=14;,则表达式x++%-5的值为 。

22.设Char ax;, 则变量ax 占用的内存字节数是 。 23.设int x=5;, 则表达式2/(float)(x)+3/x的结果是 。 24.一个字符型变量所占内存的字节数是 。

25.设int x=-9,y;,则执行y=x>=0?x:-x;后y的值是 。 26.设x为int型变量,请写出一个关系表达式 ,用以判断x同时为3和7的倍数时,关系表达式的值为真。

27.设int a=10;,则执行语句a+=a-=a+a;后a 的值是 。 28.设int x=3,y=5;,则执行出 。

printf(″%d\\n″,x||y);后输

29.设int a=2;,则执行a+=a*=15;后,变量a的值是 。 30.C语言中,&&作为双目运算符表示的运算是 。

31.int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 。

32.设 int x=5;x+=x-=x+x; 则执行printf (″%d\\n″, x);后输出的值是 。

33.设int a=0,b=0,c;,则执行c=(a-=b-5),(a=b,b=3);后变量c的值是 。

34.设int a=0,b=0,c=2,d=4;,则执行(c=a= =b)||(d=b= =a);后变量d的值是 。

35.设int x;,则将x强制转换为双精度类型应写成 。

36设int x=2, y=1;则表达式x+++y的值是 。

37.设int a=-3, b=7, c=-1;则执行(a==0)&&(a=a%b

38.设int a, b, c;则执行a=(b=3, c=5, b=10);后变量a的值是 。

第二章输入输出函数 一、选择题

1.设float x; 由键盘输入 12.45,能正确读入数据的输入语句是( ) A.scanf(″_″,&x); B.scanf(″]″,&x); C.scanf(″%f″,x); D.scanf(″%s″,&x) 2.设int x; 则以下语句中错误的输入是( )

A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 3.执行语句printf("|%9.4f|\\n",12345.67);后的输出结果是( ) A.|2345.6700| B.|12345.6700| C.|12345.670| D.|12345.67| 4. 执行语句printf(″%x″, -1);后输出结果是( )

A.-1 B. –ffff C. 1 D. ffff 5. 使用语句scanf(″a=%f, b=%f″, &a, &b);输入变量a、b的值,正确的是( ) A. 1.25,2.4 B. 1.25□2.4 C. a=1.25, b=2.4 D. a=1.25□b=2.4 6.设int a,b;为使变量a和b分别获得数据10和20,则下列正确的是( ) A.scanf(″%d,%d″,&a,&b);输入数据:10,20<回车> B.scanf(″%d,%d″,&a,&b);输入数据:10 20<回车>

C.scanf(″%d,%d″,&a,&b);输入数据:a=10,b=20<回车> D.scanf(″%d,%d″,a,b);输入数据:10,20<回车>

7.设宏定义#define PI 3.1415926,用宏名PI替换的是( )

A.算术表达式 B.字符串 C.单精度实型数 D.双精度实型数

8.关于宏定义命令,叙述正确的是( )

A.在程序编译前进行宏替换 B.在程序编译时进行宏替换 C.在程序编译后进行宏替换 D.在程序运行时进行宏替换 9.以下叙述正确的是( )

A.宏名必须用大写的英文字母表示 B.宏定义不仅是符号替换,也可以赋值

C.宏替换是在程序编译时完成的,不占用程序运行时间

D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致 10.设宏定义#define P(x) x/x

则执行语句printf(″%d\\n″,P(4+6));后的输出结果是( )

A.1 B.8.5 C.11 D.11.5 11.程序段int x=12;double y=3.141593;printf(\的输出结果是( )

A.123.141593 B.12 3.14593 C.12,3.141593 D.123.1415930 12.有以下程序运行后的输出结果是( ) #include

#define SUB(a) (a)-(a) main()

{ int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(\A.0 B.-12 C.-20 D.-5 13.有以下程序运行后的输出结果是( ) #include main()

{ int a=1,b=0; printf(\

A.0,0 B.1,0 C.3,2 D.1,2 14.设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )

A.判断m是否能被5或者7整除 B.判断m是否能被5和7整除 C.判断m被5或者7整除是否余1 D.判断m被5和7整除是否都余1 15.main()

{ char a,b,c,d; scanf(\ c=getchar(); d=getchar(); printf(\

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)12 34则输出结果是( )

A.1234 B.12 C.123 D.123

16.有以下程序(已知字母A的ASCII码为65)运行后的输出结果是( ) #include main() { char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5'; printf(\

A.E,68 B.D,69 C.E,D D.输出无定值 17.阅读以下程序,该程序在编译时产生错误,其出错原因是( ) #include main()

{ int case; float printF; printf(\请输入2个数: \

scanf(\A.定义语句出错,case是关键字,不能用作用户自定义标识符 B.定义语句出错,printF不能用作用户自定义标识符 C.定义语句无错,scanf不能作为输入函数使用 D.定义语句无错,printf不能输出case的值 18.#define f(x) x*x*x main()

{ int a=3,s,t; s=f(a+1);t=f((a+1)); printf(\程序运行后的输出结果是( )

A.10,64 B.10,10 C.64,10 D.64,64 19. #define PT 3.5 #define S(x) PT*x*x main()

{ int a=1,b=2;printf(\程序运行后的输出结果是( )

A.14.0 B.31.5 C.7.5 D.程序有错无输出结果 20..设int a=2,b=3,x,y; 则能正确执行的语句是( )

A.scanf(〞%d,%d〞,x-y,x+y); B.printf(〞%d\\n〞,a%b); C.printf(〞%f\\n〞,a+b); D.scanf(〞%d,%d〞,x,y); 21.若变量已正确定义为int型,要通过语句scanf (\给a赋1、给b赋值2、给c赋值3,以下输入形式中错误的是( )(Ц代表一个空格符)

A.ЦЦЦ1,2,3<回车> B.1Ц2Ц3<回车> C.1,ЦЦЦ2, ЦЦЦ3<回车> D.1,2,3<回车> 22.有以下程序段,程序的输出结果是( ) int a,b,c; a=10; b=50; c=30;

if(a>b) a=b; b=c; c=a; printf (\A.a=10 b=50 c=10 B.a=10 b=50 c=30 C.a=10 b=30 c=10 D.a=50 b=30 c=50

二、填空题

1.若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值: a=7 b=9

请完成输出语句:printf(\

2.设宏定义#define K 2+3 执行printf(“%d\\n”,K/K);后的输出结果是_________。

3.设有宏定义#define X 10-4,则printf(“%d\\n”,6*X);的输出结果是__________。

4.设int a=12;语句printf(″%d\\n″,(a/3,a%3,a/10>0));的输出结果是 。

5.执行语句printf(〞%s\\n 〞,〞 World\\0Wide\\0Web〞);后的输出结果是___________。

6.设int a,b=5;,则执行表达式a=b-2==3后a的值是_________________。 7.设float x=23.65; 则执行语句printf (〞%d\\n〞,(int)(x+0.5));后输出结是______。

8.若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(______ ,x/y);补充完整,使其输出的计算结果形式为:x/y=11。 9.执行下面程序后的输出结果是____________。 #define MOD(a,b) a%b main()

{ int x=4,y=16,z; z=MOD(y,x);printf(″%d\\n″,z++); } 10.执行下面程序后的输出结果是____________。 #define F(x) x*x

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4