资源描述
第一章C语言概述1.1选择题【题1.1】一个C程序的执行是从。A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束【题1.2】以下叙述正确的是。A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C) C语言本身没有输入输出语句D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误【题1.3】以下叙述不正确的是。A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面【题1.4】C语言规定:在一个源程序中,main函数的位置。A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后【题1.5】一个C语言程序是由。A) 一个主程序和若干子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成1.2 填空题【题1.6】C源程序的基本单位是【】。【题1.7】一个C源程序至少应包括一个【】。【题1.8】在一个C源程序中,注释部分两侧的分界符分别为【1】和【2】。【题1.9】在C语言中,输入操作是由库函数【1】完成的,输出操作是由库函数【2】完成的。【题1.10】C程序的三种基本结构是【】。第三章C语言的基本数据类型与表达式3.1选择题【题3.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为。A) charintlong int=floatdoubleB) char=intlong int=floatdoubleC) charintlong int=float=doubleD) char=int=long int=floatdouble【题3.2】若x、i、j和k都是int型变量,则执行下面表达式后x的值为。x=(i=4,j=16,k=32)A)4B)16C)32D)52【题3.3】假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是。A)7B)8C)6D)2【题3.4】下列四组选项中,均不是C语言关键字的选项是。A) defineIFtypeB) getccharprintfC) includescanfcaseD) whilego pow【题3.5】下列四个选项中,均是C语言关键字的选项是。A) autoenumincludeB) switchtypedefcontinueC) signedunionscanfD) if structtype【题3.6】下面四个选项中,均不合法的用户标识符的选项是。A) AP_0doB) floatla0_AC) b-agotointD) _123tempINT【题3.7】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母、数字和下划线中任一种字符【题3.8】下面四个选项中,均是合法整型常量的选项是。A) 160-0xffff011B) -0xcdf01a0xeC) -01986,0120668D) -0x48a2e50x【题3.9】下面四个选项中,均是不合法的整型常量的选项是。A) -0f1-0xffff0011B) -0Xcdf01712,456C) -0189995e2D) -0x48eg-06803f【题3.10】下面四个选项中,均是不合法的浮点数的选项是。A) 1600.12e3B) 1232e4.2.e5C) -.18123e40.0D) -e3.2341e3【题3.11】下面四个选项中,均是合法浮点数的选项是。A) +1e+15e-9.403e2B) -.6012e-4-8e5C) 123e1.2e-.4+2e-1D) -e3.2345.e-0【题3.12】下面四个选项中,均是合法转义字符的选项是。A) nB) 017”C) 018fxabD) 0101x1f【题3.13】下面四个选项中,均是不合法的转义字符的选项是。A) ”xfB) 1011aC) 011fD) abc101 xlf【题3.14】下面正确的字符常量是。A)“c”B) C) WD) 【题3.15】下面四个选项中,均是不正确的八进制数或十六进制数的选项是。A) 0160x8f018B) 0abc0170xaC) 010-0x110x16D) 0a127ff-123【题3.16】下面四个选项中,均是正确的八进制数或十六进制数的选项是。A) -100x8f-011B) 0abc-0170xcC) 0010-0x110xf1D) 0a12-0x123-0xa【题3.17】下面四个选项中,均是正确的数值常量或字符常量的选项是。A) 0.00f8.9e&B) “a”3.9E-2.51e1”C) 30110xFF000aD) +0110xabcd2e250.【题3.18】下面不正确的字符串常量是。A)abcB)“1212”C)“0”D)“”【题3.19】对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是。代数式C语言表达式A) exp(x*x/2)/sqrt(2*3.14159)B) 1.0/2.0*(a*x+(a+x)/(4*a)C) sqrt(pow(sin(x*3.14159/180),2.5)D) x*x-exp(5.0)【题3.20】若有代数式,则不正确的C语言表达式是。A) a/b/c*e*3B) 3*a*e/b/cC) 3*a*e/b*cD) a*e/c/b*3【题3.21】已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是。A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)【题3.22】已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是。A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)【题3.23】以下不正确的叙述是。A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,APH和aph是两个不同的变量C) 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值【题3.24】以下正确的叙述是。A) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,是只能用于整数运算的运算符【题3.25】以下符合C语言语法的赋值表达式是。A)d=9+e+f=d+9B)d=9+e,f=d+9C)d=9+e,e+,d+9D)d=9+e+=d+7【题3.26】已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为。A)DB)68C)不确定的值D)C【题3.27】在C语言中,要求运算数必须是整型的运算符是。A)B)C)!D)【题3.28】若以下变量均是整型,且num=sum=7;则执行表达式sUM=num+,sUM+,+num 后sum的值为。A)7B)8C)9D)10【题3.29】在C语言中,int、char和short三种类型数据在内存中所占用的字节数。A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定【题3.30】若有说明语句:char c=72;则变量c。A)包含1个字节B)包含2个字节C)包含3个字节D)说明不合法,c的值不确定【题3.31】若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。A)2.500000B)2.750000C)3.500000D)0.000000【题3.32】sizeof(float)是。A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式【题3.33】设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为。A)intB)floatC)doubleD)不确定【题3.34】下面四个选项中,均是非法常量的选项是。A) as-0fff0xaB) 0112,456C) -0x18011770xfD) 0xabc0“a”【题3.35】若有代数式,则正确的C语言表达式是。A) sqrt(fabs(pow(y,x)+log(y)B) sqrt(abs(pow(y,x)+log(y)C) sqrt(fabs(pow(x,y)+log(y)D) sqrt(abs(pow(x,y)+log(y)【题3.36】若有代数式,则正确的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)【题3.37】在C语言中,char型数据在内存中的存储形式是。A)补码B)反码C)原码D)ASCII码【题3.38】设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是。A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0【题3.39】表达式18/4*sqrt(4.0)/8值的数据类型为。A)intB)floatC)doubleD)不确定【题3.40】设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为。A)0255B)032767C)065535D)02147483647【题3.41】设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为。A)floatB)charC)intD)double【题3.42】若有以下定义,则能使值为3的表达式是。int k=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)【题3.43】设以下变量均为int类型,则值不等于7的表达式是。A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)3.2填空题【题3.44】在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为【1】;一个int型数据在内存中所占的字节数为【2】。【题3.45】在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为【1】;一个double型数据在内存中所占的字节数为【2】。【题3.46】若有以下定义,则执行表达式y+=y-=m*=y后的y值是【】。int m=5,y=2;【题3.47】设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为【】。【题3.48】在C语言中的实型变量分为两种类型,它们是【1】和【2】。【题3.49】C语言所提供的基本数据类型包括:单精度型、双精度型、【1】、【2】和【3】。【题3.50】若s是int型变量,且s=6,则下面表达式的值为【】。s%2+(s+1)%2【题3.51】若a是int型变量,则下面表达式的值为【】。(a=4*5,a*2),a+6【题3.52】若x和a均是int型变量,则执行表达式(1)后的x值为【1】,执行表达式(2)后的x值为【2】。(1)x=(a=4,6*2)(2)x=a=4,6*2【题3.53】若a、b和c均是int型变量,则执行下面表达式后,a值为【1】,b值为【2】,c值为【3】。a=(b=4)+(c=2)【题3.54】若a是int型变量,且a的初值为6,则执行下面表达式后a的值为【】。a+=a-=a*a【题3.55】若a是int型变量,则执行下面表达式后a的值为【】。a=25/3%3【题3.56】若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后x的值为【1】,n的值为【2】。x+=n+【题3.57】若有定义:int b=7; float a=2.5,c=4.7;则下面表达式的值为【】。a+(int)(b/3*(int)(a+c)/2)%4【题3.58】若有定义:int a=2,b=3; float x=3.5,y=2.5;则下面表达式的值为【】。(float)(a+b)/2+(int)x%(int)y【题3.59】若有定义:char c=010;则变量c中包含的字符个数为【】。【题3.60】若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为【】。(x+y)%2+(int)a/(int)b【题3.61】若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为【 】。x%=(n%=2)【题3.62】假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为【】。【题3.63】C语言中的标识符只能由三种字符组成,它们是【1】、【2】和【3】。【题3.64】已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为【】。【题3.65】把以下多项式写成只含七次乘法运算,其余皆为减运算的表达式为【】。5X7+3X6-4X5+2X4+X3-6X2+X+10【题3.66】若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x)的值为【 】。【题3.67】若有定义:int e=1,f=4,g=2; float m=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是【】。【题3.68】表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为【】。【题3.69】表达式pow(2.8,sqrt(double)(x)值的数据类型为【】。【题3.70】假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是【】。第4章顺序程序设计4.1选择题【题4.1】putchar函数可以向终端输出一个。A) 整型变量表达式值B) 实型变量值C) 字符串D) 字符或字符型变量值【题4.2】以下程序的输出结果是。main()printf(“n*s1=%15s*”, “chinabeijing”);printf(“n*s2=%-5s*”, “chi”);A)*s1=chinabeijing *B)*s1=chinabeijing * *s2=*chi* *s2=chi *C)*s1=*chinabeijing*D)*s1= chinabeijing* *s2=chi* *s2=chi *【题4.3】printf函数中用到格式符5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式【1】;如果字符串长度小于5,则输出按方式【2】。A) 从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息【题4.4】已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是。A) 整型变量的输出格式符只有d一种B) x是格式符的一种,它可以适用于任何一种类型的数据C) x是格式符的一种,其变量的值按十六进制输出,但8lx是错误的D) 8lx不是错误的格式符,其中数字8规定了输出字段的宽度【题4.5】以下C程序正确的运行结果是。main()long y=-43456;printf(“y=%-8ldn”,y);printf(“y=%-08ldn”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);A)y= -43456B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456C)y=-43456D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y= -43456 y=+43456【题4.6】以下C程序正确的运行结果是。main()int y=2456;printf(“y=%3on”,y);printf(“y=%8on”,y);printf(“y=%#8on”,y);A)y= 2456B)y= 4630 y= 2456 y= 4630 y=#2456 y=#4630C)y=2456D)y=4630 y= 2456 y= 4630 y= 02456 y= 04630【题4.7】以下C程序正确的运行结果是。main()long y=23456;printf(“y=%3xn”,y);printf(“y=%8xn”,y);printf(“y=%#8xn”,y);A)y=5ba0B)y= 5ba0C)y=5ba0D)y=5ba0 y= 5ba0 y= 5ba0 y=5ba0 y= 5ba0 y= 0x5ba0 y= 0x5ba0 y=0x5ba0 y=#5ba0【题4.8】若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是。A) scanf(“%d%lx,%le”,&x,&y,&z);B) scanf(“%2d*%d%lf”,&x,&y,&z);C) scanf(“%x%*d%o”,&x,&y);D) scanf(“%x%o%6.2f”,&x,&y,&z);【题4.9】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A 20BB)10 A 20 BC)10A20BD)10A20 B【题4.10】已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678,则x的值为【1】,y的值为【2】。【1】A)12345B)123C)45D)345【2】A)无定值B)45.000000C)678.000000D)123.000000【题4.11】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020ABB)10 20 ABC)10 20 ABD)10 20AB【题4.12】已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为。main()int a; float f;printf(“nInput number:”);输入语句printf(“nf=%f,a=%dn”,f,a);Input number:4.5 2A) scanf(“%d,%f”,&a,&f);B) scanf(“%f,%d”,&f,&a);C) scanf(“%d%f”,&a,&f);D) scanf(“%f%d”,&f,&a);【题4.13】根据定义和数据的输入方式,输入语句的正确形式为。已有定义:float f1,f2;数据的输入方式:4.523.5A) 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);【题4.14】阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为。main()int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A) x+y+z=48B) x+y+z=35C) x+z=35D) 不确定值【题4.15】阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是。main()int x; float y;printf(“enter x,y:”);输入语句输出语句输入形式enter x,y:2 3.4输出形式x+y=5.40A) scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B) scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);C) scanf(“%d%f”,&x,&y);printf(“nx+y=%6.1f”,x+y);D) scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);【题4.16】以下说法正确的是。A) 输入项可以为一实型常量,如scanf(“%f”,3.5);B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);【题4.17】根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确的形式应该为。main()char ch1,ch2,ch3;输入语句printf(“%c%c%c”,ch1,ch2,ch3);输入形式:A B C输出形式:A BA) scanf(“%c%c%c”,&ch1,&ch2,&ch3);B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C) scanf(“%c %c %c”,&ch1,&ch2,&ch3);D) scanf(“%c%c”,&ch1,&ch2,&ch3);【题4.18】有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是。A) 132B) 1,3,2C) a=1 b=3 c=2D) a=1,b=3,c=2【题4.19】以下能正确地定义整型变量a,b和c并为其赋初值5的语句是。A)int a=b=c=5;B)int a,b,c=5;C)a=5,b=5,c=5;D)a=b=c=5;【题4.20】已知ch是字符型变量,下面不正确的赋值语句是。A)ch=a+b;B)ch=0;C)ch=7+9;D)ch=5+9;【题4.21】已知ch是字符型变量,下面正确的赋值语句是。A)ch=123;B)ch=xff;C)ch=08;D)ch=“”;【题4.22】若有以下定义,则正确的赋值语句是。int a,b; float x;A)a=1,b=2,B)b+;C)a=b=5D)b=int(x);【题4.23】设x、y均为float型变量,则以下不合法的赋值语句是。A)+x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;【题4.24】设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是。A)x=10B)x=10C)x=10D)x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10【题4.25】设有说明:double y=0.5,z=1.5; int x=10;则能够正确使用C语言库函数的赋值语句是。A) z=exp(y)+fabs(x);B) y=log10(y)+pow(y);C) z=sqrt(y-z);D) x=(int)(atan2(double)x,y)+exp(y-0.2);4.2填空题【题4.26】以下程序的输出结果为。main()short i;i=-4;printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);【题4.27】以下程序的输出结果为。main()printf(“*%f,%4.3f*n”,3.14,3.1415);【题4.28】以下程序的输出结果为。main()char c=x;printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c);【题4.29】已有定义int d=-2;执行以下语句后的输出结果是。printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*n”,d,d,d);printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*n”,d,d,d);【题4.30】已有定义int d=-2;执行以下语句后的输出结果是。printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*n”,d,d,d);printf(“*d(4)=%x*d(5)=%6x*d(6)=%-6x*n”,d,d,d);【题4.31】已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是。printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*n”,d1,d1,d1);printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*n”,d2,d2,d2);【题4.32】以下程序的输出结果为。main()int x=1,y=2;printf(“x=%d y=%d *sum*=%dn”,x,y,x+y);printf(“10 Squared is:%dn”,10*10);【题4.33】以下程序的输出结果为。#include main()int x=10; float pi=3.1416;printf(“(1) %dn”,x);printf(“(2) %6dn”,x);printf(“(3) %fn”,56.1);printf(“(4) %14fn”,pi);printf(“(5) %en”,568.1);printf(“(6) %14en”,pi);printf(“(7) %gn”,pi);printf(“(8) %12gn”,pi);【题4.34】以下程序的输出结果为。#include main()float a=123.456; double b=8765.4567;printf(“(1) %fn”,a);printf(“(2) %14.3fn”,a);printf(“(3) %6.4fn”,a);printf(“(4) %lfn”,b);printf(“(5) %14.3lfn”,b);printf(“(6) %8.4lfn”,b);printf(“(7) %.4fn”,b);【题4.35】以下printf语句中*号的作用是【1】,输出结果是【2】。#include main()int i;for(i=1;i=5;i+) printf(“#%*dn”,i,i);【题4.36】以下printf语句中-号的作用是【1】,该程序的输出结果是【2】。#include main()int x=12; double a=3.1415926;printf(“%6d#n”,x);printf(“%-6d#n”,x);printf(“%14.10lf#n”,a);printf(“%-14.10lf#n”,a);【题4.37】以下程序的输出结果为。#include main()int a=325; double x=3.1415926;printf(“a=%+06d x=%+en”,a,x);【题4.38】以下程序的输出结果为。#include main()int a=252;printf(“a=%o a=%#on”,a,a);printf(“a=%x a=%#xn”,a,a);【题4.39】以下程序段的输出结果为。int x=7281;printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6un”,x,x,x,x,x);printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn”,x,x,x,x,x);printf(“(3) x=%+3d,x=%+6d,x=%+08dn”,x,x,x);printf(“(4) x=%o,x=%#on”,x,x);printf(“(5) x=%x,x=%#xn”,x,x);【题4.40】假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=【1】; b=a-【2】; a-=【3】;【题4.41】假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c。例如:交换前,a=10,b=20,c=30;交换后,a=20,b=30,c=10。请填空。【1】; a=b; b=c; 【2】;【题4.42】设x、y和z都是int型变量,m为long型变量,则在16位微型机上执行下面赋值语句后,y值为【1】,z值为【2】,m值为【3】。y=(x=32767,x-1);z=m=0xFFFF;【题4.43】若x为int型变量,则执行以下语句后x的值是【】。x=7;x+=x-=x+x;【题4.44】若a和b均为int型变量,则以下语句的功能是【】。a+=b; b=a-b; a-=b;【题4.45】在scanf函数调用语句中,可以在格式字符和号之间加一星号,它的作用是【1】;当输入以下数据:10 20 30 40(此处每个数据之间有两个空格),下面语句的执行结果是【2】。int a1,a2,a3;scanf(“%d%*d%d%d”,&a1,&a2,&a3);【题4.46】有一输入函数scanf(“%d”,k);其不能使float类型变量k得到正确数值的原因是【1】和【2】。【题4.47】已有定义int a; float b,x; char c1,c2;为使a=3,b=6.5,x=12.6,c1=a,c2=A,正确的scanf函数调用语句是【1】,输入数据的方式为【2】。【题4.48】若有以下定义和语句,为使变量c1得到字符A,变量c2得到字符B,正确的格式输入形式是。char c1,c2;scanf(“%4c%4c”,&c1,&c2);【题4.49】执行以下程序时,若从第一列开始输入数据,为使变量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);【题4.50】已有定义int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是。scanf(“%o%x%e”,&i,&j,&x);【题4.51】 以下程序,不借助任何变量把a,b 中的值进行交换。 #include stdio.h main() int a,b; printf(Input a,b:); scanf(%d%d,) ; a+=; b=-; a - =; printf(a=%d b=%dn,a,b); 第5章选择结构程序设计5.1选择题【题5.1】逻辑运算符两侧运算对象的数据类型。A) 只能是0或1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据【题5.2】以下关于运算符优先顺序的描述中正确的是。A) 关系运算符算术运算符赋值运算符逻辑与运算符B) 逻辑与运算符关系运算符算术运算符赋值运算符C) 赋值运算符逻辑与运算符关系运算符算术运算符D) 算术运算符关系运算符赋值运算符逻辑与运算符【题5.3】下列运算符中优先级最高的是。A)=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=210)【题5.5】表示图中坐标轴上阴影部分的正确表达式是。X a b cA) (x=b)&(x=c)B) (x=a)|(b=x=c)C) (x=b)&(x=c)D) (x=a)&(b=x=c)【题5.6】判断char型变量ch是否为大写字母的正确表达式是。A)A=ch=A)&(ch=A)&(ch=Z)D)(A=ch)【题5.7】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是。A) x&yB) x=yC) x|y+z&y-zD) !(x=y&chb)&(n=cd)后n的值为。A)1B)2C)3D)4【题5.11】判断char型变量c1是否为小写字母的正确表达式是。A)a=c1=a)&(c1=c1)|(z=a)&(c1x)&(b=yz);+a|+b&+c;【1】A)5B)0C)2D)1【2】A)6B)0C)1D)4【题5.15】以下不正确的if语句形式是。A) if(xy&x!=y);B) if(x=y) x+=y;C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D) if(xy)z=x; x=y; y=z;A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=20【题5.18】以下if语句语法正确的是。A) if(x0)printf(“%f”,x)else printf(“%f”,-x);B) if(x0)x=x+y; printf(“%f”,x);else printf(“%f”,-x);C) if(x0)x=x+y; printf(“%f”,x);else printf(“%f”,-x);D) if(x0)x=x+y; printf(“%f”,x)else printf(“%f”,-x);【题5.19】请阅读以下程序:main()int a=5,b=0,c=0;if(a=b+c)printf(“*n”);elseprintf(“$n”);以下程序。A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出$【题5.20】以下程序的运行结果是。main()int m=5;if(m+5)printf(“%dn”,m);elseprintf(“%dn”,m-);A)4B)5C)6D)7【题5.21】当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。if(ab)if(cd) x=1;elseif(ac)if(bd) x=2;else x=3;else x=6;else x=7;A)1B)2C)3D)6【题5.22】有一函数关系见下表:xy=x0x+1下面程序段中能正确表示上面关系的是。A)y=x+1;B)y=x-1; if(x=0) if(x!=0) if(x=0) y=x; if(x0) y=x+1; else y=x-1;
展开阅读全文