




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言章节习题目录C语言章节习题1第一章C语言概述1第三章数据类型、运算符与表达式2第四章顺序结构程序设计4第五章选择结构程序设计9第六章循环结构程序设计15第7章数组习题23第8章函数习题31第九章预处理37第十章指针38第一章C语言概述一、选择题:1、一个C程序的执行就是从(A)。A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C语言中,每个语句必须以(D)结束。A、回车符B、冒号C、逗号D、分号3、C语言规定:在一
2、个源程序中,main函数的位置(C)。A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后4、一个C语言程序就是由(B)。A、一个主程序与若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成5、下列说法中错误的就是(D)。A、主函数可以分为两个部分:主函数说明部分与主函数体B、主函数可以调用任何非主函数的其她函数C、任何非主函数可以调用其她任何非主函数D、程序可以从任何非主函数开始执行6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。A、生成可执行目标文件B、生成目标文件C、输出运行结果D、自动保存源文件二、填空题:1、C语言只有(37)个关键
3、字与(9)种控制语句。2、每个源程序有且只有一个(main)函数,系统总就是从该函数开始执行C语言程序。3、C语言程序的注释可以出现在程序中的任何地方,它总就是以(*)符号作为开始标记,以()符号作为结束标记。4、C语言中,输入操作就是由库函数(scanf)完成的,输出操作就是由库函数(printf)完成的。5、系统默认的C语言源程序文件的扩展名就是(、c),经过编译后生成的目标文件的扩展名就是(、obj),经过连接后生成的可执行文件的扩展名就是(、exe)。6、C语言的标识符只能由字母、数字与(下划线)三种字符组成。第三章数据类型、运算符与表达式一、选择题:1、以下选项中,不正确的C语言浮点
4、型常量就是(C)。A、160、B、0、12C、2e4、2D、0、02、以下选项中,(D)就是不正确的C语言字符型常量。A、'a'B、'x41'C、'101'D、"a"3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。A、原码B、反码C、ASCII码D、BCD码4、若x、i、j与k都就是int型变量,则计算下面表达式后,x的值就是(C)。x=(i=4,j=16,k=32)A、4B、16C、32D、525、算术运算符、赋值运算符与关系运算符的运算优先级按从高到低依次为(B)。A、算术运算、赋值运算、关系运算B、算术
5、运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算D、关系运算、算术运算、赋值运算6、表达式!x|a=b等效于(D)。A、!(x|a)=b)B、!(x|y)=bC、!(x|(a=b)D、(!x)|(a=b)7、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值就是(B)。A、0,0B、0,1C、1,0D、1,18、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值就是(B)。A、3B、0C、9D、-129、在以下一组运算符中,优先级最低的运算符就是(D)。A、*B、!=C、+D、=10、设整型变量i
6、值为2,表达式(+i)+(+i)+(+i)的结果就是(B)。A、6B、12C、15D、表达式出错11、若已定义x与y为double类型,则表达式x=1,y=x+3/2的值就是(C)。A、1B、2C、2、0D、2、512、设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为(D)。A、4B、3C、2D、113、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式就是(A)。A、10<a<15B、a=11|a=12|a=13|a=14C、a>10&&a<15D、!(a<=10)&&
7、amp;!(a>=15)14、设f就是实型变量,下列表达式中不就是逗号表达式的就是(D)。A、f=3、2,1、0B、f>0,f<10C、f=2、0,f>0D、f=(3、2,1、0)15、 表达式18/4*sqrt(4、0)/8值的数据类型就是(C)。A、intB、floatC、doubleD、不确定16、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=A+-63后;c2中的值就是(A)。A、DB、68C、不确定的值D、C17、以下用户标识符中,合法的就是(B)。A、intB、nitC、123D、a+b18、C语言中,要求运算对象只能为整数的运算符
8、就是(A)。A、%B、/C、>D、*19、若有说明语句:charc='72'则变量c在内存占用的字节数就是(A)。A、1B、2C、3D、420、字符串"ABC"在内存占用的字节数就是(B)。A、3B、4C、6D、821、要为字符型变量a赋初值,下列语句中哪一个就是正确的(B)。A、chara="3"B、chara=3;C、chara=%;D、chara=*;22、下列不正确的转义字符就是(C)。A、B、'C、074D、0二、填空题:1、 C语言中的逻辑值“真”就是用1表示的,逻辑值“假”就是用0表示的。2、 若x与n都就是i
9、nt型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为0。3、设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b=a=2的值为1、0、1、1。4、设floatx=2、5,y=4、7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2、5。5、判断变量a、b的值均不为0的逻辑表达式为a!=0&&b!=0,值为1。6、求解赋值表达式a=(b=10)%(c=6),表达式值为4、a、b、c的值依次为1,0,6。7、求解逗
10、号表达式x=a=3,6*a后,表达式值为18、x、a的值依次为3,3。三、编程题:1、 设长方形的高为1、5,宽为2、3,编程求该长方形的周长与面积。2、 编写一个程序,将大写字母A转换为小写字母a。1、main()floatx=1、5,y=2、3;printf(“areai、s%6n”,x*y);2、main()charc='A;printf("%d',c+32);第四章顺序结构程序设计基础练习(A)一、填空题1、c语句分为五种:控制语句、函数调用语句、表达式语句、空语句与复合语句。2、一个基本语句的最后一个字符就是j。3、复合语句又称分程序,就是用括起来的语句。4
11、、使用C语言库函数时,要用于预编译命令#include将有关的“头文件”包括到用户源文5、使用标准输入输出库函数时,程序的开头要有如下预处理命令:#include<stdio、h>6、a=3;c+=a-b;在语法上被认为就是1条语句。7、getchar函数的作用就是从终端输入1个字符。8、如果从键盘输入字符/按回车键,请写出以下程序运行效果a。#include<stdio、h>main()putchar(getchar();9、以下程序的输出结果为i:dec=-4,oct=177774,hex=fffc,unsigned=65532。main()shorti;i=-4;
12、pnntf(n,i,i,i,i);10、以下程序的输出结果为*3、140000,3、142*。main()printf("*%f,、4n”,314,3、1415);11、以下程序的输出结果为c:dec=120,oct=170,hex=78,ASCII=x。main()charc='x'printf("c:dec=%d,oct=%o,hex=%x,ASCII=%C,c,c,c,c);12、已有定义intd=-2;执行以下语句后的输出结果就是*d(1)=-2*d(2)=-2*d(3)=-2t*d(4)=177776*d(5)=177776*d(6)=177776
13、*printf("*d(1)=%d*d(2)=%3d*d(3)=%n”,d,d,d);printf("*d(4)=%o*d(5)=%7o*d(6)=%n”,d,d,d);13、以下程序的输出结果为x=1y=2*sum*=310Squaredis:100main()intx=1,y=2;printf("x=%dy=%d*sum*=%nf,x,y,x+y)printf("10Squaredisn%d,10*10);14、以下程序的输出结果为(1)123、456000(2) 口口123、457(3) 123、45608765、456700(5) 8765、45
14、7(6) 8765、45678765、4567#include<stdio、h>main()floata=123、456;doubleb=8765、4567;printf("(1)n",a);printf(“(2)%14n”,a);printf("(35%6n”,a);printf("(4)%If,b);printf("(5)%14n”,b);printf("(6)%8n”,b);printf("(7)%n”,b);二、判断题1、所谓函数体实际上就就是一个复合语句。(又)2、C语言本身不提供输入输出语句,输入与输
15、出操作就是由函数来实现的。(对)3、putchar函数可以向终端输出一个整数数据。(错)4、考虑到printf与scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。(对)5、任何表达式都可以加上分号而成为有意义的语句。(对)三、选择题1、以下不属于流程控制语句的就是(A)。D)转移语句A)表达式语句B)选择语句C)循环语句2、putchar函数可以向终端输出一个(D)。D)字符或字符型变量值A)整型变量表达式值B)实型变量值C)字符串3、getchar函数的参数个数就是(B)。A)1B)0C)2D)任意4、以下程序的输出结果就是(D)。main()printf(n*s
16、1=%15s*","chinabeijing");printf(n*s2=%-5s*","chi");A)*s1=chinabeijing *s2=*chi*C)*s1=*chinabeijing*s2=chi*5、printf函数中用到格式符B)*s1=chinabeijing *s2=chi *D)*s1= chinabeijing*s2=chi *5s,其中数字5表示输出的字符串占用5歹U。如果字符串长度大于5,则输出按方式(B )。;如果字符串长度小于5,则输出按方式(C )。A)从左起输出该字串,右补空格B)按原字符长从左向
17、右全部输出C)右对齐输出该字串,左补空格D)输出错误信息6、已有定义int a=-2;与输出语句:printf(“8lx”以前正确的叙述就是(D )。A)整型变量的输出格式符只有%d 一种B) % x就是格式符的一种,它可以适用于任何一种类型的数据C) %x就是格式符的一种,其变量的值按十六进制输出,但 8lx就是错误的D)%8lx不就是错误的格式符,其中数字8规定了输出字段的宽度7、以下C程序正确的运行结果就是(C )。main()long y=-43456;printf("y=% n”,y);printf("y0%dn ” ,y);printf("y=%081
18、d,y);printf("y=%+81d,y);A)y= -43456 y=- 43456 y=-0043456B)y=-43456 y=-43456 y=-0043456y=-43456y=+-43456C)y=-43456D)y=-43456y=-43456y=-0043456y=-0043456y=00043456y=-43456y=+434568、以下C程序正确的运行结果就是(D)。main()inty=2456;printf("y=%3o,y);printf("y=%8o,y);printf("y=%#8O,y);46304630A)y=245
19、6B)y=y=2456y=y=#2456C)y=2456y= 2456y= 02456y=#4630D)y=4630y=4630y=04630基础练习(B)一、填空题1、printf函数的作用就是向终端输出若干个任意类型的数据。2、printf函数中的“格式控制”,包括格式说明与普通字符两种信息。3、scanf函数中的“格式控制”后面应当就是变量地址,而不就是变量名。4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其她字符则应在对应位置输入与这些字符相同的字符。5、在用”络式输入字符时,空格字符与“转义字符”都作为有效字符输入。6、在输入数据时,遇以下情况时该
20、数据认为结束:遇空格、或按“回车”或"跳格”键;按指定的宽度结束;遇非法输入。7、输入数据时不能规定精度。8、如果在后有一个“*”附加说明符,表示跳过它指定的列数。二、选择题1、若inta,b;scanf("d%d,&a,&b);不可以用(A)作为输入的分隔符。A),B)空格C)回车D)TAB键2、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句就是(B)。A)scanf("%d%lx,%le",&x,&y,&z);B)scanf("%2d*%d%lf',&am
21、p;x,&y,&z);C)scanf("%x%*d%o,&x,&y);D)scanf("x%o%62f”,&x,&y,&Z3、已有如下定义与输入语句,若要求a1,a2,c1,c2的值分别为10,20,A与B,当从第一列开始输入数据时,正确的数据输入方式就是(D)。inta1,a2;charc1,c2;scanf("%d%d,&a1,&a2);scanf("c%C,&c1,&c2);A)1020AB<CR>B)1020<CR>AB<CR&g
22、t;C)1020AB<CR>D)1020AB<CR>4、阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为(D)。main()intx,y,z;scanf("%d%d%d,&x,&y,&z);printf("x+y+z=%d,x+y+z);A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值5、已有程序段与输入数据的形式如下,程序中输入语句的正确形式应当为(D)。main()inta;floatf;printf(nInputnumber:");输入语句printf(&
23、quot;n”,f,a);Inputnumber:4、52<CR>A)scanf("d,%f,&a,&f);B)scanf("f,%d”,&f,&a);C)scanf("%d%f,&a,&f);D)scanf("f%d,&f,&a);6、根据定义与数据的输入方式,输入语句的正确形式为(B)。已有定义:floatf1,f2;数据的输入方式:4、523、5A)scanf("f,%f",&f1,&f2);B)scanf("f%f”,&
24、;f1,&f2);C)scanf("32f%2、1f”&f1,&f2);D)scanf("32f%2、1f”,&f1,&f2);7、阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容就是(B)。main()intx;floaty;printf(“enterx,y:”);输入语句输出语句输入形式enterx,y:23、4输出形式x+y=5、40A)scanf(“%d,%f”x,&&y);printf(n“x+y=%4、2f”,x+y);B)scanf(“%d%”f,&x,&y);printf(n“
25、x+y=%4、2f”,x+y);C)scanf(“%d%”f,&x,&y);printf(n“x+y=%6、1f”,x+y);D)scanf(“%d%、31f”,&x,&y);printf(n“x+y=%4、2f”,x+y);8、以下说法正确的就是(D)。A)输入项可以为一实型常量,如scanf("f"、,35);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d);C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%、42f”,&f);D) 当输入数据时,必须指明
26、变量的地址,如scanf(“%f”,&f);9、有输入语句:scanf("a=%d,b=%d,c=%d',&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当就是(D)。A)132<回车>B)1,3,2<回车>C)a=1b=3c=2<回车>D)a=1,b=3,c=2<回车>10、已有如下定义与输入语句,若要求a1,a2,c1,c2的值分别为10,20,A与B,当从第一列开始输入数据时,正确的数据输入方式就是(A)。inta1,a2;charc1,c2;scanf(“
27、%d%c%d%”c,&a1,&c1,&a2,&c2);A)10A20B<CR>B)10A20B<CR>C)10A20B<CR>D)10A20B<CR>11、已有定义intx;floaty;且执行scanf("%3d%f,&x,&y语句,若从第一歹U开始输入数据12345678<回车>,则x的值为(B),y的值为(B)。(1)A)12345B)123C)45D)345A)无定值B)45、000000C)678、000000D)123、000000三、编程:1、编写程序,从键盘上输
28、入三个数分别给变量a、b、c,求它们的平均值。并按如下形式输出averageof*、*and*is*、*。其中,三个*依次表示a、b、c的值,*、*表示a,b,c的平均值。2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)。1、参考答案main()floata,b,c,t;printf(“pleaseinputa,b,cn:”);scanf("%f,%f,%f",&a,&b,&c);t=(a+b+c)/3;printf("averageof%6、2f、%6、2fand%6、2fis%6、n”,a,b,c,t);2、参考答案main
29、()inth,m,s;printf(“pn”);scanf("%d,%d",&h,&m);s=h*60+m;printf("total%dn”,s);第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果就是逻辑值。C语言没有逻辑型数据,以I代表“真",以0代表“假”。2、逻辑运算符!就是单目运算符,其结合性就是由右结合性。3、C语言提供的三种逻辑运算符就是&&、II、。其中优先级最高的为_L,优先级最低的为|Q4、逻辑运算符两侧的运算对象不但可以就是0与1,或者就是0与非0的整数,也可以就是任何类型的数据
30、。系统最终以0与非0来判定它们属于“真”或“假”。5、设y为int型变量,请写出描述“y就是偶数”的表达式(y%2=0)。6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z|y<z。7、条件“2Vx<3或x<-10”的C语言表达式就是x<-10|x>2&&x<3。8、判断char型变量ch就是否为大写字母的正确表达式就是(ch>='A')&&(ch<='Z')。9、当a=3,b=2,c=1时,表达式f=a>b>c的值就是0。10、当a
31、=5,b=4,c=2时,表达式a>b!=c的值就是1。11、已知A=7、5,B=2,C=3、6,表达式A>B&&C>A|A<B&&!C>B的值就是0。12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值就是1。13、有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)=(x|z)的值为1。14、有intx,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。!(x>y)+(y!=z)|(x+y)&&(y-z)15、有inta=3,b
32、=4,c=5,x,y;,则以下表达式的值为0。!(x=a)&&(y=b)&&016、if(!k)a=3;语句中的!k可以改写为k=0,使其功能不变。二、选择题1、逻辑运算符两侧运算对象的数据类型(D)。A)只能就是0或1B)只能就是0或非0正数C)只能就是整型或字符型数据D)可以就是任何类型的数据2、以下关于运算符优先顺序的描述中正确的就是(C)。A)关系运算符算术运算符赋值运算符逻辑与运算符B)逻辑与运算符关系运算符算术运算符赋值运算符C)赋值运算符逻辑与运算符关系运算符算术运算符D)算术运算符关系运算符赋值运算符逻辑与运算符3、下列运算符中优先级最高的就是(
33、B)。A)<B)+C)&&D)!=4、为判断字符变量c的值不就是数字也不就是字母时,应采用下述表达式(D)。A)c<=48|c>=57&&c<=65|c>=90&&c<=97|c>=122B)!(c<=48|c>=57&&c<=65|c>=90&&c<=97|c>=122)C)c>=48&&c<=57|c>=65&&c<=90|c>=97&&c<=122)
34、。D)!(c>=48&&c<=57|c>=65&&c<=90|c>=97&&c<=122)5、能正确表示“当x的取值在1,100与200,300范围内为真,否则为假”的表达式就是(CA)(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B)(x>=1)|(x<=100)|(x>=200)|(x<=300)C)(x>=1)&&(x<=100)|(x>=200)&a
35、mp;&(x<=300)D)(x>=1)|(x<=100)&&(x>=200)|(x<=300)6、设x、y与z就是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的就是(D)。A)'x'&&'y'B)x<=yC)x|y+z&&y-zD)!(x<y)&&!z|1)7、已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值就是(C)。A
36、)0B)语法错C)1D)“假”8、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为(B)。A)1B)2C)3D)49、以下不正确的if语句形式就是(C)。A) if(x>y&&x!=y);B) if(x=y)x+=y;C) if(x!=y)scanf("%d,&x)elsescanf("%d,&y);D) if(x<y)x+;y+;10、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值就是(B)。if(x>y)z=x;x
37、=y;y=z;A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=2011、以下if语句语法正确的就是(B)。A) if(x>0)printf("%f",x)elseprintf("-%f",B) B)if(x>0)x=x+y;printf("%f"x);elseprintf("-%f",C) C)if(x>0)x=x+y;printf("%f"x);elseprintf("-%f",D
38、) D)if(x>0)x=x+y;printf("%f"x)elseprintf("-%f",12、请阅读以下程序:main()inta=5,b=5,c=0;if(a=b+c)printf("n*);elseprintf("娜$);以下程序(C)。A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出$三、写出下列程序的运行结果1、若运行时输入:2<回车>,则以下程序的运行结果就是2ndclasspostageis14P#include<stdio、h>voidmain(void));、
39、30)$5、72charClass;printf("Enter1for1stclasspostor2for2ndpostscanf("%C,&Class);if(Class='1')printf(“1stclasspostageis19P");elseprintf(“2ndclasspostageis14p");2、若运行时输入:4、4回车,则以下程序的运行结果就是SellingPrice(0#include<stdio、h>voidmain(void)floatCostPrice,SellingPrice;print
40、f("EnterCostPrice$:");scanf("%f”,&CostPrice);if(CostPrice>=5)SellingPrice=CostPrice+CostPrice*0、25;printf("SellingPrice(025)$%6、2f”,SengPrice);elseSellingPrice=CostPrice+CostPrice*0、30;printf("SellingPrice(030)$%6、2f”,SellingPrice);3、以下程序的运行结果就是F,main()if(2*2=5<2*2
41、=4)print(“T”);elseprintf("F”);能力提高(B)一、选择题1、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式就是(D)。A)A%2=1B)!(A%2=0)C)!(A%2)D)A%22、下列运算符中优先级最低的(A),优先级最高的就是(C)。A)?:B)&&C)+D)!=3、请阅读以下程序:main()inta=5,b=0,c=0;if(a=b+c)printf(“n*);以下程序(D A)有语法错不能通过编译 C)输出*elseprintf("娜$);)。B)可以通过编译但
42、不能通过连接D)输出$4、以下程序的运行结果就是(C)。main()intm=5;if(m+>5)printf("%d,m);elseprintf("nd,用A)4B)5C)6D)7二、根据程序的功能,将以下程序补充完整1、以下程序对输入的四个整数,按从小到大的顺序输出。请在内填入正确内容。main()intt,a,b,c,d;printf("inputa,b,c,d:”)scanf("%d,%d,%d,%d&a,&b,&c,&d);if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=
43、t;if(a>d)t=a;a=d;d=t;if(b>c)t=b;b=c;c=t;if(b>d)t=b;b=d;d=t;if(c>d)t=c;c=d;d=t;printf("%d,%d,%d,%d,a,b,c,d);三、编程:1、试编程判断输入的正整数就是否既就是5又就是7的整倍数。若就是,则输出yes;否则输出noo2、编制程序要求输入整数x、y与z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之与。3、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。1、参考答案main()i
44、ntx;if(x%5=0&&x%7=0)printf(“yes”);elseprintf("no");2、参考答案main()intx,y,z,a,b;scanf("%d%d%d,&x,&y,&z);a=x*x+y*y*z*z;if(a>1000)b=a/1000;printf("%d,b);elseprintf("%d,x+y+z);3、参考答案#include<math、h>main()floata,b,c,s,area;scanf("f,%f,%f”,&a,&am
45、p;b,&c);if(a+b>c&&b+c>a&&a+c>b)s=1、0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf("area=%7n”,area);elseprintf("bunenghuchengsanjiaoxingn");第2讲基础练习(A)一、填空题1、在if语句中又包含一个或多个if语句称为if语句的嵌套。2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总就是与其之前最近的未配又的if配对。如果if与else数目
46、不一样,为实现设计者的企图,可以加花括号关系。一3、条件运算符就是C语言中唯一的一个三目运算符,其结合性为从右至左。4、假设条件表达式的格式为:表达式1?表达式2:表达式若表达式2与表达式3的类型不同,此时条件表达式的值的类型为二者中较高的类型5、在switch语句中,switch后面括弧内的“表达式”,可以为任何亲亚一6、若a=1,b=2,则表达式a>b?a:b+1的值就是3。7、若w=1、x=2、y=3、z=4,则条件表达式w<x?w:y<z?y:z的值就是1。8、若有以下if语句:if(a<b)min=a;elsemin=b;可用条件运算符来处理的等价式子为min
47、=(a<b)?a:b;。9、若x=1,y=2,z=3,则表达式(x<y?x:y)=z+的值就是0。10、设有变量定义:inta=5,c=4;则(-a=+c)?-a:c+的值就是5,此时c的存储单元的值为6。二、判断题1、在switch语句中,每一个的case常量表达式的值可以相同。(错)2、在switch语句中,各个case与default的出现次序影响执行结果。()3、在switch语句中,多个case可以共用一组执行语句。(对)4、条件表达式能取代一般if的语句。(错)5、case后的常量表达式类型一定与表达式类型匹配。(对)三、写出以下程序的运行结果1、 main()-1in
48、ta=2,b=3,c;c=a;if(a>b)c=1;elseif(a=b)c=0;elsec=-1;printf("%d,c);2、 main()200inta,b,c;ints,w,t;s=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);3、 switch(grade)case'A' : printf( "85");case'B
49、':printf(“n0);case'C:printf("60);case'D':printf(n"”<60default:printf("errors");若grade的值为CW输出结果就是60-69一60error!能力提高(B)一、写出下列程序的运行结果1、 #include<stdio、h>551voidmain(void)intx,y=1,z;if(y!=0)x=5;printf("n",x);if(y=0)x=4;elsex=5;printf("n",x
50、);x=1;if(y<0)if(y>0)x=4;elsex=5;printf("n",x);2、 #include<stdio、h>4-2404-2voidmain(void)intx,y=-2,z;if(z=y)<0)x=4;elseif(y=0)x=5;elsex=6;printf("n",x,z);if(z=(y=0)x=5;x=4;printf("n",x,z);if(x=z=y)x=4;printf("n",x,z);3、 #include<stdio、h>a=2
51、,b=1main()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case 1: b+;break;case 2:a+;b+;break;printf("a=%d,b=%d,a,b);二、根据程序的功能,将以下程序补充完整以下程序计算某年某月有几天。其中判别闰年的条件就是:能被4整除但不能被100整除的年就是闰年,能被400整除的年也就是闰年。请在内填入正确内容。main()intyy,mm,len;printf("year,month=");scanf("%d%d,&yy,&
52、amp;mm);switch(mm)case1:case 3:case5:case 7:case 8:case10:case12:len=31;break;case4:case6:case9:case11:len=30;break;case2:if(yy%4=0&&yy%100!=0|yy%400=0)len=29;elselen=28;break;default:printf("inputerror");break;printf("thelengthof%d%dis%dn”,yy,mm,len);第六章循环结构程序设计基础练习(A)一、选择题1、
53、C语言中while与do-while循环的主要区别就是(A)。A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) C)do-while允许从外部转到循环体内D) do-while的循环体不能就是复合语句2、以下描述中正确的就是(C)。A)由于do-while循环中循环体语句只能就是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中
54、,根据情况可以省略while3、设有程序段intk=10;while(k)k=k-1;则下面描述中正确的就(A)。B)循环就是无限循环D)循环体语句执行一次)。A)while循环执行10次C)循环体语句一次也不执行4、下列循环语句中有语法错误的就(DA)while(x=y)5;B)while(0);C)do2;while(x=b);D)dox+while(x=10);5、已知inti=1;执行语句while(i+<4);后,变量i的值为(C)。A)3B)4C)5D)66 、语句while(!E);中的表达式!E等价于(A)。A)E=0B)E!=1C)E!=0D)E=17 、下面程序段的运
55、行结果就(A)。a=1;b=2;c=2;while(a<b<c)t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,18 、下面程序的运行结果就(C)。#include<stdio、h>main()intnum=0;while(num<=2)num+;printf(“n%”d,num);A)1B)1C)1D)1222339、以下能正确计算1X2X3X-X10的程序段就是(C)。B)doi=1; s=0;s=s*i;i+;while(i<=10);D)i=1; s=0;dos=s
56、*i;i+;while(i<=10);A)doi=1;s=1;s=s*i;i+;while(i<=10);C)i=1;s=1;dos=s*i;i+;while(i<=10);10 、下面程序的运行结果就(D)。#include<stdio、h>main()inty=10;doy-;while(-y);printf(“%n”d,-y-);A)-1B)1C)8D)011 、已知inti=1,j=0;执行下面语句后j的值就(D)。while(i)switch(i)case1:i+=1;j+;break;case 2: i+=2;j+;break;case 3: i+=3
57、;j+;break;default:i-;j+;break;A)1B)2C)3D)死循环12、若运行以下程序时,从键盘输入2473回车,则下面程序的运行结果就是(A)。#include<stdio、h>main()intc;while(c=getchar()!='n')switch(c-'2')case0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);default:putchar(c+2);break;printf(n”“);A)668977B)668966
58、C)66778777D)二、填空题1、执行下面程序段后,k值就是36。k=1;n=263;dok*=n%10;n/=10;while(n);2、下面程序的运行结果就是s=254。#include<stdio、h>main()inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7)n=n*a;s=s+n;+count;printf("s=%d,,s);3、下面程序段的运行结果就是*。x=2;doprintf("5wxile(!x=0);4、运行以下程序时,从键盘键入China#<CR>(<CR&g
59、t;代表回车,则下面程序的运行结果就是5,5。#include<stdio、h>main()intv1=0,v2=0;charch;while(ch=getchar()!=)'#'switch(ch)<_,casea:case'h':default:v1+;case'o':v2+;printf("%d,%d,v1,v2);三、编程:1、编程求1*3*5*7*9的值2、编写程序计算下列算式的值:1111C=1+一十1-一十一(H>1)1£3EK:KK直到某一项A<=0、000001时为止。输出最后C
60、的值。3、从键盘输入的字符中统计数字字符的个数,用换行符结束循环。1、参考答案:main()inti;longp=1;dop=p*i;i=i+2;while(i<=9);printf("1*3*5*9=%nd',t);2、参考答案:#defineE0、000001main()floatx,y=1,s=0;printf("Pleaseenterx=");scanf("%f",&x);while(1/y>E)s=s+1/y;y=y*x;printf("S=%fn",s);3、参考答案:main()intn=0;charc;c=getchar();while(c!=n')if(c>='0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CJ/T 24-2018园林绿化木本苗
- 系统集成项目管理成功之道试题及答案
- 系统分析师考试全科备考策略试题及答案
- 了解软件评测师考试的高分试题及答案
- 软件评测师评测工具使用方法试题及答案
- 端午节试题及答案
- 2025年项目管理实战试题及答案
- Msoffice考试风险防范与试题及答案
- 中级社会工作者政策落地案例试题及答案
- 钢管租赁站管理制度
- 110kV变电站及110kV输电线路运维投标技术方案(第一部分)
- 拆模安全操作规程培训
- 家庭教育指导能力提升研究课题
- 数字化系列研究之财务数智化篇:大型集团企业财务管理的数智化
- DMG五轴数控加工中心工作台设计
- 2024年全国两会精神主要内容
- 骨科手术后的伤口护理方法
- 《钢铁生产流程》课件
- 偏瘫科普宣教
- 中医类诊所规章制度与岗位职责
- 2023年国家开放大学《财务报表分析》形成性考核(1-4)试题答案解析
评论
0/150
提交评论