下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计》习题篇第一章C语言基础知识1.1选择题1.以下不是 C语言的特点的是()。)A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D>C语言移植性好2.卜列字符序列中,不可用作 C语言标识符的是()。Aabc123B. C_123_ D ._ok3.正确的C语言标识符是 ()。A_buy_2B.2_buyC._buy D.buy4.请选出可用作C语言用户标识符的一组标识符( )。Avoid B .a3_b3C.For D.2adefine _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。A\\ B .\0xAAC.\t D.\06.不属于C语言关键字的是(Aint B .breakC.while D.character7.是C语言提供的合法关键字的是()。AFloat B .signedC.integerD.Char8.以下不能定义为用户标示符的是()。Ascanf B .VoidC._3com_D.int9.一个C程序是由()。A.一个主程序和若干子程序组成B. 一个或多个函数组成C.若干过程组成D. 若干子程序组成10.C语言程序的基本单位是()。A.程序行 B .语句C函数 D字符11.下列说法中,错误的是()。A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在 main()函数中定义C语言程序总是从main()函数开始执行C语言程序中的main()函数必须放在程序的开始部分13.C编译程序是()。C程序的机器语言版本一组机器语言指令C.将C源程序编译成目标程序D.由制造厂家提供的一套应用软件.以下选项中,合法的用户标识符是( )。A.longB._2abcC.3dmaxD.以下选项中,合法的如常数是( )。A.B.E-3C.2E0D.a的ASCII码是97,则用八进制表示的.非法的常量D.'\abc.x2a2.a的ASCII码是97,则用八进制表示的.非法的常量D.'\abc.x2a2字符常量‘\101'是()。A.字符AB.字符aC.字符cD.以下选项中, 合法转义字符的选项是( )。A.' 'B.''018'C.'xab.以下选项中,正确的字符常量是( )。A."F' B.' ''C.'W.以下选项中可作为C语言合法整数的是A.10110BB.0386C.0XffaD.doubleb=1+;.float2_and=1-e-3;..doubleb=1+;.float2_and=1-e-3;TOC\o"1-5"\h\zA.short_a=; Blongdo=0xfdaL; D.一.9x ..)°.9*x**n/(2*x-1).9*pow(n,x)/(2*x-1).与数学式子上匚对应的)°.9*x**n/(2*x-1).9*pow(n,x)/(2*x-1)2x1A.9*xAn/(2*x-1) BC.9*pow(x,n)*(1/(2*x-1)) DC语百表达式是C语百表达式是()。3*a*b/c/da*b/d/c*3.若有代数式3ab,则不正确的cdA.a/c/d*b*3 BC.3*a*b/c*d D.已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=,y=;)n=n*3=18.y=float(m)))n=n*3=18.y=float(m)).a=(9+b,c=d+9).a=9+b++=c+9A.a+=a-=(b=2)*(a=8)TOC\o"1-5"\h\zC.x%3 D.以下符合C语言语法的赋值表达式是A.a=9+b+c=d+9 BC.a=9+b,b++,c+9 D
.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S='A+'6'-'3';后,S中的值为()。A.’ D’ B.68C.不确定的值 D.’C’.在C语言中,要求运算数必须是整型的运算符是( )。A./B.++C.*= D .%27.若有说明语句: chars=’\72’;则变量 s()。A.包含一个字符B.包含两个字符C.包含三个字符D.说明不合法,s的值不确定28.若有定义: intm=7;floatx=,y=;则表达式x+m%3*(int)(x+y)%2/4的值是()。A.B.C.D..在C语言中,char型数据在内存中的存储形式是( )。A.补码 B.反码 C.原码 D.ASCII码.设变量x为float类型,m为int类型,则以下能实现将 x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。A.x=(x*100+/m=x*100+,x=m/C.x=x*100+D.x=(x/100+*31.表达式13/3*sqrt/8的数据类型是()。A.intB.floatC.doubleD.不确定32.设以下变量均为int类型,则值不等于 7的表达式是()。A.(m=n=6,m+n,m+1)B.(m=n=6,m+n,n+1)C.(m=6,m+1,n=6,m+n)D.(m=6,m+1,n=m,n+1))。.233)。.2A.7B.8C.6D)。.s=’u+v)。.s=’u+v’;.s=1+2;A.s=’ 012’; BC.s=’1’+’2’; D35.已知s是字符型变量,下面正确的赋值语句是()。A.s=’A.s=’abc’; BC.s=’ xde’; D36.若有以下定义,则正确的赋值语句是( )。intx,y;s=08’;s=””;floatz;A.x=1,y=2, B .x=y=100C.x++; D .x=int(z);37.设 x、y均为float型变量,则不正确的赋值语句是()。A.++x; B .x*=y-2;C.y=(x%3)/10; D .x=y=0;.下列语句中符合C语言的赋值语句是()。a=7+b++=a+7;A.a=7+b+c=a+7;
a=7+b++=a+7;.a=7+b,c=a+7;.字符串.字符或字符型变量值。..a=7+b,c=a+7;.字符串.字符或字符型变量值。.提示出错、无结果.putchar函数可以向终端输出一个( )。A.整型变量表达式值。 BC.实型变量值。 D40.以下程序段的输出结果是 ()。inta=12345;printf(”%2dn”,a);A.12B.34C.12345D41.若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%”,&x,&y,&z);42.有如下程序段:intx1,x2;chary1,y2;scanf(”%d%c%d%”,c&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、AB,正确的数据输入是()。(注:一代表空格)A.10A-20B B .10-A20BC.10」A-20」B D .10A20-B43.若变量已正确说明为 float类型,要通过语句scanf(”%f%f%f”,&a,&b,&c);给a赋予,b赋予,c赋予,不正确的输入形式为()。A.10<回车> B .,,<回车>22<回车>33C.<回车> D .1022<回车><回车> 33<回车>44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:」代表空格)intx1,x2;chary1,y2;scanf(”%d%”,d&x1,&x2);scanf(”%c%”c,&y1,&y2) ;1020AB B .10-20-ABC10-20ABC.10-20ABAB45.已有定义 inta=-2;和输出语句:printf(”%8lx”, a);以下正确的叙述是( )。A.整型变量的输出格式符只有 %d一种%x是格式符的一种,它可以适用于任何一种类型的数据%*是格式符D.%8lx不是错误的格式符,其中数字 8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是()。floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);A<回车> B .,<回车><回车>C.A=,B=<回车> D .回车〉47.有如下程序段,从键盘输入数据的正确形式应是( )。(注:」代表空格)floatx,y,z;scanf(“x=%d,y=%d,z=%”d,&a,&y,&z);A123 B .x=1,y=2,z=3C.1,2,3 D .x=1-y=2-z=348以下说法正确的是( )。A.输入项可以为一个实型常量,如scanf("%f,;B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=5d);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%”,&f);D.当输入数据时,必须指明变量的地址,如scanf("%f,&f);49.根据定义和数据的输入方式,输入语句的正确形式为: ()。(注:」代表空格)已有定义:floatx,y;数据的输入方式:<回车><回车>Ascan(”%f,%f”,&x,&y); B.scanf(”%f%f”,&x,&y);C.scanf("%一%’,&x,&y);D.scanf(%%,&x,&y);50根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )。#include””main(){chars1,s2,s3;输入语句;printf(”%c%c%”c,s1,s2,s3);}输入形式:A-B-C<U车> (注:一代表空格)输出形式:A-BAscanf(”%c%c%”c,&s1,&s2,&s3);scanf("%c-%-c%c,&s1,&s2,&s3);Cscanf(”%c,%c,%c”,&s1,&s2,&s3);Dscanf(”%c%”c,&s1,&s2,&s3);51以下程序的执行结果是:()。#include””main(){intx=2,y=3;printf(”x=%%d,y=%%dn”,x,y);}A.x=%2,y=%3 B.x=%%d,y=%%dx=2,y=3 D.x=%d,y=%d52.以下程序的输出结果是( )。(注:」代表空格)#include””main(){printf(”nstring1=%15s*”,”programming”);
printf(”\nstring2=%-5s*”,”boy”);printf(”string3=%2s*”,”girl”);}A.string1=programming」」」」*b.stringl=一」」-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””main(){inta;floatb;输入语句main(){inta;floatb;输入语句输出语句}输入形式:1」〈回车〉 (注:输出形式:a+b=Ascanf(”%d%”f,&a,&b);printf(” na+b=%”,a+b);Cscanf(”%d,%f”,&a,&b);printf(” na+b=%”,a+b)54阅读以下程序,当输入数据的形式为:#include””main(){inta,b;scanf(”%d%”d,&a,&b);printf(”a+b=%dn”,a+b);}Aa+b=46 BCa+b=12 D55若有定义: intx,y;chars1,s2,s3;1 -2〈回车〉U -V-W相车〉则能给x赋给整数1,给y赋给整数字符W勺正确程序段是()。代表空格)Bscanf(”%d%”,&a,&b);printf(” na+b=%f”,a+b);Dscanf(”%d%”f,&a,&b);printf(” na+b=%f”,a+b);12,34,正确的输出结果为()。有语法错误不确定值并有以下输出数据:(注:一代表空格)2,给si赋给字符U,卫s2赋给字符V,卫S3赋给Ascanf(”x=%dy=%”d,&x,&y);s1=getchar();s2=getchar();s3=getchar();Bscanf(”%d%”d,&x,&y);s1=getchar();s2=getchar();s3=getchar();Cscanf(”%d%d%c%c”,%c&x,&y,&s1,&s2,&s3);Dscanf(”%d%d%c%c%c%c%”c,%&xc,&y,&s1,&s1,&s2,&s2,&s3,&s3);12填空题C语言的符号集包括 TOC\o"1-5"\h\z.结构化设计中的三种基本结构是 、 、 。.C语言源程序文件的后缀是 ,经过编译后生成文件的后缀是 ,经过链接后生成文件的后缀是 。.C语言的关键字都用 {大写或小写 }。.一个函数由两部分组成,它们是 、 。.函数体一般包括 、 。.C语言是通过 来进行输入和输出的。.以下程序的执行结果 。#include””main(){shorti=-1,j=1;printf(”dec:%d,oct:%o,hex:%x,unsigned:%u n”,i,i,i,i);printf(”dec:%d,oct:%o,hex:%x,u n”,j,j,j,j);}.以下程序的执行结果是 。#include””main(){chars=’b’;printf(”dec:%d,oct:%o,hex:%x,ASCII:%c n”,s,s,s,s);}.以下程序的执行结果是。(注:-代表空格)#include””main()floatpi=;printf( ”%f,%.4f,%,%”,pi,pi,pi,pi);printf( ”\n%e,%.4e,%,%”,pi,pi,pi,pi);}11.以下程序的执行结果是: 。#include””main()charc=’c’+5;printf(”c=%cn”,c);}.以下程序输入1-2-3后的执行结果是。(注:」代表空格)#include””main(){inti,j;chark;scanf(”%d%c%”d,&i,&k,&j);printf(”i=%d,k=%c,j=%dn”,i,k,j);}.有以下程序,若输入10后的执行结果是;若输入为:98-76—543210后的执行结果是;若输入为:987654—3210后的执行结果为:。(注:」代表空格)#include””
main(){intx1,x2;chary1,y2;scanf("%2d%3d%3c%c&x1,&x2,&y1,&y2);printf("x1=%d,x2=%d,y1=%c,y2=%cn”,x,y);}.若x和y均为int型变量,则以下语句的功能是。x+=y;y=x-y;x-=y;.有一输入函数 scanf("%d,k);则不能使 float类型变量k得到正确数值的原因是:16.有如下程序段,输入数据: 16.有如下程序段,输入数据: 12345ffl678intu;floatv;scanf("%3d%f,&u,&v);后,u的值是11],v的值是⑵3答案及部分解析.选择题答案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语言规定的关键字同名。 关键字如:auto,break,case,char,const,continue,default,do,double,else,entry,extern,for,float,goto,if,int,int,long,register,return,short,signed,sizeof,static,struct,unsigned,while,switch,typedef,void,volatile,unior这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。.解析:用指数形式表示一个实型常数时, E或e之前必须有数字,且E后面指数必须为整数。.解析:'\101'为转义字符,相对应一个 ASCII码字符。(101)8=(65)10=A..解析:转义字符的特征是以“ ”开头,其后跟一些字符,如\n,\t, ',\\,\}, ”\b,\f 等代表一些特殊的含义,而 后如跟数字,可以为八进制或者十六进制,将其转换为对应的ASCII码值,就可以得出对应的字符。 "”后跟八进制的写法:\0nn,或者\nn,表示“\0”或者"”后只能跟1或3位0——7之间的数字;"后跟十六进制的写法:\xnn,或者\nn,表示“\x”或者“”后只能跟 1或2位0——9及a——f(A——F)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“”;选项D的错误在于超长(多了一位)。21.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18); C的错误在于%运算符只能适用于整型数据, D的错误在于作类型转换时,应将类型加上括号,即为:y=(float)m31解析:逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自右的。第三个表达式y++,其隐含有两步操作:先取y的原值,再执行y=y+1运算;而本题中,虽然没有将 y赋给某个变量(取其原值),但还是一定会执行加运算的。因而,经过第三个表达式,y已经自加为 6,故x+y的值为8,相对应得表达式最终结果为 8。若本题改为:(x=2,y=5,z=y++,x+z) ,则其结果应为7。二填空题答案1答案:英文字母、数字、一些有特定含义的标点符号2答案:顺序结构、选择结构、循环结构答案:C,OBJ,EXE答案:小写答案:函数说明部分和函数体答案:变量定义部分和执行部分答案:输入和输出函数答案: dec:-1,oct:177777,hex:ffff,unsigned:65535dec:1,oct:1,hex:1,unsigned:1答案: dec:98,oct:142,hex:62,ASCII:b.答案:,,,一一」一一+00,+00,+00, --+00(注:由于c编译系统不同,我们上机使用的机器,其第二个 printf语句实际结果为:+00,+00,+00,--+00,即:小数点后取5位。)11答案:c=h12.答案:i=1,k=」,j=213答案:第一种情况的执行结果: x1=98,x2=765,y1=4,y2=1第二种情况的执行结果:x1=98,x2=76,y1=」,y2=3第三种情况的执行结果: x1=98,x2=765,y1=4,y2=214答案:交换 x和y的值15答案:(1)格式符应为: %f;(2)变量前边未加取地址符 &,即应为scanf(”%f”,&k);16答案:【1】123 【2】第二章选择结构21选择题1已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是()。A6 B 0 C 2 D 12设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为()。A1 B 2 C 3 D 4设x、y和z都是int类型变量,且 x=3,y=4,z=5,则下面的表达式中,值为0的表达式为()。A’x’&&’y’ Bx<=yCx||y+z&&y-z D !((x<y)&&!z||1).为了避免嵌套的if-else 语句的二义性,C语言规定else总是与()组成配对关系。A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的 ifD.同一彳亍上的if逻辑运算符两侧运算对象的数据类型()。A只能是 0或1B只能是 0或非0正数C只能是整型或字符型数据D可以是任何类型的数据以下关于运算符优先顺序的描述中正确的是()。A关系运算符 <算术运算符 <赋值运算符 <逻辑与运算符B逻辑与运算符 <关系运算符 <算术运算符 <赋值运算符C赋值运算符 <逻辑与运算符 <关系运算符 <算术运算符D算术运算符 <关系运算符 <赋值运算符 <逻辑与运算符下列运算符中优先级最高的是()。A<B&&C+D !=选择出合法的if语句(设intx,a,b,c;)()。A if(a=b)c++;B if(a=<b)c++;C if(a<>b)c++;D if(a=>b)c++;9能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是()。A(x>=-58)&&(x<=-40)&&(x>=40)&&(x<=58)B (x>=-58)||(x<=-40)||(x>=40)||(x<=58)C (x>=-58)&&(x<=-40)||(x>=40)&&(x<=58)D(x>=-58)||(x<=-40)&&(x>=40)||(x<=58)10判断char型变量s是否为小写字母的正确表达式是()。A’a’<=s<=’z’ B(s>=’a’)&(s<=’z’)
C.(s>=’a’)&&(s<=’z’)D.(’C.(s>=’a’)&&(s<=’z’)D.(’a’<=s)and(’z’>=s)11.若希望当x的值为奇数时,表达式的值为“真” ,x的值为偶数时,表达式的值为“假”则以下不能满足要求的表达式是()A.x%2==1 B .!(x%2==0)C.!(x%2) D .x%212.已知 x=45,y=’a’,z=0;则表达式(x>=z&&y<’z’A.0 B .语法错C.1 D .“假”13.指出下列程序段所表示的逻辑关系是() 。||!y)的值是()。if(a<b){if(c==d)x=10;}elsex=-10;A.x1010B.1010C.xD.x10101010ab且cd
ab且cd
ab且cd
abab且cd
ab且cd
ab且cd
cdx0x0 ,以下程序段中不能根据x0x0x0 ,以下程序段中不能根据x0x值正确计算出y值的是()。14.有一函数:y01A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;B.y=0;if(x>0)y=1;elseif(x<0)y=-1;C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;15.执行以下语句后, y的值为()。intx,y,z;x=y=z=0;++x||++y&&++z;A.016.已知 inta=1,b=2,c=3;if(a>b)c=a;a=b;b=c;A.a=1,b=2,c=3C.a=2,b=3,c=117.请阅读以下程序:该程序()#include”stdio.h”main()以下语句执行后.2a,b,c不确定值a=2,b=3,c=3a=2,b=3,c=2{intx=-10,y=5,z=0;if(x=y+z)printf(elseprint***f(”$$$nn”););}A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是()#include””main(){inta=1;if(a++>1)printf(else}A.0printf(”%d”%dn”n”a);--);19.当a=1,b=2,c=4,d=3if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=4;时,执行完下面一段程序后.1执行完卜面一段程序后elsex=5;A.120.执行以下程序段后,变量inta=1,b=0,x,y,z;x=(--a==b++)--a :++b;2x,y,zy=a++;z=b;A.x=0,y=0,z=0 BC.x=0,y=1,z=0 Dx=-1,y=-1,z=1x=-1,y=2,z=121.a、b、c、d、w均为int类型变量,则执行下面语句后的a=1;b=2;c=3;d=4;w值是()。22.)23.24.,w=w=w=A.a<b)w<c)w<d)1b;c;d;.2以下程序的输出结果是()#include””main(){inta=5,b=4,c=6,d;printf(”%dn,d=a>ba>ca:c:b);}A.若A.C.5a、b、Bc1、c2、x、y均为整型变量,正确的.6正确的Dswitch语句是().不确定。switch(a+b);{case1:y=a+b;break;case0:y=a-b;break;}switch(a*a+b*b){case3:switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;switch(a-b)case1:y=a+b;break;case3:y=b-a;break;}执行下列程序,输入为#includemain(){intk;scanf(”%d”,&k);switch(k){case1:printf(printf(printf(printf(break;default:printf(}}A.3{default:y=a*b;break;case3:x=a+b;break;case10:case11:y=a-b;break;}3的数出结果是()n”n”n”n”,k++);,k++);,k++);,k++);n”);25.假定等级和分数有以下对应关系等级 A 分数 85等级 B 分数 6010084等级:C 分数:60以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是()A.switch(grade){ case ’ A’ : printf( ” 85——case ’ B’ : printf( ” 60——case ’ C’ : printf( ”default:printf(”}B.switch(grade){ case ’ A’ : printf( ” 85——break;case ’ B’ : printf( ” 60——case ’ C’ : printf( ”能够完成该功能的程序段是()n”);n”);n”);n”);n”);n”);n”);。default:printf(”}C.switch(grade){case’A’ :printf(break;case’B’ : printf(break;case’C’ : printf(default:printf(”}D.switch(grade){case’C’ :printf(break;case’B’ : printf(break;default:printf(”break;case’A’ :printf(}26.有如下程序,写出该执行结果()#include””main(){grade”85——”60——”””60——”85——。iserror!\nn”n”);n”);n”) ;n”);n””););n”);n”););floatx=,y;if(x<y=;elseif(x<y=x;elsey=;printf(”n”,y);}A.B.C.D27.以下程序的运行结果是() 。#include””main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(” n”,c);}A.0B.128.运行以下程序后,如从键盘上输入#include””main(){intv1=0,v2=0;charch;while((ch=getchar())!=switch(ch){case’a’:case’h’:default:v1++;case’o’:v2++;}printf(”n”,v1,v2);}A.2,0B.5,029.有以下程序,若输入为字符 s,则程序运行结果为#include””main(){charch;ch=getchar();switch(ch){case ’ a’ : printf( ”default:printf(”case ’ b’ : printf( ”case ’ c’ : printf( ”}}A.end!B.end!b=sc=s30.有以下程序,程序运行后的输出结果是(#include””C.2D .3china#,则输出为(。#’)C.5,5D.2,5。n”,ch);n”);n”,ch);n”,ch);C.有语法错误D.a=send!main()inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(” n”,m);3 D 3 D 4A1 B 2 C22填空题若从键盘输入 58,则输出结果是 。#include””main(){inta;scanf(”%d”,&a);if(a>50)printf(”%d”,a);if(a>40)printf(”%d”, a);if(a>30)printf( ”%d”, a);}. 设intx=9 , y=8;表达式x==y+1的结果是。. 定义intx , y;执行y=(x=1,++x,x+2);后,y的值是。定义intx=10,y,z;执行y=z=x;x=y==z;后,x的结果是 设inta=1,b=2,c,d,e;执行c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(a/(--a));请问a,b,c,d,e的结果是: 。设inta=2,b=3,c,d,e,f;执行c=(a++>=--b);d=(a==++b);e=(a--!=b);f=(++a>b--);请问a,b,c,d,e,f的结果是: 。以下程序的运行结果是 。#include””main(){inta,b,c,s,w,t;s=w=t=0;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}elseif(c>0)w=a-b;elset=c;printf("%d%d%d”,s,w,t);}.以下程序的运行结果是。#include””main(){inta,b,c,d,e;a=c=1;b=20;d=100;if(!a)d=d++;elseif(!b)if(d)d=--d;elsed=d--;printf("n",d);}.以下程序的运行结果是。#include””main(){inta,b=250,c;if((c=b)<0)a=4;elseif(b=0)a=5;elsea=6;printf(" n”,a,c);if(c=(b==0))a=5;printf( " n",a,c);if(a=c=b)a=4;printf( " n”,a,c);}.下面程序根据以下函数关系,对输入的每个 x值,计算出y值。请在“内填空。xy2vx<=10x(x+2)-1<x<=21/xx<=-1 x-1#includemain(){intx,y;scanf("%d,&x);if( [1])y=x*(x+2);elseif( 【2】)y=1/x;elseif(x<=-1)y=x-1;else【3】;if(y!=-1)printf("%d,y);elseprintf("error");}11.以下程序的功能是计算一元二次方程#include””#include””main(){floata,b,c,t,disc,w,term1,term2;printf("entera,b,c:");
scanf(%f%f%f",&a,&b,&c);if(11】)if( [2])printf("elseprintf("else{disc=b*b-4*a*c;w=2*a;term1=-b/w;t=abs(disc);term2=sqrt(t)/w;if(13】)printf( "elseprintf( "}}ax2+bx+c=0的根。请在[]内填入正确内容。n);n”,-c/b);n”,term1,term2);n”,term1+term2,term1-term2)12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请在口内填入正确内容。#include””#include””main(){floata,b,c,s,area;printf("pleaseinputthreeedgesofatriangle: ");scanf("%f%f%f,&a,&b,&c);if( 【1){s=(a+b+c)/2;area=sqrt(s*(s-A*(s-B*(s-c));printf(”ntheareaofthetriangleis:%f”,area);if((a==b)&&(b==c))TOC\o"1-5"\h\zprintf( ”等边三角形” );elseif( 【2 )printf( ”等腰三角形” ):elseif( 【3 )printf(”直角三角形”):elseprintf(”一般三角形”):}elseprintf(”不能组成三角形”);}13.以下程序的功能是判断输入的年份是否是闰年。请在【内填入正确内容。#include””main(){intyear,flag;printf(”pleaseinputtheyeartojudewhetheritisaleapyear: ”);scanf(”%d”,&year);if(year%400==0)flag=1;elseif( 【1)flag=1;else【2;if(flag)printf( ” n”,year);elseprintf(” n”,year);}14.以下程序是对用户输入的字母进行大小写转换。请在【内填入正确内容。#include””main(){charch;printf(”pleaseinputaletter: ”);scanf(”%c”,&ch);if( 【1)ch=ch+32;elseif(ch>= ’a’&&ch<=’z’)【2;printf(”theconvertedletteris:%c n”,ch);}15.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。请在【内填入正确内容。#include””main(){inta,b,c,min;printf(”pleaseinputthreenumbers:scanf(”%d%d%”d,&a,&b,&c);if( 【1】)min=b;elsemin=a;if(min>c)【2】;printf(”min=%dn”,min);”);}16.以下程序实现这样的功能:商店卖西瓜,以上的每斤元,4斤以上的每斤元,10斤以上的每斤元,8斤以上的每斤元,4斤以下的每斤元,从键盘输入西瓜的重量和顾客所6斤付钱数,则输出应付款和应找钱数。请在【】内填入正确内容。#include””main(){floatweight,money,rate;printf(scanf(printf(scanf(thepaidmoneyoftheclientis:%f”,&money);theweightofthewatermelonis:%f”,&weight);”);”);if( 【1】)rate=;elseif(weight>8)rate=;elseif(weight>6)【2】;elseif(weight>4)rate=;【3】rate=;printf(
printf(”theaccountpayableofthewatermelonis%f”thechangeforclientis%f_” _n”,moneyn”,weight*rate);-weight*rate);}17.以下程序段的运行结果是 #include””main(){charch1=’a’,ch2=’A’;switch(ch1){case’a’:switch(ch2){case’A’:printf(case’B’:printf(good!bad!);break;n”);break;case'b':printf("joke n");}}18.根据以下函数关系,对输入的每个 x值,计算出相应的y值。请在口内填入正确内容。xyx<000<=x<10x10<=x<201020<=x<40+20#includemain(){intx,rate;floaty;printf("pleaseinputthevalueofx: ");scanf("%d,&x);if( 【1】)rate=-1;elserate=⑵;switch(rate){case-1:y=0;break;case0:y=x;break;y=10;break;y=*x+20;break;y=-2;}if( 【3】)printf("y=%fn”,y);elseprintf("thevalueofxisinvalid! n");}19.以下程序实现的功能是:从键盘输入某年某月,输出该年份该月的天数。请在[]内填入正确内容。#include””main(){intyear,month,days,leap;printf("pleaseinputbothyearandmonth: ");scanf("%4d/%2d,&year,&month);switch( [1]){case1:case3:case5;case10:case12:days=31;2】case4:case6:case9:case11:days=30;break;case2:if(year%400==0)leap=1;elseif(year%4==0&&year%100!=0)leap=1;else 【3】;if(leap)days=29;elsedays=28;}printf("%~年%~月的天数为 n",year,month,days);}20.以下程序完成两个数的四则运算。请在【】内填入正确内容。#include””main(){floatx,y;charoperator;printf(”pleaseinputtheexpression: ”);scanf(”%f%c%”f,&x,&operator,&y);switch({casecasecasecaseswitch({casecasecasecase【3】:+’:printf(”%g%c%g=%gn”,x,operator,y,x+y);【2】;-y);-’:printf(”%g%c%g=%gn”,x,operator,y,xbreak;-y);*’:printf(”%g%c%g=%gn”,x,operator,y,x*y);break;/’:if(y==printf(”除零错误!n”);elseprintf(”%g%c%g=%gn”,x,operator,y,x/y);break;printf(”表达式存在错误n”);21.以下程序运行后的输出结果是#includemain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;
printf("%d,%dn”,x,y);}22.执行以下语句后,x、y和z的值分别为intx,y,z;x=y=z=0;++x||++y&&++z;2.3答案及部分解析一.选择题答案1.D2 .B3.D4 .C5.D 6.C7.C8 .A9.C10 .C11.C 12.C13.B14 .C15.A16 .B17.C 18.C19.B20 .B21.A22 .C23,D 24.C25.D26 .C27.C28 .C29.A 30.A2.解析:当条件1:m=a>b的值为假时,便已经确定整个表达式的值为假,所以不必再继续判断第二个表达式的逻辑值。由于没有执行第二个表达式n=c>d,所以n的值仍为2。17.解析:if的条件表达式x=y+z为赋值语句,x=5为非零值,即为if⑴printf("***\n”力23.解析:A.的错误在于switch(a+b);其后有一个“;",B的错误在于switcha的条件表达式a没有括号,应该为switch(a),C的错误在于有两个case具有相同的入口值。28.解析:当输入c时,switch语句执行情况为:switch(ch)因为没有break语句v1=v2—因为没有break语句v1=v2—从此处向下执行case ' h':从此处向下执行default:v1++;case ' 0' : v2++;当继续输入h时,switch语句的执行情况为:从此处向下执行switch(ch){case'a'从此处向下执行switch(ch){case'a':吠case h:default:v1++;case'0':v2++;-4 因为没有break语句v1v2v11 2v21 2重复上述过程,输入5个有效字符,则v1和v2执彳T5次自加操作,所以:v1=5,v2=5二.填空题答案.答案:585858解析:虽然三个if语句按照嵌套方式书写,但是程序仍然是依顺序运行的,会分别对每一个if的条件表达式进行判断,若其条件表达式为真,就执行其后的语句,否则,不执行。.答案:1
解析:注意该表达式是关系表达式的双等号,所以其结果只能为1或0。3答案: 44答案: 15.答案:在TurboC编译系统下,结果为a=2,b=3,c=2,d=3,e=-1;若在VisualC++下,结果为a=2,b=3,c=2,d=3,e=-0。解析:①在TurboC编译系统下,解题过程如下:第一个赋值语句“c=(-a++)+(++b);”可分解为如下的几个语句:bb1cabb213,c 132,a112aa1此时a=2,b=3,c=2。第二个赋值语句“ d=(b--)+(++a)-a; ”可分解为如下的几个语句:aa1dbaaa213,d 3333,b312bb1此时a=3,b=2,c=2,d=3。第三个赋值语句“ e=(a/(++b))-(a/(--a)); ”中由于自加、自减运算符的优先级高于其它运算符,故先运算++和--,令a=2,b=3,然后该等式中a的值都取2参与运算,故该等式等价与:“e=2/3-2/2;”,因此e的值等于0。此时 a=2,b=3,c=2,d=3,e=0②在VisualC++编译系统下,解题过程如下:前两条赋值语句“c=(-a++)+(++b); "、"d=(b--)+(++a)-a;"的运算过程和在TurboC编译系统一样,第三个赋值语句“ e=(a/(++b))-(a/(--a)); ”可按步骤分解为如下的几个语句bb1ea/ba/(a1)b213,e3/33/20,a2aa1因此,其结果为a=2,b=3,c=2,d=3,e=-06答案: a=3,b=2,c=1,d=1,e=0,f=0解析:第一个赋值语句 c=(a++>=--b); 可以分解为如下的语句:bb1c(ab)b312,c(2 2)1,a213aa1第二个赋值语句d=(a==++b);可以分解为如下的语句:bb1
d(ab)b2第三个赋值语句 e=(a--!=b);e(a!b)bb1
d(ab)b2第三个赋值语句 e=(a--!=b);e(a!b)aa1e(3!第四个赋值语句 f=(++a>b--);13,d(3 3)1可以分解为如下的语句:3)0,a312可以分解为如下的语句:aa1f(ab)aa13,f(33)0,b312bb1由以上各步,可以得到a=3,b=2,c=1,d=1,e=0,f=07.答案 20 0解析参看如下的注释语句。if(c>0)s=a+b;/*c=3>0为真,所以执行 s=a+b语句;即s=2*/if(a<=0)/*由于a=-1,故a<=0为真,所以执行其后的大括号内的语句 */{if(b>0)/*由于b=3,故b>0为真,可以继续下面的语句*/if(c<=0)w=a-b;/*由于c=3,c<=0为假,其后 w=a-b不会执行*/}elseif(c>0)w=a-b;/*这一对if-else因a<=0为真,所以没有机会执行到*/elset=c;8.答案1009.答案6 250510010.答案【1】x>2&&x<=10 【2】x>-1&&x<=2 【3】y=-111.答案【1】a==0 【2】b==0 【3】disc<012.答案【1】(a+b>c)&&(b+c>a)&&(a+c>b)【2】(a==b)||(b==c)||(a==c)【3】(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)13.答案【1】(year%4==0)&&(year%100!=0) 【2】flag=014.答案【1】ch>=’A’&&ch<=’Z’ 【2】ch=ch-3215.答案【1】a>b 【2】min=c;16.答案17.答案【1】weight>10 【2】rate= 【3】elsegood!joke18.答案【1】x<0 【2】x/10 【3】y!=-219.答案【1】month 【2】break; 【3】leap=0;20.答案21.答案22.答案【1】operator 【2】break 【3】default20,01,0,0第三章循环结构31选择题以下程序的输出结果是 ()。main(){intn=4;while(n--)printf(〞%d〞,--n);}以下程序的输出结果是 ()。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}当执行以下程序段时。x=-1;do{x=x*x;}while(!x) ;A.循环体将执行一次 B.循环体将执行两次C.循环体将执行无数多次 D.系统将提示有语法错误执行以下程序后输出的结果是()。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}下面程序的输出结果是()。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a);}=4,y=4,a=1 =5,y=5,a=1=5,y=4,a=3 =5,y=4,a=16若 i,j已定义为int类型,则以下程序段中内循环的总的执行次数是 ()。for(i=5 ;i;i--)for(j=0 ;j<4;j++){…}7请读程序:#include<>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}上面程序的输出结果是()。=2,b=1 =1,b=1 =1,b=0 =2,b=28若有以下程序段, w和k都是整型变量w=k;LB:if(w==0)gotoLE;w--;printf(〞*〞);gotoLB;LE:则不能与上面程序段等价的循环语句是()。for(w=k;w!=0;w--)print(〞*〞);w=k;while(w--!=0)printf(〞*〞);w++;w=k;do{w--;printf(〞*〞);}while(w!=0) ;(w=k;w;--w)printf( 〞*〞);下面程序的输出是()。
main(){char*s=〞〞;intk,v1=0,v2=0,v3=0,v4=0 ;for(k=0;s[k];k++)switch(s[k]){default:v4++;case1:v1++;case2:v2++;csse3:v3++;}printf(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4) ;}=4,v2=2,v3=1,v4=1 =4,v2=9,v3=3,v4=1=5,v2=8,v3=6,v4=1 =8,v2=8,v3=8,v4=8.有以下程序#include〞〞intabc(intu,intv);main(){intc,a=24,b=16;c=abc(a,b);printf(〞%d\n〞,c);}intabc(intu,intv){intw;while(v){w=u%v; u=v; v=w;}returnu;}输出结果是 () 。.在下列选项中,没有构成死循环的程序段是()。i=100;while(1){i=i%100+1;if(i>100)break;););B.for(}}k=1000;do{++k;}while(k>=10000) ;s=36;while(s);--s;.若输入B,以下程序的运行结果为( )。main(){chargrade;scanf("%c",&grade);switch(grade){case'A':printf(">=85.");case'B':case'C':printf(">=60.");case'D':printf("<60.");default:printf("error.");}}A.>=85. B.>=60. C.>=60.<. .列程序运行的情况是( )。main(){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);运行出现错误}运行出现错误=10,sum=9 =9,sum=9 =2,sum=1D.有以下语句:i=1;for(;i<=100;i++)sum+=i;与以上语句序列不等价的有 () 。for(i=1;;i++){sum+=i;if(i==100)break;}for(i=1;i<=100;){sum+=i;i++;}i=1;for(;i<=100;)sum+=i;i=1;for(;;){sum+=i;if(i==100)break;i++;}15下面程序的运行结果为( )。main(){intn;for(n=1;n<=10;n++){if(n%3==0)continue;printf("%d",n);}A. D.16A. D.16下面程序的运行结果是()。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}=4 =0 =2 =317标有 /**/的语句的执行次数是()。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/**/}18在 C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。A.只能用逻辑表达式 B. 只能用关系表达式C.只能用逻辑表达式或关系表达式 D.可用任意表达式19.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是( )。A.(!E==0) B.(E>0||E<0) C.(E==0) D.(E!=0)20假定所有变量均已正确定义,下列程序段运行后 x的值为()。k1=1;k2=2;k3=3;x=15;if(!k1)x--;elseif(k2)if(k3)x=4;elsex=3;21执行下面语句的输出为( )。inti=-1;if(i<=0)printf(“****n”);elseprintf(“%%%%n”);A.**** B.%%%% C.%%%%cD. 有错,执行不正确22下列程序的输出是( )。#include<>main(){inti;charc;for(i=0;i<=5;i++){c=getchar();putchar(c);}}程序执行时从第一列开始输入以下数据, <CR>弋表换行符。u<CR>w<CR>xsxsta<CR>xsxsta
23下列程序的输出为( )。#include""main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j-0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}=4 =8 =6 =1224下列程序的输出为( )。#include<>main(){inti,j,k=0,m=0;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf("k=%d,m=%d\n",k,m);}=0,m=3 =0,m=5 =1,m=3 =1,m=525在 C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()。D. 非026.在C26.在C语言中,为了结束由值应为()。do-while语句构成的循环,D.while后一对圆括号中表达式的非027下列程序的输出为()。#include<>27下列程序的输出为()。#include<>main(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break;default:k=k/3;}k++;while(c<'G');printf("%d\n",k);}=3 =4 =2 =0C语言的if语句嵌套时,if与else的配对关系是( )。每个else总是与它上面的最近的if配对每个else总是与最外的if配对每个else与if的配对是任意的每个else总是与它上面的if配对29下列程序的输出为( )。#include<>main(){inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;printf("i=%d,j=%d,a=%d\n",i,j,a);}=0,j=0,a=6 =1,j=1,a=7 =1,j=0,a=7 =0,j=1,a=730下列程序段的输出结果为( )。main(){intx=3;do{printf("%3d",x-=2);}while(!(--x));}0 -2D. 死循环32填空题:1当输入19,2,21时下列程序运行的结果是 。main(){inta,b,c,max;printf("pleasescanthreenumbera,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("maxis:%d",max);}.若输入字母C,程序输出结果为【1】;若输入字符*,程序将【2】。#include<>main(){charc1,c2;c1=getchar();while(c1<97||c1>122)c1=getchar();c2=c1-32;printf("%c,%c\n",c1,c2);}以下程序运行的结果为 。main(){inta,b,c,x,y,z;a=10;b=2;c=!(a%b);x=!(a/b);y=(a<b)&&(b>=0);z=(a<b)||(b>=0);printf("%d,%d,%d,%d\n",c,x,y,z);}若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】.main(){intx,y;scanf("%d",&x);if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}elseif(x<10){y=2*x-1;printf("x=%d,y=2*x-1=%d\n",x,y);}else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}5以下程序运行的结果 。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}6以下程序运行的结果 。main(){intx=2,y,z;x*=3+1;printf("%d,",x++);x+=y=z=5;printf("%d,",x);x=y==z;printf("%d\n",x);}7以下程序运行的结果 。#include<>#include<>main(){inti,k,m,n=0;for(m=1;m<=10;m+=2){if(n%10==0)printf("\n");k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k){printf("%2d",m);n++;}}}8如果输入‘ 1’,‘2’,‘3’,‘4’,程序运行输出的是 。#include<>main(){charc;inti,k;k=0;for(i=0;i<4;i++){while(1){c=getchar();if(c>='0'&&c<='9')break;}k=k*10+c-'0';}printf("k=%d\n",k);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年甘肃省卫生健康委系统招聘52人笔试参考题库及答案详解
- 2026河南郑州凯安医院招聘笔试备考题库及答案详解
- 2026上海市公共卫生临床中心放疗科招聘笔试备考试题及答案详解
- 2026江苏淮安市清江浦区清河街道公益性岗位(第二批)招聘1人笔试模拟试题及答案详解
- 集体捐赠协议2026年版
- 濂溪区福宁康养有限公司面向社会公开招聘工作人员笔试备考题库及答案详解
- 2026云南大学附属医院招聘2人笔试模拟试题及答案详解
- 2026年浙江大学医学院附属第一医院公开招聘人员2人(第二批)笔试备考题库及答案详解
- 2026年安徽省农村义务教育阶段学校教师特设岗位计划招聘80名笔试备考试题及答案详解
- 2026年湖南岳阳市君山区区直事业单位集中选调17人笔试参考题库及答案详解
- 电气设备安全管理制度
- GB/T 11264-2025热-轧轻轨
- 艾草枕头课件
- 2024-2025学年四川省内江市市中区天立学校九年级下学期一模考试数学试题
- 苏州安全生产六化培训
- 《CRTAS-2024-06 互联网租赁自行车停放区设置指南》
- DB32∕T 3839-2020 水闸泵站标志标牌规范
- 苏教版高一下册数学必修第二册-第14章统计章末复习【含答案】
- 浙美版 七年级下册 美术期末试卷(后附答案)
- 2025年全国统一高考数学试卷(全国二卷)含答案
- 学生会融媒体工作报告
评论
0/150
提交评论