c语言习题集1.doc_第1页
c语言习题集1.doc_第2页
c语言习题集1.doc_第3页
c语言习题集1.doc_第4页
c语言习题集1.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

c语言习题集第一章 C语言概述一填空题1C程序是由( )构成的,一个C程序中至少包含( ) 。因此,( ) 是C程序的基本单位。2C程序注释是由( ) 和( ) 所界定的文字信息组成的。3函数体一般包括( ) 和( ) 。二判断题1一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。 【 】2main函数必须写在一个C程序的最前面。 【 】3一个C程序可以包含若干的函数。【 】4C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【 】5C程序的注释只能是一行。【 】6C程序的注释不能是中文文字信息。【 】8可以使用Turbo C来编译和连接一个C程序。【 】9可以使用Turbo C来运行一个C程序。【 】10可以使用Turbo C来实时调试(即动态调试)一个C程序。【 】三简答题1 写出一个C程序的基本结构。2 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。四编程题1 提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。2 提高题:试编写一个C程序,输出如下信息。试试看,可以输出其他组合图案吗?第二章 数据类型,运算符与表达式一选择题1合法的字符常量是 。A) t B) “A” C) a D)x322、合法的字符常量是 。A) 084 B) 84 C) ab D)x432 是C语言提供的合法的数据类型关键字。A) Float B) signed C) integer D)Char3在以下各组标识符中,合法的标识符是。(1)A)B01 B)table_1 C) 0_t D) k%(2)A)Fast_ B) void C)pbl D)(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y234属于合法的C语言长整型常量的是 。A)5876273 B)0L C)2E10 D)(long)58762735下面选项中,不是合法整型常量的是 。A)160 B)0xcdg C)01 D)0x48a6判断int x = 0xaffbc;x的结果是 。A)赋值非法 B)溢出 C)为affb D)为ffbc7下面选项中,均是合法浮点数的是 。A)1e1 B).60 C)123e D)e3A)5e9.4 B)12e4 C)1.2e.4 D).8e4A)03e2 B)8e5 C)2e1 D)5.e08在C语言中,要求参加运算的数必须时整数的运算符是 。A)/ B)* C)% D) =9在C语言中,字符型数据在内存中以 形式存放。A)原码 B)BCD码 C)反码 D)ASCII码10下列语句中,符合语法的赋值语句是 。A)a7bca+7; B)a7ba7;C)a=(7b,b,a7); D)a7b,ca7;11 是非法的C语言转义字符。A)b B) 0xf C)037 D)12对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, 是正确的。A)语法错误 B)f为5.0 C)f为0.0 D)f为2.013与代数式(x*y)/(u*v) 不等价的C语言表达式是 。A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y14在C语言中,数字029是一个 。A)八进制数 B)十六进制数 C)十进制数 D)非法数15C语言中整数8在内存中的存储形式为 。A)1111111111111000 B)100000000001000C)000000000001000 D)111111111111011116对于char cx= 039;语句,正确的是 。A)不合法 B)cx的ASCII值是33C)cx的值为四个字符 D)cx的值为三个字符17若int k=7,x=12;则能使值为3的表达式是 。A)x%=(k%=5) B)x%=(kk%5)C)x%=kk%5 D)(x%=k)(k%=5)18为了计算s=10!(即10的阶乘),则s变量应定义为 。A)int B)unsigned C)long D)以上三种类型均可19以下所列的C语言常量中,错误的是 。A)0xFF B)1.2e0.5 C)2L D)7220假定x和y为double型,则表达式x=2,y=x+3/2的值是 。A)3.500000 B)3 C)2.000000 D)3.00000021设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.022以下合法的赋值语句是 。A)x=y=100 B)d C)x+y D)c=int(a+b)23以下选项中不属于C语言的类型是 。A)signed short int B)unsigned long intB)unsigned int D)long short24设以下变量均为int类型,则值不等于7的表达式是 。A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)25在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 。A)a=20000+20000; B)a=4000*10;C)3000010000; D)a=4000L*10L;二填空题1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 ,其数值范围为 ;一个int数据在内存中所占字节数为 ,其数值范围为 ;一个long数据在内存中所占字节数为 ,其数值范围为 ;一个float数据在内存中所占字节数为 ,其数值范围为 。2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 。3.字符常量使用一对 界定单个字符,而字符串常量使用一对 来界定若干个字符的序列。4.在C语言中,不同运算符之间运算次序存在 的区别,同一运算符之间运算次序存在 的规则。5.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为 。6.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 。7.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为 。8.数学式子 的C语言表达式为 。9.数学式子 的C语言表达式为 。10.已知:char a=a,b=b,c=c,i;则表达式i=a+b+c的值为 。11.已知int a=12,n=5;则:表达式运算后a的值各为 。a+=a a-=2 a*=2+3 a/=a+a n%=(n%=2) a+=a-=a*=a 12.设int a; float f; double i ;则表达式10+a+i*f值的数据类型是 。13.若a为int型变量,则表达式 (a=4*5,a*2) , a+6的值为 。14.假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 。15.已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是 。16.定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是 ,表达式y+=x+的值是 。17.定义:int m=5, n=3;则表达式m/=n+4的值是 ,表达式m=(m=1,n=2,n-m)的值是 ,表达式m+=m-=(m=1)*(n=2)的值是 。18.表达式5%(-3)的值是 ,表达式-5%(-3)的值是 。19.若a是int变量,则执行表达式a=25/3%3后,a的值是 。20.数学式子 的C语言表达式为: 。三判断题1.在C程序中对用到的所有数据都必须指定其数据类型。【 】2.一个变量在内存中占据一定的存储单元。【 】3.一个实型变量的值肯定是精确的。【 】4.对几个变量在定义时赋初值可以写成:int a=b=c=3;【 】5.自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量或表达式。【 】6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。【 】7.%运算符要求运算数必须是整数。【 】8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。【 】9.在C程序中,逗号运算符的优先级最低。【 】10.C语言不允许混合类型数据间进行运算。【 】四简答题1.为什么C语言的字符型可以进行数值运算?2.简述a和“a”的区别。3.程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12,而是15?4.将下面各数用八进制和十六进制数表示:十进制 32 1 32768 2002 128 0八进制 十六进制 6.华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c, F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?五程序阅读题1.写出以下程序运行的结果。main ( )char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctc%ctabcn”,c1,c2,c3);printf(“tb%c %c”,c4,c5);2.写出以下程序运行的结果。main ( )int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);六编程题1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。2.已知int x=10,y=12;写出将x和y的值互相交换的表达式。第三章 最简单的C程序设计一选择题1.C语言的程序一行写不下时,可以 。A)用逗号换行 B)用分号换行C)在任意一空格处换行 D)用回车符换行2.putchar ( )函数可以向终端输出一个 。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值3.执行下列程序片段时输出结果是 。unsigned int a=65535;printf(“%d”,a);A)65535 B)1 C)32767 D)14.执行下列程序片段时输出结果是 。float x=-1023.012printf(“n%8.3f,”,x);printf(“%10.3f”,x);A)1023.012, -1023.012 B)-1023.012,-1023.012C)1023.012,-1023.012 D)-1023.012, -1023.0125.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 。int a1,a2; char c1,c2;scanf(“%d%c%c”,&a1,&a2,&c1,&c2);A)10A 20B B)10 A 20 BC)10A20B C)10A20 B6对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按 方式输入数据。int k1,k2,k3,k4;scanf(“%d%d”,&k1,&k2);scanf(“%d,%d”,&k3,&k4);A)1020 B)10 20 C)10,20 D)10 20 1020 10 20 10,20 10,207.执行下列程序片段时输出结果是 。int x=13,y=5;printf(“%d”,x%=(y/=2);A)3 B)2 C)1 D)08.下列程序的输出结果是 。main ( ) int x=023;printf(“%d”,-x);A)17 B)18 C)23 D)249.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是 。int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020AB B)10 20ABC)10 20 AB D)10 20AB10.执行下列程序片段时输出结果是 。int x=5,y;y=2+(x+=x+,x+8,+x);printf(“%d”,y);A)13 B)14 C)15 D)1611.若定义x为double型变量,则能正确输入x值的语句是 。A)scanf(“%f”,x); B)scanf(“%f”,&x);C)scanf(“%lf”,&x); D)scanf(“%5.1f”,&x);12.若运行时输入:12345678,则下列程序运行结果为 。main ( ) int a,b;scanf(“%2d%2d%3d”,&a,&b);printf(“%dn”,a+b);A)46 B)579 C)5690 D)出错13.已知i,j,k为int型变量,若从键盘输入:1,2,3,使I的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是 。A)scanf(“%2d%2d%2d”,&i,&j,&k); B)scanf(“%d_%d_%d”,&i,&j,&k);C)scanf(“%d,%d,%d”,&i,&j,&k); D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);14.若int x,y; double z;以下不合法的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%6.2f”, &x,&y,&z);15.有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是 。A)132 B)1,3,2C)a=1 b=3 c=2 D)a=1,b=3,c=2二填空题1.一个C程序由若干个 文件组成,而一个这样的文件可以由若干个 和以及 组成。2.C语句可以分为 , , , 和 等5种类型。3.C控制语句有 种。4.一个表达式要构成一个C语句,必须 。5.复合语句是用一对 界定的语句块。6.printf函数和scanf函数的格式说明都使用 字符开始。7.scanf处理输入数据时,遇到下列情况时该数据认为结束:(1) ,(2) ,(3) 。8.已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是 。9.C语言本身不提供输入输出语句,其输入输出操作是由 来实现的。10.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令: 。三程序阅读题1.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入?main ( ) int a,b;float x,y;char c1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“ %f %e”,&x,&y);scanf(“ %c %c”,&c1,&c2);2.写出以下程序的输出结果。main ( ) int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);3.写出以下程序的输出结果。main ( ) int a=12345;float b=-198.345, c=6.5;printf(“a=%4d,b=%-10.2e,c=%6.2fn”,a,b,c);4.写出以下程序的输出结果。main ( ) int x=-2345;float y=-12.3;printf(“%6D,%06.2F”,x,y);5. 写出以下程序的输出结果。main ( ) int a=252;printf(“a=%o a=%#on”,a,a);printf(“a=%x a=%#xn”,a,a);6. 写出以下程序的输出结果。main ( ) int x=12; double a=3.1415926;printf(“%6d#,%-6d#n”,x,x);printf(“%14.101f#n”,a);四程序填空题1.下列程序的输出结果是16.00,请填(1)空使程序完整。main ( ) int a=9,b=2;float x= 1 , y=1.1 , z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);五编程题1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。2.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ASCII)c2=b or 98(ASCII)3.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。4.编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?或两者皆可?(2)要求输出C1和C2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符型变量是否在任何情况下都可以互相替代?如:char c1,c2 与 int c1,c2是否无条件地等价?第四章 选择结构程序设计一选择题1.逻辑运算符两侧运算对象的数据类型 。A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据 D)可以是任何类型的数据2.下列表达式中, 不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。A)x%2=0 B)!x%2!=0 C)(x/2*2-x)=0 D)!(x%2)3.以下程序片段 。int x=2,y=3;printf( );A)什么都不输出 B)输出为:*x=2C)输出为:#y=2 D)输出为:#y=34.能正确表示“当x的取值在1,10和200,210范围内为真,否则为假”的表达式是 。A)(x=1) & (x=200) & (x=1) | | (x=200) | | (x=1) & (x=200) & (x=1) | | (x=200) | | (xb) & (n=cd)后n的值为 。A)1 B)2 C)3 D)47.下面 是错误的if语句(设int x,a,b;)A)if (a=b) x+; B)if (a=y) x=y;y=x;else x+;y+;printf(“%d,%d”,x,y);A)有语法错误,不能通过编译 B)若输入3和4,则输出4和5C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和510.若w=1,x=2,y=3,z=4,则条件表达式wx ? w : y=1) | | (x=1 | x=1 & x=1) & (x0 | | +b0)+c;printf(“%d,%d,%d”,a,b,c);A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,113.下述程序的输出结果是 。main ( ) int x=-1,y=4,k;k=x+=0 & !(y-=0);printf(“%d,%d,%d”,k,x,y);A)0,0,3 B)0,1,2 C)1,0,3 D)1,1,214.以下程序输出结果是 。main ( ) int x=1,y=0,a=0,b=0;switch(x) case 1:switch (y) case 0 : a+ ; break ;case 1 : b+ ; break ;case 2:a+; b+; break;case 3:a+; b+;printf(“a=%d,b=%d”,a,b);A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=215.下述程序的输出结果是 。main ( ) int a,b,c;int x=5,y=10;a=(-y=x+) ? y : +x ;b=y+ ; c=x ;printf(“%d,%d,%d”,a,b,c);A)6,9,7 B)6,9,6 C)7,9,6 D )7,9,716.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 。if (ab)if (cd) x=1;elseif (ac)if (bd) x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)417.在下面的条件语句中(其中S1和S2表示C语言语句),只有 一个在功能上与其他三个语句不等价。A)if (a) S1; else S2; B)if (a=0) S2; else S1;C)if (a!=0) S1; else S2; D)if (a=0) S1; else S2;18.若int i=0;执行下列程序后,变量i的正确结果是 。switch (i) case 9: i+=1 ;case 10: i+=1 ;case 11: i+=1 ;default : i+=1 ;A)10 B)11 C)12 D)1319.若有说明语句int i=5,j=4,k=6;float f;则执行f=(ij&ik)?i:(jbc,b&c+1,c+=1,则表达式值相等的是 。A)和 B)和 C)和 D)和二填空题1.C语言提供6种关系运算符,按优先级高低它们分别是 , , , , , 等。2.C语言提供三种逻辑运算符,按优先级高低它们分别是 , , 。3.设a=3,b=4,c=5,写出下面各逻辑表达式的值。表达式 表达式运算后的值a+bc & b=c !(ab) & !c | 1 !(a+b) + c 1 & b + c/2 4.写出数学式子 的C语言表达式 。5.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 。6.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式: 。7.已知A=7.5,B=2,C=3.6,表达式AB & CA | AB的值是 。8.有int x=3,y=-4,z=5;则表达式(x&y)=(x|z)的值为 。9.若有x=1,y=2,z=3,则表达式(x0) & (s=3) & (s1) & (s8) x=3;else x=1;else x=0;五程序阅读题1.若运行时输入100,写出以下程序的运行结果。main ( ) int a ;scanf(“%d”,&a);printf(“%s”,(a%2!=0)?”No”:”Yes”);2.写出以下程序的运行结果。main ( ) int a=2,b=7,c=5;switch (a0) case 1: switch (b=A | | c=Z) ? c-32 : c+32 ;printf(“%c”,c);2.下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+5得到结果8;请判断下面程序的正误,如果错误请改正过来。main ( )float x,y,r;char op ;scanf(“%f%c%f”,&x,&op,&y);switch (op) case + : r=x+y ;case - : r=x+y ;case * : r=x+y ;case / : r=x+y ;printf(“%f”,r);七程序填空题2.以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。main ( ) int x=4,y=5,z=8 ;int u,v;u = xy ? 【1 】 ;v = uz ? 【2 】 ;printf (“%d”,v);八编程题1.有三个整数a,b,c,由键盘输入,输出其中最大的数。2.编程输入整数a和b,若 大于100,则输出 百位以上的数字,否则输出两数之和。4.给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。5.提高题:给一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数是321,应输出123。第五章 循环控制一选择题1.下面程序段int k=2;while (k=2) printf(“%d”,k);k-;则下面描述中正确的是 。A)while循环执行10次 B)循环是无限循环C)循环题语句一次也不执行 D)循环体语句执行一次2.下述程序段中, 与其他程序段的作用不同。A) k=1; B) k=1;while (1) Repeat :s+=k ; s+=k ;k=k+1 ; if (+k100) break ; goto Repeat printf(“n%d”,s) ;printf(“n%d”,s) ; C)int k,s=0; D) k=1;for (k=1;k=100;s+=+k); doprintf(“n%d”,s) ; s+=k;while (+k=100) ; printf(“n%d”,s) ;3.以下程序段的循环次数是 。for (i=2; i=0; ) printf(“%d” , i-) ;A)无限次 B)0次 C)1次 D)2次4.下面程序的输出结果是 。main ( ) char c=A;int k=0;do switch (c+) case A : k+ ; break ;case B : k- ;case C : k+=2 ; break ;case D : k%=2 ; continue ;case E : k*=10 ; break ;default : k/=3 ;k+; while (c0; x-) if (x%3=0) printf(“%d”,-x);continue ;A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是 。A) int i=100; B)for ( ; ; ) ;while (1) i=i%100+1 ;if (i100) break ; C) int k=0; D)int s=36;do +k; while (k=0); w

温馨提示

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

评论

0/150

提交评论