c语言期末复习试题2_第1页
c语言期末复习试题2_第2页
c语言期末复习试题2_第3页
c语言期末复习试题2_第4页
c语言期末复习试题2_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

试卷编号:11201

所属语言:c语言

试卷方案:C语言期末考试

试卷总分:100分

共有题型:4种

一、单项选择共30题(共计60分)

第1题(2。分)

设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A).

A:k++

B:k+=1

C:++k

D:k+1

第2题(2.0分)

已知inti=5,执行语句i+=++i后,i的值是(C).

A:10

B:ll

C:12

D:A、B、C都不对

第3题(2.0分)

以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.

//include<stdio.h>

voidmain()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

s=p*r*r:printf("s=%f\n",s);

出错的原因是(D).

A:注释语句书写位置错误

B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法

D:计算圆面积的赋值语句中使用了非法变量

第4题(2.0分)

"\\\"ABC\〃\\〃的长度是(B).

A:ll

B:7

C:5

D:3

第5题(2.0分)

已知intj,i=l;,执行语句j=・i++;后j的值是(C).

A:1

B:2

C:-l

D:-2

第6题(2。分)

有以下程序:

//include<stdio.h>

voidmain()

{ints=0,a=l,n;

scanf("%d",&n);

do{

s+=l;a=a-2;

}while(a!=n);

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

)

若要使程序的输出值为2,则应该从键盘输入给n的值是(B).

A>1

B:-3

C:-5

D:0

第7题(2。分)

执行以下程序后,输出的结臭是(D).

#include<stdio.h>

voidmain()

{inty=10;

do{

y--;

}while(--y);

printf("%d\n",y--

)

A:-l

B:1

C:8

D:0

第8题(2.0分)

以下循环体的执行次数是(匚).

#include<stdio.h>

voidmain()

{inti,j;

for(i=0,j=l;i<=j+l;i+=2,j--)printf("%d\n",i);

)

A:3

B:2

C:1

D:0

第9题(2.0分)

有以下程序段:

intk=0;

while(k=l)k++;

while循环执行的次数是(A).

A:无限次

B:有语法错误,不能执行

C:1次也不执行

D执行1次

第10题(2.0分)

有以下程序

//include<stdio.h>

voidmain()

{intm,n,p;

scanf("m=%dn=%dp=%d',&m,&n,&p);

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

)

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是

(A).

A:m=123n=456p=789

B:m=123n=456p=789

C:m=123,n=456,p=789

D:123456789

第11题(2.0分)

设变量已正确定义以下能正确计算仁n!的程序段是(D)

A:f=0;

for(i=l;i<=n;i++)f*=i;

for(i=l;i<n;i++)f*=i;

C:f=l:

for(i=n;i>l;i++)f*=i;

D:f=l;

for(i=n;i>=2;i--)f*=i;

第12题(2.0分)

在下列程序中,没有构成死循环的程序段是(B).

A:inti=100;

while(l)

{i=i%100+l;

if(i>100)break;}

B:intk=1000;

do

{++k;}while(k>=10000);

C:for(;;);

D:ints=36;while(s);--s;

第13题(2.0分)

有如下程序:

//include<stdio.h>

voidmain()

{intn=9;

while(n>6)

{n--;printf("%d",n);}

)

该程序段的输出结果是(B).

A:987

B:876

C:8765

D:9876

第14题(26分)

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

#include<stdio.h>

voidmain()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

)

A:10192

B:9876

C:10990

D:101091

第15题(2.0分)

有如下程序:

#include<stdio.h>

voidmain()

{intn[5]={0,0,0},i,k=2;

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

{printf("%d\n',,n[k]);}

)

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

A:不确定的值

B:2

C:1

D:0

第16题(2.0分)

下列程序执行后的输出结果是(A).

#include<stdio.h>

voidmain()

{chararr[2][4];

strcpy(arr,"you");strcpy(arr[l],"me");

arr[0][3]='&';

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

)

A:you&me

B:you

C:me

D:err

第17题(2.0分)

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

#include<stdio.h>

voidmain()

{inti,x[3][3]={l,2,3,415,6,7,8.9);

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

)

A:l,5.9.

B:1,4,7,

C:3,5,7,

D:3,6,9.

第18题(2.0分)

以下数组定义中不正确的是(D).

A:inta[2][3];

B:intb[][3]={0,1,2,3};

C:intc[100][100]={0};

D:intd[3][]={{1.2},{1.2,3},{1,2,3,4}};

第19题(2.0分)

以下能正确定义数组并正确赋初值的语句是(D

A:intN=5,b[N][N];

B:inta[l][2]={{l},{3});

C:intc[2][]={{1.2},{3,4}};

D:intd[3][2]={{1.2},{3.4}};

第20题(2.0分)

有以下程序:

inta=4;

intf(intn)

(

intt=0;staticinta=5;

if(n%2){inta=6;t+=a++;}

else{inta=7;t+=a++;}

returnt+a++;

)

main()

(

ints=a,i=0;

for(;i<2;i++)s+=f(i);

printf("d\n",s);

)

程序运行后的输出结果是⑹

A:24

B:28

C:32

D:36

第21题(2.0分)

以下正确的函数定义形式为(A)

A:doublefun(intx,inty)

B:doublefun(intx;y)

C:doublefun(intx;inty)

D:doublefun(intx,y)

第22题(2.0分)

C语言规定,函数返回值的类型是由(D)

A:return语句中的表达式类型所决定的

B:调用该函数时的主调函数类型所决定的

C:调用该函数时系统临时决定的

D:在定义该函数时所指定的函数类型所决定的

第23题(2.0分)

有以下程序:输出结果是()(注:5353)

voidswapl(intc0[],intcl[])

{intt;

t=cO[O];c0[0]=cl[0];cl[0]=t;

)

voidswap2(int*c0,int*cl)

{intt;

t=*cO;*c0=*cl;*cl=t;

)

main()

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

swapl(a,a+1);swap2(&b[0],&b[l]);

printf("%d%d%d%d\n",a;0],a[l],b[0],b[l]);

)

A:3553

B:5335

C:3535

D:5353

第24题(2.0分)

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

amovep(int*p,int(*a)[3],intn)

{inti,j;

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

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

{*P=a[i]Dl;

P++;}

)

main()

{int*p,a[3][3]={{1.3,5},{2,4.6});

p=(int*)malloc(100);

amovep(p,a,3);

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

free(p);

)

A)56

B)25

C)34

D)程序错误

第25题(2.0分)

有以下函数:

fun(char*a,char*b)

{while((*a!='\0')&&(*b!='\0')&&(*a==*b))

{a++;b++;}

return(*a-*b);}

该函数的功能是(D).

A:计算a和b所指字符串的长度之差

B:将b所指字符串复制到a所指字符串中

C:将b所指字符串连接到a所指字符串后面

D:比较a和b所指字符串的大小

第26题(2.0分)

有以下程序:

fun(charp[][10])

{intn=O,i;

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

if(p[i][O]==T)n++;

returnn;

)

main()

,'

{charstr[][10]={"Mon"I"Tue","Wed":Thu","Fri',"Sat","Sun");

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

)

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

A:1

B:2

C:3

D:0

第27题(2.0分)

有以下程序:

main()

{charstrD[10]={"China","Beijing"}*P=str;

printf("%s\n",p+10);

)

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

A:China

B:Beijing

C:ng

D:ing

第28题(2.0分)

有以下程序:

#definef(x)(x*x)

main()

{intil,i2;

il=f(8)/f(4)i2=f(4+4)/f(2+2)

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

}

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

A:64,28

B:4,4

C:4,3

D:64,64

第29题(2。分)

有以下程序:结果是(A)

voidchange(intk[]){k[0]=<[5];}

main()

{intx[10]={l,2,3,4,5,6,7,8,9,10},n=0;

while(n<=4){change(&x[n]);n++;}

for(n=0;n<5;n++)printf("^d",x[n]);

printf("\n");

)

A)678910

B)13579

C)12345

D)62345

A:678910

B13579

C:12345

D:62345

第30题(2.0分)

在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元

的是(C).

A:main()

int*p;

fun(p);—}

intfun(int*p)

{ints;

p=&s;}

B:main()

{int*p;

fun(&p);…}

intfun(int**p)

{ints:

*p=&s;}

C:#include<stdlib.h>

main()

{int*p;

fun(&p);-}

intfun(int**p)

{*p=(int*)malloc⑵;}…

D:#include<stdlib.h>

main()

{int*p;

fun(p);—}

intfun(int*p)

p=(int*)malloc(si2eof(int));}

二、程序填空共1题(共计10分)

第1题(10.0分)

【程序填空】

功能:计算平均成绩并统计90分以上人数。

main()

(

intn,m;floatgrade,average;

/**★*★******2PACE*******^***/

average=n=m=[?]〃此处为:0

while(l)

[?]("%f,,&grade);〃此处为:scanf

if(grade<0)break;

n++;

average+=grade;

if(grade<90)[?];//此处为:break

m++;

if(n)printf("%.2f%d\n",average/n,m);

三、程序改错共1题(共计10分)

第1题(10.0分)

/*-----------------------------------------------------------------------------------------

【程序改错】

功能:首先把b所指字符串中的字符按逆序存放,然后将a所指字

符串中的字符和b所指字符串中的字符,按排列的顺序交叉

合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。

例如:当a所指字符串中的内容为“abcdefg",b所指字符串中的

内容为“1234”时,c所指数组中的内容应该为“a4b3c2dl

efg";而当a所指字符串中的内容为“1234”,b所指字符

串中的内容为“abcdefg”时,c所指数组中的内容应该为

“lg2f3e4dcba”。

-----------------------------------------------------------------------------------------*/

#include<conio.h>

#include<stdio.h>

//include<string.h>

voidfun(char*a,char*b,char*c)

(

•nti,j;

charch;

i=0;

j=strlen(b)-l;

/★★★★★★★★★★FOUND**********/

while(i>j)〃比处>改为<

(

ch=b[i];

bp]=bU];

b[j]=ch;

i++;j--;

)

UN

while(*a&&*b)//此处&&改为||(逻辑或)

(

if(*a)

(

*c=*a;

C++;

D**********/

a+;〃此处a++

)

if(*b)

(

*c=*b;

C++;

b++;

}

)

*c=0;

)

main()

charsl[100],s2[100],t[200];

clrscr();

printf("\nEntersistring:"):

scanf("%s",sl);

printf("\nEnters2string:");

scanf("%s",s2);

fun(si,s2,t);

printf("\nTheresultis:%s\n",t);

)

四、程序设计共1题(共计

温馨提示

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

评论

0/150

提交评论