C程序的设计1_第1页
C程序的设计1_第2页
C程序的设计1_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、C程序设计练习题一、选择题1、c语言程序设计的基本单位是()。程序行B)语句C)函数D)字符2、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。有零个或多个输入B)有零个或多个输出(有一个或多个输出)C)有穷性D)可行性3、结构化程序由三种基本结构组成,三种基本结构组成的算法()A) 可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务4、以下叙述中正确的是()A) C程序中注释部分可以出现在程序中任意合适的地方B) 花括号和只能作为函数体的定界符(还可以是复合语句,switch结构中)C) 构成C程序的基本单位是

2、函数,所有函数名都可以由用户命名(只有自定义函数由用户命名)分号是C语句之间的分隔符,不是语句的一部分(分号是C语句结束标记,是语句的一部分)5、以下叙述中正确的是()A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行C语言中的函数不可以单独进行编译6、C语言中最基本的数据类型包括()A) 整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型7、vc6.0中int类型变量所占字节数是()1B)2C)3D)48、以下每个选项都代表一个常量,其中正确的

3、整型常量是0.0B)-20C)1,000D)4569、一下每个选项都代表一个常量,其中不正确的实型常量是()2.606E-1B)0.8103e2C)-77.7D)44.6e-210、以下选项中,为合法关键字的是()SwicthB)cherC)CaseD)defaultE)unsiguld11、以下符号不能用作用户标识符的是()用户标识符命名规则:只能是数字、字母、下划线组成,不能以数字开头,不能是系统的关键字,也不提倡用预定义标识符来命名。A)IFB)SwitchC)getsDcase12、以下符-号中不合法的用户标识符是()A)_123B)printfC)a$D)Dim13、以下符-号中不合

4、法的用户标识符是()A)abc.cB)fileC)MainD)PRINTF14、可用作用户标识符的一组标识符是()A)void(关键字)define(关键字)wordB)a3_b3_xyzifC)For-abc(应该是下划线)CaseD)2a(数字开头)DOsizeof(是关键字)15、C语言中提供的合法的数据类型关键字()A)DoubleB)shortC)integerD)Char16、以下运算符中要求运算对象必须是整型的是()A)%B)/C)=D)*17、不能正确表示ab/cd的C语言表达式的是()A)a/(c*d)*bB)a*b/c/dC)a*b/c*dD)a*b/(c*d)18、若x和

5、y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是()A)abs(x-y)-10&x-y10B) (x-y)10(x-y)*(x-y)10019、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()除法运算符的规则,如果两边的运算对象都是整型,结果必定是整数,也即3/2的结果为1,y=x+3/2=1+1=2,但y的类型是double类型,所以结果是2.0A)1B)2C)2.0D)2.520、若以下选项中的变量已正确定义,则正确的赋值语句是()x1=26.8%3;%要求两边都是整型数据1+2=x2;赋值运算符=要求=号左侧一定是变量x3=0x12;x4=1+

6、2=3;赋值运算符的求值顺序是自右向左,那么1+2=3,等号左侧就不是变量,而是表达式,所以是错误的。21、以下叙述正确的是(多选)()A) 在C程序中无论是整数还是实数,只要在允许围都能准确无误的表示。(实数不能准确无误的表小。)B) 若在定义语句doublea,b;之后,因为变量a、b已经正确定义,因此立刻执行这样的表达式:a=b+9.3是正确的。C) 在C程序中,常量、变量、函数调用,都是表达式的一种。D) 在main函数中,变量一经定义,系统将自动赋予初始值。E) 凡是表达式都有一个值。22、以下的变量定义中,合法的是()A) float3_four=3.4;(3_four变量名不合法

7、)B) int_abc_=2.1e-2;可以这样赋值,只取整数部分赋值,会造成数据的丢失C) doublea=1+4e2.0;(实型常量表示e后面的指数必须是整数)shortdo=15;(do是关键字,因此这个变量名不合法)23、有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是()a=a+b=b+a+b=b+等号左侧不是变量,而是表达式w%(int)a+b)(int)a+b)的类型还是double类型(c+w)%(int)aw=a=b;此为赋值语句,题中要表达式24、有以下程序main()intm=0256,n=256;.专业.专注.pri

8、ntf(%o%on”,m,n);程序运行后的输出结果是()A)02560400B)0256256C)256400D)40040025、有以下程序main()(inta=666,b=888;printf(%dn”,a,b);/如果改成printf(“d%dn,a);则输出结果为666,和一个随机值程序运行后的输出结果是()A)错误信息B)666C)888D)666,88826、若有intk=11;则表达式(k+*1/3)的值是()A)0B)3C)11D)1227、在C语言中,如果下面的变量都是int类型,则输出的结果是()。sum=pad=5;pad=sum+,pad+,+pad;A)7B)6C

9、)5D)428、以下程序的输出结果是()。# includemain()(inti=,j=10;printf(%d,%dn”,+i,j-);A)11,10B)9,10C),9D)10,929、已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是()。includemain()charc1=A,c2=Y;printf(%d,%dn”,c1,c2);A)因输出格式不合法,输出错误信息B)65,90C)A,YD)65,8930、以下程序的输出结果是()。includemain()printf(%dn”,NULL);/NULL是符号常量A)不确定的(因变量无定义)B)0C)-1D)131

10、、设有语句chara=71;则变量a()。71与等价,表示字符9A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法33、以下程序的输出结果是()。includemain()inta=2,c=5;printf(a=%d,b=%dn,a,c);%嘱用来输出一个此时就没有相应的d来输出a和c的值A)a=%2,b=%5B)a=2,b=5C)a=%d,b=%dD)a=%d,b=%d34、以下程序的输出结果是()。includemain()inta,b,d=241;a=d/100%9;除法/与取余符号勺优先级相同,按照自左向右顺序计算,241/100的结果是2,2%9的余数是2b=(-1)&(

11、-1);逻辑表达式的结果不是0就是1,逻辑与符号,只要左右两边都是非0数据,则结果一定为真,用数值1表示。printf(%d,%dn,a,b);A)6,1B)2,1C)6,0D)2,035、以下程序的输出结果是()。includemain()inti=1,j=3;printf(%d,i+);inti=0;i+=j*2;printf(,%d,%d,i,j);printf(%d,%dn,i,j);A)1,6,3,1,3B)1,6,3,2,3C)1,6,3,6,3D)1,7,3,2,336、在字符常量定义#definePI3.14159中,用标识符PI代替一个()符号常量通常用大写字母表示A)单精度

12、数B)双精度数C)常量D)字符串37、字符(char)型数据在微机存中的存储形式是()A)反码B)补码C)EBCDIC码D)ASCII码38、执行下面的程序段()。intx=35;charz=A;intb;b=(x&15)&(zb)&(n=cd)后n的值为()根据逻辑与符号的短路特性来计算,如果左边对象为假,则就停止计算,表达式的结果就为0,此时m的值为0,n的值没有变化,为2A)1B)2C)3D)4.专业.专注.41、若k是int型变量,且有下面的程序片段:k=-3;/-和+运算符只针对变量进行自加和自减,而3是常量,所以有语法错误if(ky乙应使用C语言表达式()A) (x=y)&(y=z

13、)/还可以写成z=y&y=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)45、以下程序的输出结果是()main()intx=10,y=10;printf(%d%dn,x-,-y);/*x一是先使用x的初值,然后使得x的值减1;-y是先使y的值减1,然后再使用y的值*/A)1010B)99C)910D)10946、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()A)a0/c语言中不等于的写法是!=B) !a/此等价于a=0C) a=0/此时a=0是赋值,不是关系比较,当表示比较时用=D)a47、两次运行下面的程序,如果从键盘上分别输入6和4,则

14、输出结果是()main()intx;scanf(%d,&x);if(x+5)/*注意x+5的用法,先使用x,当输入6时,65成立,但不马上执行printf(%cf,x);,而是让x的值加1,此时if中表达式的判断才结束。当输入4时,45不成立,要执行else分支,可是在执行之前,x的值要先加1,此时由4变成5,而printf(%dn”,x-);则是先使用x,也即输出x的值,此时是5,保持不变*/printf(%d,x);elseprintf(%dn,x-);A7和5B)6和3C)7和4D)6和448、以下程序的输出结果是main()inta=-1,b=4,k;k=(+a0)&!(b-=0);(

15、)/*此题除考查+、-之外,还考查的是逻辑与&勺短路特性问题逻辑表达式的结果不是0就是1,因此k的饰是0就是1;等号右侧除了有小括号之外,就是逻辑与&爵日逻辑非!,逻辑非的优先级高于逻辑与,但有括号先计算括号里面的;a的初值是-1,而+a0则是,先使得a的值加1,然后再和0进行比较,即为00不成立,因此&侧的表达式结果为0,根据逻辑与&勺短路特性,如果左侧为假(0值,则无需计算&跖侧的表达式结果,整个逻辑表达式的结果即为假,用0值表示,由于&跖侧表达式没有计算,则b的值将保持不变,仍为4*/printf(%d%d%dn,k,a,b);A)104B)103C)003D)00449、在C语言中,合

16、法的字符常量是()A)084/*此为字符常量中的转义字符,ddd的形式,也即是后面的三个数字必须是8进制数据,而8进制数据中不允许出现数字8*/B)x43C)ab/字符常量是由一对单引号括起来的单个字符D)“0”/此为字符串常量50、下列不正确的转义字符是()A)B),C)D)051、若有以下定义和语句,则输出结果是:()intu=,v=0x10,w=10;/010是一个8进制数据,将其转化成10进制:1X81+0X80=8/0x10是一个16进制数据,将其转化成10进制:1x161+0X160=16/至于为什么要转化成10进制,原因是d格式符就是用来输出10进制整型数据的printf(%d,

17、%d,%dn”,u,v,w);A)8,16,10B)10,10,10C)8,8,10D)8,10,1052、下面程序的输出是()main()unsigneda=32768;/*32768是2的16次幕,unsignedint类型占用4个字节,并且无符号数都是正数*/printf(a=%dn,a);/*%d用来输出10进制整型数据,是有符号数据,int类型也占用4个字节,又由于正数在存中的存储原码和补码相同,就是这个正数的二进制表示形式,因此,a的值.专业.专注.按照int类型输出,结果还是32768*/A)a=32768B)a=32767C)a=-32768D)a=-153、若有以下定义:fl

18、oatx;inta,b;则正确的switch语句是()A)switch(x)case1.0:printf(*n);case2.0:printf(*n);B)switch(x)case1,2:printf(*n);形式case3:printf(*n);A) C)switch(a+b)case1:printf(n);case1+2:printf(*n);54、若a、b均是正整型变量,switch(a*a+b*b)/case后只能是整型和字符型常量/case后面只能是整型常量表达式,不能写成1,2的/case和3之间有空格D)switch(a+b);/多了分号case1:printf(*n);cas

19、e2:printf(*n);以下正确的switch语句是()/缺少B)switch(a*a+b*b);/多了分号case1:case3:y=a+b;break;case3:case0:case5:y=a-b;case1:y=a+b;break;C)switch(a)default:x=a+b;case10:y=a-b;break;case11:x=a*d;break;case0:y=b-a;break;D)switch(a+b)case10:x=a+b;break;/case和10之间要有空格case11:y=a-b;break;55、若有定义:intx,y;chara,b,c;1旦2并有以下

20、输入数据(此处代表换行符,旦代表空格):A旦B旦C则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是scanf(x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();/*输入格式不符,正确输入应该是x=1y=2的形式,除此,getchar()函数能够接收空格和回车符作为有效字符,也即a=getchar();接收的是回车符,而不是字符A,b=getchar();接收的字符A,而不是字符B,c=getchar();接收的是A后面的空格符,而不是字符C。*/scanf(%d%d,&x,&y);a=getchar(

21、);b=getchar();c=getchar();/*此时,虽然数值型接收对,但字符接收不符合题中要求,解释同上*/A) scanf(%d%d%c%c%C,&x,&y,&a,&b,&c);scanf(%d%d%c%c%c%c%c%c,&x,&y,&a,&a,&b,&b,&c,&c);56、假定所有变量均已正确说明,下列程序段运行后x的值是a=b=c=0;x=35;.专业.专注.if(!a)x-;elseif(b);if(c)x=3;elsex=4;/*此题考查if语句的嵌套,if语句的作用围,以及if(!a)的用法,还有变量的赋值,对同一变量进行多次赋值,变量的值总是最后一次赋值的结果。if

22、(!a)与if(a=0)是等价的,此时a的初值是0,因此执行x一语句,此时x的值由35变成34,if(c)与下面的else是一对,一起作为上面ifelse结构的后续语句,也即两个ifelse结构是并列的关系,但是if(b)去是与if(!a)配对的else的嵌语句;if(c)条件不成立,原因是c的值为0,因此执行与之匹配的else分支,此时x的值由34变成4*/A)34B)4C)35D)357、在以下一组运算符中,优先级最高的运算符是()/运算符优先级可参考课本中的附录6,算/术运算符高于关系运算符,高于逻辑运算符中的逻辑与&爵日逻辑或|,高于赋值运算符0);/if(a0)与;看成一个整体,作为

23、一条语句出现D)if(b=0)m=1;n=2;60、以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是()/条件表达式exp1?exp2:exp3的执行过程是exp1为真时,表达式的结果是exp2的值,否则是/exp3的值A)if(ab)&(bc)k=1;elsek=0;B)if(ab)|(bc)k=1elsek=0;C)if(ab)k=1;elseif(bc)k=1;elsek=0;61、有以下程序main()inta=3,b=4,c=5,d=2;if(ab)if(bc)printf(%d,(d+)+1);elseprintf(%d”,(+d)+1);printf(%dn”,d)

24、;/此题主要考查程序的结构,if(bc)else是if(ab)的嵌语句,也即程序总的结构是单分支结构,/如果if(ab)不成立,则直接执行语句printf(%dn,d);程序运行后的输出结果是()A)2B)3C)43D)4462、下列条件语句中,功能与其他语句不同的是()/考查if(a!=0)与if(a)等价,if(a=0)与if(!a)等价A) if(a)printf(%dn”,x);elseprintf(%dn”,y);B) if(a=0)printf(%dn,y);elseprintf(%dn,x);C) if(a!=0)printf(%dn,x);elseprintf(%dn,y);i

25、f(a=0)printf(%dn,x);elseprintf(%dn,y);63、有以下程序main()inta,b,c,d;scanf(%d,%d,%d,%d”,&a,&b,&c,&d);printf(%d,%d,%c,%cn,a,b,c,d);若运行时从键盘上输入:6,5,65,66。则输出结果是()A)6,5,A,B/字符型数据ASCII码值在0-255之间时,可以和数值型数据相互转化,当0-255之间的数值用c输出时,输出此数值(ASCII)所对应的字符,当字符用d输出时,贝膊俞出此字符所对应的ASCII码值6,5,65,66C)6,5,6,5D)6,5,6,664、以下程序的输出结果

26、()main()inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(%dn”,c);/此题考查if程序结构,整体看来就是一个单分子结构,if(ab)不成立,则程序直接执行printf(%dn”,c);A)0B)1C)2D)365、下面程序的输出结果是()main()floatx=2.0,y;if(x0.0)y=0.0;elseif(x0.5)&(!x)y=1.0/(x+2);elseif(x10.0)y=1.0/x;elsey=10.0;printf(%fn,y);本题考察多分支ifelseifelseifelse的用法,其中该多分支结构的执行过程是

27、先判断if(x0.0)是否成立,如果成立,执行y=0.0;然后跳到后续语句printf(%fn”,y);如果不成立,则依次判断elseif(x0.5)&(!x)是否成立,如果成立,贝U执行y=1.0/(x+2);,然后跳到到后续语句printf(%fn”,y);,如果不成立,则继续判断elseif(x10.0)是否成立,如果成立,则执行y=1.0/x;然后继续执行后续语句printf(%fn”,y);,如果不成立,则执行else分支,即y=10.0;然后接着执行后续语句printf(%fn”,y);注意:1.0/x的结果定是带有小数点的。也即除法/的用法是如果两边运算对象是整型,结果一定是整数

28、,如1/2的结果是0;如果有一个是浮点型,结果一定是浮点型,如1.0/2=0.5。A)0.000000B)0.250000C)0.500000D)1.00000066、C语言的if语句中,用以决定分支流程的()A)只能用逻辑表达式或关系表达式B)只能用关系表达式A) 只能用逻辑表达式可用任意类型表达式/只要表达式的结果是非0数据,就代表if条件成立67、设a=1、b=2、c=3、d=4,则表达式:ab?a:cd?a:d的结果是()A)4B)3C)2D)1/*此题考查条件表达式的嵌套使用,即条件运算符的结合方向(自右向左),因此ab?a:cd?a:d等价于ab?a:(cd?a:d),而条件表达式

29、是求解过程是,如果cd成立,则括号里的值为a的值1,否则是d的值4;而cd即34成立,所以括号里的值为1,然后ab?a:cd?a:d即可变化成ab?a:1,ab即为12成立,因此,整个条件表达式的结果即为a的值1。*/68、以下程序的输出结果()intk,j,s;for(k=2;k6;k+,k+)s=1;for(j=k;j6;j+)s+=j;printf(%dn,s);/*注意累加和的初始值,在每次部循环开始时,都是从1开始的。由于层循环中s=1;这条语句外层循环每次都要执行,因此,就可以跳过k=2;这一次,直接从k=4;这一次开始,层循环从j=k=4,到j7)n-;/此时n-;和-n;的作用

30、相同,就是让n的值自减1printf(d,n);A)1098B)987C)10987D)987670、以下程序的输出结果()main()inti;.专业.专注.for(i=3;i=5;i+)(if(i%2)/等价于if(i%2!=0),也等价于if(i%2=1)printf(*);elsecontinue;/continue;的作用能使程序结束本次循环printf(#”);printf($n”);/*整个程序的执行过程如下:i=3时,if(i%2)条件成立,输出一个*,然后执行后续语句printf(#”);,输出一个#,然后i+,此时i的值为4,if(i%2)条件不成立,执行else分支,此时

31、遇到continue语句,则跳过本次循环执行,执行i+,此时i的值为5,if条件成立,输出一个*,然后执行后续语句再输出一个#,i再次+,此时i的值为6,i=5循环条件不成立,则退出循环,但要执行循环的后续语句printf($n”);输出一个$*/A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$71、以下程序的输出结果是()main()(intx,i;for(i=1;i0)|(E0)73、以下程序运行后,a的值()main()(inta,b;for(a=1,b=1;a=20)break;if(b%3=1)(b+=3;continue;b-=5;/该语句形同虚设,根本执行不到,并

32、且有没有该语句,不影响程序的最终结果printf(%d”,a);/*本题考察break和contnue语句的用法,C语言中,break有两个地方可以用,一个是switch结构中,一个是循环体中,当用在循环体中时,可以强制退出循环;continue语句只能用在循环体中,能够结束本次循环的执行,也即continue语句后面的语句根本执行不到*/A)7B)8C)9D)1074、设x和y均为整型变量,则执行下面的循环后,y的值为()voidmain()(intx,y;for(y=1,x=1;y=10)break;if(x%2=1)(x+=5;continue;x-=3;printf(%d,y);/*本

33、题和上一题,有些类似,但不尽相同。本题中x-=3;这条语句执行到了,也即当if(x%2=1)条件不成立时,即执行x-=3;这条语句*/A)2B)4C)6D)875、下面程序的输出是()main()(intx=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=-1;printf(%dn,x);/*本题考察if语句的嵌套使用,以及if(!a)和if(a)的用法;该程序的结构整体看是单分支结构。if(ok2)x=10;作为else分支的嵌语句。而ifelse结构作为if(b!=15)的嵌语句,而if(b!=1

34、5)又作为if(ab)的嵌语句*/A)-1B)0C)1D)不确定的值二、填空题.专业.专注.1、一个C程序的开发步骤可以分为四步,分别是编辑、(编译)、(连接)、(执行)。2、一个C程序必须有一个(main)函数。C程序执行时必定从(行。main)函数开始执3、函数体由符号()开始,用(4、在C语言程序中,用关键字(int单精度实型变量,用关键字(double定义无符号型整型变量。)符号结束。)定义基本整型变量,用关键字()定义双精度实型变量,用关键字float)定义unsigned)5、a、b要定义成单精度实型变量,并赋初值1的定义语句是floata=1,b=1;floata=b=1;则是错

35、误的6、把c、d定义成双精度实型变量,并赋初值0的定义语句是doublec=0,d=0;7、vc+6.0中,C语言中的int整型变量在存中占(4)个字节,其中可存放的数值围是-232_到231-1。8、表达式3%3*3的计算结果是_09、表达式1/3*3的计算结果是一0一10、表达式1.0/2*3的计算结果是1511、表达式-30%6+1的计算结果是112、表达式3*6%2的计算结果是013、请写出四个能表达数学式a/bc的C语言表达a/b/c,a/(b*c),a/c/b,a/(c*b)_14、表达式k=10应当读做“将数值10赋值给变量k”15、若k为int型变量且赋值为乙x为double型

36、变量且赋值8.4,则赋值表达式x=k的运算结果是(7.0)16、若x为double型变量,赋值表达式x=(int)8.5的运算结果是(8.0)17、若有intk=7;则赋值表达式k*=k+3的运算结果是(70)18、若有intk;则k=10,k+,k+,k+3后,表达式的值是(15),变量k的值是(12)19、若有doublex=8.4,则赋值表达式x+=x+2.3的运算结果(19.1)21、若有intx=1,y=2,则表达式1.0+x/y的值为(1.0)22、若有intk=11,则运算表达式k+后,表达式的值是(11)变量k的值是(12)23、若有doublex=3.2,则运算表达式+x后,

37、表达式的值是(4.2),变量x的值是(4.2)24、若有intk,j;贝U运算表达式k=(j=3,j+2,+j,j+)后,表达式的值是(4);变量k的值(4);变量j的值(5)。26、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:a*=16+(b+)-(+c);后,a的值是(28)27、下面程序的输出结果是(3,3,-2,2,3,-1,)。#includemain()inta=3,b=2,c=1;c-=+b;b*=a+c;printf(%d,%d,%d,a,b,c);c/=b*2;a-=c;a+=-c;printf(%d,%d,%d,a,b,c);28、有以下语句段intn

38、1=10,n2=20;printf(【28】”,n1,n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请写出【28】处的容_n1=%dnn2=%d。n1=10n2=2029、有以下程序main()intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(%dn,x);执行后输出结果是-4。30、有以下程序#includemain()charch1,ch2;intn1,n2;ch1=getchar();/当输入12时,ch1的值是字符1,ch2的值是字符2ch2=getchar();n1=ch1-0;/n1=1-0=1n2=n1*

39、10+(ch2-0);/n2=1*10+(2-0)=10+2=12printf(dn”,n2);程序运行时输入:12回车,执行后输出结果是12此时是数值12。31、以下程序运行后的输出结果是_21。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(%d%dn,a,b);32、若已定义inta=25,b=14,c=19;以下语句的执行结果是(#a=26,b=14,c=19)a+25&b-=2&c+?printf(*a=%d,b=%d,c=%

40、dn”,a,b,c):printf(#a=%d,b=%d,c=%dn”,a,b,c);/*本题考察条件运算符的用法,然后就是逻辑与&勺短路特性问题。a=25,则a+25不成立,则结果为0,那么b-=2,以及c+都执行不到,但是a的值要加1*/33、将下列数学式改写成C语言的关系表达式或逻辑表达式A_a=b|a4|x-4A:a=b或a4.专业.专注.main()/*mainfounction*/(floata,b,c,v;a=2.0;b=3.0;c=4.0;v=a*b*c;printf(%fn,v);main()(floatL,H,W,v;printf(pleaseenterL,W,H:);sc

41、anf(%f%f%f,&L,&W,&H);v=L*H*W;printf(%fn,v);main()(inta,b,c;scanf(%d%d%d”,&a,&b,&c);if(ab)&(ac)if(bc)printf(min=%dn,b);elseprintf(min=%dn,c);if(ab)&(ac)printf(min=%dn,a);34、以下程序运行后的输出结果是4599。main()(inta=3,b=4,c=5,t=99;if(ba&ac)t=a;/此为if语句的作用围与(t=a;a=c;c=t;不同a=c;/是if语句的后续语句c=t;/是if语句的后续语句if(ac&bc)t=b;

42、/此为if语句的作用围与(t=b;b=a;a=t;不同b=a;/是if语句的后续语句a=t;/是if语句的后续语句printf(%d%d%dn,a,b,c);35、以下程序运行后的输出结果是10200。main()(inta,b,c;a=10;b=20;c=(a%b1);/a%b1等价于10%201等价于101等价于/10/201即01结果为0,因此c为0|0,结果为0printf(%d%d%dn,a,b,c);三、改错题1、以下程序有多处错误,请改正。main/*mainfounction*/(floata,b,c,v;a=2.0;b=3.0;c=4.0v=a*b*c;printf(%fn,

43、v)2、这是个求立方体体积的小程序,但有错误,请你改正。main()(floatL,H,H,V;printf(pleaseenterL,VVH:);scanf(%f%f%f,L,W,H);v=L*H*W;printf(%fnv);3、程序输入三个整数,并输出其中最小的数。请改正错误的地方main()(inta,b,c;scanf(%d%d%da,b,c);if(ab)&(ac)ifbcprintf(min=%dn”,b)elseprintf(min=%dn”,c)if(ab)&(ac)printf(min=%dn”,a)四、编程题1、编程输入一个小于65536的正整数,要求:(1) 求出它是几

44、位数(2) 分别打印出每一位的数字按逆序打印各位数字,例如源序为123,应输出321#includemain()(inta,t,n=0,p=0;scanf(%d”,&a);if(a65536)printf(-请输入符合065536围的数据!);else(while(a)(t=a%10;p=p*10+t;a=a/10;n+;printf(%4d”,t);printf(n输入的数据一共d位数n,n);printf(逆置输出的数据为%d,p);2、请将下列语句改写成switch语句if(s=90|s=100)a=5;elseif(s=80)a=4;elseif(s=70)a=3;elseif(s=6

45、0)a=2;elsea=1;#includevoidmain().专业.专注.(ints,a;scanf(%d”,&s);if(s100)printf(请输入0到100之间的数据!n);else(switch(s/10)(case10:case9:a=5;break;case8:a=4;break;case7:a=3;break;case6:a=2;break;default:a=1;printf(a=%d,a);3、编写程序,求分段函数的值。voidmain()(intx,i;intt=1;scanf(%d,&x);for(i=2;ix;i+)for(i=2;i=sqrt(x);i+)if(

46、x%i=0)t=0;if(t=1)printf(yeselseprintf(no!);!);/for(i=2;i=x-1;i+)者for(i=2;i=x/2;i+)y=2x+3(x-3)3(-3x3)方法一:用多分支ifelseifelseifelse实现#includevoidmain()(intx,y;scanf(%d,&x);if(x-3)y=2*x+3;elseif(x3)y=3;elsey=4*x-8;printf(y=%d,y);方法二:三个单独的if分支实现#includevoidmain()(intx,y;scanf(%d,&x);if(x=-3&x=3)y=4*x-8;pri

47、ntf(y=%d,y);方法三:if语句的嵌套#includevoidmain()(intx,y;scanf(%d,&x);if(x-3)y=2*x+3;elseif(x3)y=3;elsey=4*x-8;printf(y=%d,y);或者方法二#include#includevoidmain()(intx,i;scanf(%d,&x);for(i=2;i=sqrt(x);i+)for(i=2;isqrt(x)/if(ix-1)或者if(ix/2)或者if(i=x)for中表达式2相对应printf(yes!);elseprintf(no!);/for(i=2;i=x-1;i+)者for(i=2;i=x/2;i+)具体写哪一个if语句形式和上面的5、从键盘上输入一个整数,判断其是否是奇数,如果是输出“该数是奇数”,否则输出是“偶数”4、从键盘上输入一个整数,判断其是否是素数,如果是输出“YES,否则输出“N。#include#include/当用到sqrt(x)时,必须加前面的数学头文件#includevoidmai

温馨提示

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

评论

0/150

提交评论