C语言期末复习题C语言的强化练习.docx

上传人:b****5 文档编号:7648637 上传时间:2023-01-25 格式:DOCX 页数:27 大小:24.08KB
下载 相关 举报
C语言期末复习题C语言的强化练习.docx_第1页
第1页 / 共27页
C语言期末复习题C语言的强化练习.docx_第2页
第2页 / 共27页
C语言期末复习题C语言的强化练习.docx_第3页
第3页 / 共27页
C语言期末复习题C语言的强化练习.docx_第4页
第4页 / 共27页
C语言期末复习题C语言的强化练习.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言期末复习题C语言的强化练习.docx

《C语言期末复习题C语言的强化练习.docx》由会员分享,可在线阅读,更多相关《C语言期末复习题C语言的强化练习.docx(27页珍藏版)》请在冰豆网上搜索。

C语言期末复习题C语言的强化练习.docx

C语言期末复习题C语言的强化练习

C语言期末复习题

1.构成C语言源程序的基本单位是_D___

A.子程序

B.过程

C.文本

D.函数

2.在一个C程序中,main()函数_B__

A.必须出现在所有函数之前

B.可以在任可地方出现

C.必须出现在所有函数之后

D.以上都不对

3.以下描述正确的是_A___

A.最简单的C源程序可以不包括任何内容。

B.编译程序对C源程序编译时不检查语法。

C.C程序中没有输入输出语句。

D.在C程序中,至少必须有一个main()函数。

4.C语言是一种___结构__化程序设计语言

  结构

5.下面不正确的字符串常量是__A__

A.’AB’

B.”ab’ab”

C.”a”

D.”

“6.下面四个选项中均是合法的整型常量的是:

____A__

A.340,025,-11

B.02,0x,03f

C.-0X2A,985.768,4d2

D.0X15,0X2,-760x

7.设有定义:

inta=10;则表达式a+=a*=a的值是:

___D_

A.10

B.100

C.1000

D.200

8.设有如下定义:

inta=1,b=2,c=3,d=4,x=2,y=2;则表达式(x=a>b)&&(y=c>d)运算后,y的值为____B___

A.1

B.2

C.3

D.4

9.能正确表示逻辑关系“a大于等于10或小于等于0”的C语言表达式是__D__

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=10

D.a>=10||a<=0

10.设m是int型变量,则表达式(m=2*3,m+4),m*3的值是__18____

11.以下程序段执行后z的值是__0__

intx,y,z;

x=1;y=2;z=1.0/y*x

答:

12.以下程序段的输出结果是__b__

main()

{charm;m=’B’+32;printf(“%c\n”,m);

}

则输出的结果是:

_____

13.表达式7/3*(int)3.14/(int)(1.2*(5+2.3))的数据类型为___整型__,表达式的值为_0____

整型

0

14.计算下列表达式的值:

设inta=3,b=4,c=5;floatk=3.6;

(1)

a/b*c=3/4*5=0

(2)a*b%c=3*4%5=2

(3)k/a+2*b=3.6/3+2*4=9.0

(4)(int)(k+6/a*b)=(int)(3.6+6/3*4)=11

(5)sizeof(a)=4

(6)a+=a*=a+b=42

(7)c%b-a/2=0

(8)!

(a*b-12)=1

(9)(a*b-2)==c+3=0

(10)c>b>a=0

15.若有以下语句组,则输出结果是_B__

intx=0;if(x++<0)printf(“%d”,--x);printf(“%d”,x++);

A.-1

B.1

C.-1

-1

D.-10

答:

16.以下程序的输出结果是:

__D

main(){

intx=3,y=0,z=0;

if(x=y+z)printf(“****”);elseprintf(“####”);

}

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

B.输出****

C.通过编译,但不能通过连接

D.输出####

答案

17.以下程序的运行结果是:

__yis1

_Idothis_

main()

{intx=1,y=1;

switch(x)

{

case1:

switch(y)

{

case0:

printf(“yis0.\n”);break;

case1:

printf(yis1.\n”);break;

default:

printf(“yisunknown.\n”);break;

}

case2:

printf(“Idothis.\n”);

}

}

答案:

Idothis

18.C语言中,while与do—while语句的主要区别是__A__

A.do—while的循环体至少无条件执行一次。

B.do-while允许从外部跳到循环体内。

C.while循环体至少无条件执行一次。

D.while的循环控制条件比do-while的严格。

答案:

19.以下说法正确的是__D__

A.C语言中不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出。

C.do-while语句构成的循环,当while后圆括号内的表达式的值为非零时结束循环。

D.do-while语句构成的循环,当while后圆括号内的表达式值为零时结束循环。

答案

20.下面关于for语句的正确描述为:

(D  )

A.for语句只能用于循环次数已经确定的情况

B.for语句是先执行循环体语句,再判断表达式

C.在for语句中,不能用break语句跳出循环体。

D.在for语句的循环体语句中,可以包含多条语句,但必须用大括号括起来。

答案:

21对于for(表达式1;;表达式3)可以理解为__B___

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

22.以下程序执行后,输出“#”号的个数是:

___C__

main()

{inti,j;for(i=1;i<5;i++)

for(j=2;j<=i;j++)printf(“#”);

}

A.0

B.4

C.6

D.7

答案:

23.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为__B__

for(i=0,j=10;i<=j;i++,j--)k=i+j;

A.9

B.10

C.11

D.12

答案

24以下程序输出的结果是:

____0122_

main()

{

inti;

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

switch(i)

{

case1:

printf(“%d”,i);

case2:

printf(“%d”,i);

default:

printf(“%d”,i);

}

}

答案:

25.请填入一个整数,使以下程序段输出10个整数。

for(i=0;i<=__20_;printf(“%d\n”,i+=2));

答案:

26编程序打印所有的水仙花数。

所谓水仙花数是指一个3位数,其各位数字的立方和等于该数。

如:

153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。

#include

main()

{inti,j,k,n;

for(i=100;i<1000;i++)

{

j=i/100;

k=i%100/10;

n=i%100%10;

if(i==j*j*j+k*k*k+n*n*n)

printf(“%d\n”,i);

}

}

27.打印出以下图案:

*

***

*****

*******

#include

main()

{inti,j;

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

{

for(j=1;j<=4-i;j++)printf(““);

for(j=1;j<=2*i-1;j++)printf(“*”);

printf(“\n”);

}

}

28.以下描述正确的是__D__

A.return语句是函数中不可缺少的语句

B.函数中不可以有多条return语句

C.函数中,return后面一定要有表达式。

D.函数返回值一定要通过return语句返回。

答案

29.一个函数返回值的类型取决于__C__

A.定义函数时指定或缺省的函数类型

B.调用该函数时临时指定

C.调用该函数的主调函数的类型

D.return语句中表达式的类型

答案

30.以下叙述正确的是___B_

A.一个源程序中只能有一条文件包含命令。

B.预处理命令都必须以“#”开头

C.预处理命令必须定义在程序的头部。

D.以下是正确的宏定义:

#defineIBM-PC

答案:

B

31.以下程序的输出结果是__D__

#include“stdio.h”

intfun(inta,intb)

{

returna+b;

}

voidmain()

{

intx=2,y=5,z=8,r;

r=fun(fun(x,y),z);

printf(“%d”,r);

}

A.12

B.13

C.14

D.15

32.以下程序的输出结果是__A_

#include

intf(intn)

{if(n>2)

return(f(n-1)+f(n-2));

elsereturn2;}

voidmain()

{printf(“%d\n”,f(3));}

A.4

B.6

C.2

D.8

33.以下程序的输出结果是:

___2510=2__

voidmain()

{

inta,b,c;

a=10;b=25;c=f(a,b);

printf(“%d/%d=%d”,b,a,c);

}

f(intm,intn)

{return(n/m);}

答案:

1)以下符合C语言语法的实型常量是(B)

A)1.2E0.5

B)3.14.159E

C).5E-3

D)E15

2)给出以下定义:

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为(B)

A)

数组X和数组Y等价

B)

数组X的长度大于数组Y的长度

C)

数组x和数组Y的长度相同    

D)

数组X的长度小于数组Y的长度

3)不能把字符串:

Hello!

赋给数组b的语句是(A

A)charb[10]={'H','e','l','l','o','!

'};

B)charb[10];strcpy(b,"Hello!

");

C)charb[10]="Hello!

";

D)charb[10];b="Hello!

";

4)若有以下说明:

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

charc='a',d,g;

则数值为4的表达式是(D

A)a[g-c]

B)a[4]

C)a['d'-'c']

D)a['d'-c]

5)设有定义:

inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(D

scanf(“%d”,pa);

scanf(“%d”,a);

scanf(“%d”,&pa);

scanf(“%d”,*pa);

6)若有以下函数调用语句

fun(a+b,(x,y),fun(n+k,d,(a,b)));

在此函数调用语句中实参的个数是(A)

A)3

B)4

C)5

D)6

7)有以下程序

voidfun(inta,intb,intc)

{a=456;b=567;c=678;}

main()

{

intx=10,y=20,z=30;

fun(x,y,z);

printf("%d,%d.%d",x,y,z);

}

输出结果是(B

A)30,20,10

B)10,20,30

C)456,567,678

D)678,567,456

8)定义如下变题和数组:

inti;

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

则下面语句的输出结果是:

(B

for(i=0;i<3;i++)printf("%d",*x[2-i]);

A)159

B)741

C)357

D)369

9)以下程序运行后,输出结果是(A)

intd=1;

fun(intp)

{

intd=5;

d+=p++;

printf("%d",d);

}

main()

{

inta=3;

fun(a);

d+=a++;

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

}

A)84

B)99

C)95

D)44

10)下面程序的输出是(B)

A)3

B)4

C)6

D)9

fun3(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun3(k);

n=fun3(m);

printf("%d\n",n);}

11)当调用函数时,实参是一个数组名,则向函数传送的是(C)

A)数组的长度

B)数组每一个元素的地址

C)数组的首地址

D)数组每个元素中的值

12)以下程序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=i+1;j

if(a

}

main()

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

sort(&aa[3],5);

for(i=0;i<10;i++)printf("%d,",aa);

printf("\n");

}

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

A)1,2,3,4,5,6,7,8,9,10,

B)1,2,3,8,7,6,5,4,9,10,

C)10,9,8,7,6,5,4,3,2,1,

D)1,2,10,9,8,7,6,5,4,3,

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

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);

}

A)4

B)3

C)2

D)1

14)有程序段如下:

voidreverse(inta[],intn)

{inti,t;

for(i=0;i

{t=a;a=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b;

printf("%d\n",s);

}

程序运行后的输出结果是____A__。

A)22

B)10

C)34

D)30

15)有以下程序

main()

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

inti,s=0;

for(i=0;i<4;i++)s+=aa[1];

printf("%d\n",s);

}

程序运行后的输出结果是____D__。

A)11

B)19

C)13

D)20

16)有以下程序

main()

{inti,a[10],s=0;

for(i=1;i<10;i++)a=i;

for(i=1;i<10;i+=2)s+=a+1;

printf(“%d\n”,s);

}

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

A)自然数1~9的累加和    

B)自然数1~10的累加和

C)自然数1~9中的奇数之和

D)自然数1~10中的偶数之和

17)有以下程序

intf(intb[][4])

{inti,j,s=0;

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

{i=j;

if(i>2)i=3-j;

s+=b[j];

}

returns;

}

main()

{inta[4][4]={{1,2,3,4},{0,2,4,5},

{3,6,9,12},{3,2,1,0}};

printf(“%d\n”,f(a));

}执行后的输出结果是(B)

A)12

B)11

C)18

D)16

18)以下程序的输出结果是(A)

#include

#include

main()

{

charstr[12]={'s','t','r','i','n','g'};

printf("%d\n",strlen(str));

}

A)6

B)7

C)11

D)12

19)有以下定义

#include

chara[10],*b=a;

不能给数组a输入字符串的语句是B

A)gets(A)

B)gets(a[0])

C)gets(&a[0])

D)gets(B)

20)语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(C)

A)a\bre\'hi\'y\\\bou

B)a\bre\'hi\'y\bou

C)re'hi'you

D)abre'hi'y\bou

21)下面程序的功能是输出以下形式的金字塔图案:

*

***

*****

*******

main()

{inti,j;

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

{

for(j=1;j<=4-i;j++)printf(““);

for(j=1;j<=_______;j++)printf(“*”);

printf(“\n”);

}

}

在下划线处应填入的是(B)

A)i

B)2*i-1

C)2*i+1

D)i+2

22)有以下程序

main()

{

chark;

int

I;

for(i=1;i<3;i++)

{

scanf(“%c”,&k);

switch(k)

{case‘0’:

printf(“another\n”);

case‘1’:

printf(“number\n”);

}

}}

程序运行时,从键盘输入:

01<回车>,程序执行后的输出结果是(A

A)anotherB)anotherC)anotherD)number

number

number

number

number

another

number

23)若程序中定义了以下函数

doublemyadd(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)

A)doublemyadd(doublea,b);

B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);

D)doublemyadd(doublex,doubley);

24)下面的程序(D)

main()

{intx=3,y=0,z=0;

chara[]="****",b[]="####";

if(x=y+z)printf("%s",a);

else

printf("%s",b);}

A)有语法错误不能通过编译

B)输出****。

C)可以通过编译,但是不能通过连接,因而不能运行。

  

D)输出####。

25)有以下程序(提示:

程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)

#include

main()

{FILE*fp;

inti,a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

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

fwrite(&a,sizeof(int),1,fp);

fclose(fp);

fp=fopen("data.dat","rb");

fseek(fp,-2L*sizeof(int).SEEK_END;

fread(&b,sizeof(int),1,fp);

/*从文件中读取sizeof(int)字节的数据到变量b中*/

fclose(fp);

printf("%d\n",B);

}

执行后输出结果是(C)

A)2

B)1

C)4

D)3

26)请读程序:

#include

inta[]={2,4,6,8};

main()

{inti;

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

printf("%d\n",a[2]);

}

上面程序的输出结果是(A)

A)6

B)8

C)4

D)2

27)有以下程序

charfun(charx,chary)

{if(x

returny;

}

main()

{inta=’9’,b=’8’,c=’7’;

printf(“%c\n”,fun(fun(a,b),fun(b,c)));

}程序的执行结果是(D)

A)函数调用出错

B)8

C)9

D)7

28)有以下程序

strucSTU

{charname[10];

intnum;

};

voidf1(structSTUC)

{structSTU

b={“LiSiGuo”,2042};

c=b;

}

voidf2(structSTU*C)

{structSTU

b={“SunDan”,2044};

*c=b;

}

main()

{struct

STUa={“YangSan”,2041},b={“WangYin”,2043};

f1(A);f2(&B);

printf(“%d%d\n”,a.num,b.num);

}

执行后的输出结果是C

A)20412044

B)20412043

C)20422044

D)20422043

29)有以下程序

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{inta[2]={3,5},b[2]={3,5};

swap1(a);swap2(b[0],b[1]);

printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]);

}

其输出结果是(A)

A)5353

B)5335

C)3535

D)3553

30)以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。

#include

voi

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

当前位置:首页 > PPT模板 > 动物植物

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

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