上C语言程序设计A卷+答案.docx

上传人:b****5 文档编号:3432561 上传时间:2022-11-23 格式:DOCX 页数:14 大小:23.64KB
下载 相关 举报
上C语言程序设计A卷+答案.docx_第1页
第1页 / 共14页
上C语言程序设计A卷+答案.docx_第2页
第2页 / 共14页
上C语言程序设计A卷+答案.docx_第3页
第3页 / 共14页
上C语言程序设计A卷+答案.docx_第4页
第4页 / 共14页
上C语言程序设计A卷+答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

上C语言程序设计A卷+答案.docx

《上C语言程序设计A卷+答案.docx》由会员分享,可在线阅读,更多相关《上C语言程序设计A卷+答案.docx(14页珍藏版)》请在冰豆网上搜索。

上C语言程序设计A卷+答案.docx

上C语言程序设计A卷+答案

中国地质大学(武汉)学生课程考核出题专用纸教务处制

考核课程名称:

C语言程序设计学时:

56

考核方式:

笔试开卷、笔试闭卷、口试、其它

卷面页数:

共10页考试时间:

_________

注意:

所有答案全部做在答题纸上,做在试卷上无效!

考核内容:

一、单项选择(每题2分,共30分)

1.以下合法的字符型常量是________。

A)‘\x13’B)‘\081’C)‘65’D)“\n”

2.以下能正确定义且赋初值的语句是________。

A)intn1=n2=10;B)charc=32;C)floatf=f+1.1D)doublex=12.3e2.5

3.以下选项中值为1的表达式是________。

A)1-‘0’B)1-‘\0’C)‘1’-0D)‘\0’-‘0’

4.设有定义intk=1,m=2;floatf=7;则以下选项错误的表达式是________。

A)k=k>=kB)–k++C)k%int(f)D)k>=f>=m

5.以下选项中,当x为大于1的奇数时,值为0的表达式________。

A)x%2==1B)x/2C)x%2!

=0D)x%2==0

6.对以下求数组a中所有偶数之和的各程序段中,不正确的是________。

A)inta[5]={1,3,6,7,8},s=0,*p=a;

for(p=a;p

B)intj,a[5]={1,3,6,7,8},s=0,*p=a;

for(j=0;j<5;j++)if(*p%2==0)s+=*p++;

C)intj,a[5]={1,3,6,7,8},s=0,*p=a;

for(j=0;j<5;j++)if(*(p+j)/2*2==*(p+j))s+=*(p+j);

D)intj,a[5]={1,3,6,7,8},s=0,*p=a;

for(j=0;j<5;j++)if(*p%2==0)s+=*p++;

elsep++;

7.不能正确计算代数式sin2(1/2)/3值的C语言表达式是________。

其中pow(x,y)是求x的y次方函数。

A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3

C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)

试卷类别

[A]

[B]

使用班级

全校统考

 

使用学期

2011年春

 

命题人签字

 

审题人签字

_________

 

审定人签字

____________

8.有以下函数

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s-1);

}

该函数的功能是________。

A)比较两个字符串的大小B)计算s所指字符串占用内存字节的个数

C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中

9.若有说明语句:

double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是__。

A)*p=&a;scanf(“%lf”,p);B)*p=&a;scanf(“%f”,p);

C)p=&a;scanf(“%lf”,*p);D)p=&a;scanf(“%lf”,p);

10.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是__。

A)if(x++);B)if(x>y&&y!

=0);

C)if(x>y)x--elsey++;D)if(y<0){;}elsex++;

11.下列语句组中,正确的是________。

A)char*s;s=“Olympic”;B)chars[7];s=“Olympic”;

C)char*s;s={“Olympic”};D)chars[7];s={“Olympic”};

12.以下关于return语句的叙述中正确的是________。

A)一个自定义函数中必须有一条return语句

B)一个自定义函数中可以根据不同情况设置多条return语句

C)定义成void类型的函数中可以有带返回值的return语句

D)没有return语句的自定义函数在执行结束时不能返同到调用处

13.以下结构体变量的操作中,不能正确执行的语句是________。

struct

{intnum;

charname[20];

floatscore;

}stua,stub;

A)stua=stub;B)stua.num=stub.num;

C)stua.name=stub.name;D)stua.score=stub.num;

14.有以下程序段

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

b=p[5];

b中的值是________。

A)5B)6C)8D)9

 

15.以下函数是计算多项式________的值。

doublef(intn)

{doublei,t=1,s=t;

for(i=2;i<=n;i++){

t=t*(2*i-2)*(2*i-1);

s+=t;

}

returns;

}

A)2!

+4!

+6!

……B)2+4+6……C)1+3+5……D)1!

+3!

+5!

……

二、程序阅读题(每题3分,共30分)

16.有以下程序

#include

voidmain()

{chara=‘a’,b;

printf(“%c,”,++a);

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

}

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

A)a,bB)a,cC)b,bD)b,c

17.有以下程序

#include

voidmain()

{inta=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf(“%d,%d\n”,k,m);

}

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

A)0,0B)0,1C)1,0D)1,1

18.有以下程序

#include

voidmain()

{inta=5,b=4,c=3,d=2;

if(a>b>c)printf(“%d\n”,d);

elseif((c-1>=d)==1)printf(“%d\n”,d+1);

elseprintf(“%d\n”,d+2);

}

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

A)2B)3C)4D)编译时有错,无结果

 

19.有以下程序

#include

voidmain()

{

intk=5,n=0;

while(k>0){

switch(k){

default:

break;

case1:

n+=k;

case2:

case3:

n+=k;

}

k--;

}

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

}

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

A)0B)4C)6D)7

20.有以下程序

#include

#include

structA{inta;charb[10];doublec;};

voidf(structAt);

voidmain()

{

structAa={1001,“ZhangDa”,1098.0};

f(a);

printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);

}

voidf(structAt)

{

t.a=1002;

strcpy(t.b,“ChangRong”);

t.c=1202.0;

}

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

A)1001,ZhangDa,1098.0C)1001,ChangRong,1098.0

B)1002,ChangRong,1202.0D)1002,ZhangDa,1202.0

 

21.有以下程序

#include

#defineSUB(a)(a)-(a)

voidmain()

{

inta=2,b=3,c=5,d;

d=SUB(a+b)*c;

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

}

程序运行后的输山结果是________。

A)0B)10C)-12D)-20

22.有以下程序

#include

structstudent{charname[20];intsex;intscore;};

voidmain()

{FILE*fp;structstudentstu,mamin,femax;

fp=fopen(“myfile.txt”,“r”);

mamin.score=100;

femax.score=0;

while(!

feof(fp))

{

fscanf(fp,“%s%d%d”,stu.name,&stu.sex,&stu.score);

if(!

stu.sex)

if(stu.score>femax.score)femax=stu;

if(stu.sex)

if(stu.score

}

fclose(fp);

printf(“\n%s%d,%s%d”,femax.name,femax.score,mamin.name,mamin.score);

}

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

A)Sun93,Qian92B)Wang72,Zheng63

C)Sun93,Zheng63D)Wang72,Qian92

 

myfile.txt文件的内容

zhao085

Qian192

Sun093

Li078

Zhou175

Wu186

Zheng163

Wang072

 

23.有以下程序

#include

intfun()

{

staticintx=1;

x*=2;

returnx;

}

voidmain()

{

inti,s=1;

for(i=1;i<=2;i++)s+=fun();

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

}

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

A)7B)5C)3D)1

24.有以下程序

#include

intf(intt[],intn);

voidmain()

{

inta[4]={1,2,3,4},s;

s=f(a,4);

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

}

intf(intt[],intn)

{

if(n>0)returnt[n-1]+f(t,n-1);

elsereturn0;

}

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

A)4B)10C)14D)6

 

25.以下程序运行后的输出结果是________。

#include

voidf(int*b,intn,intflag)

{

inti,j,t;

for(i=0;i

for(j=i+1;j

if(flag?

*(b+i)>*(b+j):

*(b+i)<*(b+j))

{

t=*(b+i);*(b+i)=*(b+j);*(b+j)=t;

}

}

voidmain()

{

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

f(&a[2],5,0);

f(a,5,1);

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

printf(“%d,”,a[i]);

printf(“\n”);

}

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

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

三、程序填充题(每空4分,共40分)

●以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。

#include

intisprime(inta)

{

inti;

if(a<2)return0;

if(a==2)return1;

for(i=2;i<=sqrt(a);i++)

if(a%i==0)【26】;

【27】;

}

【26】A)returniB)returnaC)return0D)return1

【27】A)returniB)returnaC)return0D)return1

 

●下面程序的功能是统计子串substr在母串str中出现的次数,请选择填空。

例如母串str=“abcdabcdabc”,字串substr=“bc”,则字串在母串中出现的次数为3.

#include

voidmain()

{

intcount(char*str,char*substr);

charstr[80],substr[80];

gets(str);

gets(substr);

printf(“%d\n”,count(str,substr));

}

intcount(char*str,char*substr)

{inti,j,k,num=0;

for(i=0;【28】;i++)

for(【29】,k=0;substr[k]==str[j];k++,j++)

if(substr[【30】]==’\0’)

{

num++;

break;

}

return(num);

}

【28】A)str[i]==substr[i]B)str[i]!

=‘\0’

C)str[i]==’\0’D)str[i]>substr[j]

【29】A)j=i+1B)j=iC)j=0D)j=1

【30】A)kB)k++C)k+1D)++k

 

●把一个整数序列按奇数在前,偶数在后的顺序重新排列,并要求奇偶两部分分别有序。

#include

voidsort(int*a,intn)

{

int*i,*j,t;

for(i=a;i

for(j=i+1;j

if(*i>*j){

【31】

}

}

}

}

voidmain()

{

inti,t,n1=0;

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

for(i=0;i<10;i++){

if(a[i]%2){

【32】

}

}

sort(【33】

(1));

sort(【33】

(2));

for(i=0;i<10;i++){

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

}

printf("\n");

}

【31】A)t=a[i];a[i]=a[j];a[j]=t;B)a[i]=a[j];a[j]=a[i];

C)t=*i;*i=*j;*j=t;D)t=i;i=j;j=t;

【32】A)t=a[i];a[i]=a[0];a[0]=t;B)t=a[i];a[i]=a[n1++];a[n1]=t;

C)t=a[i];a[i]=a[n1];a[n1++]=t;D)a[n1++]=a[i];

【33】A)

(1)a,10B)

(1)a,n1

(2)a,10-n1

(2)a+n1,10-n1

C)

(1)a,n1D)

(1)a,10-n1

(2)a+n1,n1

(2)a+n1,10

 

●折半查找法的思路是:

先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值,如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。

函数binary_search的作用是应用折半查找法从存有n个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。

请选择填空。

(注:

假设实参数组已经按照从小到大顺序排列)。

intbinary_search(inta[],intn,intm)

{

intlow=0,high=n-1,mid;

while(low<=high)

{

mid=(low+high)/2;

if(m

elseif(m>a[mid])【35】;

elsereturn(mid);

}

return(-1);

}

【34】A)high=mid-1B)low=mid+1

C)high=mid+1D)low=mid-1

【35】A)high=mid-1B)low=mid+1

C)high=mid+1D)low=mid-1

答案

01-05A,B,B,C,D

06-10B,A,C,D,C

11-15A,B,C,D,D

16-20C,C,B,D,A

21-25D,C,A,B,B

26-30C,D,B,B,C

31-35C,C,B,A,B

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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