c语言试题2.docx

上传人:b****4 文档编号:11358641 上传时间:2023-05-31 格式:DOCX 页数:23 大小:19.45KB
下载 相关 举报
c语言试题2.docx_第1页
第1页 / 共23页
c语言试题2.docx_第2页
第2页 / 共23页
c语言试题2.docx_第3页
第3页 / 共23页
c语言试题2.docx_第4页
第4页 / 共23页
c语言试题2.docx_第5页
第5页 / 共23页
c语言试题2.docx_第6页
第6页 / 共23页
c语言试题2.docx_第7页
第7页 / 共23页
c语言试题2.docx_第8页
第8页 / 共23页
c语言试题2.docx_第9页
第9页 / 共23页
c语言试题2.docx_第10页
第10页 / 共23页
c语言试题2.docx_第11页
第11页 / 共23页
c语言试题2.docx_第12页
第12页 / 共23页
c语言试题2.docx_第13页
第13页 / 共23页
c语言试题2.docx_第14页
第14页 / 共23页
c语言试题2.docx_第15页
第15页 / 共23页
c语言试题2.docx_第16页
第16页 / 共23页
c语言试题2.docx_第17页
第17页 / 共23页
c语言试题2.docx_第18页
第18页 / 共23页
c语言试题2.docx_第19页
第19页 / 共23页
c语言试题2.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言试题2.docx

《c语言试题2.docx》由会员分享,可在线阅读,更多相关《c语言试题2.docx(23页珍藏版)》请在冰点文库上搜索。

c语言试题2.docx

c语言试题2

试卷编号:

8093

所属语言:

C语言

试卷方案:

09-10学年第二学期计算机程序设计语言

试卷总分:

100分

共有题型:

4种

 

一、填空共5题(共计20分)

第1题(4.0分)题号:

1539

按内存排列顺序,数组chara[2]中的所有元素是a[1]和【1】.

答案:

=======(答案1)=======

a[0]

 

第2题(4.0分)题号:

641

设x=5>1+2,x的值为【1】.

答案:

=======(答案1)=======

1

 

第3题(4.0分)题号:

1494

函数的定义不可以嵌套,但函数的调用【1】嵌套.

答案:

=======(答案1)=======

可以

 

第4题(4.0分)题号:

1162

设chara,b;若想通过a&&b运算保留a的第1位和第6位的值,则b的二进制数是【1】.

答案:

=======(答案1)=======

10000100

 

第5题(4.0分)题号:

1282

执行下列语句的结果是【1】,a=3;printf("%d,",++a);printf("%d",a++);

答案:

=======(答案1)=======

4,4

 

二、单项选择共15题(共计30分)

第1题(2.0分)题号:

680

在调用函数时,如果实参是简单变量,它与对应形参之间的数据

传递方式是()。

A:

地址传递

B:

单向值传递

C:

由实参传给形参,再由形参传回实参

D:

传递方式由用户指定

 

答案:

B

第2题(2.0分)题号:

635

若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。

A:

2

B:

3

C:

4

D:

无确定值

 

答案:

B

第3题(2.0分)题号:

723

函数调用语句:

fseek(fp,-20L,2);的含义是()。

A:

将文件位置指针移到距离文件头20个字节处

B:

将文件位置指针从当前位置向后移动20个字节

C:

将文件位置指针从文件末尾处退后20个字节

D:

将文件位置指针移到离当前位置20个字节处

 

答案:

C

第4题(2.0分)题号:

515

inti,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数

1,2,3,4,5,6存入a数组的是()。

A:

for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;

B:

for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;

C:

for(i=0;i<6;i++)a[i/3][i%3]=i+1;

D:

for(i=1;i<=6;i++)a[i][i]=i;

 

答案:

D

第5题(2.0分)题号:

103

以下运算符中,优先级最高的运算符是()。

A:

*=

B:

>=

C:

(类型)

D:

+

 

答案:

C

第6题(2.0分)题号:

743

C语言结构体类型变量在程序执行期间()。

A:

所有成员一直驻留在内存中

B:

只有一个成员驻留在内存中

C:

部分成员驻留在内存中

D:

没有成员驻留在内存中

 

答案:

A

第7题(2.0分)题号:

544

char*s1="hello",*s2;s2=s1;则()。

A:

s2指向不确定的内存单元

B:

不能访问"hello"

C:

puts(s1);与puts(s2);结果相同

D:

s1不能再指向其它单元

 

答案:

C

第8题(2.0分)题号:

549

若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为()。

A:

p=&x[i];

B:

p=x;

C:

p=x[i];

D:

p=&(x+i)

 

答案:

A

第9题(2.0分)题号:

146

用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。

longa=0xffffff;

intb;charc;

A:

0ffffff和0x61

B:

-1和98

C:

-1和97

D:

指向同一地址

 

答案:

C

第10题(2.0分)题号:

170

关于return语句,下列正确的说法是()。

A:

不能在主函数中出现且在其他函数中均可出现

B:

必须在每个函数中出现

C:

可以在同一个函数中出现多次

D:

只能在除主函数之外的函数中出现一次

 

答案:

C

第11题(2.0分)题号:

546

若有chara[80],*s=a;不正确的输入语句是()。

A:

scanf("%s",s);

B:

gets(s);

C:

fscanf(stdin,"%c",s);

D:

fgets(s,80,stdin);

 

答案:

C

第12题(2.0分)题号:

136

下列程序的输出结果为()。

main()

{intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf("%f\n",x);

}

A:

27.000000

B:

27.500000

C:

28.000000

D:

28.500000

 

答案:

A

第13题(2.0分)题号:

611

以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);()。

A:

是无限循环

B:

循环次数不定

C:

4次

D:

3次

 

答案:

C

第14题(2.0分)题号:

125

下列程序的输出结果是()。

main()

{inta=7,b=5;

printf("%d\n",b=b/a);

}

A:

0

B:

5

C:

1

D:

不确定值

 

答案:

A

第15题(2.0分)题号:

115

先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。

A:

c='a';

B:

c="a";

C:

c="97";

D:

C='97'

 

答案:

A

三、程序填空共5题(共计30分)

第1题(6.0分)题号:

7

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

【程序填空】

---------------------------------------------------------

功能:

从键盘上输入一个字符串,将该字符串升序排列后输出到

文件test.txt中,然后从该文件读出字符串并显示出来。

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

#include

#include

#include

main()

{

FILE*fp;

chart,str[100],str1[100];intn,i,j;

if((fp=fopen("test.txt","w"))==NULL)

{

printf("can'topenthisfile.\n");

exit(0);

}

printf("inputastring:

\n");gets(str);

/***********SPACE***********/

【?

】;

/***********SPACE***********/

for(i=0;【?

】;i++)

for(j=0;j

/***********SPACE***********/

if(【?

】)

{

t=str[j];

str[j]=str[j+1];

str[j+1]=t;

}

/***********SPACE***********/

【?

】;

fclose(fp);

fp=fopen("test.txt","r");

fgets(str1,100,fp);

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

fclose(fp);

}

答案:

=======(答案1)=======

n=strlen(str)

=========或=========

for(n=0;str[n]!

='\0';n++)

=========或=========

for(n=0;str[n];n++)

=========或=========

for(n=0;str[n]!

=0;n++)

=======(答案2)=======

i

=========或=========

n>i

=========或=========

i<-1+n

=========或=========

i

=========或=========

n-1>i

=========或=========

-1+n>i

=========或=========

i<=n-1

=========或=========

n-1>=i

=========或=========

-1+n>=i

=======(答案3)=======

str[j]>str[j+1]

=========或=========

str[j+1]

=========或=========

str[j+1]

=========或=========

str[j+1]<=str[j]

=======(答案4)=======

fputs(str,fp)

=========或=========

fprintf(fp,"%s\n",str)

=========或=========

fprintf(fp,"%s",str)

 

第2题(6.0分)题号:

472

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

【程序填空】

---------------------------------------------------------

功能:

现有两组有序数组(增序),x[i]、y[j]代表数组x、y的

任一元素,问满足x[i]>y[i]的元素对有多少个?

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

#include

intdominance_count(intf[],intg[],intm,intn)

{

intindex_f,index_g;

intcount;

count=index_f=index_g=0;

while(index_f

if(f[index_f]<=g[index_g])

index_f++;

else

{

index_g++;

/***********SPACE***********/

count+=【?

】;

}

/***********SPACE***********/

【?

】;

}

 

#include

voidmain(void)

{

intx[]={1,6,8};

intnx=sizeof(x)/sizeof(int);

inty[]={4,5,7};

intny=sizeof(y)/sizeof(int);

intdominance_count(int[],int[],int,int),i;

printf("\nDominanceCountoftwoincreasingArrays\n");

printf("\n#Array1Array2");

printf("\n----------------");

for(i=0;i

printf("\n%3d%10d%10d",i,x[i],y[i]);

printf("\n\nThereare%dDominancePairs.",

/***********SPACE***********/

【?

】);

}

答案:

=======(答案1)=======

m-index_f

=========或=========

m-index_f

=======(答案2)=======

returncount

=======(答案3)=======

dominance_count(x,y,nx,ny)

 

第3题(6.0分)题号:

442

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

【程序填空】

---------------------------------------------------------

功能:

将长整型数中每一位上为奇数的数依次取出,构成一个新数

放在t中。

高位仍在高位,低位仍在低位。

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

#include

#include

voidfun(longs,long*t)

{

intd;

longsl=1;

/***********SPACE***********/

【?

】=0;

while(s>0)

{

/***********SPACE***********/

d=【?

】;

if(d%2)

{

/***********SPACE***********/

*t=【?

】+*t;

/***********SPACE***********/

sl【?

】10;

}

s/=10;

}

}

main()

{

longs,t;

printf("\nPleaseenters:

");scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

答案:

=======(答案1)=======

*t

=======(答案2)=======

s%10

=======(答案3)=======

d*sl

=========或=========

sl*d

=======(答案4)=======

*=

=========或=========

=s*

 

第4题(6.0分)题号:

481

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

【程序填空】

---------------------------------------------------------

功能:

一个自然数被8除余1,所得的商被8除也余1,再

将第二次的商被8除后余7,最后得到一个商为a。

又知这

个自然数被17除余4,所得的商被17除余15,最后得到一

个商是a的2倍。

编写程序求这个自然数。

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

#include

main()

{

inti,n,a;

i=0;

while

(1)

{

if(i%8==1)

{

n=i/8;

if(n%8==1)

{

n=n/8;

/***********SPACE***********/

if(n%8==7)【?

】;

}

}

if(i%17==4)

{

n=i/17;

if(n%17==15)n=n/17;

}

if(2*a==n)

{

printf("result=%d\n",i);

/***********SPACE***********/

【?

】;

}

/***********SPACE***********/

【?

】;

}

}

答案:

=======(答案1)=======

a=n/8

=======(答案2)=======

break

=======(答案3)=======

i++

=========或=========

++i

=========或=========

i=i+1

 

第5题(6.0分)题号:

19

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

【程序填空】

---------------------------------------------------------

功能:

是将两个字符串连接为一个字符串,不许使用库函数strcat。

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

#include

#include"string.h"

JOIN(s1,s2)

chars1[80],s2[40];

{

inti,j;

/***********SPACE***********/

【?

】;

/***********SPACE***********/

for(i=0;【?

】'\0';i++)

s1[i+j]=s2[i];

/***********SPACE***********/

s1[i+j]=【?

】;

}

main()

{

charstr1[80],str2[40];

gets(str1);gets(str2);

puts(str1);puts(str2);

/***********SPACE***********/

【?

】;

puts(str1);

}

答案:

=======(答案1)=======

j=strlen(s1)

=========或=========

for(j=0;s1[j]!

='10';j++);

=========或=========

for(j=0;s1[j];j++);

=======(答案2)=======

s2[i]!

=

=========或=========

*(s2+i)!

=

=======(答案3)=======

'\0'

=========或=========

NULL

=========或=========

0

=======(答案4)=======

JOIN(str1,str2)

 

四、程序设计共2题(共计20分)

第1题(10.0分)题号:

383

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

【程序设计】

--------------------------------------------------

功能:

用函数实现字符串的复制,不允许用strcpy()函数。

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

#include

voidwwjt();

voidcopy(charstr1[],charstr2[])

{

/**********Program**********/

/**********End**********/

}

main()

{

voidcopy();

charc1[40],c2[40];

gets(c1);

copy(c1,c2);

puts(c2);

wwjt();

}

 

voidwwjt()

{

FILE*IN,*OUT;

chari[100];

charo[100];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

fscanf(IN,"%s",i);

copy(i,o);

fprintf(OUT,"%s\n",o);

fclose(IN);

fclose(OUT);

}

答案:

----------------------

inti;

for(i=0;str1[i]!

='\0';i++)

str2[i]=str1[i];

str2[i]='\0';

----------------------

第2题(10.0分)题号:

381

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

【程序设计】

--------------------------------------------------

功能:

求一批数中小于平均值的数的个数。

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

#include

voidwwjt();

intaverage_num(inta[],intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

intn,a[100],i,num;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

num=average_num(a,n);

printf("thenumis:

%d\n",num);

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

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

{

fscanf(IN,"%d",&i[n]);

}

o=average_num(i,5);

fprintf(OUT,"%d\n",o);

fclose(IN);

fclose(OUT);

}

答案:

---------

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

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2