《C语言复习题97744(40页).doc》由会员分享,可在线阅读,更多相关《C语言复习题97744(40页).doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-C语言复习题97744-第 39 页第一章 C语言基础知识一、选择题1C语言规定,必须用 作为主函数名。 A)Function B)include C)main D)stdio2一个C程序可以包含任意多个不同名的函数,但有且仅有一个 ,一个C程序总是从 开始执行。 A)过程 B) 主函数 C)函数 D)include3 是C程序的基本构成单位。 A)函数 B) 函数和过程 C) 超文本过程 D) 子程序4下列说法正确的是 。A) 一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B) 一个函数的函数体必须要有执行部分,可以没有变量定义C) 一个函数的函数体可以没有变量定义和执行部分,函
2、数可以是空函数D) 以上都不对5下列说法正确的是 。A) main函数必须放在C程序的开头B) main函数必须放在C程序的最后C) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的6下列说法正确的是 。A) 在执行C程序时不是从mian函数开始的B) C程序书写格式严格限制,一行内必须写一个语句C) C程序书写格式自由,一个语句可以分写在多行上D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号7在C语言中,每个语句和数据定义是用 结束。 A)句号 B)逗号 C)分号 D)括号
3、8下列字符串是标识符的是 。 A)_HJ B)9_student C)long D)LINE 19以下说法正确的是 。A) C语言程序总是从第一个定义的函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分10 不是C语言提供的合法关键字。 A)switch B)print C)case D)default11C语言提供的合法关键字是 。 A)breack B)print C)funiton D)end12C语言提供的合法关键字是 。 A)continue B)proce
4、dure C)begin D)append13. C语言规定: 在一个源程序中, main函数的位置 。A) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以在任意位置 D) 必须在源文件的最后14. 一个C语言程序是由 。A) 一个主程序和若干个子程序组成;B) 函数组成, 并且每一个C程序必须且只能由一个主函数;C) 若干过程组成;D) 若干子程序组成.二、填空题1一个C程序至少包含一个 ,即 。2一个函数由两部分组成,它们是 和 。3函数体的范围是 。4函数体一般包括 和 。5C语言是通过 来进行输入输出的。6在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个 。7
5、主函数名后面的一对圆括号中间可以为空,但一对圆括号不能 。第二章 C语言程序设计的初步知识一、选择题1在C 语言中,下列类型属于基本类型的是 。 A)整型、实型、字符型 B)空类型、枚举型 C)结构体类型、实型 D)数组类型、实型2下列字符串属于标识符的是 。 A)INT B)5_student C)2ong D)!DF3C语言中不能用来表示整常数的进制是 。 A)十进制 B)十六进制 C)八进制 D)二进制4在C语言中,回车换行符是 。 A)n B)t C)v D)b5在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII码 。 A)大32 B)大64C)小32
6、D)小646设d为字符变量,下列表达式不正确的是 。 A)d=97B)d=a C)d=”a”D)d=g710+a+1.5-567.345/b的结果是 型数据。 A)longB)doubleC)intD)unsigned float8语句int i=3;k=(i+)+(i+)+(i+);执行过后k的值为 ,i的值为 。 A)9,6B)12,5C)18,6D)15,59如果int i=3,则printf(“%d”,-i+)的结果为 ,i的值为 。 A)-3,4 B)-4,4 C)-4,3 D)-3,310已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为 。main() char
7、x,y; x=0;y=9; printf(“%d,%dn”,x,y);A)因输出格式不合法,输出错误信息 B)48,57 C)0,9 D)48,5811已知在ASCII集中,字母A的序号为65,下面程序的输出结果为 。main() char c1=B,c2=Y; printf(“%d,%dn”,+c1,-c2);A)输出格式不合法,输出错误信息 B)67,88 C)66,89 D)C,X12C语言中,运算对象必须是整型数的运算符是 。 A)% B) C)% 和 D)*13下列常数中,合法的C 常量是 。 A)n B)e-310 C)DEF D)123414下列符号中,可以作为变量名的是 。 A
8、)+a B)12345e C)a3B D)5e+015下面程序的输出结果是 。 mian() int x=2,y=0,z; x*=3+2; printf(“%d”,x); x*=y=z=4; printf(“%d”,x); A)8 40 B)10 40 C)10,4 D)8,416若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为 。A)1 B)2 C)2.0 D)2.517表达式(int)2.1416的值为 。A)2 B)2.1 C)0 D)318. 以下说法正确的是 。A)在C程序中, 每行只能写一条语句.B)在C程序中, 无论是整数还是实数, 其存放形式都一致.C)
9、在C程序中, %是只能用于整数运算的运算符.D)在C程序中, 变量可以不必先定义就可使用.19. 若有以下定义, 则正确的赋值语句为 。int a, b ;float x; A)a=1, b=2, B)b+;C)a=b=5 D)b= int (x) ;20. C语言规定标识符由 等字符组成.)字母数字下划线 )中划线字母数字)字母数字逗号 )字母 下划线 中划线21. 若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是 。A)2.500000 B)3.500000 C)4.500000 D)5.
10、00000022. 已知字母A的ASCII码为十进制65,下面程序段的运行结果为: 。char ch1,ch2;ch1= A+5-3; ch2= A+6-3;printf(“%d, %cn”, ch1,ch2);A)67, D B)B, C C)C, D D)不确定值24. 设x、y均为float型变量,则以下不合法的赋值语句是 。A) + + x; B)y = ( x%2 ) / 10; C)x * = y + 8; D)x = y = 0;25. 设有以下定义,则能使值为3的表达式是: 。 int k=7, x=12; A)x%=(k%=5) B)x%=(k-k%5)C)x%=k D)(x
11、%=k)-(k%=5)二、填空题1C语言的数据类型有四大类,分别是 、 、 、 。2C语言基本数据类型包括 、 、 、 。3在C语言中,程序运行期间,其值不能被改变的量叫 。4在C语言中,常量有不同的类型,包括 、 、 和 等。5在C语言中,在习惯上符号常量名用 ,变量用 。(大写或小写)6在C语言中,用来标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符序列称为 。7在C语言中,标识符只能由 、 和 三种字符组成,且第一个字符必须 或 。8在 C语言中,要求对所有甬道的变量,遵循先定义后 的原则。9可以用来表示C的整常数的进制是 、 、 。10实型变量分为 和 ,即float和
12、double型。11C的字符常量是用 括起来的一个字符。12在一个变量定义语句中可以同时定义多个变量,变量之间用 隔开。13下面的程序mian()printf(abctderfgn);/*空白处分别为两个和一个空格*/printf(htibbjk); /*空白处为三个空格*/运行结果是 。14int型的取值范围是 。15下面的程序main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c %c,c1,c2);运行结果为 。16在C 语言中,系统在每一个字符串的结尾自动加一个“字符串结束标志符”即 ,以便系统据此数据判断字符串是否结束。17表达式
13、10+a+1.5-0.5*b的结果 。18表达式10+a+1.5-567.345/b的结果是 型数据。19表达式x=(a=3,6*3)和表达式x=a=3,6*a分别是 表达式和 表达式,两个表达式执行完的结果是 和 .执行后X的值分别是 , .20main()int i,j,m,n; i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%d,i,j,m,n);运行后i,j,m,n的值是 .21.在C语言中,可以利用 ,将一个表达式的值转换成指定的类型。第三章 顺序结构程序设计一、选择题1.下列说法正确的是 。A)输入项可以是一个实型常量,如scanf(%f,4.8); B)只
14、有格式控制,没有输入项也能进行正确输入,如scanf(a=%d,b=%d);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%5.3f,&f); D)当输入数据时,必须指明变量的地址,如scanf(%f,&f);2.根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是 。main()int a;float x;printf(input a,x:);输入语句输出语句输入形式 input a,x:3 2.1输出形式a+x=5.10A)scanf(%d,%f,&a,&x);B)scanf(%d %f,&a.&x); printf(na+x=%4.2f,a+x
15、); printf(na+x=%4.2f,a+x);C)scanf(%d %f,&a,&x);D)scanf(%d %3.1f,&a,&x);printf(na+x=%6.1f,a+x); printf(na+x=%4.2f,a+x);3.以下程序的输出结果是 。main()int i=010,j=10,k=0x10;printf(%d,%d,%dn,i,j,k);A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,164.以下程序的输出结果是 。#includemain()printf(%dn,NULL);A)不确定的值(因变量无定义) B)0C)-1 D)15.以
16、下程序的输出结果是 。main()char c1=6,c2=0;printf(%c,%c,%d,%dn,c1,c2,c1-c2,c1+c2);A) 因输出格式不合法,输出出错信息 B) 6,0,6,102C) 6,0,7,6 D) 6,0,5,76.设有如下定义int x=10,y=3,z;则语句printf(%dn,z=(x%y,x/y);的输出结果是 。A)3 B)0 C)4 D)17.设有如下定义int x=10,y=5,z;则语句printf(%dn,z=(x+=y,x/y);的输出结果是 。A)1 B)0 C)4 D)38.以下程序的输出结果是 。main()int x=10,y=1
17、0;printf(%d %dn,x-,-y);A)10 10 B)9 9 C)9 10 D)10 99.若已知a=10,b=20,则表达式!ab的值为 。A)10 B)20 C)1 D)010.printf函数中用到格式符%4s,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为 。A)从左起输出该字符串,右补空格 B)按原字符长从左向右全部输出C)右对齐输出该字符,左补空格 D)输出错误信息11. 根据定义和数据的输入方式,输入语句的正确形式为: 。已有定义:float a1, a2;数据的输入方式: 4.523 3.5
18、2A)scanf(“%f %f ”, &a1,&a2);B)scanf(“%f ,%f ”, a1, a2);C)scanf(“%4.3f ,%3.2f ”, &a1,&a2);D)scanf(“%4.3f %3.2f ”, a1,a2);12. 以下程序的输出结果是:(注:表示空格) 。main( ) printf(“n*s1=%8s*”, “china”);printf(“n*s2=%-5s*”, “chi”) ; A)*s1=china * B)*s1=china * *s2=chi* *s2=chi *C)*s1= china* D)*s1= china* *s2= chi * *s2
19、=chi *二、填空题1.putchar函数的作用是 。2.printf函数的“格式控制”包括两部分,他们是 和 。3.对不同类型的语句有不同的格式字符。例如: 格式字符是用来输出十进制整数, 格式字符是用来输出一个字符, 格式字符是用来输出一个字符串。4.%-ms表示如果串长 m,则在m列范围内,字符串向 靠, 补空格。5.getchar函数的作用是 。6.符号“&”是 运算符,&a是指 。7.复合语句是由一对 括起来的若干语句组成。8.分析下面程序:#includemain()int x=2,y,z;x*=3+2;printf(%dn,x);x*=y=z=4;printf(%dn,x);x
20、=y=z;printf(%dn,x);x=(y=z);printf(%dn,x);程序的输出结果为 。9.编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。jia=70.000000jian=30.000000cheng=1000.000000chu=2.5000000程序:#includevoid main( ) (1) a=50.0;b=20.0;printf(jia=%fn, (2) );printf(jian=%fn (3) );printf(cheng=%fn, (4) );printf(chu=%fn, (5) );将缺少的部分填在空白处。10.下列程序的输出结果是 。
21、#includemain()char a;a=A;printf(%d%c,a,a);11.分析下面程序main()int x=2,y,z;x*=3+2;printf(%dn,x);x*=y=z=4;printf(%dn,x);x=y=1;z=x+-1;printf(%d,%dn,x,z);z+=-x+ +(+y);printf(%d,%d,x,z);程序的输出结果是 。12.以下程序的输出结果为:_。include main( ) char c1,c2;c1=a;c2=n;printf(“%c%c”,c1,c2); 三、编程题1.从键盘上输入一个大写字母,要求改用小写字母输出。2.请编写一个程
22、序,能显示出以下两行文字。I am a student.I love China.第四章 选择结构程序设计一、选择题1以下关于运算符优先级的描述中,正确的是 。 A)!(逻辑非)算术运算关系运算&(逻辑与)|(逻辑或)赋值运算B)&(逻辑与)算术运算关系运算赋值运算C)关系运算算术运算&(逻辑与)|(逻辑或)赋值运算D)赋值运算算术运算关系运算&(逻辑与)|(逻辑或)2逻辑运算符的运算对象的数据类型 。A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型 D)任何类型的数据3能正确表示x的取值范围在0,100和-10,-5内的表达式是 。A)(x=-5)&(x=100)B)(x=-
23、10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)4以下程序的运行结果是 。main( ) int c,x,y; x=1; y=1; c=0; c=x+|y+; printf(“n%d%d%dn”,x,y,c);A)110 B)211 C)011 D)0015判断字符型变量ch为大写字母的表达式是 。A)A=ch=A)&(ch=A)&(ch=A)AND(ch0) printf(”%f”,x); x=x+1; printf(”%f”,x); else printf(”%f”,-x); else printf(”%f”,-x);C)if(x0); D)i
24、f(x0) x=x+1; printf(”%f”,x); x=x+1; printf(”%f”,x) else printf(”%f”,-x); else printf(”%f”,-x);7分析以下程序:main( ) int x=5,a=0,b=0; if(x=a+b) printf(“* *n”); else printf(“# #n”);以上程序 。A)有语法错,不能通过编译 B)通过编译,但不能连接C)输出* * D)输出# #8写出下面程序的执行结果 。main( )int x,y=1; if(y!=0) x=5; printf(“%dt”,x); if(y= =0) x=3;els
25、e x=5;printf(“%dtn”,x);A)1 3 B)1 5 C)5 3 D)5 59假定所有变量均已正确说明,下列程序段运行后x的值是 。a=b=c=0;x=35;if(!a) x=-1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)310若有以下函数关系x0 y=xx=0 y=x+1下面程序段能正确表示以上关系的是 。A)y=2x; B)y=2x;if(x!=0) if(x0)y=x; if(x= =0) y=x+1;else y=x+1; else y=x;C)if(x=0) (D)y=x+1;if(x0) y=x; if(x=0)e
26、lse y=x+1; if(x y & x != y ) ;B)if ( x = = y ) x + = y ;C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);D)if ( x y ) x+; y+;13. 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为 。if ( a b ) if ( c d ) x = 1 ; else if ( a c ) if ( b d ) x =2 ; else x = 3 ; else x = 6 ;else x = 7 ; A)1 B)2 C)3
27、 D)614. 设有如下定义:char ch=z,则执行下面语句后变量ch是值为: 。ch=(A=ch&chy|xz) z=x; x=y; y=z;A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5016. C语言中,要求运算对象必须是整型的运算符是: 。A) B)+ C)% D)!=17.在C语言中,多分支选择结构语句为:switch(c) case 常量表达式1:语句1; case 常量表达式n-1:语句n-1; default 语句n;其中括号内表达式c的类型: 。A)可以是任意类型 B)只能
28、为整型C)可以是整型或字符型 D)可以为整型或实型二、填空题1在C语言中,对于if语句,else子句与if子句的配对约定是 。2以下两条if语句可合并成一条if语句为 。if(ab) printf(* * * * y=%dn,y);else printf(# # # # x=%dn,x);3设有程序片段如下:switch(class)case A:printf(GREAT!n);case B:printf(GOOD!n);case C:printf(OK! n);case D:printf(NO!n);default:printf(ERROR!n);若class的值为C,则输出结果是 。4根据
29、以下if语句写出与其功能相同的switch语句(x的值在0100之间)。if语句:if(x60) m=1;else if(x70) m=2; else if(x80) m=3; else if(x90) m=4; else if(x100) m=5;switch语句:switch( (1) ) (2) m=1;break;case 6:m=2;break; case 7:m=3;break;case 8:m=4;break; (3) m=5;5. 输入3个实数 a, b, c要求按从大到小的顺序输出三数。main( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b
30、,&c); if (ab) t=a; _(1)_ b=t; if(_(2)_) t=a; a=c; c=t; if(b=a&ch=z) (_(2)_);printf(”%cn”,ch); 7在C语言中提供的条件运算符?:的功能是 .8用C语言描述下列命题(1)a小于b或小于c ,(2)a和b都大于c (3)a或b中有一个小于c (4)a是奇数 。三、编程题1编写一个程序,要求有键盘输入三个数,计算以这三个数为边长的三角形的面积。2输入圆的的半径r和一个整型数k,当k=1时,计算圆的面积;但k=2时,计算圆的周长,当k=3时,既要求求圆的周长也要求出圆的面积。编程实现以上功能。3. 有一函数,其
31、函数关系如下,试编程求对应于每一自变量的函数值。 x2 (x0) y = -0.5x+10 (0x10) x- (x10)4. 编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A;8089分为 B;7079分为C;6069分为D;60分以下为 E。第五章 循环结构程序设计一、选择题1for语句中的表达式可以部分或全部省略,但两个 不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。A)0 B)1 C); D),2程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是 。A)while循环执行20次 B)循
32、环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次3以下for循环是 。for(a=0,b=0;(b!=123)&(a=4);a+);A)无限循环 B)循环次数不定 C)执行4次 D)执行5次4在下列程序中,while循环的循环次数是 。main( ) int i=0; while(i10) if(i1) continue; if(i= =5) break; i+;A)1 B)10 C)6 D)死循环、不能确定次数5程序段如下int k=0; while(k+=2) printf(%dn,k);则执行结果是 。A)1 B)2 C)0 D)无结果2 3 13 4 26执行下面的程序后,a的值为 。main()int a,b;for(a=1,b=1;a=20)break;if(b%3=1) b+=3; continue;b-=5;A)7 B)8 C)9