C语言习题答案_第1页
C语言习题答案_第2页
C语言习题答案_第3页
C语言习题答案_第4页
C语言习题答案_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、C 语言章节习题目录C语百章节习题 10MuO4z0 uNXnWa5 Oziekcy。第一章 C 语言概述1n7gbRkF。 9QieghQ。 ilP5IGn 。第三章数据类型、运算符和表达式 2cJpGaux。YJckhfr。bmQRH3L第四章顺序结构程序设计 4Dg12fSa。LTwUI0 x。EsfXyWG。第五章选择结构程序设计 93RPa2u3。bpEh7d4。R2tsPS6。第六章循环结构程序设计 171fDDiuL 。lXBBJ5Q。zs3xybn 。第 7 章 数组习题 25fceRwLS D67gMB4 VDIQWrp第 8 章函数习题33FUmooUp ggdmYTN o

2、P4Z3Lz第九章 预处理 39dVxK7IM。 dbsJOT3。 UeXtLVr。第十章 指针 416WRqTIM。 p2uvOT1。 4cgz64y。第一章 C 语言概述一、选择题:1、一个C 程序的执行是从(A) 。A 本程序的main 函数开始,到main 函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序的main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序 main 函数结束2、在C语言中,每个语句必须以(D)结束。A. 回车符B. 冒号C. 逗号 D. 分号C 语言规定:在一个源程序中, main 函数的位置(C

3、) 。A. 必须在最开始 B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由(B) 。一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D) 。A.主函数可以分为两个部分:主函数说明部分和主函数体主函数可以调用任何非主函数的其他函数任何非主函数可以调用其他任何非主函数程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B) 。A.生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、 C 语言只有 ( 37) 个关键字和

4、( 9) 种控制语句。2、每个源程序有且只有一个 (main)函数,系统总是从该函数开始执行C语言程序。C 语言程序的注释可以出现在程序中的任何地方,它总是以 (* ) 符号作为开始标记,以()符号作为结束标记。8HjxOMe UaGHrGL mK57ols。C 语言中,输入操作是由库函数( scanf ) 完成的,输出操作是由库函数(printf ) 完成的。系统默认的 C 语言源程序文件的扩展名是( .c ) , 经过编译后生成的目标文件的扩展名是( .obj ) ,经过连接后生成的可执行文件的扩展名是(.exe ) 。 4ORaJHj VW98MNuDE8lIUR。C 语言的标识符只能由

5、字母、数字和( 下划线 ) 三种字符组成。第三章 数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的C 语言浮点型常量是(C) 。0.0D. aA. 160.B. 0.12C. 2e4.2D.2、以下选项中,(D)是不正确的C语言字符型常量。A. aB. x41C. 1013、在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、算术运算符、

6、赋值运算符和关系运算符的运算优先级按从高到低依次为( B) 。算术运算、赋值运算、关系运算C.关系运算、赋值运算、算术运算6、表达式 !x|a=b 等效于 (D) 。A. !(x|a)=b)B. !(x|y)=bjbMe1DD。 Nt3kpG4。 nF7tsoX。算术运算、关系运算、赋值运算D.关系运算、算术运算、赋值运算C. !(x|(a=b)D. (!x)|(a=b)7、 设整型变量m,n,a,b,c,d均为 1,执行(m=ab)&(n=cd)后,m,n 的值是(B)。HgBQPZYNlCSBPtPEOWRPQ0 , 08、 设有语句0 , 11 , 0D. 1 , 1int a=3 ;

7、,则执行了语句 a+=a-=a*=a; 后,变量 a( B) 。A. 3B. 0C. 9D. -129、在以下一组运算符中,优先级最低的运算符是( 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.512、设 a=1, b=2, c=3, d=4,则表达式:ab? a : cd? a : d 的结果为(D)。qSBduQi kin

8、ixwB。oocwbsrA. 4B. 3C. 2D. 113、设 a 为整型变量,不能正确表达数学关系: 10a15 的 C 语言表达式是(A) 。A. 10a10 & a15D. !(a=15)、设 f 是实型变量,下列表达式中不是逗号表达式的是( D) 。A. f= 3.2, 1.0B. f0, f0D. f=(3.2,1.0)GM9SDZtm9zGIDm。 xprMtqL 。 TOC o 1-5 h z 、 表达式 18/4*sqrt(4.0)/8 值的数据类型是(C) 。A. intB. floatC. doubleD. 不确定16、已知字母 A 的 ASCII 码为十进制数65,且c

9、2 为字符型,则执行语句C2= A + 6 - 3 ; 后 c2 中的值是(A) 。A. DB. 68C. 不确定的值D. C、以下用户标识符中,合法的是(B) 。A. intB. nitC. 123D. a+b、 C 语言中,要求运算对象只能为整数的运算符是( A)。A. %B. /C. D. *19 、若有说明语句: char c=72 ;则变量 c 在内存占用的字节数是(A) 。A. 1B. 2C. 3D. 420、字符串ABC在内存占用的字节数是(B)。A. 3B. 4C. 6D. 821 、要为字符型变量a 赋初值,下列语句中哪一个是正确的(B) 。A. char a=3; B. c

10、har a= 3; C. char a=%;D. char a=*; gB6ccYt。 VZcQTyv。a8COCh o22 、下列不正确的转义字符是(C) 。A. B. C. 074D. 0二、填空题:1、 C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。2、若x和n都是int型变量,且x的初值为12, n的初值为5,则计算表达式x%=(n%=2)后x的值 为 0。 KR9Pa9b DWEysbG IdyfXLV。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。o57v

11、Wqy V7wI8Np JQMP5DW4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5。 cEG1mpNKminoZY。 lMBFS98。5、判断变量a 、 b 的值均不为 0 的逻辑表达式为 a!=0&b!=0 ,值为 1 。6、求解赋值表达式 a=(b=10)%(c=6),表达式值为 4、a、b、c的值依次为1, 0, 6。msceivkWH9hlX8。 QUZkfF2。7、求解逗号表达式x=a=3,6*a 后,表达式值为18、x、a的值依次为3,3。三、编程题:1、设长方形的高为1.5 ,宽为2.3 ,编程求

12、该长方形的周长和面积。2、编写一个程序,将大写字母A转换为小写字母a。main()float x=1.5,y=2.3;printf(area is %6.2fn” ,x*y);main()char c= A ;printf(%d ,c+32);第四章顺序结构程序设计基础练习(A)一、填空题1、c语句分为五种:控制语句、函数调用语句、表达式语句、空语句和复合语句。2、一个基本语句的最后一个字符是3、复合语句又称分程序,是用 括起来的语句。4、使用C语言库函数时,要用于预编译命令#include将有关的“头文件”包括到用户源文件中。4ooIqGx。wZaGjBt。M79rU6I。5、使用标准输入输

13、出库函数时,程序的开头要有如下预处理命令:#include vNqDi0P jGYDiNM J7Bib1d。6、 a=3;c+=a-b; 在语法上被认为是 1 条语句。7、getchar函数的作用是从终端输入1个字符。8、如果从键盘输入字符a并按回车键,请写出以下程序运行效果a 。#include main()putchar(getchar(); 9、以下程序的输出结果为i:dec=-4,oct=177774,hex=fffc,unsigned=65532。 sZsD6eYGV0dVsG SuZ1UBfmain()short i;i=-4;printf( n ,i,i,i,i);uYRmEFc

14、 plu2xFf 。d4PNA0jo 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。 HVO4ltk。VT5LhEY hlvm0Uc。main() char c= x;printf(c:deC=%d,OCt=%O,hex=%X,An” ,c,c,c,c);30Vh4Cx Qy1y3cY GFugirp。12、已有定义int d=-2;执行以下语句后的输出结果是*d(1)=-2*d(2)=-2*d(3)=-2 *

15、 5isvYiP。nR0mZXV4XYdw6O*d(4)=177776*d(5)= 177776*d(6)=177776 *printf(*d(1)=%d*d(2)=%3d*d(3)=%n,d,d,d);printf(*d(4)=%o*d(5)=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*=%d n” ,x,y,x+y);printf( 10 Squared is:%d n” ,10*10);14、以下程序的输出结果为(1) 123.4560

16、00口口 123.457123.45608765.456700 8765.4578765.4567 8765.4567 #include main()float a=123.456; double b=8765.4567;printf(“(1) %f n”,a);printf(“(2) %14.3fn ,a);printf(“(3) %6.4fn” ,a);printf(“(4) %lf n”期;printf(“(5) %1n” ,b);printf(“(6) %8.4lfn”,b);printf(“ %.4fn”,b);二、判断题 TOC o 1-5 h z 1、所谓函数体实际上就是一个复合

17、语句。(对)2、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。(对)3、putchar函数可以向终端输出一个整数数据。(错)4、考虑到printf 和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。( 对 )BhW11h s4ToAUF Ia8RGaL5、任何表达式都可以加上分号而成为有意义的语句。 三、选择题对)以下不属于流程控制语句的是( A ) 。A) 表达式语句 B) 选择语句C) 循环语句 D) 转移语句putchar 函数可以向终端输出一个( D ) 。A) 整型变量表达式值 B) 实型变量值 C) 字符串 D)字符或字符型变量值Mkp

18、muBZyOT43eu ZXbxPm8getchar 函数的参数个数是( B ) 。A) 1 B) 0 C) 2D)任意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 ,其中数

19、字5 表示输出的字符串占用 5 列。如果字符串长度大于5,则输出按方式(B )。;如果字符串长度小于5,则输出按方式(C )。Jg5xiWJ。YyD5WRcqZipu5o。A)从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息6、已有定义int a=-2;和输出语句:printf(%8lx ,a);以下正确的叙述是 (D )HlbBQsmh4HcFA5cXTO5jN。整型变量的输出格式符只有 d 一种% x是格式符的一种,它可以适用于任何一种类型的数据C)x 是格式符的一种,其变量的值按十六进制输出,但 8lx 是错误的D) 8lx 不是错

20、误的格式符,其中数字8 规定了输出字段的宽度7、以下C程序正确的运行结果是(C )。 main()long y=-43456;printf(“y=%n”,y);printf(“y=%n” ,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);A) y= -43456 y=- 43456 y=-0043456 y=-43456C) y=-43456 y=-43456 y=-0043456 y= -43456B) y=-43456 y=-43456 y=-0043456 y=+-43456D) y= -43456 y=-0043456 y=00043456 y

21、=+434568、以下C程序正确的运行结果是(D )。main()int y=2456;printf( printf( printf(A) y= 2456y= 2456y=#2456C) y=2456y= 2456y= 02456y=%3o n” ,y);y=%8o n” ,y);“y=%#8o n” ,y);B ) y= 4630 y= 4630 y=#4630 D) y=4630 y= 4630 y= 04630基础练习(B)一、填空题1、printf函数的作用是向终端输出若干个任意类型的数据。2、printf函数中的“格式控制”,包括格式说明和普通字符两种信息。I1fLalH。77RpN

22、Lc fpaT5yz。3、scanf函数中的“格式控制”后面应当是变量地址 ,而不是变量名。4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其他字符,则应在对应位置输入与这些字符相同的字符 。wHpSM8q QXbGg0RBrd4nkL。5、在用” 。底格式输入字符时,空格字符和“转义字符”都作为有效字符输入 。6、在输入数据时,遇以下情况时该数据认为结束: 遇 空格 、或按“回车”或 “跳格”键 ;按指定的宽度结束;遇非法输入。EKaw5kd wa66O2 VjxuZs7。7、输入数据时不能规定 精度 。8、如果在 新有一个“*”附加说明符,表示跳过它指定的

23、列数。二、选择题1、若 int a,b; scanf(%d%d ,&a,&b);不可以用 ( A )作为输入的分隔符。fLdPRmM zduQZ0GFnHhZoeA), B ) 空格 C ) 回车 D ) TAB键2、若x, y均定义为int型,z定义为double型,以下不合法的 scanf函数调用语句是( B ) 。Ni6H9卜。oL2KmRa 8PAkrEf。A)scanf( %d%lx,%ie ,&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

24、、已有如下定义和输入语句,若要求 al, a2, cl , c2的值分别为10, 20, A和B,当从第一列开 始输入数据时,正确白数据输入方式是(D )。xvVJg9l。aIj5XMe。XgFjZSe。int a1,a2; char c1,c2;scanf( %d%d ,&a1,&a2);scanf( %c%c ,&c1,& c2);A) 1020ABB) 10 20ABC) 10 20 ABD) 10 20AB4、阅读以下程序,当输入数据的形式为25,13,10 正确的输出结果为(D )。main() int x,y,z;scanf( “%d%d%”d,&x,&y,&z);printf(

25、“x+y+z=%d n” ,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( “n” ,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根据定义和数据的输入方式,

26、输入语句的正确形式为( 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:” );输入语句输出语句输入形式enter x,y:2 3.4输出形式x+y=5.40A)scanf(

27、%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.1”f ,&x,&y);printf(“ nx+y=%4.2f” ,x+y);8以下说法正确的是( D ) 。A)输入项可以为一实型常量,如 scanf( f,3.5);只有格式控制,没有输入项,也能进行正确输入,如scanf( “a=%d,b=%”d );当输入一个实型数据时,格式控制部

28、分应规定小数点后的位数,如scanf( “ %4.2f” ,&f);当输入数据时,必须指明变量的地址,如scanf( “ %f” ,&f);9、有输入语句:scanf( a=%d,b=%d,c=%d ,&a, 键盘输入数据的正确形式应当是(D )。A)132回车 B)132V 回车C)a=1 b=3 c=2D)a=1,b=3,c=210、已有如下定义和输入语句,若要求 a1, a2, 开始输入数据时,正确的数据输入方式是 int a1,a2; char c1,c2;scanf( d%c%d%c&a1,&c1,&a2,&c2);&b,&c);为使变量a的值为1, b为3, c为2,从E9vgL3

29、U OKADB。GC2nDr8Lc1, c2的值分别为10, 20, A和B,当从第一列( A )。rRtoVCV。6K9y4Gc haSEkbbA) 10A 20BC) 10A20B11、已有定义 int x; float y;B) 10 A 20 BD) 10A20 B且执行scanf( %3d%f ,&x,&y);语句,若从第一列开始输入数据12345 678,贝U x的值为(B )A ) 12345B) 123C) 45y 的值为( B ) 。dHaFTAB gAlzKQho EAuiJrb。D) 345D) 123.0000001、编程:编写程序,从键盘上输入三个数分别给变量a、b、

30、c,求它们的平均值。并按如下形式输出:A )无定值B) 45.000000C) 678.000000average of的平均值。9RKxwQ9jkEpCNw H88TytS。*、* and * is *.*。其中,三个 * 依次表示 a、b、c 的值,*.* 表示 a,b,c2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)1、参考答案main () float a, b, c, t;printf( please input a,b,c:n);scanf (%f, %f, %f, &a, &b, &c);n” ,a,b,c,t);8qSrfOGo 0vJm7TWt=(a+b+c)/

31、3;printf (average of %6.2f、riB1Cce。2、参考答案main () int h,m,s;printf( please input h,m:n);scanf (%d,%d, &h, &m);s=h*60+m;n”,s);第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑 值。c语言没有逻辑型数据,以,代表“真”,以 0代表假。I2Z2RU5 eHpFAup kHakYI1。2、逻辑运算符!是 单目运算符,其结合性是由 右结合性 。3、C语言提供的三种逻辑运算符是&、|、! 。其中优先级最高的为!,优先级最低的为| |。 gSDCEu2 uK

32、Z4jjQ。WoWoZyY4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和 非0来判定它们属于真或假。nquxmNI Rk9z1tD。nvzwUlN。5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2=0)。6、设x, y, z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 xz|yz 。 TOC o 1-5 h z aoF3K1n CHMx3uMe8k1JI0。一7、条件2x3 或 x-10”的 C语言表达式是x2&x= A )&(chbc的值是 0。10、当a=5,b=4,c=2 时,表达式 ab!=c的

33、值是 1。11、已知 A=7.5,B=2,C=3.6 ,表达式 AB&CA|AB勺值是0。XXLpbra。fprp1CY。OiY6th8。12、若 a=6,b=4,c=2 ,则表达式!(a-b)+C-1&b+C/2 的值是 1。 HFRyHdAWLoXk69 iMf25cb o13、有 int x,y,z;且 x=3,y=-4,z=5 ,则表达式(x&y)=(x|z) 的值为 1fIS7HMG dAKx7dRH7tTZcL。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,

34、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)赋值运算符逻辑与运算符关系运算符41术运算符D)算术运算符关系运算符赋值运算符逻辑与运算符3、下列运算符中优先级最高的是( B )。A) B) +C) &D)

35、!=4、为判断字符变量 c的值不是数字也不是字母时,应采用下述表达式( D )。A) c=57&c=90&c=122B) !(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=yx|y+z&y-z!(x=y&chb)&(n=cd)后n的值为(1B) 2C) 3D) 49、以下不正确的if语句形式是(C )

36、。A) if(xy&x!=y);if(x=y) x+=y;if(x!=y) scanf(%d ,&x) else scanf(%d ,&y);if(xy)以下语句执行后x, y, z的值是( B )。z=x; x=y; y=z;A) x=10,y=20,z=30C) x=20,y=30,z=10B) x=20,y=30,z=30D) x=20,y=30,z=2011、以下if语句语法正确的是( Bif(x0)printf(%f,x)else printf(%f,-x);B)if(x0) x=x+y; printf(%f,x);else printf(%f , -x);C) if(x0) x=x

37、+y; printf(%f,x);else printf(%f , -x);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(elseprintf( 以下程序(C )o);*“$););A)有语法错不能通过编译C)输出*B)D)可以通过编译但不能通过连接输出$三、写出下列程序的运行结果m57iRk&1、若运行时输入:2回车,则以下程序的运行结果是2nd class postage is 14PM7833P7 IGUVlwK#include void

38、main(void)char Class;ud8sSqYprintf( Enter 1 for 1st class post or 2 for 2nd post ); azYo8O4MmQKKfUscanf( %c ,&Class);if(Class= 1)printf( “1st class postage is 19p);elseprintf( “2nd class postage is 14p);Cs68vnD2、若运行时输入:4.4回车,则以下程序的运行结果是Selling Price(0.30)$5.72amCnWtX u4PuNgt。#include void main(void)

39、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、以下程序的运行结果是 Fmain() if

40、(2*2=55) elseprintf( * n”); printf( $ n);)B)可以通过编译但不能通过连接 D)输出$C )。printf(%d n ,m);printf(“d n” ,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 (

41、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千位以上的数字,否则输出三数之和。KBfYN69 Gkpd3aj。pDcaSQ83、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误 的提示信息。1、参考答案main

42、() int x;if (x%5=0 & x%7=0)printf(“yes” );elseprintf(no);2、参考答案main() int x,y,z,a,b;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*

43、(s-a)*(s-b)*(s-c);printf( area=%7.2f n” ,area);elseprintf( bu neng zhucheng san jiao xingn);第2讲基础练习(A)一、填空题 TOC o 1-5 h z 1、在if语句中又包含一个或多个if语句称为if语句的嵌套 。2、为了避免在嵌套的条件语句 if-else 中产生二义性,一C语言规定:else子句总是与 其之前最近 的未配对的if 配对。如果if与else数目不一样,为实现设计者的企图, 可以加 花括号 关 系。U6bQE9i BRp4d0B wktfcrh。3、条件运算符是 C语言中唯一的一个三目运

44、算符,其结合性为从右至左。4、假设条件表达式的格式为:表达式 1 ?表达式2 :表达式若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较高 的类型5、在switch语句中,switch后面括弧内的“表达式”,可以为 任何 类型。6、若a=1,b=2 ,则表达式 ab?a:b+1的值是 3。7、若 w= 1、x = 2、y= 3、z = 4,则条件表达式 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=

45、1;else if(a=b) c=0;else c=-1;printf( %d n ,c); 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);switch(grade)caseA:printf(“85ncase,B,printf(“70ncaseC:printf(“60ncaseD:printf(“60”Xn );default: printf( error!n););););若grade的值为C,则

46、输出结果是 60-6960 error!能力提高(B)一、写出下列程序的运行结果#include 551void main(void) int x,y=1,z;if(y!=0) x=5;printf( n ,x);if(y=0) x=4;else x=5;printf( n ,x);x=1;if(y0) x=4;else x=5;printf( n ,x); #include 4 -24 04 -2 void main(void) int x,y=-2,z;if(z=y)0) x=4;else if(y=0) x=5;else x=6;printf( n ,x,z);if(z=(y=0)x=5

47、;x=4;printf(n ,x,z);if(x=z=y) x=4;print f( n ,x,z);#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整除的年也是闰年。请在 内填入正确内容。cBIvqZm

48、。vgw3ETM 4pj78pn。main()int yy,mm,len;printf( year,month=);scanf( %d %d ,&yy,&mm); switch(mm) case 1: case 3: case 5: 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 err

49、or ); break;printf( the length of %d %d is %d n” ,yy,mm,len);第六章 循环结构程序设计基础练习 (A)一、选择题C 语言中 while 和 do-while 循环的主要区别(A) 。do-while 的循环体至少无条件执行一次while 的循环控制条件比do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内do-while 的循环体不能复合语句2、以下描述中正确的( C) 。由于 do-while 循环中循环体语句只能一条可执行语句,所以循环体内不能使用复合语句do-while 循环由 do 开始,用 wh

50、ile 结束,在 while (表达式)后面不能写分号在 do-while 循环体中,一定要有能使while 后面表达式的值变为零( “假” )的操作do-while 循环中,根据情况可以省略while3、设有程序段int k=10;while(k) k=k-1;则下面描述中正确的( A ) 。A) while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次 TOC o 1-5 h z 4、下列循环语句中有语法错误的(D )。A) while(x=y) 5; B) while(0);C) do 2 ; while(x=b) ; D) do x+ while(x=

51、10)C )。int i=1 ; 执行语句while (i+4);后,变量i 的值为(A) 3 B) 4 C) 5 D) 6while(!E);中的表达式!E 等价于(A )。A) E=0 B) E!=1 C) E!=0D) E=1A )。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,0C ) 1,2,1 D ) 2,1,18、下面程序的运行结果(C ) 。#include main()int num=0;while(num=2) num+;printf( “ %d

52、 n” ,num); TOC o 1-5 h z A) 1B) 1C) 1D) 1222339、以下能正确计算 1X2X3X-X 10的程序段是( C )。B) doi=1; s=0;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 main() int y=10;do y-; while(-y);printf(%d n” ,y -);A) -1B ) 1C ) 811、已知int i=1,j=0;执行下面语句后jwhile(i) switch(i

53、) case 1: i+=1 case 2: i+=2 case 3: i+=3 default: i-A) 1 B) 2 C) 312、若运行以下程序时,从键盘输入#include break break breaks=s*i;i+;while(i=10);D ) i=1; s=0;dos=s*i;i+;while(i=10);D ) 0 的值是(D )。D)2473回车,则下面程序的运行结果死循环 XpNxGRt W92V8tJ 8EEoOPe A )。main()int c;while(c=getchar()!= n ) switch(c- 2) case 0: case 1: putc

54、har(c+4);putchar(c+4); break;putchar(c+3); default: putchar(c+2); break;printf( “ n”);A) 668977 B) 668966C) 66778777D)二、填空题1、执行下面程序段后,k值是 36。k=1;n=263;do k*=n%10; n/=10; while(n);2、下面程序的运行结果是 s=254。#include main()int a,s,n,count;a=2; s=0; n=1; count=1;while(count=7) n=n*a; s=s+n; +count; printf( s=%

55、d ,s);3、下面程序段的运行结果是* *。x=2;5,5。do printf( *”); x -; while(!x=0);4、运行以下程序时,从键盘键入China#(弋表回车),则下面程序的运行结果是 86F6fQ9。E8Brxdz。BJrgC9m#include main()int v1=0,v2=0; char ch;while(ch=getchar()!= #)switch(ch) 1)1 ith K K IE K直到某一项A=0.000001时为止。输出最后C的值。3、从键盘输入的字符中统计数字字符的个数,用换行符结束循环。1、参考答案:main() int i;long p=1

56、;do p=p*i;i=i+2; while (iE) s=s+1/y ;y=y*x ; printf(S=%fn,s) ;3、参考答案: main() int n=0; char c;c=getchar();while(c!= n) if(c= ,0,&c= 9,) n+; c=getchar(); printf( %d n ,n);能力提高(B)一、选择填空题m和小写字母的个数n,1、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数 并输出mr n中的较大者,请选择填空。z9muYn6 VkjYeHo。qlT861P#include main() int m=0,n=0;cha

57、r c; while( A )!=n )if(c= A &c= ,a,&c=,z,) n+; printf( %d n ,mn? A ); A ) c=getchar()B) getchar()C) scanf( %C ,c)A ) n:mB) m:nC) m:mD) n:n2、下面程序的功能是在输入的一批正整数中求出最大者,输入 0结束循环,请选择填空。#include main() int a,max=0;scanf( %d ,&a);while( B) if(maxa) max=a;scanf( %d ,&a); printf( %d ,max);A) a=0B) a C ) !a=1

58、D ) !a3、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。#include main()int n,sum=0;n=2345;dosum=sum+B ;n= C ;while(n);printf(sum=%d ,sum); A) n%10B)(n%10)*(n%10)C)n/10D ) (n/10)*(n/10)cT8gBAa8ihJ8hW。EobL2KS(2) A) n/1000B)n/100C)n/10D) n%10二、读懂程序,并按照程序的功能将程序补充完整1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。#include main()int r

59、,m,n;scanf( %d %d ,&m,&n);if(mn) r=m,m=n,n=r ;r=m%n;while(r) m=n; n=r; r= m%n ; printf( %d n ,n); 2、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。请填空。Y6Ryj5A。cK0nJbR EF6P3iW#include main()int i=1,j=0;doif( i%3=2&i%5=3&i%7=2 )printf( %4d ,i);j=j+1;if( j%5=0) printf( “ n);一i=i+1;while(

60、i1000); 3、等差数列的第一项 a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。lomHlAC KM5JJud SRdNW3w#include main() int a,d,sum; a=2; d=3; sum=0; dosum+=a;a+=dif( sum%4=0) printf( %d n ,sum);while(sum200);第2讲基础练习(A)一、 选择题1、下面有关for循环的正确描述是 (D )。for循环只能用于循环次数已经确定的情况for循环是先执行循环体语句,后判断表达式在for循环中,不能用break语句跳出循环体for循环的循环

温馨提示

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

评论

0/150

提交评论