20学年第二学期c语言期末考题及解答 4Word格式.docx

上传人:b****4 文档编号:8135489 上传时间:2023-05-10 格式:DOCX 页数:15 大小:20.11KB
下载 相关 举报
20学年第二学期c语言期末考题及解答 4Word格式.docx_第1页
第1页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第2页
第2页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第3页
第3页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第4页
第4页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第5页
第5页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第6页
第6页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第7页
第7页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第8页
第8页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第9页
第9页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第10页
第10页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第11页
第11页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第12页
第12页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第13页
第13页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第14页
第14页 / 共15页
20学年第二学期c语言期末考题及解答 4Word格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

20学年第二学期c语言期末考题及解答 4Word格式.docx

《20学年第二学期c语言期末考题及解答 4Word格式.docx》由会员分享,可在线阅读,更多相关《20学年第二学期c语言期末考题及解答 4Word格式.docx(15页珍藏版)》请在冰点文库上搜索。

20学年第二学期c语言期末考题及解答 4Word格式.docx

22<

33<

B)10.0,22.0,33.0<

C)10.0<

22.033.0<

D)1022<

5、main()

{inta=0,b=0,c=0,d=0;

if(a=1)b=1;

c=2;

elsed=3;

%d,%d,%d,%d\n"

a,b,c,d);

程序输出是____

A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错

6、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假的表达式是______。

A)x>

=1&

&

x<

=10&

x>

=200&

=210

B)x>

=1||x<

=10||x>

=200||x<

C)x>

D)x>

7、若w=1,x=2,y=3,z=4,则条件表达式w<

x?

w:

y<

z?

y:

z的值是______。

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

8、对字符数组s赋值,不合法的是______。

A)chars[]="

Beijing"

B)chars[20]={"

beijing"

};

C)chars[20];

s="

D)chars[20]={'

B'

'

e'

i'

j'

n'

g'

9、若有语句int*point,a=4;

和point=&

a;

下面均代表地址的一组选项是______。

A)a,point,*&

aB)&

*a,&

a,*point

C)*&

point,*point,&

aD)&

*point,point

10、以下程序的运行结果是______。

{

intm=5;

if(m++>

5)

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

else;

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

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

11、下面程序的运行结果是______。

#include<

stdio.h>

{inty=10;

do{

y--;

}while(--y);

printf("

y--);

A)-1B)1C)8D)0

12、已有以下数组定义和func函数调用语句,则func函数原形的正确声明为_______。

{inta[3][4];

……

func(a);

A)func(intarray[][6]);

B)func(intarray[3][]);

C)func(intarray[][4]);

D)func(intarray[2][5]);

13、已知:

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

int(*ptr)[3]=a,*p=a[0];

则以下能够正确表示数组元素a[1][2]的表达式是______。

A)*(*(a+1)+2)B)*(*(p+5))C)(*ptr+1)+2D)*((ptr+1)[2])

14、下面程序的输出结果是______。

main()

{inti,j,x=0;

for(i=0;

i<

2;

i++)

{x++;

for(j=0;

j<

-3;

j++)

{

if(j%2)continue;

x++;

x=%d\n"

x);

A)x=4B)x=8C)x=6D)x=12

15、下面程序的输出是____。

{intx=1,y=0,a=0,b=0;

switch(x)

case1:

switch(y)

{case0:

a++;

break;

b++;

case2:

b++;

a=%d,b=%d\n"

a,b);

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

16、已知:

inta[]={1,2,3,4},y,*p=a;

则执行语句

y=(*++p)--;

之后,数组a各元素的值变为_____。

A)0,1,3,4B)1,1,3,4C)1,2,2,4D)1,2,3,3

17、给出以下定义:

charx[]="

abcdefg"

;

chary[]={'

a'

b'

c'

d'

f'

};

则正确的叙述为_____。

A)数组X和数组Y等价B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度

18已知函数的调用形式:

fread(buffer,size,count,fp);

其中buffer代表的是____

A)一个整型变量,代表要读入的数据项总数

B)一个文件指针,指向要读的文件

C)一个指针,指向要读入数据的存放地址

D)一个存储区,存放要读的数据项

19以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是____

{int*p,*q,a,b;

p=&

inputa:

"

);

scanf("

%d"

*p);

}

A)*p表示的是变量p的地址

B)*p表示的是变量a的值,不是变量a的地址

C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

20若有说明:

char*language[]={"

FORTRAN"

"

BASIC"

PASCAL"

JAVA"

C"

则表达式*language[1]>

*language[3]比较的是____

A)字符F和字符PB)字符串BAS1C和字符串JAVA

C)字符B和字符JD)字符串FORTRAN和字符串PASCAL

二、填空题(每空2分,共30分)

1、若有定义:

inte=1,f=4,g=2;

floatm=10.5n=4.0k;

则执行赋值表达式

k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_____。

2、下面程序的输出是_______。

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

if(x=y+z)printf("

**"

elseprintf("

##"

3、假设已有定义doubles,d;

intk,n;

有以下程序段:

s=1.0;

for(k=1;

k<

=n;

k++)

s=s+1.0/(k*(k+1));

%f\n"

s);

填空完成下述程序,使之与上述程序的功能完全相同。

s=0.0;

①______;

k=0;

do{s=s+d;

②______;

d=1.0/(k*(k+1));

}while(③______);

4、下面程序段的运行结果是______。

inti=1;

s=3;

do{s+=i++;

if(s%7==0)continue;

else++i;

}while(s<

15);

i);

5、设定义语句“staticinta[3][4]={{1},{2},{3}};

”则a[1][1]值为①____,a[2][1]的值为②____。

6、下面的函数是一个求阶乘的递归调用函数。

facto(intn)

{if(n==1)①______________;

elsereturn(②_____________);

7、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:

abc123edf456gh,执行程序后输出:

123456。

请填空。

#include<

{chars[80],d[80];

inti,j;

gets(s);

for(i=j=0;

s[i]!

=‘\0’;

i++)

if()

{d[j]=s[i];

j++;

d[j]=‘\0’;

puts(d);

8、下面函数用递归调用的方法,将str中存放的长度为n的字符串反转过来,例如原来是"

ABCDE"

,反序为"

EDCBA"

voidinvent(char*str,intn)

{chart;

t=*str;

*str=*(str+n-1);

*(str+n-1)=t;

if(n>

2)invent(____________,n-2);

9下面程序的功能是显示具有n个元素的数组s中的最大元素。

#defineN20

{inti,a[N];

N;

a[i]);

①______________);

intfmax(ints[],intn)

{intk,p;

for(p=0,k=p;

p<

n;

p++)

if(s[p]>

s[k])②_____________;

return(k);

10下面程序通过指向整型的指针将数组a[3][4]的内容按3行×

4列的格式输出,请给printf()填入适当的参数,使之通过指针p将数组元素按要求输出。

{inti,j;

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

3;

i++)

{for(j=0;

4;

j++)

%4d"

____________);

三、程序编写题(30分,见答题纸)

答题纸

一、选择题(40分)

题号

1

2

3

4

5

6

7

8

9

10

答案

11

12

13

14

15

16

17

18

19

20

二、填空题(30分)

1.

2.

3.①②③

4.

5.①②

6.①②

7.

8.

9.①②

10.

三、程序编写题(共30分)

1、求这样一个三位数,该三位数等于其每位数字的阶乘之和,即:

abc=a!

+b!

+c!

编写函数intfac(intn),它的功能是求出n的阶乘,在主函数中调用该函数完成题目。

(15分)

2、编写函数voidfun(intx,int*pp,int*n)。

它的功能是:

求出整数x的偶数因子,并按照从小到大的顺序放在pp所指的整数数组aa[1000]中,这些因子的个数通过形参n返回。

在主函数中输入x,调用子函数fun,输出x的偶数因子和偶数因子个数。

(假如x为30,则有因子:

1,2,3,5,6,10,15,30,其中有4个数为偶数因子,它们是2,6,10,30)(15分)

输入范例:

pleaseenteranintegernumber:

输出范例:

Thefactorsareasfollowing:

Thenumberoffactorsis:

2010-2011学年第二学期期末

《C语言程序设计》(A卷)标准答案和评分标准

CBCBCCDCDCDCAAABCCBC

1.13.7

2.**

3.①d=1.0②k++③k<

=n

4.7

5.①0②0

6.①return1②n*facto(n-1)

7.s[i]>

=’0’&

s[i]<

=’9’

8.str+1

9.①a[fmax(a,N)]②k=p

10.*(p+4*i+j)

四、编程序题(共30分)(格式举例)

1、

inta[5],i,j,k;

intf(intm);

for(i=100;

1000;

{

for(j=0,k=1000;

k>

=10;

a[j]=(i%k)/(k/10);

k/=10;

}

if(f(a[0])+f(a[1])+f(a[2])==i)

printf("

Thenumberis:

%d"

intf(intm)

inti=0,t=1;

while(++i<

=m)t*=i;

return(t);

或者

intfac(int);

inti,j,k,n=0,x[50];

for(i=1;

10;

{for(j=0;

for(k=1;

{x[n]=i*100+j*10+k;

if(fac(i)+fac(j)+fac(k)==x[n])n++;

elsex[n]=0;

if(n>

0)for(i=0;

n;

i++)printf("

x[i]);

elseprintf("

Thereisnosuchanumber!

\n"

intfac(intn)

{if(n<

1)return1;

elsereturnn*fac(n-1);

2、

voidfun(intx,intpp[],int*n)

inti,j=0;

for(i=2;

=x;

i=i+2)

{if(x%i==0)pp[j++]=i;

*n=j;

intx,aa[1000],n,i;

\npleaseenteranintegernumber:

\n:

x);

fun(x,aa,&

n);

for(i=0;

printf("

Thefactoris:

aa[i]);

Thenumberoffactoris:

n);

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

当前位置:首页 > 法律文书 > 调解书

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

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