C语言程序设计第一次月考试题(2011.9)班级:姓名:总分:一、选择题(每小题3分,共60分)1.一个C语言程序是由()A)一个主程序和若干子程序组成B)函数C)若干过程组成D)若干子程序组成2.下面4个选项中,均是C语言关键字的选项是()A)auto enum include B)switch typedef continueC)singed union scanf D)if struct type3. 下面4个选项中,均是不合法的用户标识符的选项是()A)A P_0 do B)float 1a0 -AC) b—a goto int D) _123 temp INT4.下面4个选项中,均是不合法的整形常量的选项是()A)- - 0f1 - oxfff 0011 B)- oxcdf 017 12,456C) – 018 999 5e2 D)-0x48eg -068 03f5. 下面4个选项中,均是不合法的浮点数的选项是()A)160.0.12 e3 B)123 2e4.2 .e5C)-.18 123e4 0.0 D)-e3 .234 1e36.下面4个选项中,均是不合法的转义字符的选项是()A)‘\‖‘‗\\‘‗\xf‘B)‘\1011‘‗\‘‗\a‘C) ‗\011‘‗\f‘‗\}‘D)‘\abc‘‗\101‘‗x1f‘7.下面不正确的字符串常量是()A)‘abc‘B)‖12‘12‖C) ‖0‖D)‖‖8.Int k=7, x=12; 则以下能使值为3的表达式是()A)x%=(k%=5) B)x%=(k- k%5)C) x%=k-k%5 D)(x%=k) – (k%=5)9.若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值是()A) 4 B)16 C)32 D)5210.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )A) 7 B) 8 C)6 D)211.已知各变量的类型说明如下:Int k, a, b; unsigned long w=5; double x=1.42;则以下不正确的表达式是()A) x%(-3) B)w+=-2C) k=(a=2,b=3, a+b) D)a+=a-=(b=4)*(a=3)12.已知字母A的ASCII码为65,且定义c2为字符型变量,则执行语句c2=‘A‘+‘6‘-‗3‘;后;c2中的值为()A) D B) 68 C)不确定的值D) C13.sizeof(float)是()A)一个双精度表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式14.若有代数式| x3 +log10x |, 则正确的c语言表达式是()A) fabs(x*3 +log(x) ) B) abs(pow(x,3) +log(x) )C) abs(pow(x,3.0) +log(x)) D)fabs(pow(x,3.0)+ log(x) )15.char w; int x; float y; double z; 则表达式w*x+z-y值的类型为()A)float B)char C) int D)double16.以下程序的运行结果是()Main() { int m=5, n=10; printf(―%d, %d\n‖, m++, - -n); }A) 5,9 B) 6, 9 C)5, 10 D)6,1017.根据以下定义语句和数据的输入方式,scanf语句的正确形式为()已有定义:float f1, f2; 数据的输入方式:4.52<回车>3.5<回车>A)scanf(―%f,%f‖,&f1,&f2); B)scanf(―%f%f‖,&f1,&f2);C) scanf(―%3.2f %2.1f‖,&f1,&f2); D) scanf(―%3.2f%2.1f‖,&f1,&f2);18.下列运算符中优先级最低的是()A)? : B)+= C)>= D)= =19.设有说明语句:int x=43, y=0; char ch=‘A‘; 则表达式(x>=y && ch< ‘B‘&& !y)的值是()A) 0 B)语法错误C)1 D)假20.若希望当A的值为奇数时,表达式的值为“真”;当A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是( )A)A%2= =1 B)!(A%2= =0) C)!(A%2) D)A%2二、填空题(每空2分,共40分)1.当a=3,b=2,c=1时,表达式f=a>b>c 的值是________________.2.设a、b、c均为int型变量且a=7.5,b=2,c=3.6 ,则表达式a>b&&c>a|| a<b&&!c>b的值是_____________________.3.计算x、y、z三个数中的最小值。
请填空。
Main(){ int x=4,y=5,z=8; int u,v; u=x<y?________________;v=u<z?___________________; Printf(―%d‖,v); }4.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=__________; b=a-______________; a - =_________________;5.设有一输入函数scanf(―%d‖, k); 它不能使float类型变量k得到正确数值的原因是__________________________________________________________和__ _________________________________________________________.6.执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1=‘A‘、c2=‘a‘,正确的输入形式是__________________________________________________________________________________________________________________________.Main() { int a,b; float x,y; char c1,c2; scanf(―a=%d b=%d‖,&a, &b);scanf(―x=%f y=%f‖,&x, &y); scanf(―c1=%c c2=%c‖,&c1, &c2);printf(―a=%d, b=%d,x=%f, y=%f, c1=%c, c2=%c‖, a,b,x,y,c1,c2); } 7.main() { printf(―*%f,%4.3*\n‖,3.14, 3.1415); }输出的结果为___________________________________________.8.表达式pow(2.8, sqrt(double(x))值的数据类型为_______________.9.假设m是一个3位数,从左到右依次用a、b、c表示各位的数字,则从左到右各位数字是b、a、c的3位数的表达式(不能出现a、b、c,只能出现m以及运算符和常量)是__________________________________________________10.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为__________________________.11.若有条件“2<x<3或x< - 10‖,其对应的C语言表达式是_____________________________________________________________.12.语句: int a=3, b=4, c=5; ,则以下表达式的值为_________________________.!(a+b)+c-1&&b+c/213.以下程序的运行结果是__________________________Main(){ if (2*2= =5<2*2= =4 )printf(―T‖); else printf(―F‖); ﹜14.C语言中数学函数包含在_____________头文件中,输入、输出操作库函数包含在_____________头文件中。
15.C语言的赋值表达式中,赋值号左边必须是_______________________________.三、写出下列程序结果(每小题5分,共30分)1.若要求下列程序的输出结果为8.00,则( )中应填入的是_______________.# include <stdio.h>main(){ int k=2, m=5;float s,x=1.2, y=( );s=2/3+k*y/x+m/2;printf(“%4.2f\n”,s); }2.设有以下程序:#include <stdio.h>main(){ char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar();putchar(c1); putchar(c2);printf(“%c%c\n”,c5,c6); }若运行从键盘输入数据:abc〈回车〉defg<回车>,则输出结果是___________________3.以下程序输出是__________Main(){ int x=1;If(x=2) printf(―ok‖);Else if(x<2) printf(―%d\n‖,x);Else printf(―quit‖);}4. 以下程序输出是__________Main(){ int a=5, b=8, c=3, max;Max=a;If(c>b)If(c>a) max=c;ElseIf(b>a) max=b;Printf(―max=%d\n‖,max); }5.若a、b、c均已正确定义且a=0、b=2、c=3,则以下程序段的输出是______ Switch(a){ case 0: switch(b= =2){case 1:printf(―&‖); break;Case 2:printf(―%‖); break;}Case 1: switch( c ){ case 1:printf(―$‖);Case 2:printf(―*‖); break;Default: printf(―#‖); }}6. 以下程序输出是__________X=y=0;While(x<15) y++, x+=++y;Printf(―%d,%d‖, y, x);四、编程(10分)从键盘输入3个数,编程输出其中的最大和最小数。