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

下载本文档

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

文档简介

C语言章节习题

目录

C语言章节习题。

第一章C语言概述

第三章数据类型、运算符和表达式

第四章顺序结构程序设计

第五章选择结构程序设计

第六章循环结构程序设计.......................

第7章数组习题...............................

第8章函数习题

第九章预处理.................................

第十章指针

第一章C语言概述

一、选择题:

1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C本程序的main函数开始,到本程序文件的最后一个函数结束

D本程序文件的第一个函数开始,到本程序main函数结束

2、在C语言中,每个语句必须以(D)结束。

A.回车符B.冒号Co逗号D.分号

3、C语言规定:在一个源程序中,main函数的位置(C)。

Ao必须在最开始B.必须在系统调用的库函数的后面

C.可以任意D.必须在最后

4、一个C语言程序是由(B).

Ao一个主程序和若干子程序组成B.函数组成

C.若干过程组成Do若干子程序组成

5、下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其他函数

Co任何非主函数可以调用其他任何非主函数

D.程序可以从任何非主函数开始执行

6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。

A.生成可执行目标文件B.生成目标文件

Co输出运行结果D。自动保存源文件

二、填空题:

1、C语言只有(37)个关键字和(9)种控制语句。

2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。

3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标记,以(*\)符

号作为结束标记。

4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(print。完成的。

5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.ob

j),经过连接后生成的可执行文件的扩展名是(。exe)0

6、C语言的标识符只能由字母、数字和(下划线)二种字符组成.

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的C语言浮点型常量是(C).

Ao160.Bo0o12Co2e4«2D.0.0

2、以下选项中,(D)是不正确的C语言字符型常量。

Ao匕'B「\x4「C.'\101'D.

3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A.原码B.反码CoASCH码D.BCD码

4、若x、i、j和k都是血型变量,则计算下面表达式后,x的值是(C)。

x=(i=4,j=16,k=32)

A.4Bo16C.32Do52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

Ao算术运算、赋值运算、关系运算B。算术运算、关系运算、赋值运算

C.关系运算、赋值运算、算术运算D。关系运算、算术运算、赋值运算

6、表达式!x||a==b等效于(D).

A.!((xI|a)==b)B.!(x||y)==bC.!(xI|(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,1Co1,0D.1,1

8、设有语句inla=3;,则执行了语句a+=a-=a*=a;后茂量a的值是(B)。

A.3Bo0C.9D.-12

9、在以下一组运算符中,优先级最低的运算符是(D)。

Ao*B.!=C.+D.=

10、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(B)。

A.6Bo12Co15Do表达式出错

11若己定义x和y为double类型,则表达式x=l,y=x+3/2的值是(C)。

A.IB.2C.2.0Do2o5

12、设a=l,b=2,c=3:d=4,则表达式:a<b?a:c〈d?a:d的结果为(D).

Ao4Bo3Co2D.1

13、设a为整型变量,不能正确表达数学关系:105的C语言表达式是(A).

A.10<a<15B.a==11I|a==121|a==13IIa==14

C.a>10&&a<15D。!(a<=10)&&!(a)=15)

14、设f是实型变量,下列表达式中不是逗号表达式的是(D)。

A.f=3.2,1.0B.f>0,f<10Ccf=2.0.f)0D.f=(3.2,1.0)

15、表达式18/4*sqrt(4.0)/8值的数据类型是(C)«

A.intBofloatC。doubleDo不确定

16、已知字母A的ASCH码为十进制数65,且c2为字符型,则执行语句

C2='A'+'6'—3;后c2中的值是(AC

AoDBo68Co不确定的值DoC

17、以下用户标识符中,合法的是(B)。

AointB.nitCo123Doa+b

18、C语言中,要求运算对象只能为整数的运算符是(A)。

Ao%Bo/C.>Do*

19、若有说明语句:charc=^72';则变量c在内存占用的字节数是(A)。

Ao1Bo2C.3D.4

20、字符串“ABC”在内存占用的字节数是(B)。

Ao3Bo4Co6Do8

21、要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。

Aochara="3";B.chara='3';C。chara=%;D.chara=*;

22、下列不正确的转义字符是(C).

A.\\B.VCo074D0\0

二、填空题:

1、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的.

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的

值为0。

3、设c=,w',a=l,b=2,d=—5,则表达式+1〉c,,y'!=c+2»—a—5*b<=d+1,b==a=2的

值为1、0、1、1。

4、设f1oalx=2o5,y=4。7;inta=7;,表达式x+w%3*(int)(x+y)%2/4的值为2.5。

5、判断变量a、b的值均不为。的逻辑表达式为a!=0&&b!=O,值为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转换为小写字母ao

1.

main()

{floatx=lo5,y=2。3;printf("areais%6.2f\nw,x*y);}

2。

main()

{charc=,A,;printfC%dM,c+32);)

第四章顺序结构程序设计

基础练习(A)

一、填空题

I、c语句分为五种:控制语句、函数调用语句、表达式语句、空语句和复合语句.

2、一个基本语句的最后一个字符是;°

3、复合语句又称分程序,是用{}括起来的语句。

4、使用C语言库函数时,要用于预编译命令include将有关的“头文件”包括到用户源

文件中。

5、使用标准输入输出库函数时,程序的开头要有如下预处理命令:#inelude〈stdi°。

6、{a=3;c+=a一b;}在语法上被认为是]条语句.

7、getchar函数的作用是从终端输入1个字符。

8、如果从键盘输入字符言并按回车键,请写出以下程序运行效果a.

#inc1ude<stdio«h>

main()

{

putchar(getchar());

)

9、以下程序的输出结果为i:dec=-4,oct=W7774,hex=fffc,unsi^ned=65532。

main()

®shorti;

i=-4;

叩rintf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\nM,i,i,i»i);

0)

10、以下程序的输出结果为*3。140000,3.142*。

oniain()

0{

。printfC*%1%4。3f*\n”,3。14,3.1415);

11、以下程序的输M结果为c:dec=120,oct=170,hex=78,ASCII=x。

main()

{

®charc='x';

printf(uc:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c);

°)

12、已有定义intd=—2:执行以下语句后的输出结果是*d(l)=—2*d(2)=—2*d(3)

=—2*

存d(4)=l77776*d(5)=177776*(1(6)=177776字

printR"*d(D=%d*d(2)=%3d*d(3)=%—3d*\n”,d,d,d);

叩rintf("*d(4)=%o*d(5)=%7o*d(6)=%—7o*\n",d,d,d):

13、以下程序的输出结果为x=1y=2*sum*=3

10Squaredis:100

main()

(

。intx=1,y=2;

。printf(ux=%dy=%d*sum*=%d\n",x,y,x+y);

oprintf("10Squaredis:%d\n,,,10*10);

14、以下程序的输出结果为(D123。456000

(2)□□□□□□□123.457

(3)123.4560

(4)8765.456700

(5)□□□□□□8765.457

⑹8765.4567

(7)8765.4567

#inc1ude<stdio。h>

<>main()

{

f1oata=123.456;daub1eb=8765.4567;

。。叩rintf("(1);

。。叩rint((2)%14.3f\nH,a);

“printR"(3)%6.4f\n",a);

ogprintf("(4)%1f\n",b);

叩rintf("(5)%14。31f\nM,b);

oooprintfC(6)%8。41An”,b):

oprinlfC⑺%。4f\n",b);

1

二、判断题

1、所谓函数体实际上就是一个复合语句。(对)

2、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.(对)

3、Putchar函数可以向终端输出一个整数数据。(错)

4、考虑到Printf和scant函数使用频繁,系统允许在使用这两个函数时可不加include命令。

(对)

5、任何表达式都可以加上分号而成为有意义的语句。(对)

三、选择题

1、以下不属于流程控制语句的是(A)o

A)表达式语句B)选择语句C)循环语句D)转移语句

2、putchar函数可以向终瑞输出一个(D)。

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变

量值

3、getChar函数的参数个数是(B)。

A)1B>0C)2D)任意

4、以下程序的输出结果是(D)。

omain()

(

«printff*\n*s1=%15s*\Hchinabeijing");

叩rintf(H\n*s2=%—5s*M,Mchiw);

4

A)*s1=chinabeijing)*s1=chinabeijing*

*s2=**chi*。。a*s2=chi火

C)*s1=*chinabeijingD)*s1=chinabejing*

*s2=chi*。。*s2=chi*

5、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于

5,则输出按方式(B)。;如果字符串长度小于5,则输出按方式(C)o

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

6、己有定义inta=—2;和输出语句:printf6%8lx”,a);以下正确的叙述是(D).

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种.它可以适用于仟何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8仅是错误的

D)%81x不是错误的格式符,其中数字8规定了输出字段的宽度

7、以下C程序正确的运行结果是(C).

omain()

810ngy=-43456;

printf(My=%-8ld\n",y);

oprintffy=%—08ld\n\y);

printfC*y=%08Id\n';y);

ooprintf(uy=%+81d\n",y);

)

A)y=一43456。B)y=—43456

y=—43456。。y=—43456

y=—0043456oy=-0043456

y=-43456°y=+-43456

C)y=-43456。。°D)y=—43456

y=-43456y=—0043456

y=-0043456y=00043456

y=—43456。y=+43456

8、以下C程序正确的运行结果是(D

ain()

。{

inty=2456;

oPrintf(My=%3o\nM,y);

printf("y=%8o\nM,y);

叩rintf(My=%#8o\nM,y);

0)

A)y=2456»B)y=4630

y=2456。y=463C

y=########2456。4630

C)y=2456oQ)y=4630

y=2456oy=4630

y=02456。»y=04630

基础练习(B)

一、填空题

1、printf函数的作用是向终端输出若干个任意类型的数据。

2、printf函数中的“格式控制”,包括格式说明和普通字符两种信息。

3、scanf函数中的“格式控制”后面应当是变量皿址,而不是变量名。

4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其他字符,

则应在对应位置输入与这些字符相同的字符。

5、在用“%c"格式输入字符时,空格字符和“转义字符”都作为有效字符输入.

6、在输入数据时,遇以下情况时该数据认为结束:遇空格、或按“回车”或

“跳格”键;按指定的宽度结束;遇非法输入。

7、输入数据时不能规定精度o

8、如果在%后有一个附加说明符,表示跳过它指定的列数

二、选择题

1、若inta,b;scanf("%d%d",&a,&b);不可以用(A)作为输入的分隔符。

A),R)空格C)[可车D)TAR键

2、若x,y均定义为int型,z定义为doub1e型,以下不合法的scant函数调用语句是

(B)。

A)scanf("%d%lx,%1e",&x,&y,&z);

B)scanf(“%2d*%d%lf”,&x,&y,&z);

C)scanf("%x%*d%o”,&x,&y);

D)scanf(,4%x%o%6.2f,&x,&y,&z);

3、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输

入数据时,正确的数据输入方式是(D).

inta1,a2;charc1,c2;

scanf("%d%d”,&a1,&a2);

scant(*'%c%c",&c1,&c2);

A)1020AB<CR>»B)1020<CR>

°。AB<CR>

C)1020AB<CR>Q)1020AB(CR>

4、阅读以下程序,当输入数据的形式为25,13,10VCR>正确的输出结果为(D)。

main()

。(

intx,y,z;

。scanf("%d%d%d",&x,&y,&z);

rintf("x+y+z=%d\n\x+y+z);

)

A)x+y+z=48

B)x+y+z=35

C)x+z=35

D)不确定值

5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为(D).

main()

°(

«inta;floatf;

8哨rintf(M\nInputnumber:

。。输入语句

sprintf(u\nf=%f,a=%d\nn,f,a);

}

。Inputnumber:4o52<CR>

A)scanf("%d,%f,&a,&f);

B)scanfC,%f,%d”,&f,&a);

C)scanf(H%d%r,&a,&f);

D)scant

6、根据定义和数据的输入方式,输入语句的正确形式为(B)。

已有定义:floatf1,f2;

。数据的输入方式:4o52

。31>5

A)scanf("%f,%「,&f1,&f2);

B)scanfC'%f%fH,&f1,&f2);

C)scant(“%3.2f%2.1f",&f1,&f2);

D)scanf(,4%3.2f%2.ir,&f1,&f2);

7、阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是(B)。

main()

intx;floaty;

“printf("enterx,y:

°。输入语句

。输出语句

4

输入形式centerx,y:2304

。输出形式。x+y=5o40

A)scanf(M%d,%r,&x,&y):

printf(M\nx+y=%4.2『,x+y);

B)scanf(,l%d%f”,&x,&y);

printf("\nx+y=%4.2F',x+y);

C)scanfC'%d%fx,&y);

printf(M\nx+y=%6。1f”,x+y);

D)scanf(M%d%3.lf,&x,&y);

printf(M\nx+y=%4.2f”,x+y);

8、以下说法正确的是(D)。

A)输入项可以为一实型常量,如seanf("%「,3.5);

B)只有格式控制,没有输入项也能进行正确输入,如scan「("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%402巴&f);

D)当输入数据时,必须指明变量的地址,如scanf("%3&f);

9、有输入语句:scanf(Ma=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c

为2,从键盘输入数据的正确形式应当是(D)o

A)132(回车,

B)132V回车〉

C)a=1b=3c=2v回车〉

D)a=1,b=3,c=2〈回车>

)

10、己有如下定义和输入语句,若要求a1,a2,d,c2的值分别为10,20,A和B,当从第一

列开始输入数据时,正确的数据输入方式是(A).

。inta1,a2:charc1,c2;

scanf(M%d%c%d%c"c1,&a2,&c2);

A)10A20B<CR>«B)10A20B(CR>

C)10A20B<CR>«oD)10A20B<CR>

11、已有定义intx;floaty;且执行scanf("%3d%f‘,&x,&y);语句,若从第一列开始输入

数据12345678〈回车〉,则x的值为(B),y的值为(B)。

(1)A)12345«B)123C)45°°D)345

(2)A)无定值B)45o0000009)678。000000D)123。000000

三、编程:

1、编写程序,从键盘上输入三个数分别给变量a、b、c,求它们的平均值。并按如下形式输出:ave

rageof**、**and**is**。**。其中,三个**依次表示a、b、c的值,*火.**

表示a,b,c的平均值.

2、输入9时23分并把它化成分钟后输出.(从零点整开始计算)。

1、参考答案

main()

{f1oata,b,c,t;

printf(,4pleaseinputa,b,c:\n");

scanf(n%f,%f,%f',&a,&b,&c):

t=(a+b+c)/3:

M

printf(average。;%6。2f>%6.;2fand%6,>2fis%6.2fn",a,b»c,

t);

}

2、参考答案

main()

{inth,m,s:

Printf("pleaseinputh,m:\nM);

scanf("%d,%d”,&h.&m);

s=h*60+m;

printf("total%dminute\n",s);

)

第五章选择结构程序设计

基础练习(A)

一、填空题

1、关系表达式的运算结果是逻辑一值。C语言没有逻辑型数据,以1代表“真",以0

代表“假

2、逻辑运算符!是单目运算符.其结合性是由右结合性o

3、C语言提供的三种逻辑运算符是.&&、II、!°其中优先级最高

的为!.优先级最低的为II.

4、逻辑运算符两侧的运算对象不但可以是。和1,或者是0和非0的整数,也可以是任何类型的数

据。系统最终以0和非0来判定它们属于“真”或“假”.

5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。

6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式xvz|IyVz.

7、条件“2vxv3或xv—10"的C语言表达式是XV—10||X〉2&&xv3。

8、判断char型变量ch是否为大写字母的正确表达式是(ch>='A')&&(ch〈二'Z').

9、当a=3,b=2,c=l时,表达式f=a>b>c的值是0.

10、当a=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,v=—4,z=5,而表达式(x&&y)==(xIIz)的值为10

14、有intx,y,z闰x=3,y=-4,z=5,则以下表达式的值为1。

!(x)y)+(y!=z)||(x+y)&&(y—z)

15、有inta=3,b=4,c=5,x,y;.则以下表达式的值为0.

«!(x=a)&&(y=b)&&0

16、if(!k)a=3;语句中的!k可以改写为k==0,使其功能不变。

二、选择题

1、逻辑运算符两侧运算对象的数据类型(D)o

A)只能是0或1

B)只能是0或非。正数

C)只能是整型或字符型数据

D)可以是任何类型的数据

2、以下关于运算符优先顺序的描述中正确的是(C)。

A)关系运算符V算术运算:符〈赋值运算符V逻辑与运算符

B)逻辑与运算符(关系运算符〈算术运算符〈赋值运算符

C)赋值运算符〈逻辑与运算符〈关系运算符〈算术运算符

D)算术运算符〈关系运算符〈赋值运算符〈逻辑与运算符

3、下列运算符中优先级最高的是(B

A)<»oB)+C)&&山);=

4、为判断字符变量C的值不是数字也不是字母时,应采用下述表达式(D).

A)c<=48I|C>=57&&c<=65||c>=90&&c<=97||c>=122

B)!(c<=48I|c>=57&&c<=65IIc>=90&&c<=97||c)=122)

C)c)=48&&c<=57I|c)=65&&c<=90|Ic)=97&&c<=122

D)!(c)=48&&C<=57||c>=65&&c<=90I|c>=97&&c<=122)

5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C)。

A)(x>=1)&&(x<=100)&&(x>=200)&&(x(=300)

B)(x)=1)I|(x<=100)II(x>=200)|I(x<=300)

C)(x>=1)&&(x;=100)||(x>=200>&&(x<=300)

D)(x>=1)II(x<=100)&&(x)=200)1I(x<=300)

6、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为。的是(D)。

A)'x'&&H

B>x<=y

C)xI|y+z&&y—z

D)>((x<y)&&!z||1)

7、已知x=43,ch='A',y=0;则表达式(x>=y&&ch〈'B'&&!y)的值是(C)。

A)0oB)语法错C)hQ)“假”

8、设有:inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b)&&(n=c>d)后n的值为(B)。

A)1aB)2,C)3。D)4

9、以下不正确的if语句形式是(C)。

A>if(x>y&&x!=y);

B)if(x==y)x+=y;

C)if(x!=y)scanf("%d”,&x)e1sescanf&y);

D)if(x<y){x++;y++;)

10、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。

Mf(x>y)

z=x;x=y;y=z;

A)x=10,y=20»z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10Q)x=20,y=30,z=20

11、以下if语句语法正确的是(B).

A)if(x>0)

printf(4,%r,x)

elseprintf(H%rx):

B)B)if(x〉0)

{ox=x+y;printf(M%f;x);}

elseprintf一x);

C)C)if(x)0)

«x=x+y;printf(u%r,x)?);

elseprintf("%f,-x);

D)D)if(x)0)

{x=x+y:printf("%f”,x)}

e1seprintf(M%f',-x);

12、请阅读以下程序:

main()

(

ginta=5,b=5,c=0;

gif(a==b+c)printf("…\n”);

eIseprintf(u$$$\n");

4

。以下程序(C)o

A)有语法错不能通过编译。B)可以通过编译但不能通过连接

C)输出***。。D)输出$$$

三、写出下列程序的运行结果

1、若运行时输入:2(回车),则以下程序的运行结果是2ndelasspostaqeis

14p

#include<stdiOoh>

voidmain(void)

(

charClass;

goprintf(uEnter1for1stclasspostor2for2ndpost");

scanf("%c”,&CIass);

。if(Class==M')

。printf(“1stc1asspostageis19pu);

else

«printf(,42ndclasspostageis14p");

)

2、若运行时输入:4.4〈回车),则以下程序的运行结果是一Se1lingPrice©30)$5。1

2。

,#inc1ude<stdio。h>

voidmain(void)

{

◎floatCostPrice,Sei1ingPrice;

sprintf(uEnterCostPrice$:");

。scanf("%f',&CostPrice);

。if(CostPrice>=5)

ooo|

eHingPrice=CostPrice4-CostPrice*0。25:

-printf(uSe1lingPrice(0。25)$%6.2f\SellingPrice);

30)

。else

(

。Sei1ingPrice=CostPrice+CostPrice*0。30;

»printf(uSe1lingPrice(0.30)$%6.2f",SeIlingPrice);

0)

)

3、以下程序的运行结果是F。

omain()

°{

。。if(2<2==5<2*2==4)

gPrint(T);

。else

。oprintf("F");

°)

能力提高(B)

一、选择题

1、若希望当A的值为奇数时,表达式的值为“真",A的值为偶数时,表达式的值为“假,,则以下不

能满足要求的表达式是(D

A)A%2==1B)!(A%2==0)C)!(A%2)Q)A%2

2、下列运算符中优先级最低的(A),优先级最高的是(C)。

A)?>B)&&C)+。D)!=

3、请阅读以下程序:

main()

(

gointa=5,b=O,c=O;

,if(a=b+c)«printf("***\n");

else*printf(u$$$\n");

0)

以下程序(D

A)有语法错不能通过编译。。B)可以通过编译但不能通过连接

C)输出……。D)输出$$$

4、以下程序的运行结果是(C)。

main()

{

intm=5;

府f(m+4->5J»printf(M%d\n",m);

else。printf("%d\n",m——);

0)

A)4B)5«C)6。D)7

二、根据程序的功能,将以下程序补充完整

1、以下程序对输入的四个整数,按从小到大的顺序输出。请在内填入正确内容。

omain()

{

•ntt,a,b,c,d;

printf(Hinputa,b,c,d:M)

。oscanf("%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=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;}

printfC,%d,%d,%d,%d”,a,b,c,d);

»)

三、编程:

1、试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes:否则输出no.

2、编制程序要求输入整数X、y和z,若x?+y2+z2大于1000,则输出x?+y2+z2千位以上的数

字,否则输出三数之和.

3、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的

提示信息。

1、参考答案

main()

(intx;

if(x%5==0&&x%7==0)

printf(“yes”);

else

print;

)

2、参考答案

main()

{intx,y,z,a,b;

scant(4,%d%d%d”,&x,&y,&z);

a=x*x+y*y*z*z;

if(a)1000)

{b=a/1000;printfC%dn,b);)

elseprintf("%d”,x+y+z);

)

3、参考答案

#include〈math。h>

main()

{floata,b,c.s,area;

scant("%f,%f,%f",&a,&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=%7c2f\n",area);}

else

printfCbunengzhuchengsanjiaoxing\n");

}

第2讲

基础练习(A)

一、填空题

1、在if语句中又包含一个或多个if语句称为if语句的嵌套。

2、为了避免在嵌套的条件语句if-e】se中产生二义性,C语言规定:else子句总是与其之前最

近的未配对的if配对。如果if与else数目不一样,为实现设计者的企图,可以加花括号关

系。

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=(avb)?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、在sw让ch语句中,每一人的case常量表达式的值可以相同。(错)

2、在switch语句中洛个case和default的出现次序影响执行结果。(对)

3、在switch语句中,多个case可以共用一组执行语句j(对)

4、条件表达式能取代一般if的语句。(错)

5、case后的常量表达式类型一定与表达式类型匹配。(对)

三、写出以下程序的运行结果

1、main()-1

{

8。访ta=2,b=3,c;

"=a;

。。。if(a)b)c=1;

。。eIseif(a==b)c=0;

oo<>elsec=—1;

oprintf("%d\n”,c);

l

y

j

C

Mmain()200

Jnta,b,c;

«ints,w,t;

gs=w=t=0:

°a=-1;b=3;c=3;

。if(C)0)s=a+b;

OMf(a<=0)

(

gif(b>0)

f(c(=0)w=a-b;

)

elseif(c>C)w=a-b;

。elset=c;

»printf(M%d%d%dM,s,w,t);

n

3

swilch(grade)

(

ease'A':printf(“85-100\n,'):

caseB:printf('70-84\n'5);

。case*C':printff*60—69\n");

case'D':printf(H<60\n");

odefau11:printf("error!\n");

»)

。若grade的值为‘C',则输出结果是60—69

(60

error!

能力提高(B)

一、写出下列程序的运行结果

1#include<stdio.h)5

5

1

voidmain(void)

{

°intx,y=1,z;

。»if(y!=0)x=5;

"rintf('Y%d\n",x);

gif(y==O)x=4;

。»e1sex=5;

owprintf(M\t%d\n",x);

oif(y-<0)

。if(y)0)x=4;

g。elsex=5;

printf(M\t^d\n",x):

)

2、include<stdio.h>4—2

40

4-2

◎voidmain(void)

(

aintx,y=-2,z;

。/f((z=y)<0)x=4;

。e1seif(y==O)x=5;

gelsex=6;

。printfCt%c\t%d\n",x,z);

if(z=(y==0))

8ox=5;

x=4;

。printf(<,\t%d\t%d\n,1,x,z);

®if(x=z=y)x=4;

gprintfC,\t%d\t%d\nM,x,z);

3、〃inelude<sldio.h>a=2,b=1

main()

intx=1,y=O,a=O,b=O;

3switch(x)

0{

ggcase1:

s。。switch(y)

03{

g«case0:a+4-;break;

a。。case1:b++;break;

aa}

。"ase2:

。。a++;b++;break;

000)

。sprintf(*'a=%d,b=%d",a,b);

)

二、根据程序的功能,将以下程序补充完整

以下程序计算某年某月有几天。其中判别闰年的条件是:能被4整除但不能被100整除的年

是闰年,能被400整除的年也是闰年.请在内填入正确内容。

main()

(

。intyy,mm,len;

。printf("year,month=");

scanf("%d%d”,&yy,&mm)

温馨提示

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

评论

0/150

提交评论