第二章练习一一.选择题1.以下说法中正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下说法中正确的是A)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句3.在C语言提供的合法的关键字是A)swicth B)cherC)Case D)default4.以下选项中属于C语言的数据类型是A)复数型B)逻辑型C)双精度型D)集合型5.C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型6.C语言提供的合法的数据类型关键字是A)Double B)short C)integer D)Char7.在C语言中,不正确的int类型的常数是A)32768 B)0 C)037 D)0xAF8.在C语言中,合法的长整型常数是A)0L B)4962710 C)0.054838743 D)2.1869e10合法的C语言中,合法的字符型常数是A)'\t' B)"A" C)65 D)A9.在C语言中,合法的字符常量是A)'\084' B)'\x43'C)'ab' D)"\0"10.下列不正确的转义字符是A)'\\' B)'\" C)'074' D)'\0'11.若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为A) floatB) intC) charD) double12.设x和y均为int 型变量,则以下语句:x=x+y;y=x-y;x=x-y;的功能是A把x 和y按从大到小排列B把x和y按从小到大排列C无确定结果D交换x和y中的值13.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是A)1 B)2C)2.0 D)2.514.已知字母A的ASCⅡ码为十进制的65,下面程序的输出是main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值15.下面程序的输出是main(){ int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值16.设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为A) 1 B)2 C)3 D)017.表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z)B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z)D) (X<=Y)&(Y<=Z)18.设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___.1.0+x/y19.能正确表示a和b同时为正或同时为负的逻辑表达式是A)(a>=0‖b>=0)&&(a<0‖b<0)B)(a>=0&&b>=0)||(a<0&&b<0)C)(a+b>0)&&(a+b<=0)D)a*b>020.在以下一组运算符中,优先级最高的运算符是A)<= B)=C)% D)&&21.表达式:10!=9的值是A)true B)非零值C)0 D)122.有以下程序#include <stdio.hmain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A) 2,1 B) 3,2 C) 4,3 D) 2,-123.语句:printf("%d",(a=2)&&(b= -2);的输出结果是A)无输出B)结果不确定C)-1 D)124.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);C)a=c=b;25.能正确表示a≥10或a≤0的关系表达式是A)a>=10 or a<=0 B)a>=10│a<=0C)a>=10‖a<=0 D)a>=10 ‖a<=026.C语言中,运行对象必须是整型数的运算符是A)% B)\C)%和\ D)* *练习二一选择题1.合法的一组用户标识符是_______。
A) main , -s , ScanB) 3d, IF, abcC) f2_s , IF , abcD) Else, void, define2.若变量已正确定义并赋值,下面符合C语言语法的表达式是_____ 。
A) x:=y+1 B) x=y=z+2C) 13.5%2 D) x=x+y=y+z3.以下不合法的语句是_____。
A) x=y=100; B) d--;C) x+y; D) c=int(a+b);4.当c的值不为0时,能正确将c的值赋给a,b的是:A) c=b=a; B) (a=c)||(b=c);C) (a=c)&&(b=c); D) a=c=b;5.在C语言中,合法的字符常量是:A) '\081' B) '\x01'C) '12' D) "\n"6.在下列选项中,不正确的赋值语句是:A) k++; B) n1=n2=n3=0;C) k=i!=j; D) a=b+c=37.设int x=1,y=1; 表达式(!x||y--)的值是_____A) 0 B) 1C) 2 D) -18.C语言中运算对象必须是整型的运算符是_____A) %= B) /C) = D) <=9.若有以下程序段:int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3的值是:A) 0 B) 0.5 C) 1 D) 210.能正确表示逻辑关系:a≥10或a≤0的C语言表达式是____A) a>=10 or a<=0B) a>=0|a<=10C) a>=10 && a<=0D) a>=10||a<=011.下列语句中符合C语言语法的赋值语句是A) a=7+b+c=a+7; B) a=7+b++=a+7;C) a=7+b,b++,a+7 D) a=7+b,c=a+7;12.在下列选项中,不正确的赋值语句是A)++t; B)n1=(n2=(n3=0));C)k=i==j; D)a=b+c=1;13.以下程序的输出结果是main( ){ int a=12;printf("%d%d\n",--a,a--);}A 10 12B 11 12C 10 11D 10 1014.假定有以下变量定义:int k=7 ,x=12;则能使值为3的表达式是A x%=(k%=5)B x%=(k-k%5)C x%=k-k%5D (x%=k)-(k%=5)15.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c++<d?a++:d的结果为A) 4B) 3C) 2D) 116.设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A) 10B) 20C) 40D) 3017.下列可作为C语言赋值语句的是A) x=3,y=5B) a=b=6C) i--;D) y=int(x);18.设x.y.z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为A 4B 16C 32D 5219.下面程序的输出是main(){ int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%\n",k,a,b);}A) 0 0 3 B) 0 1 2C) 1 0 3 D) 1 1 2二、填空题1. 假定a,b为double型,则表达式a=2,b=a+3/2的值是_____。
2. int a=‟e‟; printf (“%c\n”, ‟A‟+(a-…a‟+1)); 执行后的输出结果是_____ 。
3. 说明语句:char y=‟\72‟;则变量y包含_____个字符?4. 已定义int a=7, b=12; 在空白处填入变量名,使表达式的值为3:(b%=a)-(___%=5)。
5. 有定义:char a; int b; float c; double d; 则表达式a*b+d-c值的类型为________。
6.当c的值不为0时,在下面空格中填入什么逻辑运算符可以正确将c的值赋给变量a, b:(a=c)______(b=c)。
7. 表达式“3.5+1/2+56%10”的计算结果是_______。
8. 整数123,取它的十位数的表达式为_______。
9. 若x为int类型且为非零,请以最简单的形式写出由逻辑表达式!x等价的C语言关系表达式___________10.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为。
11.已知int a=12,n=5;则:表达式运算后a的值各为。
a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a12.设int a; float f; double i ;则表达式10+‟a‟+i*f值的数据类型是。
13.若a为int型变量,则表达式(a=4*5,a*2) , a+6的值为。
14.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为。