还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章C语言基础知识1.1选择题
1.以下不是C语言的特点的是()A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好
2.下列字符序列中,不可用作C语言标识符的是()A.abc123B.no.1C._123_D._ok
3.正确的C语言标识符是()A._buy_2B.2_buyC._buyD.buy
4.请选出可用作C语言用户标识符的一组标识符()A.voidB.a3_b3C.ForD.2adefine_123-abcDOWORDIFCasesizeof
5.下列符号中,不属于转义字符的是()A.\\B.\0xAAC.\tD.\
06.不属于C语言关键字的是()A.intB.breakC.whileD.character
7.是C语言提供的合法关键字的是()A.FloatB.signedC.integerD.Char
8.以下不能定义为用户标示符的是()A.scanfB.VoidC._3com_D.int
9.一个C程序是由()A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成
10.C语言程序的基本单位是()A.程序行B.语句C.函数D.字符
11.下列说法中,错误的是()A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
12.以下说法中正确的是()A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main函数中定义C.C语言程序总是从main函数开始执行D.C语言程序中的main函数必须放在程序的开始部分
13.C编译程序是()A.C程序的机器语言版本B.一组机器语言指令C.将C源程序编译成目标程序D.由制造厂家提供的一套应用软件14.以下选项中,合法的用户标识符是()A.longB._2abcC.3dmaxD.A.dat15.以下选项中,合法的实型常数是()A.5E
2.0B.E-3C.2E0D.
1.3E16.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’\101’是()A.字符AB.字符aC.字符cD.非法的常量17.以下选项中,合法转义字符的选项是()A.’\\’B.’\018’C.’xab’D.’\abc’18.以下选项中,正确的字符常量是()A.”F”B.’\\’’C.’W’D.’’19.以下选项中可作为C语言合法整数的是A.10110BB.0386C.0XffaD.x2a220.下列变量定义中合法的是A.short_a=1-.le-1;B.doubleb=1+5e
2.5;C.longdo=0xfdaL;D.float2_and=1-e-3;21.与数学式子对应的C语言表达式是()A.9*x^n/2*x-1B.9*x**n/2*x-1C.9*powxn*1/2*x-1D.9*pownx/2*x-122.若有代数式,则不正确的C语言表达式是()A.a/c/d*b*3B.3*a*b/c/dC.3*a*b/c*dD.a*b/d/c*323.已知各变量的类型说明如下intm=8nab;unsignedlongw=10;doublex=
3.14y=
0.12;则以下符合C语言语法的表达式是()A.a+=a-=b=2*a=8B.n=n*3=18C.x%3D.y=floatm24.以下符合C语言语法的赋值表达式是()A.a=9+b+c=d+9B.a=9+bc=d+9C.a=9+bb++c+9D.a=9+b++=c+925.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为()A.’D’B.68C.不确定的值D.’C’26.在C语言中,要求运算数必须是整型的运算符是()A./B.++C.*=D.%27.若有说明语句chars=’\72’;则变量s()A.包含一个字符B.包含两个字符C.包含三个字符D.说明不合法,s的值不确定28.若有定义intm=7;floatx=
2.5y=
4.7;则表达式x+m%3*intx+y%2/4的值是()A.
2.500000B.
2.750000C.
3.500000D.
0.00000029.在C语言中,char型数据在内存中的存储形式是()A.补码B.反码C.原码D.ASCII码30.设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()A.x=x*100+
0.5/
100.0B.m=x*100+
0.5x=m/
100.0C.x=x*100+
0.5/
100.0D.x=x/100+
0.5*
100.031.表达式13/3*sqrt
16.0/8的数据类型是()A.intB.floatC.doubleD.不确定32.设以下变量均为int类型,则值不等于7的表达式是()A.m=n=6m+nm+1B.m=n=6m+nn+1C.m=6m+1n=6m+nD.m=6m+1n=mn+133.假设所有变量均为整型,则表达式x=2y=5y++x+y的值是()A.7B.8C.6D.234.已知s是字符型变量,下面不正确的赋值语句是()A.s=’\012’;B.s=‘u+v’;C.s=’1’+’2’;D.s=1+2;35.已知s是字符型变量,下面正确的赋值语句是()A.s=*’abc’;B.s=’\08’;C.s=’\xde’;D.s=”\”;36.若有以下定义,则正确的赋值语句是()intxy;floatz;A.x=1y=2B.x=y=100C.x++;D.x=intz;37.设x、y均为float型变量,则不正确的赋值语句是()A.++x;B.x*=y-2;C.y=x%3/10;D.x=y=0;38.下列语句中符合C语言的赋值语句是()A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+bb++a+7D.a=7+bc=a+7;39.putchar函数可以向终端输出一个()A.整型变量表达式值B.字符串C.实型变量值D.字符或字符型变量值40.以下程序段的输出结果是inta=12345;printf”%2d\n”a;A.12B.34C.12345D.提示出错、无结果41.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为()A.scanf(”%d%lx,%le”,xyz);B.scanf”%2d*%d%lf”xyz;C.scanf”%x%*d%o”xy;Dscanf”%x%o%
6.2f”xyz;42.有如下程序段intx1,x2;chary1,y2;scanf(”%d%c%d%c”,x1y1x2y2);若要求x
1、x
2、y
1、y2的值分别为
10、
20、A、B,正确的数据输入是()(注└┘代表空格)A.10A└┘20BB.10└┘A20BC.10└┘A└┘20└┘BD.10A20└┘B43.若变量已正确说明为float类型,要通过语句scanf”%f%f%f”abc;给a赋予
10.0,b赋予
22.0,c赋予
33.0,不正确的输入形式为()A.10回车B.
10.
022.
033.0回车22回车33C.
10.0回车D.1022回车
22.
033.0回车33回车44.有如下程序,若要求x
1、x
2、y
1、y2的值分别为
10、
20、A、B,正确的数据输入是()(注└┘代表空格)intx1,x2;chary1,y2;scanf(”%d%d”,x1x2);scanf(”%c%c”y1y2);A.1020ABB.10└┘20└┘ABCC.10└┘20D.10└┘20ABAB45.已有定义inta=-2;和输出语句printf(”%8lx”,a);以下正确的叙述是()A.整型变量的输出格式符只有%d一种B.%x是格式符的一种,它可以适用于任何一种类型的数据C.%x是格式符D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是()floatxy;scanf”%f%f”xy;printf”a=%fb=%f”xy;A.
2.04回车B.
2.
045.67回车
5.67回车C.A=
2.04B=
5.67回车D.
2.
055.67回车47.有如下程序段,从键盘输入数据的正确形式应是()(注└┘代表空格)floatxyz;scanf“x=%dy=%dz=%d”ayz;A.123B.x=1y=2z=3C.123D.x=1└┘y=2└┘z=348.以下说法正确的是()A.输入项可以为一个实型常量,如scanf”%f”
3.5;B.只有格式控制,没有输入项,也能进行正确输入,如scanf”a=%db=5d”;C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf”%
4.2f”f;D.当输入数据时,必须指明变量的地址,如scanf”%f”f;49.根据定义和数据的输入方式,输入语句的正确形式为()(注└┘代表空格)已有定义floatxy;数据的输入方式
1.23回车
4.5回车A.scan”%f%f”xy;B.scanf”%f%f”xy;C.scanf”%
3.2f└┘%
2.1f”xy;D.scanf”%
3.2f%
2.1f”xy;50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()#include”stdio.h”main{chars1s2s3;输入语句;printf”%c%c%c”s1s2s3;}输入形式A└┘B└┘C回车(注└┘代表空格)输出形式A└┘BA.scanf”%c%c%c”s1s2s3;B.scanf”%c└┘%└┘c%c”s1s2s3;C.scanf”%c%c%c”s1s2s3;D.scanf”%c%c”s1s2s3;51.以下程序的执行结果是()#include”stdio.h”main{intx=2y=3;printf”x=%%dy=%%d\n”xy;}A.x=%2y=%3B.x=%%dy=%%dC.x=2y=3D.x=%dy=%d52.以下程序的输出结果是()(注└┘代表空格)#include”stdio.h”main{printf”\nstring1=%15s*””programming”;printf”\nstring2=%-5s*””boy”;printf”string3=%2s*””girl”;}A.string1=programming└┘└┘└┘└┘*B.string1=└┘└┘└┘└┘programming*string2=boy*string2=boy└┘└┘*string3=gi*string3=gi*C.string1=programming└┘└┘└┘└┘*D.string1=└┘└┘└┘└┘programming*string2=└┘└┘boy*string3=girl*string2=boy└┘└┘*string3=girl*53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()#include”stdio.h”main{inta;floatb;输入语句输出语句}输入形式1└┘
2.3回车(注└┘代表空格)输出形式a+b=
3.300A.scanf”%d%f”ab;B.scanf”%d%
3.1f”ab;printf”\na+b=%
5.3f”a+b;printf”\na+b=%f”a+b;C.scanf”%d%f”ab;D.scanf”%d%f”ab;printf”\na+b=%
5.3f”a+bprintf”\na+b=%f”a+b;54.阅读以下程序,当输入数据的形式为1234,正确的输出结果为()#include”stdio.h”main{intab;scanf”%d%d”ab;printf”a+b=%d\n”a+b;}A.a+b=46B.有语法错误C.a+b=12D.不确定值55.若有定义intxy;chars1s2s3;并有以下输出数据(注└┘代表空格)1└┘2回车U└┘V└┘W回车则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是()A.scanf”x=%dy=%d”xy;s1=getchar;s2=getchar;s3=getchar;B.scanf”%d%d”xy;s1=getchar;s2=getchar;s3=getchar;C.scanf”%d%d%c%c%c”xys1s2s3;D.scanf”%d%d%c%c%c%c%c%c”xys1s1s2s2s3s3;1.2填空题1.C语言的符号集包括_英文字母、数字、一些有特定含义的标点符号2.结构化设计中的三种基本结构是_顺序结构、选择结构、循环结构3.C语言源程序文件的后缀是.C,经过编译后生成文件的后缀是OBJ,经过链接后生成文件的后缀是EXE4.C语言的关键字都用小写{大写或小写}5.一个函数由两部分组成,它们是函数说明部分和函数体6.函数体一般包括变量定义部分和执行部分7.C语言是通过输入输出函数来进行输入和输出的8.以下程序的执行结果dec:-1oct:177777hex:ffffunsigned:65535dec:1oct:1hex:1unsigned:1#include”stdio.h”main{shorti=-1j=1;printf”dec:%doct:%ohex:%xunsigned:%u\n”iiii;printf”dec:%doct:%ohex:%xunsigned:%u\n”jjjj;}9.以下程序的执行结果是dec:98oct:142hex:62ASCII:b#include”stdio.h”main{chars=’b’;printf”dec:%doct:%ohex:%xASCII:%c\n”ssss;}10.以下程序的执行结果是
3.
1415933.
14163.142└┘└┘└┘└┘└┘
3.
1423.141593e+
003.1416e+
003.142e+00└┘└┘
3.142e+00(注└┘代表空格)#include”stdio.h”main{floatpi=
3.1415927;printf”%f%.4f%
4.3f%
10.3f”pipipipi;printf”\n%e%.4e%
4.3e%
10.3e”pipipipi;}11.以下程序的执行结果是#include”stdio.h”main{charc=’c’+5;printf”c=%c\n”c;}12.以下程序输入1└┘2└┘3后的执行结果是i=1k=└┘j=2(注└┘代表空格)#include”stdio.h”main{intij;chark;scanf”%d%c%d”ikj;printf”i=%dk=%cj=%d\n”ikj;}13.有以下程序,若输入9876543210后的执行结果是;若输入为98└┘76└┘543210后的执行结果是;若输入为987654└┘3210后的执行结果为(注└┘代表空格)#include”stdio.h”main{intx1x2;chary1y2;scanf”%2d%3d%3c%c”x1x2y1y2;printf”x1=%dx2=%dy1=%cy2=%c\n”xy;}14.若x和y均为int型变量,则以下语句的功能是x+=y;y=x-y;x-=y;15.有一输入函数scanf”%d”k;则不能使float类型变量k得到正确数值的原因是16.有如下程序段,输入数据12345ffl678后,u的值是【1】,v的值是【2】intu;floatv;scanf“%3d%f”uv;1.3答案及部分解析1.选择题答案1.B2.B3.A4.B5.B6.D7.B8.D9.B10.C11.A12.C13.C14.B15.C16.A17.A18.C19.C20.A21.C22.C23.A24.B25.A26.D27.A28.A29.D30.B31.C32.C33.B34.B35.C36.C37.C38.D39.D40.C41.D42.A43.B44.D45.D46.A47.B48.D49.B50.A51.D52.D53.A54.D55.D14.解析C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线而且不能与C语言规定的关键字同名关键字如autobreakcasecharconstcontinuedefaultdodoubleelseentryexternforfloatgotoifintintlongregisterreturnshortsignedsizeofstaticstructunsignedwhileswitchtypedefvoidvolatileunior这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来15.解析用指数形式表示一个实型常数时,E或e之前必须有数字,且E后面指数必须为整数16.解析’\101’为转义字符,相对应一个ASCII码字符
(101)8=
(65)10=A.17.解析转义字符的特征是以“\”开头,其后跟一些字符,如\n\t\’\\\}\”\b\f等代表一些特殊的含义,而\后如跟数字,可以为八进制或者十六进制,将其转换为对应的ASCII码值,就可以得出对应的字符“\”后跟八进制的写法\0nn或者\nn表示“\0”或者“\”后只能跟1或3位0——7之间的数字;“\”后跟十六进制的写法\xnn,或者\nn表示“\x”或者“\”后只能跟1或2位0——9及a——fA——F之间的字符选项B的错误在于8不是八进制;而选项C的错误在于没有“\”;选项D的错误在于超长(多了一位)21.解析B的错误在于赋值语句的左侧只能为一个简单变量,如n=3*n=18;C的错误在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,即为y=floatm31.解析逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自右的第三个表达式y++,其隐含有两步操作先取y的原值,再执行y=y+1运算;而本题中,虽然没有将y赋给某个变量(取其原值),但还是一定会执行加运算的因而,经过第三个表达式,y已经自加为6,故x+y的值为8,相对应得表达式最终结果为8若本题改为x=2y=5z=y++x+z,则其结果应为72.填空题答案1.答案英文字母、数字、一些有特定含义的标点符号2.答案顺序结构、选择结构、循环结构3.答案COBJEXE4.答案小写5.答案函数说明部分和函数体6.答案变量定义部分和执行部分7.答案输入和输出函数8.答案dec:-1oct:177777hex:ffffunsigned:65535dec:1oct:1hex:1unsigned:19.答案dec:98oct:142hex:62ASCII:b10.答案
3.
1415933.
14163.142└┘└┘└┘└┘└┘
3.
1423.141593e+
003.1416e+
003.142e+00└┘└┘
3.142e+00注由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果为
3.14159e+
003.142e+
003.14e+00└┘└┘
3.14e+00,即小数点后取5位11.答案c=h12.答案i=1k=└┘j=213.答案第一种情况的执行结果x1=98x2=765y1=4y2=1第二种情况的执行结果x1=98x2=76y1=└┘y2=3第三种情况的执行结果x1=98x2=765y1=4y2=214.答案交换x和y的值15.答案
(1)格式符应为%f;
(2)变量前边未加取地址符即应为scanf”%f”k;16.答案【1】123【2】
45.000000第二章选择结构2.1选择题1.已有定义intx=3y=4z=5;则表达式!x+y+z-1y+z/2的值是(D)A.6B.0C.2D.12.设a=5b=6c=7d=8m=2n=2则执行m=abn=cd后n的值为(B)A.1B.2C.3D.43.设x、y和z都是int类型变量,且x=3y=4z=5则下面的表达式中,值为0的表达式为(D)A.’x’’y’B.x=yC.x||y+zy-zD.!xy!z||14.为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if5.逻辑运算符两侧运算对象的数据类型(D)A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据6.以下关于运算符优先顺序的描述中正确的是(C)A.关系运算符算术运算符赋值运算符逻辑与运算符B.逻辑与运算符关系运算符算术运算符赋值运算符C.赋值运算符逻辑与运算符关系运算符算术运算符D.算术运算符关系运算符赋值运算符逻辑与运算符7.下列运算符中优先级最高的是(C)A.B.C.+D.!=8.选择出合法的if语句(设intx,a,b,c;)(A)A.ifa=bc++;B.ifa=bc++;C.ifabc++;D.ifa=bc++;9.能正确表示“当x的取值在[-58-40]和
[4058]范围内为真,否则为假”的表达式是(C)A.x=-58x=-40x=40x=58B.x=-58||x=-40||x=40||x=58C.x=-58x=-40||x=40x=58D.x=-58||x=-40x=40||x=5810.判断char型变量s是否为小写字母的正确表达式是(C)A.’a’=s=’z’B.s=’a’s=’z’C.s=’a’s=’z’D.’a’=sand’z’=s11.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”则以下不能满足要求的表达式是(C)A.x%2==1B.!x%2==0C.!x%2D.x%212.已知x=45y=’a’z=0;则表达式x=zy’z’||!y的值是(C)A.0B.语法错C.1D.“假”13.指出下列程序段所表示的逻辑关系是(B)ifab{ifc==dx=10;}elsex=-10;A.B.C.D.14.有一函数,以下程序段中不能根据x值正确计算出y值的是(C)A.ifx0y=1;elseifx==0y=0;elsey=-1;B.y=0;ifx0y=1;elseifx0y=-1;C.y=0;ifx=0ifx0y=1;elsey=-1;D.ifx=0ifx0y=1;elsey=0;elsey=-1;15.执行以下语句后,y的值为(A)intxyz;x=y=z=0;++x||++y++z;A.0B.1C.2D.不确定值16.已知inta=1b=2c=3;以下语句执行后abc的值是(B)ifabc=a;a=b;b=c;A.a=1b=2c=3B.a=2b=3c=3C.a=2b=3c=1D.a=2b=3c=217.请阅读以下程序该程序(C)#include”stdio.h”main{intx=-10y=5z=0;ifx=y+zprintf”***\n”;elseprintf”$$$\n”;}A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是(C)#include”stdio.h”main{inta=1;ifa++1printf”%d\n”a;elseprintf”%d\n”a--;}A.0B.1C.2D.319.当a=1b=2c=4d=3时,执行完下面一段程序后x的值是(B)ifabifcdx=1;elseifacifbdx=2;elsex=3;elsex=4;elsex=5;A.1B.2C.3D.420.执行以下程序段后,变量xyz的值分别为(B)inta=1b=0xyz;x=--a==b++--a++b;y=a++;z=b;A.x=0y=0z=0B.x=-1y=-1z=1C.x=0y=1z=0D.x=-1y=2z=121.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是(A)a=1;b=2;c=3;d=4;w=(ab)?a b;w=(wc)?w c;w=(wd)?w d;A.1B.2C.3D.422.以下程序的输出结果是(C)#include”stdio.h”main{inta=5b=4c=6d;printf”%d\n”d=abaca:c:b;}A.5B.4C.6D.不确定23.若a、b、c
1、c
2、x、y均为整型变量,正确的switch语句是(D)A.switcha+b;B.switcha{case1:y=a+b;break;{casec1:y=a-b;break;case0:y=a-b;casec2:x=a*d;break;break;default:x=a+b;}}C.switcha*a+b*bD.switcha-b{case3:{default:y=a*b;break;case1:y=a+b;break;case3:x=a+b;break;case3:y=b-a;break;case10:case11:y=a-b;break;}}24.执行下列程序,输入为3的数出结果是(C)#include”stdio.h”main{intk;scanf”%d”k;switchk{case1:printf”%d\n”k++;case2:printf”%d\n”k++;case3:printf”%d\n”k++;case4:printf”%d\n”k++;break;default:printf”Full!\n”;}}A.3B.4C.3D.45425.假定等级和分数有以下对应关系等级A分数85——100等级B分数60——84等级C分数60以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是(D)A.switchgrade{case’A’printf”85——100\n”;case’B’printf”60——84\n”;case’C’printf”60\n”;default printf”gradeiserror!\n”;}B.switchgrade{case’A’printf”85——100\n”;break;case’B’printf”60——84\n”;case’C’printf”60\n”;default printf”gradeiserror!\n”;}C.switchgrade{case’A’printf”85——100\n”;break;case’B’printf”60——84\n”;break;case’C’printf”60\n”;default printf”gradeiserror!\n”;}D.switchgrade{case’C’printf”60\n”;break;case’B’printf”60——84\n”;break;default printf”gradeiserror!\n”;break;case’A’printf”85——100\n”;}26.有如下程序,写出该执行结果(C)#include”stdio.h”main{floatx=
2.0y;ifx
0.0y=
0.0;elseifx
10.0y=
1.0/x;elsey=
1.0;printf”%f\n”y;}A.
0.000000B.
0.250000C.
0.500000D.
1.00000027.以下程序的运行结果是(C)#include”stdio.h”main{inta=2b=-1c=2;ifabifb0c=0;elsec++;printf”%d\n”c;}A.0B.1C.2D.328.运行以下程序后,如从键盘上输入china#则输出为(C)#include”stdio.h”main{intv1=0v2=0;charch;whilech=getchar!=’#’switchch{case’a’:case’h’:default:v1++;case’o’:v2++;}printf”%d%d\n”v1v2;}A.20B.50C.55D.2529.有以下程序,若输入为字符s,则程序运行结果为(A)#include”stdio.h”main{charch;ch=getchar;switchch{case’a’:printf”a=%c\n”ch;default:printf”end!\n”;case’b’:printf”b=%c\n”ch;case’c’:printf”c=%c\n”ch;}}A.end!B.end!C.有语法错误D.a=sb=send!c=s30.有以下程序,程序运行后的输出结果是(A)#include”stdio.h”main{inta=15b=21m=0;switcha%3{case0:m++;break;case1:m++;switchb%2{default:m++;case0:m++;break;}}printf”%d\n”m;}A.1B.2C.3D.42.2填空题1.若从键盘输入58,则输出结果是___585858_____#include”stdio.h”main{inta;scanf”%d”a;ifa50printf”%d”a;ifa40printf”%d”a;ifa30printf”%d”a;}2.设intx=9,y=8;表达式x==y+1的结果是__1______3.定义intx,y;执行y=x=1++xx+2;后y的值是__4______4.定义intx=10yz;执行y=z=x;x=y==z;后,x的结果是15.设inta=1b=2cde;执行c=-a+++++b;d=b--+++a-a;e=a/++b-a/--a;请问abcde的结果是232306.设inta=2b=3cdef;执行c=a++=--b;d=a==++b;e=a--!=b;f=++ab--;请问abcdef的结果是_321100_______7.以下程序的运行结果是__200______#include”stdio.h”main{intabcswt;s=w=t=0;a=-1;b=3;c=3;ifc0s=a+b;ifa=0{ifb0ifc=0w=a-b;}elseifc0w=a-b;elset=c;printf”%d%d%d”swt;}8.以下程序的运行结果是__100______#include”stdio.h”main{intabcde;a=c=1;b=20;d=100;if!ad=d++;elseif!bifdd=--d;elsed=d--;printf”%d\n\n”d;}9.以下程序的运行结果是_6250(换行)5100______#include”stdio.h”main{intab=250c;ifc=b0a=4;elseifb=0a=5;elsea=6;printf”\t%d\t%d\n”ac;ifc=b==0a=5;printf”\t%d\t%d\n”ac;ifa=c=ba=4;printf”\t%d\t%d\n”ac;}10.下面程序根据以下函数关系,对输入的每个x值,计算出y值请在【】内填空xy2x=10xx+2-1x=21/xx=-1x-1#include”stdio.h”main{intxy;scanf”%d”x;if【1】y=x*x+2;elseif【2】y=1/x;elseifx=-1y=x-1;else【3】;ify!=-1printf”%d”y;elseprintf”error”;}11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根请在【】内填入正确内容#include”stdio.h”#include”math.h”main{floatabctdiscwterm1term2;printf”enterabc:”;scanf%f%f%f”abc;if【1】if【2】printf”noanswerduetoinputerror\n”;elseprintf”thesinglerootis%f\n”-c/b;else{disc=b*b-4*a*c;w=2*a;term1=-b/w;t=absdisc;term2=sqrtt/w;if【3】printf”complexroot\nrealpart=%fimagpart=%f\n”term1term2;elseprintf”realroots\nroot1=%froot2=%f\n”term1+term2term1-term2;}}12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型请在【】内填入正确内容#include”math.h”#include”stdio.h”main{floatabcsarea;printf”pleaseinputthreeedgesofatriangle:”;scanf”%f%f%f”abc;if【1】{s=a+b+c/2;area=sqrts*s-A*s-B*s-c;printf”\ntheareaofthetriangleis:%f”area;ifa==bb==cprintf”等边三角形”;elseif【2】printf”等腰三角形”:elseif【3】printf”直角三角形”:elseprintf”一般三角形”:}elseprintf”不能组成三角形”;}13.以下程序的功能是判断输入的年份是否是闰年请在【】内填入正确内容#include”stdio.h”main{intyearflag;printf”pleaseinputtheyeartojudewhetheritisaleapyear:”;scanf”%d”year;ifyear%400==0flag=1;elseif【1】flag=1;else【2】;ifflagprintf”%disaleapyear\n”year;elseprintf”%disnotaleapyear!\n”year;}14.以下程序是对用户输入的字母进行大小写转换请在【】内填入正确内容#include”stdio.h”main{charch;printf”pleaseinputaletter:”;scanf”%c”ch;if【1】ch=ch+32;elseifch=’a’ch=’z’【2】;printf”theconvertedletteris:%c\n”ch;}15.以下程序是对从键盘输入的任何三个整数,求出其中的最小值请在【】内填入正确内容#include”stdio.h”main{intabcmin;printf”pleaseinputthreenumbers:”;scanf”%d%d%d”abc;if【1】min=b;elsemin=a;ifminc【2】;printf”min=%d\n”min;}16.以下程序实现这样的功能商店卖西瓜,10斤以上的每斤
0.15元,8斤以上的每斤
0.3元,6斤以上的每斤
0.4元,4斤以上的每斤
0.6元,4斤以下的每斤
0.8元,从键盘输入西瓜的重量和顾客所付钱数,则输出应付款和应找钱数请在【】内填入正确内容#include”stdio.h”main{floatweightmoneyrate;printf”thepaidmoneyoftheclientis:”;scanf”%f”money;printf”theweightofthewatermelonis:”;scanf”%f”weight;if【1】rate=
0.15;elseifweight8rate=
0.3;elseifweight6【2】;elseifweight4rate=
0.6;【3】rate=
0.8;printf”theaccountpayableofthewatermelonis%f\n”weight*rate;printf”thechangeforclientis%f\n”money-weight*rate;}17.以下程序段的运行结果是________#include”stdio.h”main{charch1=’a’ch2=’A’;switchch1{case’a’:switchch2{case’A’:printf”good!\n”;break;case’B’:printf”bad!\n”;break;}case’b’:printf”joke\n”;}}18.根据以下函数关系,对输入的每个x值,计算出相应的y值请在【】内填入正确内容xyx000=x10x10=x201020=x40-
0.5x+20#include”stdio.h”main{intxrate;floaty;printf”pleaseinputthevalueofx:”;scanf”%d”x;if【1】rate=-1;elserate=【2】;switchrate{case–1:y=0;break;case0:y=x;break;case1:y=10;break;case2:case3:y=-
0.5*x+20;break;default:y=-2;}if【3】printf”y=%f\n”y;elseprintf”thevalueofxisinvalid!\n”;}19.以下程序实现的功能是从键盘输入某年某月,输出该年份该月的天数请在【】内填入正确内容#include”stdio.h”main{intyearmonthdaysleap;printf”pleaseinputbothyearandmonth:”;scanf”%4d/%2d”yearmonth;switch【1】{case1:case3:case5;case7:case8:case10:case12:days=31;【2】case4:case6:case9:case11:days=30;break;case2:ifyear%400==0leap=1;elseifyear%4==0year%100!=0leap=1;else【3】;ifleapdays=29;elsedays=28;}printf”%d年%d月的天数为%d\n”yearmonthdays;}20.以下程序完成两个数的四则运算请在【】内填入正确内容#include”stdio.h”main{floatxy;charoperator;printf”pleaseinputtheexpression:”;scanf”%f%c%f”xoperatory;switch【1】{case’+’:printf”%g%c%g=%g\n”xoperatoryx+y;【2】;case’-’:printf”%g%c%g=%g\n”xoperatoryx-y;break;case’*’:printf”%g%c%g=%g\n”xoperatoryx*y;break;case’/’:ify==
0.0printf”除零错误!\n”;elseprintf”%g%c%g=%g\n”xoperatoryx/y;break;【3】:printf”表达式存在错误!\n”;}}21.以下程序运行后的输出结果是_____________#include”stdio.h”main{intx=10y=20t=0;ifx==yt=x;x=y;y=t;printf”%d%d\n”xy;}22.执行以下语句后,x、y和z的值分别为_____________intxyz;x=y=z=0;++x||++y++z;第三章循环结构3.1选择题1.以下程序的输出结果是Amain{intn=4;whilen--printf〞%d〞--n;}A.20B.31C.321D.2102.以下程序的输出结果是Amain{intx=10y=10i;fori=0;x8;y=++iprintf%d%dx--y;}A.10192B.9876C.10990 D.1010913.当执行以下程序段时(A)x=-1;do{x=x*x;}while!x;A.循环体将执行一次 B.循环体将执行两次C.循环体将执行无数多次 D.系统将提示有语法错误4.执行以下程序后输出的结果是()main{inty=10;do{y--;}while--y;printf%d\ny--;}A.-1 B.1 C.8 D.05.下面程序的输出结果是()main{intx=3y=6a=0;whilex++!=y-=1{a+=1;ifyxbreak;}printfx=%dy=%da=%d\nxya;}A.x=4y=4a=1B.x=5y=5a=1C.x=5y=4a=3D.x=5y=4a=16.若ij已定义为int类型,则以下程序段中内循环的总的执行次数是()fori=5;i;i--forj=0;j4;j++{…}A.20B.24C.25D.307.请读程序#includestdio.hmain{intx=1y=0a=0b=0;switchx{case1:switchy{case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printfa=%db=%d\nab;}上面程序的输出结果是()A.a=2b=1B.a=1b=1C.a=1b=0D.a=2b=28.若有以下程序段,w和k都是整型变量w=k;LB:ifw==0gotoLE;w--;printf〞*〞;gotoLB;LE:则不能与上面程序段等价的循环语句是()A.forw=k;w!=0;w--print〞*〞;B.w=k;whilew--!=0printf〞*〞;w++;C.w=k;do{w--;printf〞*〞;}whilew!=0;D.forw=k;w;--wprintf〞*〞;9.下面程序的输出是()main{char*s=〞12134211〞;intkv1=0v2=0v3=0v4=0;fork=0;s[k];k++switchs[k]{default:v4++;case1:v1++;case2:v2++;csse3:v3++;}printf〞v1=%dv2=%dv3=%dv4=%d\n〞v1v2v3v4;}A.v1=4v2=2v3=1v4=1 B.v1=4v2=9v3=3v4=1C.v1=5v2=8v3=6v4=1 D.v1=8v2=8v3=8v4=810.有以下程序#include〞stdio.h〞intabcintuintv;main{intc,a=24,b=16;c=abcab;printf〞%d\n〞c;}intabcintuintv{intw;whilev{w=u%v; u=v; v=w;}returnu;}输出结果是A.6B.7C.8D.911.在下列选项中,没有构成死循环的程序段是()A.inti=100;while1{i=i%100+1;ifi100break;}B.for;;;C.intk=1000;do{++k;}whilek=10000;D.ints=36;whiles;--s;12.若输入B,以下程序的运行结果为()main{chargrade;scanf%cgrade;switchgrade{caseA:printf=
85.;caseB:caseC:printf=
60.;caseD:printf
60.;default:printferror.;}}A.=
85.B.=
60.C.=
60.
60.error.D.error.13.列程序运行的情况是()main{inti=1sum=0;whilei10sum=sum+1;i++;printfi=%dsum=%disum;}A.i=10sum=9B.i=9sum=9C.i=2sum=1D.运行出现错误14.有以下语句i=1;for;i=100;i++sum+=i;与以上语句序列不等价的有A.fori=1;;i++{sum+=i;ifi==100break;}B.fori=1;i=100;{sum+=i;i++;}C.i=1;for;i=100;sum+=i;D.i=1;for;;{sum+=i;ifi==100break;i++;}15.下面程序的运行结果为()main{intn;forn=1;n=10;n++{ifn%3==0continue;printf%dn;}}A.12457810B.369C.12D.1234567891016.下面程序的运行结果是()main{intxyz;x=0;y=z=-1;x+=-z---y;printfx=%d\nx;}A.x=4B.x=0C.x=2D.x=317.标有/**/的语句的执行次数是()intyi;fori=0;i20;i++{ifi%2==0continue;y+=i;/**/}A.20B.19C.10D.918.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式A.只能用逻辑表达式B.只能用关系表达式C.只能用逻辑表达式或关系表达式D.可用任意表达式19.在以下给出的表达式中与do-whileE语句中的(E)不等价的表达式是()A.!E==0B.E0||E0C.E==0D.E!=020.假定所有变量均已正确定义,下列程序段运行后x的值为()k1=1;k2=2;k3=3;x=15;if!k1x--;elseifk2ifk3x=4;elsex=3;A.14B.4C.15D.321.执行下面语句的输出为()inti=-1;ifi=0printf“****\n”;elseprintf“%%%%\n”;A.****B.%%%%C.%%%%cD.有错,执行不正确22.下列程序的输出是()#includestdio.hmain{inti;charc;fori=0;i=5;i++{c=getchar;putcharc;}}程序执行时从第一列开始输入以下数据,CR代表换行符uCRwCRxstaCRA.uwxstaB.uC.uD.uwwwxxsxsta23.下列程序的输出为()#includestdio.hmain{intijx=0;fori=0;i2;i++{x++;forj-0;j=3;j++{ifj%2continue;x++;}x++;}printfx=%d\nx;}A.x=4B.x=8C.x=6D.x=1224.下列程序的输出为()#includestdio.hmain{intijk=0m=0;fori=0;i2;i++{forj=0;j3;j++k++;k-=j;}m=i+j;printfk=%dm=%d\nkm;}A.k=0m=3B.k=0m=5C.k=1m=3D.k=1m=525.在C语言中为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()A.0B.1C.trueD.非026.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()A.0B.1C.trueD.非027.下列程序的输出为()#includestdio.hmain{intk=0;charc=A;do{switchc++{caseA:k++;break;caseB:k--;caseC:k+=2;break;caseD:k=k%2;continue;caseE:k=k*10;break;default:k=k/3;}k++;}whilecG;printf%d\nk;}A.k=3B.k=4C.k=2D.k=028.C语言的if语句嵌套时,if与else的配对关系是()A.每个else总是与它上面的最近的if配对B.每个else总是与最外的if配对C.每个else与if的配对是任意的D.每个else总是与它上面的if配对29.下列程序的输出为()#includestdio.hmain{inti=0j=0a=6;if++i0||++j0a++;printfi=%dj=%da=%d\nija;}A.i=0j=0a=6B.i=1j=1a=7C.i=1j=0a=7D.i=0j=1a=730.下列程序段的输出结果为()main{intx=3;do{printf%3dx-=2;}while!--x;}A.1B.30C.1-2D.死循环3.2填空题1.当输入19221时下列程序运行的结果是_________main{intabcmax;printfpleasescanthreenumberabc:\n;scanf%d%d%dabc;max=a;ifmaxbmax=b;ifmaxcmax=c;printfmaxis:%dmax;}2.若输入字母C,程序输出结果为【1】;若输入字符*,程序将【2】#includestdio.hmain{charc1c2;c1=getchar;whilec197||c1122c1=getchar;c2=c1-32;printf%c%c\nc1c2;}3.以下程序运行的结果为________main{intabcxyz;a=10;b=2;c=!a%b;x=!a/b;y=abb=0;z=ab||b=0;printf%d%d%d%d\ncxyz;}4.若输入4程序运行结果为【1】若输入-4运行结果为【2】若输入10运行结果为【3】.main{intxy;scanf%dx;ifx1{y=x;printfx=%dy=x=%d\nxy;}elseifx10{y=2*x-1;printfx=%dy=2*x-1=%d\nxy;}else{y=3*x-11;printfx=%dy=3*x-11=%d\nxy;}}5.以下程序运行的结果sum=55main{inti=1sum=0;loop:ifi=10{sum+=i;i++;gotoloop;}printfsum=%d\nsum;}6.以下程序运行的结果________main{intx=2yz;x*=3+1;printf%dx++;x+=y=z=5;printf%dx;x=y==z;printf%d\nx;}7.以下程序运行的结果________#includestdio.h#includemath.hmain{intikmn=0;form=1;m=10;m+=2{ifn%10==0printf\n;k=sqrtm;fori=2;i=k;i++ifm%i==0break;ifik{printf%2dm;n++;}}}8.如果输入‘1’,‘2’,‘3’,‘4’,程序运行输出的是________#includestdio.hmain{charc;intik;k=0;fori=0;i4;i++{while1{c=getchar;ifc=0c=9break;}k=k*10+c-0;}printfk=%d\nk;}9.运行以下程序后,如果从键盘上输入china#回车则输出结果为________#includestdio.hmain{intv1=0v2=0;charch;whilech=getchar!=#switchch{casea:caseh:default:v1++;case0:v2++;}printf%d%d\nv1v2;}10.程序运行结果是_________#includestdio.hmain{inti;fori=1;i+1;i++{ifi4{printf%d\ti++;break;}printf%d\ti++;}}11.以下程序运行的结果是_________#includestdio.hmain{intab;fora=1b=1;a=100;a++{ifb=20break;ifb%3==1{b+=3;continue;}b-=5;}printf%d\na;}12.以下程序运行的结果是________main{inti=1;whilei10if++i%3!=1continue;elseprintf%di;}13.程序运行的结果是________main{intn=0;whilen++=1printf%d\tn;printf%d\nn;}14.此程序运行时,输入qwert程序的运行结果是_________#includestdio.hmain{charc;whilec=getchar!=putchar++c;}15.对以下程序当输入6514时,其运行结果是【1】当输入1463时,其运行结果是【2】当输入25125时,其运行结果时【3】#includestdio.hmain{intmn;scanf%d%dmn;whilem!=n{whilemnm-=n;whilenmn-=m;}printfm=%d\nm;}16.在执行以下程序时,为了使输出结果为t=4则给a和b输入的值应满足的条件是_______main{intstab;scanf〞%d%d〞ab;s=1; t=1;ifa0 s=s+1;ifab t=s+t;elseifa==bt=5;elset=2*s;printf〞t=%d\n〞t;}17.求出1000以内的“完全数”(提示如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”如6的因子是1,2,3而6=1+2+3,则6是个“完数”)main{intiam;fori=1;i1000;i++{form=0a=1;a=i/2;a++if!i%a【1】;if【2】printf%4di;}}18.鸡问题100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?#includestdio.hmain{intcockshenschicks;cocks=0;whilecocks=19{hens=0;whilehens=33{chicks=
100.0-cocks-hens;if
5.0*cocks+
3.0*hens+chicks/
3.0==
100.0printf%d%d%d\ncockshenschicks;【1】;}【2】;}}19.爱因斯坦的阶梯问题设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶问共有多少阶梯main{intladders=7;while【1】ladders+=14;printf%d\nladders;}20.下列程序计算平均成绩并统计90分及以上人数main{intnm;floatgradeaverage;average=n=m=【1】;while【2】{scanf%fgrade;ifgrade0break;n++;average+=grade;ifgrade90【3】;m++;}ifnprintf%.2f%d\naverage/nm;}21.下列程序计算Fibonacci数列1,1,2,3,5,8,13……的前40项main{intI;longf1f2;【1】;forI=0;I20;I++{printf%12ld%12ldf1f2;ifI%2printf\n;f1+=f2;【2】;}}22.下列程序判断一个数是否为素数#includestdio.h#includemath.hmain{intIkm;scanf%dm;k=sqrt【1】;forI=2;I=k;I++ifm%I==0【2】;if【3】printf%dyes\nm;elseprintf%dno\nm;}23.求100~499之间的所有水仙花数即各位数字的立方和恰好等于该数本身的数main{intIjkmn;forI=1;【1】;I++forj=0;j=9;j++fork=0;k=9;k++{【2】;n=I*I*I+j*j*j+k*k*k;if【3】printf%dm;}}24.从键盘上输入两个整数m和n求其最大公约数main{intabnum1num2temp;scanf%d%dnum1num2;if【1】{temp=num1;num1=num2;num2=temp;}a=num1;b=num2;whileb!=0{temp=【2】;a=b;b=temp;}printf%d%danum1*num2/a;}。