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

下载本文档

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

文档简介

目录

第1-3章C语言基础知识习题1

1选择题1

2填空题7

3答案及部分解析8

第4章选择结构习题11

1选择题11

2填空题17

3答案及部分解析23

第5章循环结构习题26

1选择题26

2填空题:32

3答案及部分解题分析39

第6章数组习题40

1.单项选择题40

2.填空题43

3.判断题44

4.程序填空题45

5.阅读程序,分析程序的功能。48

第7章函数习题54

1.单项选择题54

2.填空题56

3.判断题56

4.程序填空题57

5.写出下列程序运行结果59

第8章指针习题65

1选择题65

2填空题68

第1・3章C语言基础知识习题

1选择题

1.以下不是c语言的特点的是()。

A、语言简洁紧凑

B、能够编制出功能复杂的程序

C、C语言可以直接对硬件操作

D、C语言移植性好

2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123B.no.1C._123_D._ok

3.正确的(:语言标识符是()。

A._buy_2B.2_buyC.?_buyD.buy?

4.请选出可向作C语言用户标识符的一组标识符()。

A.voidB.a3_b3C.ForD.2a

define_123-abcDO

WORDIFCasesizeof

5.下列符号中,不属于转义字符的是()o

A.\\B.\0xAAC.\tD.\0

6.不属于C语言关键字的是()。

A.intB.breakC.whileD.character

7.是C语言提供的合法关键字的是()。

A.FloatB.signedC.integerD.Char

8.以下不能定义为用户标示符的是()。

A.scanfB.VoidC._3_D.int

9.一个C程序是由()。

A.一个主程序和若十子程序组成

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

10.C语言程序的基本单位是()。

A.程序行B.语句C.函数D.字符

11.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号

B.每个函数都有一个函数头和一个函数体,主函数也不例外

C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数

12.以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

13.C编译程序是()。

A.C程序的机涔语言版本

B.一组机器语言指令

C.将C源程序编译成目标程序

D.由制造厂家提供的一套应用软件

14.以下选项中,合法的庄户标识符是()。

A.longB._2abcC.3dmaxD.A.dat

15.以下选项中,合法的实型常数是()。

A.5E2.0B.E-3C.2E0D.1.3E

16.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字

符常量是()。

A.字符AB.字符aC.字符cD.非法的常量

17.以下选项中,合法转义字符的选项是()。

A.B.,\018,C.'xab'D.'\abc'

18.以下选项中,正确的字符常量是()。

A."F"B.,\\"C.'W'D."

19.以下选项中可作为C语言合法整数的是

A.10110BB.0386C.OXffaD.x2a2

20.下列变量定义中合法的是

A.short_a=1-.le-1;B.doubleb=1+5e2.5;

C.longdo=0xfdaL;D.float2_and=1-e-3;

21.与数学式子上一对应的C语言表达式是()。

2x-\

A.9*xAn/(2*x-1)B.9*x**n/(2*x-1)

C.9*pow(x,n)*(1/(2*x-1))D.9*pow(n,x)/(2*x-1)

22.若有代数式或,则不正确的C语言表达式是()。

cd

A.a/c/d*b*3B.3*a*b/c/d

C.3*aAb/cAdD.aAb/d/c*3

23.己知各变量的类型说明如下:

intm=8,n,a,b;

unsignedlongw=10;

doublex=3.14,y=0.12;

则以下符合C语言语法的表达式是()。

A.a+=a-=(b=2)*(a=8)B.n=n*3=18

C.x%3D.y=float(m)

24.以下符合C语言语法的赋值表达式是()。

A.a=9+b+c=d+9B.a=(9+b,c=d+9)

C.a=9+b,b++,c+9D.a=9+b++=c+9

25.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S='A'+'6'-'3';后,S

中的值为()。

A.'D'B.68C.不确定的值D.,C,

26.在C语言中,要求运算数必须是整型的运算符是()。

A./B.++C.*=D.%

27.若有说明语句:chars=>\72,;则变量s()。

A.包含一个字符

B.包含两个字符

C.包含三个字符

D.说明不合法,s的值不确定

28.若有定义:intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是()。

A.2.500000B.2.750000C.3.500000D.0.000000

29.在C语言中,char型数据在内存中的存储形式是()。

A.补码B.反码C.原码D.ASCII码

30.设变量x为float类型.m为int类型,则以下能实现将x中的数值保留小数点后两位,

第三位进行四舍五入运算的表达式是()。

A.x=(x*100+0.5)/100.0

B.m=x*100+0.5,x=m/100.0

C.x=x*100+0.5/100.0

D.x=(x/100+0.5)*100.0

31.表达式13/3*sqrt(16.0)/8的数据类型是O。

A.intB.floatC.doubleD.不确定

32.设以下变量均为int类型,则值不等于7的表达式是()。

A.(m=n=6,m+n,m+1|

B.(m=n=6,m+n,n+1)

C.(m=6,m+1,n=6,m+n)

D.(m=6,m+1,n=m,n+1)

33.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是()。

A.7B.8C.6D.2

34.已知s是字符型变量,下面不正确的赋值语句是()。

A.s=>\012,;B.s='u+v';

C.s='1'+'2';D.s=1+2;

35.已知s是字符型变量,下面正确的赋值语句是()。

A.s=,abc,;B.s=>\08,;

C.s='\xde';D.s="\";

36.若有以下定义,则正确的赋值语句是()。

intx,y;

floatz;

A.x=1,y=2,B.x=y=100

C.x++;D.x=int(z);

37.设x、y均为float型变量,则不正确的赋值语句是()。

A.++x;B.x*=y-2;

C.y=(x%3)/10;D.x=y=0;

38.下列语句中符合(:语言的赋值语句是()。

A.a=7+b+c=a+7;B.a=7+b++=a+7;

C.a=7+b,b++,a+7D.a=7+b,c=a+7;

39.putchar函数可以向终端输出一个()。

A.整型变量表达式值。B.字符串

C.实型变量值。D.字符或字符型变量值,

40.以下程序段的输出结果是()。

inta=12345;printf(,,%2d\nM,a);

A.12B.34C.12345D.提示出错、无结果

41.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句

为()o

A.scanf("%d%lx,%le”,&x,8ty,&z);

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

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

Doscanf("%x%o%6.2f”,&x,&y,&z);

42.有如下程序段:

intx1,x2;

chary1,y2;

scant("%d%c%d%c",&x1,&y1,&x2,&y2);

若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:山

代表空格)

A.10ALJ20BB.10LJA20B

C.10LJAL」20LJBD.10A20LJB

43.若变量已正确说明为float类型,要通过语句scanf("%f%f%f”,&a,&b,&c);给a赋予

10.0,b赋予22.0,c赋予33.0,不正确的输入形式为()。

A.10〈回车>B.10.0,22・0,33・0〈回车〉

22〈回车>

33

C.10.0〈回车>D.1022〈回车>

22.033.0〈回车>33〈回车〉

44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。

(注:「代表空格)

intx1,x2;

chary1,y2;

scanf("%d%d",&x1,&x2);

scanf("%c%c",&y1,&y2);

A.1020ABB.1QLJ20LJABC

C.10LJ20D.10LJ20AB

AB

45.已有定义inta=・2;和输出语句:printf(“%8lx”,a);以下正确的叙述是(4

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

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

C.%乂是格式符

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

46.有如下程序段,对应正确的数据输入是()o

floatx,y;

scanf("%f%f",&x,&y);

printf("a=%f,b=%6,x,y);

A.2.04〈回车〉B.2.04,5.67〈回车〉

5.67〈回车〉

C.A=2.04,B=5,67<回车>D.2.055.67<回车〉

47.有如下程序段,从键盘输入数据的正确形式应是()。(注:L」代表空格)

floatx,y,z;

scanf("x=%d,y=%d,z=%d”,&a,&y,&z);

A.123B.x=1,y=2,z=3

C.1,2,3D.x=1LJY=2LJZ=3

48.以下说法正确的是()o

A.输入项可以为一个实型常量,如scanf("%f”,3.5);

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

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

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

49.根据定义和数据的输入方式,输入语句的正确形式为:()o(注:=代表空格)

己有定义:floatx,y;

数据的输入方式:1.23〈回车〉

4.5<回车>

A.scan("%f,%f”,&x,&y);B.scanf("%f%f”,&x,&y);

C.scanf("%3.2fL」%2.1f”,&x,&y);D.scanf(,F%3.2f%2.1fM,&x,&y);

50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。

^include"stdio.h"

main()

{chars1,s2,s3;

输入语句;

printf(M%c%c%cM,s1,s2,s3);

)

输入形式:AL」BL」C<回车>(注:L」代表空格)

输出形式:AL」B

A.scanf(M%c%c%cn,&s1,&s2,8ts3);

M

B.scanf(%CLJ%L」C%CM,&S1,&S2,&S3);

C.scanf(M%c,%c,%cn,&:s1,&s2,&s3);

D.scanf(n%c%cn,&s1,&s2,&s3);

51.以下程序的执行结果是:()0

#include"stdio.h”

main()

{intx=2,y=3;

printf(nx=%%d,y=%%d\nM,x,y);

}

A.x=%2,y=%3B.x=%%d,y=%%d

C.x=2,y=3D.x=%d,y=%d

52.以下程序的输出结果是()o(注:“代表空格)

^include"stdio.h"

main()

{printf(M\nstring1=%15s*M,”p「og「amming");

printf("\nstring2=%-5s*“,“boy");

printf("string3=%2s*",“girl");

)

A.stringl=programmingLJLJLJLJ*B.string>!,」LJLJLJprogramming*

string2=boy*string2=boyLJLJ*string3=gi*

string3=gi*

C.stringl=programmingLJLJLJLJ*D.string—」LJLJLJprogramming*

string2=LjLJboy*string3=girl*string2=boyLjLJ*string3=girl*

53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()0

#include"stdio.h”

main()

{inta;

floatb;

输入语句

输出语句

)

输入形式:入」2.3〈回车〉(注:L」代表空格)

输出形式:a+b=3.3OO

A.scanf(,,%d%r,&a,&b);B.scanf("%d%3.1f”,&a,&b);

printf(n\na+b=%5.3fn,a+b);pnntf(n\na+b=%fn,a+b);

C.scanf("%d,%f",&a,&b);D.scanf(n%d%fn,&a,&b);

printf(n\na+b=%5.3fn,a+b)printf(n\na+b=%fn,a+b);

54.阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为()o

^include"stdio.h"

main()

{inta,b;

scanf("%d%d",&a,&b);

printf(,,a+b=%d\n,,,a+b);

)

A.a+b=46B.有语法错误

C.a+b=12D.不确定值

55.若有定义:intx,y;chars1,s2,s3;并有以下输出数据:(注:L」代表空格)

1LJ2〈回车〉

ULJVLJW<回车〉

则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给

字符W的正确程序段是()0

A.scanf("x=%dy=%d”,&x,&y);s1=getchar();s2=getchar();s3=§etchar();

B.scanf("%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();

C.scanf(,,%d%d%c%c%c,,,&x,&y,&s1,&s2,&s3);

D.scanf(n%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);

2填空题

1.c语言的符号集包括、、。

2.结构化设计中的二种基本结构是、、。

3.C语言源程序文件的后缀是,经过编译后生成文件的后缀是,经过后

生成文件的后缀是____0

4.C语言的关键字都用{大写或小写}。

5.一个函数由两部分组成,它们是_________、。

6.函数体一般包括、。

7.C语言是通过_______来进行输入和输出的。

8.以下程序的执行结果。

^include"stdio.h”

main()

{short

printf(,,dec:%d,oct:%o,hex:%x,unsigned:%u\n,,,i,i,i,i);

printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n”,j,j,j,j);

)

9.以下程序的执行结果是。

#include"stdio.h"

main()

{chars=,b,;

printf(,,dec:%d,oct:%o,hex:%x,ASCII:%c\n,1,s,s,s,s);

)

10.以下程序的执行结果是O(注:L」代表空格)

#include"stdio.h"

main()

{floatpi=3.1415927;

printf(n%f,%.4f,%4.3f,%10.3f,,,pi,pi,pi,pi);

printf(,,\n%e,%.4e,%4.3e,%10.3e,,,pi,pi,pi,pi);

}

11.以下程序的执行结果是:O

include"stdio.h”

main()

{charc=,c,+5;

printf(,,c=%c\n,,,c);

]

12.以下程序输入1L」2L」3后的执行结果是_______o(注:L」代表空格)

^include"stdio.h"

main()

{Inti,j;

chark;

scanf("%d%c%d”,&i,&k,&j);

printf(,,i=%d,k=%c,j=%d\n,,,i,k,j);

)

13.有以下程序,若输入9876543210后的执行结果是;若输入为:98i76LJ543210

后的执行结果是_____;若输入为:987654L」3210后的执行结果为:。(注:

L」代表空格)

^include"stdio.h"

main()

{intx1,x2;

chary1,y2;

scanf(M%2d%3d%3c%cM,&x1,&x2,&y1,&y2);

printf(,,x1=%d,x2=%d,y1=%c,y2=%c\nM,x,y);

)

14.若x和y均为int型变量,则以下语句的功能是。

x+=y;y=x-y;x-=y;

15.有一输入函数scanf("%d”,k);则不能使float类型变量k得到正确数值的原因是:

16.有如下程序段,输入数据:12345ffl678后,u的值是【1],v的值是【2】。

intu;

floatv;

scanf(u%3d%r,&u,&v);

3答案及部分解析

一.选择题答案

1.B2.B3.A4.B5.B6.D

7.B8.D9.B10.C11.A12.C

13.C14.B15.C16.A17.A18.C

19.C20.A21.C22.C23.A24.B

25.A26.D27.A28.A29.D30.B

31.C32.C33.B34.B35.C36.C

37.C38.D39.D40.C41.D42.A

43.B44.D45.D46.A47.B48.D

49.B50.A51.D52.D53.A54.D

55.D

14.解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须

为字母或下划线。而且不能与C语言规定的关键字同名。关键字如:auto,break,

case,char,const,continue,default,do,double,else,entry,extern,for,float,

goto,if,int,int,long,register,return,short,signed,sizeof,static,struct,

unsigned,while,switch,typedef,void,volatile,unior0这些关键字先不必硬背

下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随

着学习的深入,而记下来。

15.解析:用指数形式表示一个实型常数时,E或e之前必须有数字,且E后面指数必须为

整数。

16.解析:为转义字符,相对应一个ASCII码字符。(101)8=(65)io=A.

17.解析:转义字符的特征是以“\”开头,其后跟一些字符,如\n,\t,\\\\,\",\b,\f

等代表一些特殊的含义,而'后如跟数字,可以为八进制或者十六进制,将其转换

为对应的ASCII码值,就可以得出对应的字符。后跟八进制的写法:\0nn,或

者\nn,表示“\0”或者后只能跟1或3位0——7之间的数字;“\”后跟十

六进制的写法:\xnn,或者\nn,表示“\x”或者“\”后只能跟1或2位0——9

及a——f(A——F)之间的字符。选项B的错误在于8不是八进制;而选项C的错

误在于没有“V;选项D的错误在于超长(多了一位)。

21.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18);C的错误在

于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,

即为:y=(float)m

31.解析:逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自

右的。第三个表达式y++,其隐含有两步操作:先取y的原值,再执行y=y+1运

算;而本题中,虽然没有将y赋给某个变量(取其原值),但还是一定会执行加运

算的。因而,经过第三个表达式,y已经自加为6,故x+y的值为8,相对应得表

达式最终结果为8。若本题改为:(x=2,y=5,z=y++,x+z),则其结果应为九

填空题答案

iT答案:英文字母、数字、一些有特定含义的标点符号

2.答案:顺序结构、选择结构、循环结构

3.答案:C,OBJ,EXE

4.答案:小写

5.答案:函数说明部分和函数体

6.答案:变量定义部分和执行部分

7.答案:输入和输出函数

8.答案:dec:-1,oct:177777,hex:ffff,unsigned:65535

dec:1,oct:1,hex:1,unsigned:1

9.答案:dec:98,oct:142,hex:62,ASCII:b

10.答案:3.141593,3.1416,3.142,LJLJLJLJLJ3.142

3.141593e+00,3.1416e+00,3.142e+00,LJLJ3.142e+00

(注:由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果

为:3.14159e+00,3.142e+00,3.14e+00,LjLJ3.14e+00,即:小数点后取5位。)

11.答案:c=h

12.答案:i=1,k=L」,j=2

13.答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1

第二种情况的执行结果:x1=98,x2=76,y1=Lj,y2=3

第二种情况的执行结果:x1=98,x2=765,y1=4,y2=2

14.答案:交换x和y的值

15.答案:(1)格式符应为:%f;(2)变量前边未加取地址符fit,即应为scanf("%f”,&k);

16.答案:【1】123[2]45.000000

第4章选择结构习题

1选择题

1.己有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是()。

A.6B.0C.2D.1

2.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为()。

A.1B.2C.3D.4

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

()o

A.'x'&&'y'B.x<=y

C.x||y+z&&y-zD.!((x<y)&&!z||1)

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

5.逻辑运算符两侧运算对象的数据类型()。

A.只能是0或1

B.只能是。或非0正数

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

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

6.以下关干运算符优先顺序的描述中正确的是(工

A.关系运算符〈算术运算符〈赋值运算符(逻辑与运算符

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

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

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

7.下列运算符中优先级最高的是()。

A.<B.&&C.+D.!=

8.选择出合法的if语句(设intx,a,b,c;)()。

A.if(a=b)C++;

B.if(a=<b)C++;

C.1f(a<>b)C++;

D.if(a=>b)C++;

9.能正确表示“当x的取值在卜58,・40]和[40,58]X围内为真,否则为假”的表达式是()。

A.(x>=-58)&&(x<=-40)&&<x>=40)&&(x<=58)

B.(x>=-58)||(x<=-40)||(x>=40)||(x<=58)

C.(x>=-58)&&(x<=-40)||(x>=40)&&(x<=58)

D.(x>=-58)||(x<=-40)&&(x>=40)||(x<=58|

10.判断char型变量s是否为小写字母的正确表达式是()。

A.匕'<=s<=,z,B.(5>='a')&(s<=,z,)

•JZ.

C.(s>=,a,)&&(s<=,z,)D.(,a,<=s)and(,z,>=s)

11.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假二

则以下不能满足要求的表达式是()。

A.x%2==1B.!(x%2==0)

C.!(x%2)D.x%2

12.已知x=45,y='a',z=0;则表达式(x>=z&&y<'z'||!y)的值是()«

A.0B.语法错

C.1D.“假”

13.指出下列程序段所表示的逻辑关系是()o

if(a<b)

{if(c==d)

x=10;

]

else

x=-10;

10a<bS.c=d

A.x=<

-10a>b且cwd

10a<Z?且c=d

B.x=

-10a>b

10a<且c=d

C.x=

-10a<Z?且c*d

10a<〃且c=d

D.x=<

-10c丰d

-1x<0

14.有一函数:y=\o

x=0,以下程序段中不能根据x值正确计算出y值的是()。

1x>0

A.if(x>0)y=1;

elseif(x==0)y=0;

elsey=-1;

B.y=0;

if(x>0)y=1;

elseif(x<0)y=-1;

C.y=0;

if(x>=0)

if(x>0)y=1;

elsey=-1;

D.if(x>=0)

if(x>0)y=1;

elsey=0;

elsey=-1;

15.执行以下语句后,y的值为()。

intx,y,z;

•JZ.

x=y=z=O;

++x||++y&&++z;

A.0B.1C.2D.不确定值

16.已知已ta=1,b=2,c=3;以下语句执行后a,b,c的值是()。

if(a>b)

c=a;a=b;b=c;

A.a=1,b=2,c=3B.a=2,b=3,c=3

C.a=2,b=3,c=1D.a=2,b=3,c=2

17.请阅读以下程序:该程序()。

#include"stdlo.h"

main()

{intx=-10,y=5,z=0;

if(x=y+z)printf(M***\nM);

elseprintf(,,$$$\nn);

}

A.有语法错不能通过编译

B.可以通过编译但不能通过连接

C.输出***

D.输出$$$

18.以下程序的运行结果是()。

#include“stdio.h"

main()

{inta=1;

if(a++>1)printf(,,%d\nM,a);

elseprintf("%d\n”,a--);

}

A.0B.1C.2D.3

19.当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。

if(a<b)

if(c<d)x=1;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=4;

elsex=5;

A.1B.2C.3D.4

20.执行以下程序段后,变量x,y,z的值分别为()。

inta=1,b=0,x,y,z;

x=(-a==b++)?-a:++b;

y=a++;

z=b;

A.x=0,y=0,z=0B.x=-1,y=-1,z=1

C.x=0,y=1,z=0D.x=-1,y=2,z=1

21.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。

a=1;b=2;c=3;d=4;

w=(a<b)?a:b;

w=(w<c)?w:c;

w=(w<d)?w:d;

A.1B.2C.3D.4

22.以下程序的输出结果是()。

#include"stdio.h"

main()

(

inta=5,b=4,c=6,d;

printf("%d\n”,d=a>b?a>c?a:c:b);

]

A.5B.4C.6D.不确定

23.若a、b、c1、c2>x、y均为整型变量,正确的switch语句是()。

A.switch(a+b);B.switcha

{case1:y=a+b;break;{casec1:y=a-b;break;

case0:y=a-b;casec2:x=a*d;break;

break;default:x=a+b;

})

C.switch(a*a+b*b)D.switch(a-b)

{case3:{default:y=a*b;break;

case1:y=a+b;break;case3:x=a+b;break;

case3:y=b-a;break;case10:case11:y=a-b;break

}}

24.执行下列程序,输入为3的数出结果是()。

#include"stdio.h”

main()

{

intk;

scanf("%d”,&k);

switch(k)

{case1:printf("%d\n”,k++);

case2:printf(,,%d\nn,k++);

case3:printf(n%d\nn,k++);

case4:pnntf(,,%d\nn,k++);

break;

default:printf("Full!\n");

)

)

A.3B.4C.3D.4

54

25.假定等级和分数有以下对应关系:

分85

等级:A00

分60

等级:-84

B分60

等级:C

对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。

A.switch(grade)

{case'A':printf(M85——100\nM);

case'B':printf(n60-----84\nn);

case'C':printf(M<60\nM);

default:p「intf("gradeiserror!\nM);

•JZ.

}

B.switch(grade)

{case'A':printf(n85——100\nn);

break;

case'B':printf(n60——84\n");

case'。:printf(M<60\nM);

default:printf(ngradeiserror!\nn);

}

C.switch(grade)

{caseW:printf(M85——100\nM);

break;

case'B':printf(H60-----84\n”);

break;

caseprintf("<60\n");

default:printf(ngradeiserror!\nn);

)

D.switch(grade)

{case'C':printf(,,<60\nM);

break;

case'B':printf(M60-----84\n”);

break;

default:printf(Hgradeiserror!\nn);

break;

case'A':printf(n85-----100\nn);

}

26.有如下程序,写出该执行结果()。

#include"stdio.h"

main()

{

floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf(n%f\nn,y);

)

A.0.000000B.0.250000C.0.500000D.1.000000

27.以下程序的运行结果是()。

#include"stdio.h”

main()

(

inta=2,b=-1,c=2;

if(a<b)

if(b<0)

c=0;

elseC++;

printf(,,%d\n,,,c);

}

A.0B.1C.2D.3

28.运行以下程序后,如从键盘上输入china#,则输出为()。

^include"stdio.h"

main()

(

intv1=0,v2=0;

charch;

while((ch=getchar())!='#')

switch(ch)

{case匕':

case'h':

default:v1++;

case'o':v2++;

)

printf("%d,%d\n”,v1,v2);

}

A.2,0B.5,0C.5,5D.2,5

29.有以下程序,若输入为字符s,则程序运行结果为()。

^include“stdio.h"

main()

(

charch;

ch=getchar();

switch(ch)

{case匕,:printf(na=%c\nM,ch);

default:printf(nend!\nM);

case'b':printf("b=%c\n”,ch);

case'c':printf(,,c=%c\n,,,ch);

)

}

A.end!B.end!C.有语法错误D.a=s

b=send!

c=s

30.有以下程序,程序运行后的输出结果是()。

#include"stdio.h”

main()

(

inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

}

)

printf(,,%d\n,,,m);

}

A.1B.2C.3D.4

•JZ.

2填空题

1.若从键盘输入58,则输出结果是_______。

^include"stdio.h"

main()

(

inta;

scanf("%d”,&a);

if(a>50)printf(n%dM,a);

if(a>40)printf(n%dn,a);

if(a>30)printf(,,%d,,,a);

}

2.设intx=9,y=8;表达式x==y+1的结果是。

3.定义intx,y;执行y=(x=1,++x,x+2);后,y的值是_______

4.定义intx=10,y,z;执行y=z=x;x=y==z;后,x的结果是一

5.设inta=1,b=2,c,d,e;执行

c=(-a++)+(++b);

d=(b—)+(++a)-a;

e=(a/(++b))-(a/(-a));

请问a,b,c,d,e的结果是:。

6.设inta=2,b=3,c,d,e,f;执行

c=(a++>=-b);

d=(a==++b);

e=(a-!=b);

f=(++a>b--);

请问a,b,c,d,e,f的结果是:。

7.以下程序的运行结果是。

^include"stdio.h"

main()

(

inta,b,c,s,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);

}

8.以下程序的运行结果是o

#include"stdio.h"

main()

inta,b,c,d,e;

•JZ.

a=c=1;

b=20;

d=100;

if(!a)d=d++;

elseif(!b)

if(d)d=-d;

elsed=d-;

printf(,,%d\n\nn,d);

)

9.以下程序的运行结果是.

#include“stdio.h"

main()

(

inta,b=250,c;

if((c=b)<0)a=4;

elseif(b=0)a=5;

elsea=6;

printf(M\t%d\t%d\nM,a,c);

if(c=(b==0))

a=5.

,,M

printf(\t%d\t%d\n,a,c);

if(a=c=b)a=4;

printf(n\t%d\t%d\n°,a,c);

}

10.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在[]内填空。

Xy

2<x<=10x(x+2)

-1<x<=21/x

x<=-1x-1

#include“stdio.h''

main()

(

intx,y;

scanf(n%dn,&x);

if([1])y=x*(x+2);

elseif([2])y=1/x;

elseif(x<=-1)y=x-1;

else[3];

if(y!=-1)printf("%d”,y);

elseprintf(nerrorn);

)

11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。请在【】内填入正确内容。

include"stdio.h"

#include"math.h”

main()

(

floata,b,c,t,disc,w,term1,term2;

printf(nentera,b,c:n);

scanf(%f%f%f”,&a,&b,&c);

•JZ.

if([11)

if([2])printf("noanswerduetoinputerror\nn);

elseprintf(Mthesinglerootis-c/b);

else

{disc=b*b-4*a*c;

w=2*a;

term1="b/w;

t=abs(disc);

term2=sqrt(t)/w;

if([3])

printf(nplexroot\nrealpart=%fimagpart=%f\n",term1,term2);

else

printf(Mrealroots\nrootl=%froot2=%f\nn,terml+term2,term1-term2);

)

}

12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三

角形的类型。请在【】内填入正确内容。

#inclu

温馨提示

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

评论

0/150

提交评论