c语言试题及答案.docx

上传人:b****8 文档编号:8869950 上传时间:2023-02-02 格式:DOCX 页数:12 大小:19.40KB
下载 相关 举报
c语言试题及答案.docx_第1页
第1页 / 共12页
c语言试题及答案.docx_第2页
第2页 / 共12页
c语言试题及答案.docx_第3页
第3页 / 共12页
c语言试题及答案.docx_第4页
第4页 / 共12页
c语言试题及答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

c语言试题及答案.docx

《c语言试题及答案.docx》由会员分享,可在线阅读,更多相关《c语言试题及答案.docx(12页珍藏版)》请在冰豆网上搜索。

c语言试题及答案.docx

c语言试题及答案

一、单选题

1.在C语言中,下列类型属于构造类型的是(D)

A.整型B.字符型C.实型D.数组类型

2.下列字符串不是标识符的是(D)

A.sumB.AverageC.Day_nightD.M.D.JOHN

3.在C语言中,回车换行符是(A)

A.nB.tC.vD.b

4.在C语言中,语句和数据定义是用(C)作为结束标记的

A.句号B.逗号C.分号D.括号

5.设有如下定义:

intx=10,y=5,z;

则语句printf(“%dn”,z=(x+=y,x/y));

的输出结果是(C)

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

6.10.以下程序的输出结果是(B)

main()

{charc1=’8’,c2=’2’;

printf(“%c,%c,%d,%dn”,c1,c2,c1-c2,c1+c2);

}

A.因输出格式不合法,输出出错信息

B.8,2,6,106C.8,2,6,10D.8,2,5,9

7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(A)

main()

{intx;

scanf(“%d”,&x);

if(x++>5)printf(“%dn”,x);

elseprintf(“%dn”,x--);

}

A.7和5B.7和4C.6和4

8.表达式(int)2.1416的值时(A)

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

9.下列运算符优先级最高的是(B)

A.>B.+C.&&D.!

=

10.C语言容许函数值类型缺省定义,此时该函数值隐含的类型时(B)

A.float型B.Int型C.Long型D.Double型

11、C程序的基本构成单位是(C)

A、子程序B、过程C、函数D、文件

12、C语言中要求操作数都为整型数据的算术符是(C)

A、/B、!

C、%D、==

13、若intx=1,y=1;则表达式(!

x||y--)的值是(B)。

A、0B、1C、2D、-1

14、能正确表示逻辑关系:

a≥10或a≤0的C语言表达式(D)

A、a>=10ora<=0B、a>=0|a<=10

C、a>=10&&a<=0D、a>=10||a<=0

15、doublex,y;表达式x=1,y=x+3/2的值是(C)。

A、1B、2C、2.0D、2.5

16、运行C源程序的命令是(D)

A、ALT+F5B、ALT+F9

C、CTRL+F5D、CTRL+F9

17、运行完C程序后,查看C程序运行结果的命令是(A)

A、ALT+F5B、ALT+F9

C、CTRL+F5D、CTRL+F9

18.若有程序段:

inti=2,j;

j=i++;

printf(“%d,%d”,++i,j);

该程序段的输出结果是:

(D)

A、3,2B、4,3C、3,3D、4,2

19设inta=12;表达式a+=a-=a*=a的值是(C )。

A12B144C0D132

20、若给定条件表达式(M)?

(a++):

(a--),则其中表达式M和(D)等价。

AM==0BM=1CM!

=1DM!

=0

21、在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为(D)。

A只能是逻辑表达式B只能是关系表达式

C只能是逻辑表达式或关系表达式D可以是任意表达式

22、下列选项中,(A)给变量赋初值是错误的。

Ainta=b=3;Binta,b,c=5;Cinta=3,b,c=a;Dfloatf=3.56;

23、在C语言中,一个字符变量在内存中占用( A)个字节。

A1B2C3D4

24、inta=12,b=13,c;c=(a

a:

b;则c的值是( A)。

A12B13C25D1

25、设有inti;则表达式i=1,++i,++i||++i,i的值为(C)

A.1

B.2

C.3

D.4

30以下程序段中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是(A)

A)if((a>b)&&(b>c))k=1;

B)if((a>b)||(b>c))k=1

elsek=0;

C)if(a<=b)k=0;

D)if(a>b)k=1;

elseif(b<=c)k=1;elseif(b>c)k=1;

elsek=0;

31、算法具有五个特性,以下选项中不属于算法特性的是(B)

(A)有穷性(B)简洁性(C)可行性(D)确定性

32以下选项中可作为C语言合法常量的是(A)

(A)-80.(B)-080(C)-8e1.0(D)-80.0e

33、以下叙述中正确的是(C)

(A)用C语言实现的算法必须要有输入和输出操作

(B)用C语言实现的算法可以没有输出但必须要有输入

(C)用C程序实现的算法可以没有输入但必须要有输出

(D)用C程序实现的算法可以既没有输入也没有输出

33、以下选项中,不能作为合法常量的是(B)

(A)1.234e04(B)1.234e0.4(C)1.234e+4(D)1.234e0

34、有以下程序

main()

{

inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d%d%dn",i,j,k);

}

程序运行后的输出结果是(D)

(A)123(B)234(C)223(D)233

35、判断变量ch中的字符是否为数字字符,正确表达式是____D___。

A)ch>=0&&ch<=9B)’0’<=ch<=’9’C)ch>=’0’||ch<=’9’D)ch>=’0’&&ch<=’9’

36、若执行以下程序时从键盘上输入9,则输出结果是__B_____

A)11 B)10C)9D)8

main()

{intn;scanf("%d",&n);

if(n++<10)printf("%dn",n);

elseprintf("%dn",n--);

}

37、若w=1,x=2,y=3,z=4;则条件表达式w>x?

w:

y

y:

z的结果是__B___

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

38、以下非法的赋值语句是(C)

A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;

39、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)

A)6.500000B)6C)5.500000D)6.000000

40、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)

A)scanf(“---”,&i,&j,&k);

B)scanf(“%d%d%d”,&i,&j,&k);

C)scanf(“%d,%d,%d”,&i,&j,&k);

D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

41、若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);printf(“%d,%dn”,m,i);

}

执行后的输出结果是(C)

A)8,6B)8,3C)6,4D)7,4

42、已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是(D)

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

43以下选项中,与k=n++完全等价的表达式是(A)

A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1

39、若有说明:

inti,j=7,*p=&i;,则与i=j;等价的语句是B

A)i=*P;B)*P=*&J;C)i=&j;D)i=**p;

40、若有以下说明:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的表达式是C

A)*p+6B)*(p+6)C)*p+=5D)p+5

二、填空题

1.C语言是通过库函数来进行输入和输出的。

2.C语言的数据类型有四大类,他们是基本类型、构造类型、指针类型和

空类型。

4.下面程序的运行结果是3.600000,3

main()

{floatx;inti;

x=3.6;i=(int)x;

printf(“x=%f,i=%d”,x,i);

}

5.数组名定义规则和变量名相同,遵守标识符命名规则。

6、main()

{charc1,c2,c3;

c2=’c’;

c1=c2-1;

c3=c2+1;

printf(“%c,%d,%cn”,c1,c2,c3);

}

程序的运行结果是:

b,99,d

7、main()

{inta=5,b=6,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

printf(“c=%dn”,c);

}

程序的运行结果是:

-1

11.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为0。

12.设inta=7,b=9,t;执行完表达式t=(a>b)?

a:

b后,t的值是9。

14.求100~200间的全部素数。

#include

main()

{intm,k,i,n=0;

for(m=101;m<=200;m+=2)

{if(n==0)printf("n");

k=sqrt(m);

for(i=2;i<=k;i++)if(m%i==0)break;

if(i==k)

{printf("%d",m);n++;}

}

}

15、main()

{intx,y=1,z=10;

if(y!

=0)x=5;

printf(“x=%dt”,x);

x=1;

if(z<0)

if(y>0)x=3;

elsex=5;

printf(“x=%dn”,x);

if(z=y<0)x=3;

elseif(y==0)x=5;

elsex=7;

printf(“x=%dt”,x);

printf(“z=%dn”,z);

}

写出程序的运行结果:

x=5x=1

x=7z=0

16、百马百担问题:

有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?

main()

{inthb,hm,hl,n=0;

for(hb=0;hb<=100;hb+=3)

for(hm=0;hm<=100-hb;hm+=2)

{hl=100-hb-hm;

if(hb/3+hm/2+2*hl==100)

{n++;

printf("hb=%d,hm=%d,hl=%dn",hb/3,hm/2,2*hl);

}

}

printf("n=%dn",n);

}

17、写出程序运行结果,并简述功能(运行结果5分,功能描述3分,共8分)

#include

main()

{inti,t;

inta[10]={2,4,6,8,10,1,3,5,7,9};

for(i=0;i<=4;i++)

{

t=a[i];a[i]=a[9-i];a[9-i]=t;

}

for(i=0;i<=9;i++)

printf("%d",a[i]);

}

运行结果:

97531108642

功能描述:

将整型数组a以逆序形式显示出来

18、有以下语句段

intn1=10,n2=20;

printf(“n1=%dnn2=%d”,n1,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

19、有以下程序

main()

{intn=0,m=1,x=2;

if(!

n)x-=1;

if(m)x-=2;

if(x)x-=3;

printf(“%dn”,x);

}执行后输出结果是-4。

21、.以下程序运行后的输出结果是____

main()

{

inta,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1);

printf("%d%d%dn",a,b,c);

}

答案:

10200

22、任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。

main()

{floata,b,c,a2,b2,c2

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

printf("%5.1f,%5.1f,%5.1f",a,b,c);

if(a+b>c&&b+c>a&&a+c>b)

{

if(a==b||b==c||a==c)printf("DY");

if(a==b&&b==c)printf("DB");

a2=a*a;b2=b*b;c2=c*c;

if((a2+b2==c2)||(a2+c2==b2)||(b2+c2==a2))printf("ZJ");

printf("n");

}

elseprintf("NOn");

}

23、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是___x=2______

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

printf(“x=%d”,x);

24、以下程序运行后的输出结果是20,0。

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printf(“%d,%dn”,x,y);

}

三、程序题

1、在购买某物品时,若所花的钱x在下述范围内,所付钱y按对应折扣支付:

xx<1000

0.9x1000≤x<2000

0.8x2000≤x<3000

0.7xx.≥3000

y=

2、编一程序根据上网时间计算上网费用,计算方法如下:

费用=

30元基数<10小时

每小时3元10~50

每小时2.5元≥50小时

同时为了鼓励多上网,每月收费最多不超过150元。

3、已知输入某课程的百分制成绩mark,要求显示对应五级制的评定,评定条件如下:

等级=

优mark≥90

良80≤mark<90

中70≤mark<80

及格60≤mark<70

不及格mark<60

第一题答案:

#include

voidmain()

{

floaty;

intx;

scanf("%d",&x);

if(x<1000)y=x;

if(x>=1000&&x<2000)y=0.9*x;

if(x>=2000&&x<3000)y=0.8*x;

if(x>=3000)y=0.7*x;

printf("%f",y);

}

第二题答案:

#include

voidmain()

{

floaty;

intx;

scanf("%d",&x);

if(x<10)y=30;

if(x>=10&&x<50)y=3*x;

if(x>=50)y=2.5*x;

if(y>150)y=150;

printf("%f",y);

}

第三题答案:

#include

voidmain()

{

intmark;

scanf("%d",&mark);

if(mark>=90)printf("优");

elseif(mark>=80)printf("良");

elseif(mark>=70)printf("中");

elseif(mark>=60)printf("及格");

elseprintf("不及格");

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1