C语言习题_答案Word版

上传人:优*** 文档编号:81183472 上传时间:2022-04-26 格式:DOC 页数:48 大小:225.50KB
返回 下载 相关 举报
C语言习题_答案Word版_第1页
第1页 / 共48页
C语言习题_答案Word版_第2页
第2页 / 共48页
C语言习题_答案Word版_第3页
第3页 / 共48页
点击查看更多>>
资源描述
C语言章节习题目录C语言章节习题1第一章 C语言概述2第三章 数据类型、运算符和表达式3第四章 顺序结构程序设计4第五章 选择结构程序设计11第六章 循环结构程序设计21第7章 数组习题33第8章 函数习题41第九章 预处理48第十章 指针49整理为word格式第一章 C语言概述一、选择题:1、一个C程序的执行是从(A)。A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、 在 C 语言中,每个语句必须以(D)结束。 A.回车符B.冒号C.逗号D.分号 3、C 语言规定:在一个源程序中,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)个关键字和(9)种控制语句。2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以(*)符号作为开始标记,以(*)符号作为结束标记。4、C 语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。5、系统默认的C 语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe ) 。6、C 语言的标识符只能由字母、数字和(下划线) 三种字符组成。整理为word格式第三章 数据类型、运算符和表达式 一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是(C)。 A. 160.B. 0.12C. 2e4.2 D.0.02、以下选项中,(D)是不正确的 C 语言字符型常量。 A. aB. x41 C. 101 D. a3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C)形式存储。 A.原码 B.反码C. ASCII 码D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。x=(i=4,j=16,k=32) A. 4 B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算 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=ab)&(n=cd)后, m,n 的值是(B)。 A. 0,0B. 0,1C. 1,0D. 1,1 8、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是(B)。 A. 3B. 0C. 9D. -12 9、在以下一组运算符中,优先级最低的运算符是(D)。 A. *B. !=C. +D. =10、设整型变量 i 值为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.5 12、设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? a : d的结果为(D)。 A. 4B. 3C. 2D. 1 13、设a 为整型变量,不能正确表达数学关系:10a15的 C 语言表达式是(A)。 A. 10a10 & a15D. !(a=15) 14、设 f是实型变量,下列表达式中不是逗号表达式的是(D)。 A. f= 3.2, 1.0B. f0, f0D. f=(3.2, 1.0) 15、 表达式18/4*sqrt(4.0)/8值的数据类型是(C)。A. intB. floatC. doubleD. 不确定 16、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=A+6-3;后c2中的值是(A)。 A. DB. 68C. 不确定的值D. C 17、以下用户标识符中,合法的是(B)。 A. intB. nitC. 123 D. a+b 18、C 语言中,要求运算对象只能为整数的运算符是(A)。 A. %B. / C. D. * 整理为word格式19、若有说明语句:char c=72;则变量c在内存占用的字节数是(A)。 A. 1B. 2C. 3D. 4 20、字符串ABC在内存占用的字节数是(B)。 A. 3B. 4C. 6D. 8 21、要为字符型变量 a赋初值,下列语句中哪一个是正确的(B)。 A. char a=3; B. char a=3;C. char a=%;D. char a=*; 22、下列不正确的转义字符是(C)。 A. B. C. 074D. 0 二、填空题:1、C 语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。 2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为0。 3、设 c=w,a=1,b=2,d=-5,则表达式 x+1c, y!=c+2, -a-5*b=d+1, b=a=2的值为1、0、1、1。 4、设 float x=2.5,y=4.7; int a=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、求解逗号表达式 x=a=3,6*a 后,表达式值为18 、x、a 的值依次为3,3。三、编程题:1、 设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。2、 编写一个程序,将大写字母 A转换为小写字母 a。1main()float x=1.5,y=2.3;printf(“area is %6.2fn”,x*y);2.main()char c=A;printf(“%d”,c+32);第四章 顺序结构程序设计基础练习(A)一、填空题1、C语句分为五种:控制语句 、函数调用语句、 表达式语句、空语句和 复合语句 。2、一个基本语句的最后一个字符是 ; 。3、复合语句又称分程序,是用 括起来的语句。4、 使用C语言库函数时,要用于预编译命令 #include 将有关的“头文件”包括到用户源文件中。5、 使用标准输入输出库函数时,程序的开头要有如下预处理命令: #include 。6、 a=3;c+=a-b; 在语法上被认为是 1 条语句。7、 getchar函数的作用是从终端输入 1 个字符。整理为word格式8、 如果从键盘输入字符a并按回车键,请写出以下程序运行效果 a 。#includemain()putchar(getchar();9、以下程序的输出结果为 i:dec=-4,oct=177774,hex=fffc,unsigned=65532 。main()short i;i=-4;printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);10、以下程序的输出结果为 *3.140000,3.142* 。main()printf(“*%f,%4.3f*n”,3.14,3.1415);11、以下程序的输出结果为 c:dec=120,oct=170,hex=78,ASCII=x 。main()char c=x;printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c);12、已有定义int d=-2;执行以下语句后的输出结果是 *d(1)=-2*d(2)= -2*d(3)=-2 * *d(4)=177776*d(5)= 177776*d(6)=177776 * printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*n”,d,d,d);printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*n”,d,d,d);13、以下程序的输出结果为x=1 y=2 *sum*=310 Squared is: 100 main()int x=1,y=2;printf(“x=%d y=%d *sum*=%dn”,x,y,x+y);printf(“10 Squared is:%dn”,10*10);14、以下程序的输出结果为(1) 123.456000(2) 123.457(3) 123.4560(4) 8765.456700(5) 8765.457(6) 8765.4567整理为word格式(7) 8765.4567 #include main()float a=123.456; double b=8765.4567;printf(“(1) %fn”,a);printf(“(2) %14.3fn”,a);printf(“(3) %6.4fn”,a);printf(“(4) %lfn”,b);printf(“(5) %14.3lfn”,b);printf(“(6) %8.4lfn”,b);printf(“(7) %.4fn”,b);二、判断题、所谓函数体实际上就是一个复合语句。( 对)、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。(对)、putchar函数可以向终端输出一个整数数据。( 错)、考虑到printf 和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。(对)、任何表达式都可以加上分号而成为有意义的语句。(对)三、选择题1、 以下不属于流程控制语句的是( A )。A) 表达式语句 B) 选择语句 C) 循环语句 D) 转移语句2、putchar函数可以向终端输出一个( D )。A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值3、getchar函数的参数个数是(B)。A) 1 B) 0 C) 2 )任意 4、以下程序的输出结果是(D)。main()printf(“n*s1=%15s*”, “chinabeijing”);printf(“n*s2=%-5s*”, “chi”);A)*s1=chinabeijing *B)*s1=chinabeijing * *s2=*chi* *s2=chi *C)*s1=*chinabeijing*D)*s1= chinabeijing* *s2=chi* *s2=chi *5、printf函数中用到格式符5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( B )。;如果字符串长度小于5,则输出按方式(C)。A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息6、已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是(D)。A)整型变量的输出格式符只有d一种B)x是格式符的一种,它可以适用于任何一种类型的数据C)x是格式符的一种,其变量的值按十六进制输出,但8lx是错误的D)8lx不是错误的格式符,其中数字8规定了输出字段的宽度整理为word格式7、以下C程序正确的运行结果是(C)。main()long y=-43456;printf(“y=%-8ldn”,y);printf(“y=%-08ldn”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);A)y= -43456B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456C)y=-43456D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y= -43456 y=+434568、以下C程序正确的运行结果是(D)。main()int y=2456;printf(“y=%3on”,y);printf(“y=%8on”,y);printf(“y=%#8on”,y);A)y= 2456 B)y= 4630 y= 2456 y= 4630 y=#2456 y=#4630C)y=2456D)y=4630 y= 2456 y= 4630 y= 02456 y= 04630基础练习(B)一、填空题、printf函数的作用是向终端 输出 若干个任意类型的数据。、printf函数中的“格式控制”,包括 格式说明 和 普通字符 两种信息。3、scanf函数中的“格式控制”后面应当是变量 地址 ,而不是变量名。4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其他字符,则应在对应位置输入与这些字符相同的 字符 。5、在用”%c”格式输入字符时,空格字符和“转义字符”都作为有效字符 输入 。6、在输入数据时,遇以下情况时该数据认为结束:遇 空格 、或按 “回车” 或 “跳格”键 ;按指定的宽度结束;遇非法输入。7、输入数据时不能规定 精度 。8、如果在%后有一个“*”附加说明符,表示 跳过它指定的列数 。二、选择题1、若int a,b; scanf(“%d%d”,&a,&b); 不可以用(A )作为输入的分隔符。A) , B) 空格 C) 回车 D) TAB键 2、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( B )。整理为word格式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);3、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(D)。int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020ABB)10 20 ABC)10 20 ABD)10 20AB4、阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为(D)。main() int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为(D )。main()int a; float f;printf(“nInput number:”);输入语句printf(“nf=%f,a=%dn”,f,a);Input number:4.5 2A)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)。已有定义:float f1,f2;数据的输入方式:4.523.5A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f %2.1f”,&f1,&f2);D)scanf(“%3.2f%2.1f”,&f1,&f2);7、阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是(B)。main()int x; float y;printf(“enter x,y:”);输入语句输出语句整理为word格式输入形式enter x,y:2 3.4输出形式x+y=5.40A)scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B)scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);C)scanf(“%d%f”,&x,&y);printf(“nx+y=%6.1f”,x+y);D)scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);8、以下说法正确的是(D)。A)输入项可以为一实型常量,如scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);9、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是(D)。A)132B)1,3,2C)a=1 b=3 c=2D)a=1,b=3,c=210、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(A)。int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A 20BB)10 A 20 BC)10A20BD)10A20 B11、已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678,则x的值为( B ) ,y的值为( B )。(1) A)12345B)123C)45D)345(2) A)无定值B)45.000000C)678.000000D)123.000000三、编程:1、 编写程序,从键盘上输入三个数分别给变量a、b、c,求它们的平均值。并按如下形式输出: average of *、* and * is *.* 。其中,三个*依次表示a、b、c的值,*.*表示a,b,c的平均值。2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)。1、参考答案main ( ) float a, b, c, t;printf(“please input a,b,c:n”);scanf (%f, %f, %f, &a, &b, &c);t=(a+b+c)/3;printf (average of %6.2f、%6.2f and %6.2f is %6.2fn”,a,b,c,t); 2、参考答案main ( ) int h,m,s;整理为word格式printf(“please input h,m:n”);scanf (%d,%d, &h, &m);s=h*60+m;printf (total %d minuten”,s); 第五章 选择结构程序设计 基础练习(A)一、填空题 1、关系表达式的运算结果是 逻辑 值。C语言没有逻辑型数据,以 1 代表“真”,以 0代表“假”。2、逻辑运算符!是 单目 运算符,其结合性是由 右结合性 。3、C语言提供的三种逻辑运算符是 & 、 | 、 ! 。其中优先级最高的为 ! ,优先级最低的为 | | 。4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以 0 和 非0 来判定它们属于“真”或“假”。5、设y为int型变量,请写出描述“y是偶数”的表达式 (y%2=0) 。6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式xz|yz 。7、条件“2x3或x-10”的C语言表达式是 x2&x=A)&(chbc的值是 0 。10、当a=5,b=4,c=2时,表达式ab!=c的值是 1 。11、已知A=7.5,B=2,C=3.6,表达式AB&CA|AB的值是 0 。12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&b+c/2的值是 1 。13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&y)=(x|z)的值为 1 。14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为 1 。!(xy)+(y!=z)|(x+y)&(y-z)15、有int a=3,b=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、下列运算符中优先级最高的是(B)。A)B)+C)&D)!=4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D )。A)c=57&c=90&c=122整理为word格式B)!(c=57&c=90&c=122)C)c=48&c=65&c=97&c=48&c=65&c=97&c=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=300)6、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D )。A)x&yB) x=yC) x|y+z&y-zD) !(x=y&chb)&(n=cd)后n的值为( B )。A)1B)2C)3D)49、以下不正确的if语句形式是(C)。A) if(xy&x!=y);B) if(x=y) x+=y;C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D) if(xy)z=x; x=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(x0)printf(“%f”,x)else printf(“%f”,-x);B) B) if(x0)x=x+y; printf(“%f”,x);else printf(“%f”,-x);C) C) if(x0)x=x+y; printf(“%f”,x);else printf(“%f”,-x);D) D) if(x0)x=x+y; printf(“%f”,x)else printf(“%f”,-x);12、请阅读以下程序:main()int a=5,b=5,c=0;if(a=b+c)printf(“*n”);elseprintf(“$n”);以下程序(C)。A)有语法错不能通过编译B)可以通过编译但不能通过连接整理为word格式C)输出*D)输出$三、写出下列程序的运行结果 1、若运行时输入:2,则以下程序的运行结果是 2nd class postage is 14p 。#include void main(void)char Class;printf(“Enter 1 for 1st class post or 2 for 2nd post”);scanf(“%c”,&Class);if(Class=1)printf(“1st class postage is 19p”);elseprintf(“2nd class postage is 14p”);2、若运行时输入:4.4,则以下程序的运行结果是Selling Price(0.30)$5.72 。#include void main(void)float CostPrice,SellingPrice;printf(“Enter Cost Price $:”);scanf(“%f”,&CostPrice);if(CostPrice=5)SellingPrice=CostPrice+CostPrice*0.25;printf(“Selling Price(0.25)$%6.2f”,SellingPrice);elseSellingPrice=CostPrice+CostPrice*0.30;printf(“Selling Price(0.30)$%6.2f”,SellingPrice);3、以下程序的运行结果是F。main()if(2*2=55)printf(“%dn”,m);elseprintf(“%dn”,m-);A)4B)5C)6D)7二、根据程序的功能,将以下程序补充完整1、以下程序对输入的四个整数,按从小到大的顺序输出。请在内填入正确内容。main()int t,a,b,c,d;printf(“input a,b,c,d:”)scanf(“%d,%d,%d,%d”, &a,&b,&c,&d );if(ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t;if (ad) t=a;a=d;d=t;if ( bc) t=b;b=c;c=t; if (bd) t=b;b=d;d=t;if (cd) t=c;c=d;d=t;printf(“%d,%d,%d,%d”,a,b,c,d);三、编程:1、试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。2、编制程序要求输入整数x、y和z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之和。3、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。1、参考答案main() int x;if (x%5=0 & x%7=0) printf(“yes”);else printf(“no”);2、参考答案main() int x,y,z,a,b;整理为word格式scanf(“%d %d %d”,&x,&y,&z);a=x*x+y*y*z*z;if (a1000)b=a/1000;printf(“%d”,b);else printf(“%d”,x+y+z);3、参考答案#include main() float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+bc & b+ca & a+cb) s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%7.2fn”,area);elseprintf(“bu neng zhucheng san jiao xing n”);第2讲基础练习(A)一、填空题1、在if语句中又包含一个或多个if语句称为 if语句的嵌套 。2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其之前最近的未配对的if 配对。如果if 与else数目不一样,为实现设计者的企图,可以加 花括号 关系。3、条件运算符是C语言中唯一的一个 三 目运算符,其结合性为 从右至左 。4、假设条件表达式的格式为:表达式1?表达式2:表达式若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较 高 的类型5、在switch语句中,switch后面括弧内的“表达式”,可以为 任何 类型。6、若a=1,b=2,则表达式ab?a:b+1的值是 3 。7、若w1、x2、y3、z4,则条件表达式wx?w:yz?y:z的值是 1 。8、若有以下if 语句:if (ab) min=a;else min=b;可用条件运算符来处理的等价式子为 min=(ab)?a:b ; 。9、若x=1,y=2,z=3,则表达式(xb) c=1;整理为word格式else if(a=b) c=0;else c=-1;printf(“%dn”,c);2、 main() 2 0 0int a,b,c;int s,w,t;s=w=t=0;a=-1; b=3; c=3;if(c0) s=a+b;if(a0)if(c0) w=a-b;else t=c;printf(“%d %d %d”,s,w,t);3、 switch(grade) case A: printf(“85100n”);case B: printf(“7084n”);case C: printf(“6069n”);case D: printf(“60n”);default: printf(“error!n”);若grade的值为 C,则输出结果是 60-6960error!能力提高(B)一、写出下列程序的运行结果1、 #include 55 1void main(void)int x,y=1,z;if(y!=0) x=5;printf(“t%dn”,x);if(y=0) x=4;else x=5;printf(“t%dn”,x);x=1;if(y0) x=4;else x=5;整理为word格式printf(“t%dn”,x);2、 #include 4 -2 4 0 4 -2void main(void)int x,y=-2,z;if(z=y)0) x=4;else if(y=0) x=5;else x=6;printf(”t%dt%dn”,x,z);if(z=(y=0)x=5;x=4;printf(“t%dt%dn”,x,z);if(x=z=y) x=4;printf(“t%dt%dn”,x,z);3、 #include a=2,b=1main()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;printf(“a=%d,b=%d”,a,b);二、根据程序的功能,将以下程序补充完整以下程序计算某年某月有几天。其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。请在内填入正确内容。main()int yy,mm,len;printf(“year,month=”);scanf(“%d %d”,&yy,&mm);switch(mm)case 1:case 3:case 5:整理为word格式case 7:case 8:case 10:case 12: len=31; break;case 4:case 6:case 9:case 11: len=30; break;case 2:if(yy%4=0&yy%100!=0|yy%400=0) len=29 ;else len=28;break;default: printf(“input error”); break;printf(“the length of %d %d is %dn”,yy,mm,len);第六章 循环结构程序设计基础练习(A)一、选择题1、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循环中,根据情况可以省略while3、设有程序段int k=10;整理为word格式while(k) k=k-1;则下面描述中正确的是(A)。A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是( D )。A) while(x=y) 5; B) while(0) ;C) do 2;while(x=b); D) do x+ while(x=10);5、已知int i=1; 执行语句while (i+4) ;后,变量i的值为( C )。A) 3 B) 4 C) 5 D) 66、语句while(!E);中的表达式!E等价于(A)。A)E=0B)E!=1C)E!=0D) E=17、下面程序段的运行结果是(A)。a=1; b=2; c=2;while(abc) t=a; a=b; b=t; c-;printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18、下面程序的运行结果是(C)。#include main()int num=0;while(num=2)num+;printf(“%dn”,num);A)1B)1C)1D)1 2 2 2 3 39、以下能正确计算12310的程序段是(C)。 A)doi=1; s=1;B)doi=1; s=0;s=s*i; s=s*i; i+; i+; while(i=10); while(i=10);C)i=
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!