当前位置:文档之家› c语言试题及答案

c语言试题及答案

c语言试题及答案
c语言试题及答案

单选题

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

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

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

A.sum

B. Average

C. Day_night

D. M.D.JOHN

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

A. n

B. t

C. v

D. b

4.在C语言中,语句和数据定义是用(C )作为结束标记的A句号B .逗号C .分号D .括号

5. 设有如下定义:

int x=10,y=5,z;

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

的输出结果是( C )

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

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

main( ) {char c1= '8',c2= '2';

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

}

精选文库

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

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

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

(A)mai n() {int x;

seanf( “ %d,&x);

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

else prints “%dn ,x --);

A. 7 禾R 5 B . 7 禾R 4 C . 6 禾R 4 8.表达式(int)2.1416 的值时(A )

A. 2

B. 2.1

C. 0

D. 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、若int x=1 ,y=1 ;则表达式(!x||y--)的值是(B )。

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

14、能正确表示逻辑关系:a> 10或a<0的C语言表达式(D )

A a>=10 or 3<=0

B 、3>=0国<=10

C a>=10 && a<=0 D、a>=10||av=0 15、double x , y;表达式x=1, y=x+3/2 的值是(C )。

A 1 B、2 C、2.0 D、2.5

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

A ALT+F5 B、ALT+F9

C CTRL+F5

D CTRL+F9

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

A ALT+F5 B、ALT+F9

C CTRL+F5

D CTRL+F9 18.若有程序段:int i=2,j;

j=i++;

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

该程序段的输出结果是:(D)

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

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

A 12

B 144

C 0

D 132

精选文库

20、若给定条件表达式(M )?(a++):(a--),则其中表达式M 和(D )等价。

A M==0

B M=1

C M!=1

D M!=0

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

A 只能是逻辑表达式

B 只能是关系表达式

C 只能是逻辑表达式或关系表达式

D 可以是任意表达式

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

A int a=b=3;

B int a,b,c=5;

C int a=3,b,c

二a; D float f=3.56;

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

A )个字节。

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

25、设有 int i ;则表达式 i=1,++i,++i||++i,i 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;

则c 的值是(A )。

的值为(C )

精选文库

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

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

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

else if(b<=c) k=1; else if(b>c) k=1;

else k=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、有以下程序

精选文库

mai n() int i=1,j=2,k=3;

if(i++==1 &&(++j==3||k++==3)) prin tf("%d %d %dn ",i,j,k);

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

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

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

A ) ch>=0&&chv=9

B )' O ' <

二chv 二'9' C )ch>=' 0' ||ch<= ' 9' D ) ch>=' O ' &&chv= 9'

36、若执行以下程序时从键盘上输入

9,则输出结果是_B.

A )11

B )10

C )9

D )

main ()

if(n++v1O) prin tf("%d n" else printf("%dn" ,n--);

37、若 w=1, x=2, y=3,z=4;则条件表达式 w>x?w yvz?y : z 的结果是 __B

{ intn ; scanf("%d",

&n);

,n );

精选文库

A) 4 B) 3 C) 2 D) 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.500000 B)6 C) 5.500000 D) 6.000000

40、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车〉,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)

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

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

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

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

41、若有以下程序:

mai n()

{ int k=2,i=2,m;

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

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

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

精选文库

printf(

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

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

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

43以下选项中,与k

二n++完全等价的表达式是(A)

A) k

二n,n 二n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

39、若有说明:int i,j=7, *p=&i;,

则与i=j;等价的语句是B

A)i= *P; B)* P

二* &J; C)i=&j; D)i=* *p;

40、若有以下说明:

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

则数值为6的表达式是C

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

填空题

1.

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

2.

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

空类型。

4 .下面程序的运行结果是 3.600000,3 mai n() {float x; int i;

x=3.6;i=(i nt)x;

42、

精选文库

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

6、main() {char c1,c2,c3;

c2=' c';c1=c2-1;

c3=c2+1;

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

程序的运行结果是:b,99,d

7、main() {int a=5,b=6,c;

c=a;

if(a>b) c=1;

else if(a= =b) c=0;

else c= — 1 ;

printf( “c=%dn ,c);

程序的运行结果是:-1

精选文库

printf(

“x=%df' ,x);

x=1;

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

12.设int a=7,b=9,t; 执行完表达式t=(a>b)?a:b 后,t 的值是9。

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

# in elude vstdio.h> mai n() { int m,k,i ,n=0;

for(m=101;mv=200;m+=2) { if(n

二=0) prin tf(" n");

k=sqrt(m);

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

if(i== k )—

{ printf("%d ",m)

; n++;}

15、main() { int x,y=1,z=10;

if(y!=0) x=5;

if(zvO) if(y>0) x=3;

else x=5;

printf( “x=%dn ,x);

if(z=yvO) x=3;

else if(y==O) x=5;

else x=7;

精选文库printf( “x=%df' ,x);

printf( “z=%dn ,z);

写出程序的运行结果:x=5 x=1 x=7 z=0

16、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小

马驮1担,问大、中、小马各多少匹?

mai n() { int hb,hm,hl, n=0;

for(hb=0;hbv=100;hb+二 3 )_

for(hm=0;hmv=100-hb;hm+二2丄{ hl=100-hb-hm_;

精选文库

prin tf("%d ",a[i]);

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

prin tf("hb=%d,hm=%d,hl=%d n",hb/3,hm/2,2*hl);

prin tf(" n=%dn", n);

17、写出程序运行结果,并简述功能(运行结果5分,功能描述3分,共8分) #i nclude mai n() { int i,t;

int a[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++)

9 7 5 3 1 10 8 6 4 2

功能描述:

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

18、有以下语句段int n1 = 10, n2=20;

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

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

19、有以下程序mai n() { int n=0, m=1,x=2;

if(!n) x-=1;

if(m) x-=2;

if(x) x-=3;

printf( “%dn ,x);

}执行后输出结果是-4_ o

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

mai n() int a,b,c;

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

prin tf("%d %d %d n",a,b,c);

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

出DY DB和ZJ,若不能构成三角形则输出NO mai n() { float a,b,c,a2,b2,c2 sca nf("%f%f%f%, &a,&b,&c); prin tf("%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)pri ntf("DB");

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

if((a2+b2==c2) || (a2+c2==b2) || (b2+c2==a2)) prin tf("ZJ"): printf("n");

else prin tf("NO n");

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

if (a

else if (avc) if (bvd) x=2;

else x=3;

else x=6;

else x=7;

printf( “x=%d ,x);

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

mai n()

{ int x=10,y=20,t=0;

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

printf( “%d,%d n ,x,y);

、程序题

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

xx<1000 0.9x 1000 < XV2000 0.8x 2000 < x<3000 0.7x x. > 3000 y=

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

费用=

30元基数<10小时

每小时3元10?50 每小时2.5元 > 50小时

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

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

等级=

优mark》90 良80< markv 90

中70< markv 80

及格60< markv 70

不及格mark v 60

精选文库第一题答案:

#i nclude vstdio.h>

void mai n()

float y;

int x;

sca nf("%d", &x);

if(xv1000) y=x;

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

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

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

第二题答案:

#i nclude vstdio.h>

void mai n()

float y;

int x;

精选文库sea nf("%d", &x);

if(xv10) y=30;

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

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

if(y>150) y=150;

prin tf("%f",y);

第三题答案:

#i nclude vstdio.h> void mai n() int mark;

sea nf("%d",&mark);

if(mark>=90) printf(" 优

");

精选文库else if(mark>=80) printf(" 良");

else if(mark>=70) printf(" 中");

else if(mark>=60) printf(”

及格");

else printf(" 不及格");

相关主题
文本预览
相关文档 最新文档