C语言基础练习题含答案_第1页
C语言基础练习题含答案_第2页
C语言基础练习题含答案_第3页
C语言基础练习题含答案_第4页
C语言基础练习题含答案_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.1.1选择题1.1选择题1.A、B、C、D、以下不是C语言的特点的是()。语言简洁紧凑能够编制出功能复杂的程序C语言可以直接对硬件操作C语言移植性好D.6.D.7.D.6.D.7.\0不属于C语言关键字的是()。A.int B.breakcharacter是C语言提供的合法关键字的是(A.FloatC.integer以下不能定义为用户标示符的是(C.whileB.signedD.Char2.下列字符序列A.abc123中,不可用作C语言标识符的是()。B.no.1C._123_D.ok3.正确的C语言标识符是()。A._buy_2B.2_buyC.?_buyD.buy?4.请选出可用作C语言用户标识符的一组标识符()。A.voidB.a3_b3 C.ForD.2adefine_123-abcDOWORDIFCasesizeof5.下列符号中,不属于转义字符的是()。A.\\B.\0xAAC.\tB.VoidC._3comB.VoidC._3comC.函数D.int一个C程序是由()—个主程序和若干子程序组成—个或多个函数组成若干过程组成若干子程序组成C语言程序的基本单位是()A.程序行 B.语句下列说法中,错误的是()A.每个语句必须独占一行,语句的最后可以是一个分也可以是一个回车换行符下列说法中,错误的是()A.每个语句必须独占一行,语句的最后可以是一个分也可以是一个回车换行符B.每个函数都有一个函数头和一个函数体,主函数也不例外口.号,口.号,C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数以下说法中正确的是()。A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分)。C编译程序是)。A.C程序的机器语言版本B.一组机器语言指令C.将C源程序编译成目标程序2121.2121.14.D.15.D.16.D.由制造厂家提供的一套应用软件以下选项中,合法的用户标识符A.Iong14.D.15.D.16.D.由制造厂家提供的一套应用软件以下选项中,合法的用户标识符A.IongA.dat以下选项中A.5E2.01.3E已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'101'是B.2abc是(C.)。3dmax18.()。A.字符A法的常量以下选项中,A.''D.'abc以下选项中A•”F”合法的实型常数是(B.E-3 C.B.字符a)。2E0C.字符c合法转义字符的选项是()B.'018' C.’xab',正确的字符常量是()。B.''' C・'W'19.D.2019.D.20.A.10110BB.0386 C.0Xffax2a2下列变量定义中合法的是A.A.B.C.D.doubleb=1+5e2.5;longdo=0xfdaL;float2_and=1-e-3;与数学式子匚对应的C语言表达式是()与数学式子2x1A.9*xAn/(2*x-1)B.9*x**n/(2*x-1)C.9*pow(x,n)*(1/(2*x-1))D.9*pow(n,x)/(2*x-1)若有代数式3ab,则不正确的C语言表达式是()。cda/c/d*b*33*a*b/c/d3*a*b/c*da*b/d/c*3已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;A.B.C.A.B.C.D.a+=a-=(b=2)*(a=8)n=n*3=18x%3y=float(m)A.B.CA.B.C.D.25.a=9+b+c=d+9a=(9+b,c=d+9)a=9+b,b++,c+9a=9+b++=c+9已知字母A的ASCII码为十进制数65,且S为字符

型,则执行语句S='A'+'6''3'后,S中的值为()。''68C.不确定的值D.C()。.在C()。A./ B.++ C.*=D.%.若有说明语句:chars='\72'则变量s()。

A.包含一个字符B.包含两个字符包含三个字符D.说明不合法,s的值不确定28.若有定义:intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是()。2.5000002.7500003.5000002.5000002.7500003.5000000.000000B.C.D.29.在C语言中,char型数据在内存中的存储形式是()。A.补码B.反码C・原码D.ASCII码A.B.C.D.31.表达式13/3*sqrt(16.0)/8的数据类型是()。A.B.C.D.31.表达式13/3*sqrt(16.0)/8的数据类型是()。x=(x*100+0.5)/100.0m=x*100+0.5,x=m/100.0x=x*100+0.5/100.0x=(x/100+0.5)*100.0A.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)33.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是()。A.7 B.8D.2C.634.已知s是字符型变量,下面不正确的赋值语句是(A.s='\012';‘u+v;'C.s='1'+'2';D.s=1+2;35.已知s是字符型变量,下面正确的赋值语句是(A.B.C.D.36.若有以下定义,则正确的赋值语句是( )。intx,y;floatz;A.B.C.D.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;s=*'abc';s='\08';s='xde';s=””;x=1,y=2,x=y=100x++;x=int(z);)。B.s=)。)。B.a=7+b++=a+7;C.a=7+b,b++,a+7D.a=7+b,c=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型,以下不合法的seanf()函数调用语句为()。A.scanf(”%d%lx,%le”,&x,&y,&z);seanf(”%2d*%d%lf”,&x,&y,&z);seanf(”%x%*d%o”,&x,&y);D。seanf(”%x%o%6.2f”,&x,&y,&z);42.有如下程序段:intx1,x2;ehary1,y2;seanf(”%d%e%d%e”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:」代表空格)A.A.B.C.D.10-A20B10」20—B10A20」B43.若变量已正确说明为float类型,要通过语句seanf(”%f%f%f”,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式为()。A.B.C.D.c赋予33.0,10<回车>10.0,22.0,33.0<回车>22<回车>3310.0<回车>22<回车>33.0<回车>1022.033<回车>有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:」代表空格)intx1,x2;chary1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”,&y1,&y2);A.1020AB10」20MABCC・10」2010二0ABAB已有定义inta=-2;和输出语句:printf(”%8lx”,a);44.B.D.45.以下正确的叙述是()。A•整型变量的输出格式符只有%d一种B・%x是格式符的一种,它可以适用于任何一种类型的数据C・%x是格式符D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是( )。floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);A.2.04<回车>B・2.04,5.67V回车>5.67<回车>C・A=2.04,B=5.67v回车>车>47.有如下程序段,从键盘输入数据的正确形式应是()。(注:」代表空格)floatx,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123B.x=1,y=2,z=3C.1,2,3y=2」z=348.以下说法正确的是( )。A.输入项可以为一个实型常量,如scanf(”%f”,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f);D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);49.根据定义和数据的输入方式,输入语句的正确形式为:()o(注:」代表空格)已有定义:floatx,y;数据的输入方式:数据的输入方式:1.23<回车 >数据的输入方式:数据的输入方式:1.23<回车 >4.5<回车>A.scan(4.5<回车>A.scan(”%f,%f”,&x,&y);scanf(”%f%f”,&x,&y);C・scanf(”%3.2f」%2.1f”,&x,&y);scanf(”%3.2f%2.1f”,&x,&y);根据下面的程序及数据的输入和输出形式,。B.程序中输入B.D.scanf(”%c%c%”c,&s1,&s2,&s3);scanf(”%c」%」c%c”,&s1,&s2,&s3);scanf(”%c,%c,%c”,&s1,&s2,&s3);scanf(”%c%c”,&s1,&s2,&s3);)。D.50.语句的正确形式应该为()#include”stdio.h”main(){chars1,s2,s3;输入语句;printf(”%c%c%c”,s1,s2,s3);}输入形式:A」B」Cv回车>代表空格)输出形式:A」BA.B.C.D.51.以下程序的执行结果是:(#include”stdio.h”main(){intx=2,y=3;printf(”x=%%d,y=%%d\n”,x,y);}A.x=%2,y=%3x=%%d,y=%%dC.x=2,y=3x=%d,y=%dstring1=programming」」」柑string1=programming」」」柑string1=」」」programming*string2=boy*string2=boy」」stnng3=gi*string3=gi*C・string1=programming」」」〜D.string1=string2=string2=boy53・根据题程序中输入输出语句的正确内容是()#include”stdio.h”main(){inta;floatb;输入语句

输出语句}输入形式:输出形式:A・scanf(。(注:」弋表空格)52・以下程序的输出结果是(。(注:」弋表空格)main(){printf(”\nstring1=%15s*”,”programming”);printf(”\nstring2=%-5s*”,”boy”);printf(”string3=%2s*””,girl”);}A・B・'—''—' programming*boy*string3=girl*~'*string3=girl*中已给出的数据的输入和输出形式,。(注:」代表空格)1」2.3<回车>(注:」代表空格)a+b=3.300”%d%”f,&a,&b);B.scanf(”%d%3.1f”,&a,&b);printf(”\na+b=%5.3f”,a+b);printf(”\na+b=%f”,a+b);12,34,正确的B12,34,正确的B.有语法D.不确定C.scanf(”%d,%f”,&a,&b);D.scanf(”%d%f”,&a,&b);printf(”\na+b=%5.3f”,a+b)printf(”\na+b=%f”,a+b);54.阅读以下程序,当输入数据的形式为:输出结果为()。#include”stdio.h”main(){inta,b;scanf(”%d%d”,&a,&b);printf(”a+b=%d\n”,a+b);}A.a+b=46错误C.a+b=12值55.若有定义:intx,y;chars1,s2,s3;并有以下输出数据:(注:」代表空格)1」2<回车>U—V」Wv回车>则能给x赋给整数1,合y赋给整数2,合s1赋给字符U,给s2赋给字符V,合s3赋给字符W的正确程序段是()。A.scanf(”x=%dy=%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();B.scanf(”%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);D.scanf(”%d%d%c%c%c%c%”c%,&cx,&y,&s1,&s1,&s2,&s2,&s3,&s3);1.2填空题

1・C语言的符号集包括_英文字母、数字、一些有特定含义的标点符号2・结构化设计中的三种基本结构是_顺序结构、选择结构、循环结构 "3・C语言源程序文件的后缀是 .C,经过编译后生成文EXE。C语言的关键字都用小写EXE。C语言的关键字都用小写{大写或小写}。-个函数由两部分组成,它们是函数说明部分和函数体函数体一般包括变量定义部分和执行部分。C语言是通过输入输出函数来进行输入和输出的。以下程序的执行结果dec:-1,oct:177777,hex:ffff,4・5・6・7・8・unsigned:65535dec:1,oct:1,hex:1,unsigned:1_。#include”stdio.h”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,unsigned:%u\n,j,j,j,j);}9・以下程序的执行结果是-dec:98,oct:142,hex:62,ASCI|:b 。#include”stdio.h”main(){chars='b';printf(”dec:%d,oct:%o,hex:%x,ASCII:%c\n”,s,s,s,s);}10•以下程序的执行结果是3.141593,3.1416,3.142,」」」」3.1423141593e+0031416e+00,3142e+00, —驻+0014(注:」代表空格)#include”stdio.h”main(){floatpi=3.1415927;printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi);printf(”n%e,%.4e,%4.3e,%10.3e,pi,pi,pi,pi);}以下程序的执行结果是:#include”stdio.h”main(){charc='c'+5;printf(”c=%c\n”,c);}以下程序输入1」2」3后的执行结果是i=1,k= —j=2。(注:」代表空格)#include”stdio.h”main(){inti,j;chark;scanf(”%d%c%d”,&i,&k,&j);printf(”=%d,k=%c,j=%d\n”,i,k,j);}10后的执行结果是 ;若输入为:98」76-543210后的执行结果是 ;若输入为:987654」3210后的执行结果为: 。(注:」代表空格)#include”stdio.h”main(){intx1,x2;chary1,y2;scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2);printf(”x1=%d,x2=%d,y1=%c,y2=%c\n”,x,y);}若x和y均为int型变量,则以下语句的功能TOC\o"1-5"\h\z是 。x+=y;y=x-y; x-=y;有一输入函数seanf(”%d”k);则不能使float类型变量k得到正确数值的原因是: 。有如下程序段,输入数据:12345ffl678后,u的值是.【1】,v的值是【2】。intu;floatv;scanf(“%3d%”,&u,&v);1.3答案及部分解析一. 选择题答案1.B2.B3.A4.B5.B6.D7.B8.D9.B10.C 11.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.D

55.14.D解析:15.解析: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。这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。55.14.D解析:15.解析: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码字符。65)10=A.解析:8=含义,而后如跟数字,可以为八进制或者十六进制,将其转换为对应的ASCII码值,就可以得出对应的字符。“”后跟八进制的写法:\0nn,或者\nn,表示“\0”或者“”后只能跟1或37之间的数字;“”后跟十六进制的写法:\xnn,或者\nn,表示“\x”或者“”后只能跟1或2位0――9及a――f(A――F)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“”;选项D的错误在于超长(多了一位)。位021.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18);C的错误在于%位031.解析:1.2.3.4.5.6.7.8.答案答案答案答案答案答案答案答案答案:9.10.答案:能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,即为逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自右的。第三个表达式y++,其隐含有两步操作:先取y的原值,再执行y=y+1运算;而本题中,虽然没有将y赋给某个变量(取其原值),但还是一定会执行加运算的。因而,经过第三个表达式,y已经自加为6,故x+y的值为8,相对应得表达式最终结果为8。若本题改为:(x=2,y=5,z=y++,x+z),则其结果应为7。填空题答案英文字母、数字、一些有特定含义的标点符号顺序结构、选择结构、循环结构C,OBJ,EXE小写函数说明部分和函数体变量定义部分和执行部分输入和输出函数dec:-1,oct:177777,hex:ffff,unsigned:65535dec:1,oct:1,hex:1,unsigned:1dec:98,oct:142,hex:62,ASCII:b3.141593,3.1416,3.142,」」」」3t142i=r.号,y=(float)m3.141593e+00,3.1416e+00,3.142e+00F3142e+00(注:由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果为:3.14159e+00,3.142e+00,3.14e+00r%.14e+00,即:小数点后取5位。)11.答案:c=h交换交换x和y的值(1)格式符应为:%f;(2)变量前边未加取即应为scanf(”%f”,&k);【1】123 【2】45.00000012.答案:i=1,k=T=213.答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1第二种情况的执行结果:x1=98,x2=76,y1=」,y2=3第三种情况的执行结果:x1=98,x2=765,y1=4,y2=214.答案:15.答案:地址符&,16.答案:77.77.第二章选择结构2.1选择题1.已有定义:值是(D)。A.6intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的B.0C.2D.12・设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为(B)。A・1 B・2 C・3 D・43・设X、y和z都是int类型变量,且x=3,y=4,z=5,则下面的表达式中,值为0的表达式为(D)。A・‘x'&&''C・x||y+z&&y-z4•为了避免嵌套的if-else语句的二义性,(C)组成配对关系。A•缩排位置相同的ifB•在其之前未配对的ifC・在其之前未配对的最近的ifD.同一行上的if逻辑运算符两侧运算对象的数据类型(A.只能是0或1B.只能是0或非0正数只能是整型或字符型数据可以是任何类型的数据以下关于运算符优先顺序的描述中正确的是(B.x<=yD.!((x<y)&&!z||1)C语言规定else总是与5.6.D)。C)。A.关系运算符<算术运算符<赋值运算符<逻辑与运算符B.逻辑与运算符<关系运算符<算术运算符<赋值运算符赋值运算符<逻辑与运算符<关系运算符<算术运算符算术运算符<关系运算符<赋值运算符<逻辑与运算符下列运算符中优先级最高的是(C)。8.9.A.< B.&& C.+选择出合法的if语句(设intx,a,b,c;)(A)。if(a=b)c++;if(a=<b)c++;if(a<>b)c++;if(a=>b)c++;D.!A.B.C.D.能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假A.B.C.D.(x>(x>(x>

(x>的表达式是(C)。-58)&&(x<=-40)&&(x>=40)&&(x<=58)-58)||(x<=-40)||(x>=40)||(x<=58)-58)&&(x<=-40)||(x>=40)&&(x<=58)-58)||(x<=-40)&&(x>=40)||(x<=58)10.判断char型变量s是否为小写字母的正确表达式是(C10.A.'a'<=s<='z' B.(s>='a')&(s<='z')D.('a'<=s)andC.(s>='a')&&(s<='zD.('a'<=s)and若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C)。A.x%2==1 B.!(x%2==0)C.!(x%2) D.x%2已知x=45,y='a'z=0;则表达式(x>=z&&yv'z'||!y)的值是(C)。0 B.语法错C.1 D.“假13.指出下列程序段所表示的逻辑关系是(B)。if(a<b){if(c==d)x=10;}elsex=-10;A.x10ab且cd10ab且cd10ab且cdx10abx10ab且cd10ab且cd10ab且cdx10cd1x函数:y0x1xB.C.D.14.有000,以下程序段中不能根据x值正确计算出计算出y值的是(C)。A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;B.B.if(x>0)y=1;elseif(x<0)y=-1;C.C.if(x>=0)if(x>0)y=1;elsey=-1;D.D.if(x>0)y=1;elsey=0;elsey=-1;15.执行以下语句后,y的值为(A)。intx,y,z;CC.printf(”%d\n”,d=a>b?a>c?a:c:b);}A.5D.不确定23.若a、b、c1、c2、x、y均为整型变量,正确的switch语句是(D)。A.switch(a+b);{case1:y=a+b;break;break;B.4B.switcha{casec1:y=a-b;case0:y=a-b;x=a*d;break;break;casec2:default:x=a+b;}

C.switch(a*a+b*b){case3:}

D.switch(a-b)default:y=a*b;break;case1:case1:y=a+b;break;case3:x=a+b;case3:y=b-a;break;y=a-b;break;}casecase3:y=b-a;break;y=a-b;break;}case10:case11:}24.执行下列程序,输入为3的数出结果是(C)#include”stdio.h”main(){intk;scanf(”%d”,&k);switch(k){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”);}}B.4CB.4C.3D.4425.假定等级和分数有以下对应关系:等级:A 分数:85――100等级: B 分数: 60——84等级: C 分数: 60以下oswitch(grade)case'A':oswitch(grade)case'A':printf(”85——100\n”);case'B':printf(”60——84\n”);case'C':printf(”<60\n”);default:printf(”gradeiserror!\n”);A.}

B}

B.

{switch(grade)case'A':printf(”85——100\n”);break;case'B':printf(”60——84\n”);case'C':printf(”<60\n”);default:printf(”gradeiserror!\n”);}

C.switch(grade)case'A':printf(”85——100\n”);break;case'B':printf(”60——84\n”);break;case'C':printf(”<60\n”);default:printf(”gradeiserror!\n”);}

D}

D.

{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.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(”%f\n”,y);}B.0.250000C.B.0.250000C.0.500000D.1.00000027.以下程序的运行结果是(C)。#include”stdio.h”main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(”%d\n”,c);}A.0D.3B.1C.228.运行以下程序后,如从键盘上输入#include”stdio.h”main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'o':v2++;}printf(”%d,%d\n”,v1,v2);}A.2,0D.2,5china#则输出为(C)。B.5,0C.5,529.有以下程序,若输入为字符S,则程序运行结果为(A)。#include”stdio.h”main()}}}}{charch;ch=getchar();switch(ch)b':printf(”b=%c\n”,ch);c':printf(”c=%c\n”,ch);{caseb':printf(”b=%c\n”,ch);c':printf(”c=%c\n”,ch);casecase}}B・end!end!C・有语法错误AB・end!end!C・有语法错误c=s30・有以下程序,程序运行后的输出结果是(A)。#include”stdio.h”main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(”%d\n”,m);A・1DA・1D・42.2填空题1.若从键盘输入58,则输出结果是—585858 。#include”stdio.h”main(){inta;scanf(”%d”,&a);if(a>50)printf(”%d”,a);if(a>40) printf(”%d”,a);if(a>30) printf(”%d”,a);2・2・3・4・5・设intx=9,y=8;表达式x==y+1的结果是__1 。定义intx,y;执行y=(x=1,++x,x+2);后,y的值是__4 定义intx=10,y,z;执行y=z=x;x=y==z;后,x的结果是_1_。设inta=1,b=2,c,d,e;执行c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(a/(--a));请问a,b,c,d,e的结果是:23230。6・设inta=2,b=3,c,d,e,f;6・c=(a++>=--b);d=(a==++b);e=(a--!=b);f=(++a>b--);请问a,b,c,d,e,f的结果是:_3211007・以下程序的运行结果是7・#include”stdio.h”main()

8.98.9.00s=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);}以下程序的运行结果是__100__#include”stdio.h”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(”%d\n\n”,d);}以下程序的运行结果是_6250(换行)51 。#include”stdio.h”main(){inta,b=250,c;if((c=b)<0)a=4;elseif(b=0)a=5;elsea=6;printf(”t%d\t%d\n”a,c);if(c=(b==0))a=5;printf(”t%d\t%d\n”a,c);if(a=c=b)a=4;printf(”t%d\t%d\n”a,c);}10.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【1内填空。xy2<x<=10x(x+2)-1<x<=21/xx<=-1x-1#include”stdio.h”main(){intx,y;scanf(”%d”,&x);if(【11)y=x*(x+2);elseif(【21)y=1/x;elseif(x<=-1)y=x-1;else【31;if(y!=-1)printf(”%d”y);elseprintf(”error”;}11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。请在【】内填入正确内容。#include”stdio.h”#include”math.h”main(){floata,b,c,t,disc,w,term1,term2;printf(”entera,b,c”:);scanf(%f%f%f”,&a,&b,&c);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=abs(disc);term2=sqrt(t)/w;if(【3】)printf(”complexroot\nrealpart=%fimagpart=%f\n”,term1,term2);elseprintf(”realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2);}}12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请在【】内填入正确内容。#include”math.h”#include”stdio.h”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))printf(”等边三角形”);elseif(【2】)printf(”等腰三角形”):elseif(【3】)printf(”直角三角形”):elseprintf(”一般三角形”:}elseprintf(”不能组成三角形”);}13.以下程序的功能是判断输入的年份是否是闰年。请在【】内填入正确内容。#include”stdio.h”main(){intyear,flag;printf(”pleaseinputtheyeartojudewhetheritisaleapyear:”);scanf(”%d”,&year);if(year%400==0)flag=1;elseif(【1】)flag=1;else【2】;if(flag)printf(”%disaleapyear\n”,year);elseprintf(”%disnotaleapyear!\n”,year);}14.以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。#include”stdio.h”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”stdio.h”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=%d\n”,min);}16.以下程序实现这样的功能:商店卖西瓜,10斤以上的每斤0.15元,8斤以上的每斤0.3元,6斤以上的每斤0.4元,4斤以上的每斤0.6元,4斤以下的每斤0.8元,从键盘输入西瓜的重量和顾客所付钱数,则输出应付款和应找钱数。请在【】内填入正确内容。#include”stdio.h”main(){floatweight,money,rate;printf(”thepaidmoneyoftheclientis:”);scanf(”%f”,&money);printf(”theweightofthewatermelonis:”);scanf(”%f”,&weight);if(【1】)rate=0.15;elseif(weight>8)rate=0.3;elseif(weight>6)【2】;elseif(weight>4)rate=0.6;【3】rate=0.8;printf(”theaccountpayableofthewatermelonis%f\”n,weight*rate);printf(”thechangeforclientis%f\n”,money-weight*rate);}x:);x:);x:);x:);17.18.以下程序段的运行结果是 #include”stdio.h”main(){charch1='a',ch2='A';switch(ch1){case'a':switch(ch2){case‘A':printf(”good!'n”);break;case'B':printf(”bad!'n”;}case'b':printf(”oke\n”;}}根据以下函数关系,对输入的每个请在【】内填入正确内容。break;x值,计算出相应的y值。xyx<000<=x<10x10<=x<201020<=x<40-0.5X+20#include”stdio.h”main()intx,rate;floaty;printf(”pleaseinputthevalueofseanfC%d”,&x);【【2】ifif(【1】)rate=-1;elserate=【2】;switch(rate){case-:y=0;case0:y=x;case1:y=10;case2:break;break;break;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(){intyear,month,days,leap;printf(”pleaseinputbothyearandmonth”:);scanf(”%4d/%2d”,&year,&month);switch(【1】){case1:case3:case5;case7:case8:case10:case12:days=31;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(”%d年%d月的天数为%d\n”,year,month,days);}20.以下程序完成两个数的四则运算。请在【】内填入正确内容。#include”stdio.h”main(){floatx,y;charoperator;printf(”pleaseinputtheexpression”:);scanf(”%f%c%f”,&x,&operator,&y);)printf(”%g%c%g=%g\n”,x,operator,y,x+y);)printf(”%g%c%g=%g\n”,x,operator,y,x+y);【2】;printf(”%g%c%g=%g\n”,x,operator,y,x-y);break;printf(”%g%c%g=%g\n”,x,operator,y,x*y);break;if(y==0.0)printf(”除零错误!\n”);casecasecase{case'+':casecasecaseelseprintf(”%g%c%g=%g\n”,x,operator,y,break;printf(break;printf(”表达式存在错误!\n”);【3】}}21.以下程序运行后的输出结果是 #include”stdio.h”main(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(”%d,%d\n”,x,y);}22.执行以下语句后,x、y和z的值分别为intx,y,z;x=y=z=0;++x||++y&&++z;第三章循环结构3.1选择题1.以下程序的输出结果是(A)main(){intn=4;while(n--)printf(〞%d〞,--n);}A.20D.210B.312.以下程序的输出结果是(A)main()C.321C.10990)。C.8C.10990)。C.8{intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}B.987610192B.98761010913.当执行以下程序段时x=-1;do{x=x*x;}while(!x);循环体将执行一次循环体将执行两次循环体将执行无数多次系统将提示有语法错误4.执行以下程序后输出的结果是(main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}-1 B.1D.05.下面程序的输出结果是(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);

}x=4,y=4,a=1x=5,y=5,a=1x=5,y=4,a=3x=5,y=4,a=1()。i;i--)j<4;j++)6.若i,j()。i;i--)j<4;j++){…}B.24C.2520B.24C.25D.307.请读程序:#include<stdio.h>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);)。B.a=1,b=1D.a=2,b=2)。B.a=1,b=1D.a=2,b=28.若有以下程序段,a=2,b=1C.a=1,b=0w和k都是整型变量w=k;LB:if(w==0)gotoLE;w--;printf(〞*〞);gotoLB;LE:则不能与上面程序段等价的循环语句是()。A.for(w=k;w!=0;w--)print(〞*〞);w=k;while(w--!=0)printf(〞*〞);w++;w=k;do{w--;printf(〞*〞);}while(w!=0);9.for(w=k;w;--w)printf(〞*〞)9.main(){char;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);}A.v1=4,v2=2,v3=1,v4=1v1=4,v2=9,v3=3,v4=1v1=5,v2=8,v3=6,v4=1v1=8,v2=8,v3=8,v4=810.有以下程序#include〞stdio.h〞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;)。B.7C.8)。}输出结果是)。B.7C.8)。没有构成死循环的程序段是(D.911.在下列选项中,没有构成死循环的程序段是(A.inti=100;2222.下列程序的输出是( )。}}while(1)i=i%100+1;if(i>100)break;}for(;;);intk=1000;do{++k;}while(k>=10000);ints=36;while(s);--s;12.若输入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.");B.>=60.D.error.B.>=60.D.error.)。C.>=60.<60.error.13.列程序运行的情况是(main(){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);

B.i=9,sum=9D.B.i=9,sum=9D.运行出现错误C.i=2,sum=114.有以下语句:i=1;sum+=i;for(;i<=100;i++)与以上语句序列不等价的有( )。sum+=i;A.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);}}369C.1216.下面程序的运行结果是(main(){intx,y,z;x=0;y=z=-1;x+=-zy;printf("x=%d\n",x);}B.x=0C.x=2A.x=4B.x=0C.x=2)。D.x=317.标有/**/的语句的执行次数是(inty,i;)。for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/**/}A.20D.9B.19C.1018for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/**/}A.20D.9B.19C.1018.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。A.只能用逻辑表达式能用关系表达式C.只能用逻辑表达式或关系表达式用任意表达式19.在以下给出的表达式中B.只D.可,与do-while(E)语句中的(E)不等价的表达式是()。C.(E==0)A.(!E==0) B.(E>0||E<0)C.(E==0)D.(E!=0)20.假定所有变量均已正确定义,下列程序段运行后的值为()。k1=1;k2=2;k3=3;x=15;if(!k1)x--;elseif(k2)if(k3)x=4;elsex=3;C.15A.14 B.4C.15D.321.执行下面语句的输出为( )“*n”*“*n”**)*;%%n%”%);B.%%%%C.%%%%cD.有错,执行不正确

#include<stdio.h>main(){inti;charc;for(i=0;i<=5;i++){c=getchar();putchar(c);}}程序执行时从第一列开始输入以下数据,<CR>代表换行符。B.uC.uu<CR>w<CR>xsta<CR>A.uwxstaB.uC.uD.uxsxsta23.下列程序的输出为()。#include"stdio.h"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);}B.x=8C.x=6A.x=4B.x=8C.x=6D.x=1224.下列程序的输出为( )。#include<stdio.h>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);}A.k=0,m=3B.k=0,m=5k=1,m=3D.k=1,m=525.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()。A.0B.1C.true非026.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()。A.0B.1C.trueD.非027.下列程序的输出为( )。#include<stdio.h>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);}B.k=4C.k=2A.k=3B.k=4C.k=2D.k=0C语言的if语句嵌套时,if与else的配对关系是()。每个else总是与它上面的最近的if配对每个else总是与最外的if配对每个else与if的配对是任意的每个else总是与它上面的if配对下列程序的输出为( )。#include<stdio.h>main(){inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;printf("i=%d,j=%d,a=%d\n",i,j,a);}A.i=0,j=0,a=6 B.i=1,j=1,a=7C.i=1,j=0,a=7 D.i=0,j=1,a=7下列程序段的输出结果为( )。main(){intx=3;do

{printf("%3d",x-=2);}while(!(--x));}A.1C.1-23{printf("%3d",x-=2);}while(!(--x));}A.1C.1-23.1.2.*D.死循环2填空题:当输入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,程序输出结果为【11;若输入字符,程序将【2】。#include<stdio.h>main(){charc1,c2;c1=getchar();while(c1<97||c1>122)c1=getchar();c2=c1-32;printf("%c,%c\n",c1,c2);}3.以下程序运行的结果为main(){inta,b,c,x,y,z;a=10;b=2;c=!(a%b);x=!(a/b);y=(avb)&&(b>=0);z=(avb)||(b>=0);printf("%d,%d,%d,%d\n",c,x,y,z);}4・若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【31.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.以下程序运行的结果一sum=55一。main(){inti=1,sum=0;loop:if(iv=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<stdio.h>#include<math.h>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<stdio.h>main(){charc;inti,k;k=0;for(i=0;i<4;i++){while(1){c=getchar();if(c>='0'&&c<='9')break;}k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论