《C语言等级考试复习题(71页).doc》由会员分享,可在线阅读,更多相关《C语言等级考试复习题(71页).doc(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-C语言程序设计复习题第一、二章一、 单项选择题1、下列符号中,不可以作为变量名的是_。A、 _var B、VAR10 C、varx D、2def2、 运算符&代表 。A、按位与 B、逻辑与 C、逻辑或 D、按位取反3、 下列字符串为标识符的是_ _。A、_1_A B、5_student C、long D、!DF4、 下列属于字符型常量的是 。A、AA B、“B” C、a D、x93L5、 表达式18/4*sqrt(4.0)/8值的数据类型为_. A、intB、doubleC、charD、不确定6、 设有单精度变量f,其值为13.4执行语句“n=(int)f%3;”后,n的值是 。A、1 B、
2、4 C、4.333333 D、4.67、 为表示关系xyz,正确的C语言表达式是 。 A、(x=y)&(y=z) B、(x=y) AND (y=z) C、(x=y=z) D、(x=z)&(y=z)8、 运算符|代表 。 A、按位或 B、逻辑或 C、按位异或 D、按位取反9、若k为int型变量且赋值11,则k+表达式的值为 。A、10 B、11 C、12 D、1310、下列四组选项中,均是合法转义符的选项是 。A、” n B、 017 ” C、018 f xab D、0 101 xlf 11、 下列不正确的字符常量是 。A、“C” B、” C、 D、K12、 用 C 语言编写的源文件经过编译,若
3、没有产生编译错误,则系统将 。A、生成可执行文件 B、生成目标文件 C、输出运行结果D、自动保存源文件13、 下列说法中错误的是 。A、主函数可以分为两个部分:主函数说明部分和主函数体B、主函数可以调用任何非主函数的其他函数C、任何非主函数可以调用其他任何非主函数D、程序可以从任何非主函数开始执行14、 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 。A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算15、 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后
4、c2中的值是 。A、C B、D C、68 D、不确定的值 16、 字符串ABC在内存占用的字节数是 。A、3 B、4 C、 6 D、817、 设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? a : d的结果为 。A、1 B、2 C、3 D、418、以下叙述正确的是 。A、C语言程序是由过程和函数组成的 B、C语言函数可以嵌套调用,例如:fun(fun(x)C、C语言函数不可以单独编译 D、C语言中除了main函数,其他函数不可作为单独文件形式存在19、 以下叙述不正确的是 。A、在C程序中,逗号运算符的优先级最低B、在C程序中,MAX和max是两个不同的变量C、若a和b类型
5、相同,在计算了赋值表达式a=b后,b中的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值20、 整型常量不能使用的形式是 。 A、二进制 B、八进制 C、十进制 D、十六进制21、C语言源程序的扩展名为 ,连接后生成文件的扩展名为 。A、.C B、.EXE C、.OBJ D、.COM二、填空题1、C语言程序是由 组成,其中主函数的名字必须用 。2、语言程序总是从 开始执行。3、一个函数包含 和 两大部分,包含在 中的内容称为函数体。4、C语言程序的上机步骤分为 、 、 和 四步。5、注释部分以 开始,以 结束。6、在32位系统中,C语言的int型数据占个
6、 字节,float型数据占 个字节,double型数据占 字节,char型数据占个 字节。7、将x定义为整型变量的语句是 。8、将lg定义为长整型变量的语句是 。9、将cg定义为字符型变量的语句是 。10、与x3+3x3y+3xy2+y3对应的C语言表达式是_。11、表达式3.5+1/2的计算结果是 。12、 C语言的基本数据类型有_ _、_ _和_ _。13、 表达式x=x+1表示成增量表达式为 。第三章一、 单项选择题1、 putchar函数可以向终端输出一个 。A、整型变量表达式 B、实型变量值 C、字符串 D、字符或字符型变量值2、printf函数中用到格式符%5s。如果字符串长度大于
7、5,则输出按方式 ;如果字符串长度小于5,则输出按方式 。 A、从左起输出该字符串,右补空格 B、按原字符长从左向右全部输出C、右对齐输出该字符串,左补空格 D、输出错误信息3、 阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 。void main( ) int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A、x+y+z=48 B、x+y+z=35 C、48 D、不确定值4、 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。void main( ) char c
8、h1,ch2,ch3;输入语句printf(“%c % %c”,ch1,ch2,ch3); 输入形式:ABC 输出形式:ABCA、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);5、已知ch是字符型变量,下面不正确的赋值语句是 。A、ch=a+b; B、ch=0; C、ch=7+9; D、ch=”aa”;6、以下关于结构化程序设计的叙述正确的是 。A、一个结构化程序必须同时由顺
9、序、分支、循环三种结构组成B、结构化程序使用goto语句会很便捷C、在C语言中,程序的模块化是利用函数实现的D、由三种基本结构构成的程序只能解决小规模的问题7、 有以下程序#include void main( )int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是 。(以下_代表空格,代表回车)A、12a34b B、12_a
10、_34_b C、12,a,34,b D、12_a34_b8、 有以下程序,程序运行后的输出结果是 。#include void main( ) int x=011;printf(%dn,+x);A、2 B、4 C、10 D、119、执行以下语句后,显示结果为 。 x=19; printf(“%x”,x); A、13 B、19 C、23 D、执行错误10、执行以下语句:显示结果为 。 x=97; printf(“%c”,x); A、97 B、a C、A D、执行错误二、程序填空题1、从键盘上输入一个字符,如果是大写字母,则将其转换成小写字母后输出。 #includevoid main( )cha
11、r ch;scanf(“%c”, );ch=( )?ch+32:ch;printf(“char=%cn”,ch);2、 从键盘分别为变量x和y输入整数,交换它们的值后输出。 #includevoid main( )int x,y; ;scanf(“%d%d”,&x,&y); z=x; ; y=z; printf(“x=%d,y=%d”,x,y); 三、 程序改错题,下面程序片段可能只有一个错,也可能有一个以上的错。1、void main()float a1=123.456;printf(“%d”,a1); ( )改为:( )2、printf(“请输入三个数x1,x2,x3:”);scanf(“
12、%f%f%f”,x1,x2,x3);( )改为:( )3、k=-8567;printf(“%6Dn”,k);( )改为:( )四、 编程题。1、 从键盘输入一个四位数,把该整数颠倒过来输出(例如1234变成4321)。2、 写一个程序,从键盘输入两个整数,然后输出这两个数的和、差、积、商。3、将“China”译成密码。加密规则是:用原来的字母后面的第4个字母代替原来的字母(提示:设5个字符型变量,存放5个字符,经运算使各ASCII码增4,再输出)。 第四章一、 单项选择题。 1、 逻辑运算符两侧运算对象的数据类型 。A、只能是0和1 B、只能是0或非0正数C、只能是整型或字符型数据 D、可以是
13、任何类型的数据2、3、4、5、2、 判断char型变量ch是否为大写字母的正确表达式是 。A、A=ch=A)&(ch=A)&(ch=Z) D、(A= ch) 3、 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是 。A、 A%2=1 B、!(A%2=0) C、!(A%2) D、A%2 4、 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后n的值为 。A、1 B、2 C、0 D、4 5 、以下程序的运行结果是 。void main( ) int a,b,d=241; a=d/100%9;b=
14、(-1)&(-1); printf(“%d,%d”,a,b); A、2,0 B、2,1 C、6,0 D、6,1 6 、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 。if(xy) z=x; x=y; y=z; A、x=10, y=20, z=30 B、x=20, y=30, z=30 C、x=20, y=30, z=10 D、x=20, y=30, z=20 7、以下程序的运行结果是 。void main( ) int m=5; if(m+5)printf(“%dn”,m); else; printf(“%dn”,m-);A、4 B、5 C、6 D、7 8 、若运行
15、时给变量x输入12,则以下程序的运行结果是 。void main( ) int x,y; scanf(“%d”,&x); y=x12 ? x+10 : x-12;printf(“%dn”,y); A、0 B、2 C、3 D、49、 if语句的基本形式是:if(表达式) 语句,以下关于“表达式”值的叙述正确的是 。 A、必须是逻辑值 B、必须是整数值 C、必须是正数 D、可以是任意合法的数值10、有以下程序#include void main( ) int a=1,b=0; if(!a) b+; else if(a=0)if(a) b+=2; else b+=3; printf(“%dn”,b)
16、; 程序运行后的输出结果是。 A、0 B、1 C、2 D、3 11、有以下程序,程序运行后的输出结果是 。#include void main( ) int c=0,k; for(k=1;k12?x+10:x-12; printf(%dn,y); A、0 B、10 C、12 D、2214、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是_。A、a=a+b,b=a-b,a=a-b; B、t=a,a=b,b=t; C、a=t; t=b; b=a; D、t=b;b=a;a=t;15、下面程序的运行结果是。void main( )int x=4,y=5;if (xy)&(+x0) pr
17、intf(“%d”,x+y);printf(“%d”,x); A、9 4 B、4 C、5 D、10 516、以下程序执行后的显示结果为 。 int n=3 , m=6 ; if (n 4 & m + 10)m+; printf(“m = %dn”,m); A、6 B、7 C、8 D、9二、 填空题。1、执行if(x|!x) printf(”ABC”);else printf(”XYZ”);屏幕上显示的是_。2、执行下列语句后,显示结果为 。x=0;if(x=0) printf(“yes”);else printf(“no”);3、switch语句中,使用break语句,作用是 。三、 程序填空
18、题1、下面程序判断输入一个整数是否能被3或7整除,若能整除输出“YES”,若不能整除,输出“NO”。 void main( ) int k; printf(“请输入一个整数:”); scanf(“%d”,&k); if printf(“YESn”); else printf(“NOn”); 2、 下列程序根据菜单选择完成相关操作。void main()int x,y,n;printf(“请输入第一个整数:”);scanf(“%d”,&x); printf(“请输入第二个整数:”);scanf(“%d”,&y);printf(“请输入你的选择1-加法、2-减法、3-乘法、4-除法 ”);scan
19、f(“%d”, );switch(n) case 1:printf(“和为:%dn”,x+y);break; case 2:printf(“差为:%dn”,x-y);break; case 3:printf(“积为:%dn”,x*y);break; case 4:printf(“商为:%dn”,x/y);break; :printf(“选择有误!n”);四、程序改错题1、输入一个整数,判断其奇偶性。#include void main( ) int x; printf(“请输入一个整数:”); scanf(“%f”,x); if(x%2=0)printf(“是一个偶数!n”); elsepri
20、ntf(“是一个奇数!n”);( )改为:( )( )改为:( )2、 输入一个整数,判断其是否能被3整除。#include void main( ) int x,y; printf(“请输入一个整数:”); scanf(“%f”,x); y=x%3; switch(y) case 0:printf(“能被3整除!n”); case 1,2:printf(“不能被3整除!n”); ( )改为:( )( )改为:( )( )改为:( )五、编程题1、编程:输入整数x,计算并输出下列分段函数f(x)的值。y= x (x1) 2x-1 (1=x=10) 2、编程:输入两个整数,再输入两个数相加的和,
21、由程序判断输入的和是否正确。3、编程:把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E 如:Input Score: 8686的等级为B4、用switch语句编程,输入2005年的任一个月,输出这个月的天数。如:Input month of 2005: 102005年10月有31天5 、给出一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字,例如原数为321,应输出123第五章一、单项选择题1、有如下程
22、序,该程序的输出结果是_。void main( ) int n=9; while(n6)n-; printf(%d,n); A、876 B、987 C、8765 D、98762、continue语句的正确的用法是 。 A、跳过该循环体中剩余的语句而强行开始下一次循环。 B、在多重循环中,只能退出最靠近的那一层循环语句。 C、跳出多重循环。 D、无论在任何情况下,都中断程序的执行,退出到系统下一层。3、有以下程序段,则下面的描述正确的是 。 int k=0; while(k=0) k=k-1; A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次4
23、、C语言中whi1e和do-while循环的主要区别是_ _。A、do-while的循环体至少无条件执行一次 B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句5、有以下程序,则以下叙述正确的是_。 int t=0; while (t=1) .A、循环控制表达式的值为0 B、循环控制表达式的值为1C、循环控制表达式不合法 D、以上说法都不对6、语句 while(!E); 中的表达式 !E 等价于 _。A、E=0B、E!=1 C、E!=0 D、E=1 7、下面程序段的运行结果是 _,循环次数为 。
24、intn=0;while(n+=2);printf(%d,n);A、2 B、3 C、4 D、有语法错 8、下面程序的运行结果是 。 #include viod main( ) intnum=0;while(num=2) num+; printf(%dn,num); A、1B、1 C、1 D、 1 2 2 2 3 34 9、以下程序段 _。x=-1;dox=x*x;while(!x); A、是死循环 B、循环执行二次 C、循环执行一次 D、 有语法错误 10、有如下程序段,则程序段_ _。 intx=3; doprintf(%dn,x-=2);while(!(-x); A、输出的是 1 B、输出
25、的是 1 和 -2 C、输出的是 3 和 0 D、是死循环 11、下面程序的运行结果是 _ _。#include void main( ) inty=10; doy-;while(-y); printf(%dn,y-) ; A、-1 B、0 C、1 D、8 12、若i 为整型变量,则以下循环执行次数是 _。 for(i=2;i=0;) printf(%d,i-); A、无限次 B、0 次 C、1 次 D、2 次 13、执行语句 for(i=1;i+4;); 后变量 i 的值是_。 A、3B、4 C、5 D、 不定 14、以下正确的描述是 _. A、continue 语句的作用是结束整个循环的执
26、行 B、只能在循环体内和 switch 语句体内使用 break 语句 C、在循环体内使用 break 语句或 continue 语句的作用相同 D、从多层循环嵌套中退出时,只能使用 goto 语句 15、有以下程序,程序运行后的输出结果是_。 void main() charb,c;inti; b=a;c=A; for(i=0;iamax) amax=x; if( ) amin=x; scanf(“%f”,&x); printf(“namax=%fnamin=%fn”,amax,amin); 2、下列程序打印如下形式的图形。* * * * * * *void main( ) for(int
27、i=1;i=4;i+) for(int j=1; ;j+) printf( );printf( ); 3、下列程序求100之内的自然数中偶数之和。#includevoid main( ) int i=1,s; ; while (i100) if (i%2=0) ; ; printf(“s=%dn”,s );4、下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。includestdiohvoid main() int i, j;for(i=1; ; i+)if ( ) printf(%d,i);5、下列程序打印如下形式的图形* * * * * * *
28、void main( ) for(int i=1;i=4;i+) for(int j=1; ;j+) printf( );printf( );6、 下面程序段是从键盘输入的字符中统计数字字符的个数, 用换行符结束循环。 intn=0,c;c=getchar( ); while( ) if( ) n+; c=getchar(); 7、下面程序的功能是用 辗转相除法 求两个正整数的最大公约数。 #include void main( ) intr,m,n;scanf(%d%d,&m,&n); if(mn) r=m%n;while(r)m=n;n=r;r= _; printf(%dn,n); 三、程
29、序改错题1、以下程序是输入一个整数,分别将其逆向输出。如-321的逆向是-123源程序(有错误的程序)#includevoid main( ) int n; scanf(“%d”, n);int m,y; y=0; if(n0) m=n; else m=-n; while (m=0) y=y*10+m/10; m=m%10; if(n0) y= y; printf(“%d的逆向是%dn”,n,y);( )改为:( )( )改为:( )( )改为:( )( )改为:( )( )改为:( )2、输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数
30、,2是素数。#include#includevoid main( ) int i,j,k,m,n; printf(“输入正整数的个数n:”); scanf(“%d”,&n); printf(“输入%d个正整数n”,n); for(j=0;jn;j+) scanf(“%d”,m); n=sqrt(m); for(i=1;in) printf(“%d是一个素数!n”,m); else printf(“%d不是一个素数!n”,m); ( )改为:( )( )改为:( )( )改为:( )四、编程题1、编程:输入一批非零整数,先输出其中的偶数和及奇数和,然后输出偶数和与奇数和的差。如:输入一批整数,以
31、零结束:10 11 20 330偶数和为:30奇数和为:44偶数和与奇数和的差为:-142、编程,输入个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。如:Input eps:0.00001S = 0.8669783、编程,输入1个实数x,计算并输出下式的值,直到最后一项小于10-5。在math.h中定义的标准函数pow(x,y),可以求x的y次方。如:X=2S=3.7621954、编程,输入一个整数,求它的各位数字之和及位数。例如123的各位数字之和是6,位数是3。如:输入一个整数:1234512345有5位数,各位数字之和是155、 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。如153是一个水仙花数,因为153=13+53+33。6、编程,输