20学年第二学期c语言期末考题及答案.docx

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

20学年第二学期c语言期末考题及答案.docx

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

20学年第二学期c语言期末考题及答案.docx

20学年第二学期c语言期末考题及答案

xxx大学

xxxx学年第一学期期末

 

《C程序设计》

考试A卷

班级______________学号_________

 

姓名______________成绩_________

 

班号学号姓名成绩

《C程序设计》期末考试卷

注意事项:

1、此卷为闭卷考试,120分钟完成;

2、笔试成绩为卷面成绩*0.7。

题目:

一、阅读下列程序并回答问题(20分,每题5分)

1、若有以下程序

#include

voidmain()

{

chara[20];

scanf(“%s”,a);

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

}

从键盘上输入19个字符:

oneworldonedream,则输出为D。

A.oneworldonedreamB.oneworldoneC.oneworldD.one

2、有一函数关系如下:

x-1x<0

y=xx=0

x+1x>0

下列程序能够正确表示上述关系的________________C_________。

A.y=x+1;B.y=x-1;

if(x>=0)if(x!

=0)

if(x==0)y=x;if(x>0)y=x+1;

elsey=x-1;elsey=x;

C.if(x<=0)D.y=x;

if(x<0)y=x-1;if(x<=0)

elsey=x;if(x<0)y=x-1;

elsey=x+1;elsey=x+1;

3、请写出以下程序的输出结果:

____a=12,b=9,c=3_____________。

#include

voidswap(int*ptr1,int*ptr2)

{

inti;

i=*ptr1;

*ptr1=*ptr2;

*ptr2=i;

}

voidexchange(int*q1,int*q2,int*q3)

{

if(*q1<*q2)swap(q1,q2);

if(*q1<*q3)swap(q1,q3);

if(*q2<*q3)swap(q2,q3);

}

voidmain()

{

inta,b,c;

a=9,b=3,c=12;

exchange(&a,&b,&c);

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

}

4、若有以下程序

#include

intsum(intk);

voidmain()

{

ints,i;

for(i=1;i<=10;i++)s=sum(i);

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

}

 

intsum(intk)

{

staticintx=0;

x+=k;

return(x);

}

(1)上述程序的功能是什么?

运行结果是什么?

(2)若将sum()函数中的变量说明语句staticintx=0;改为intx=0;,程序的运行结果是又什么?

为什么?

(1).计算1+2+……+10的值

s=55

(2)

s=10

 

二、程序填空题(20分,每题5分)

1、下面程序是整元换零钱问题。

把1元兑换成1角、2角和5角的零钱,打印所有的不同的换法。

#include

voidmain()

{

intx,y,z,n;

_n=0_____;

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

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

for(z=0;z<=2;z++)

if(_x+y*2+z*5==10__________)

{

n++;

printf("换法%2d:

1角%2d张+2角%d张+5角%d张\n",n,x,y,z);

}

}

2、以下函数利用插入排序方法对含有n个元素的数组x[]进行排序。

voidinsert(intx[],intn)

{

inti,j;

inttemp;

for(i=1;i

{

temp=x[i];

j=i-1;

while(j>=0&&temp

{

x[j+1]=x[j];

j--;

}

x[j+1]=temp;

}

}

3、下面程序显示从3起小于100的所有双素数(双素数:

如果p和q都是素数且q=p+2,则p/q称为双素数,例如3/5,5/7都是双素数)。

#include"stdio.h"

intprime(intm);

intmain(intargc,char*argv[])

{

intp,q;

for(p=3;p<100;p+=2)

{

q=p+2;

if(prime(p)&&prime(q))printf("%d/%d\n",p,q);

}

return0;

}

intprime(intm)

{

inti;

for(i=2;i<=m/2;i++)

if(m%i==0)break;

if(i>m/2)return1;

elsereturn0;

}

4、下面的函数strcat()实现将字符串str2连接到字符串str1的功能。

请在程序的空白处填入一条语句或一个表达式。

char*strcat(char*str1,char*str2)//此函数类型为字符指针型,函数名为srrcat

{

char*t=str1;

while(*str1)str1++;

while(*str2)

{

*str1=*str2;

str1++;

str2++;

}

*str1=‘\0’;

return(t);

}

三、编程题(60分)

1、输入一个正整数n(1

10分

a[i][j]=i*n+j+1(0≤i≤n-1,0≤j≤n-1)

例如n=3时:

123147

A=456转置成B=258

789369

#include

voidmain()

{

intn;

printf(“请输入一个正整数\n”);

scanf(“%d”,&n);

inta[6][6],b[6][6],i,j;

for(i=0;i

for(j=0;j

a[i][j]=i*n+j+1;

for(i=0;i

for(j=0;j

b[i][j]=a[j][i];

printf(“得到的方阵为\n”);

for(i=0;i

{

for(j=0;j

printf(“%-5d”,b[i][j]);

printf(“\n”);

}

}

2、请设计函数doubleexp(doublex),利用e

=1+x+x2/2!

+x3/3!

+x4/4!

+…,计算ex的近似值,要求误差小于10-6。

20分

#include

#include

doubleexp(doublex);

voidmain()

{

doublex;

printf(“请输入未知数x的值\n”);

scanf(“%lf”,&x);

printf(“近似值为%lf\n”,exp(x));

}

doubleexp(doublex)

{

inti,t=1;

doublesum=1,y=1;

for(i=1;y>=0.000006;i++)

{

t=t*i;

y=pow(x,i)/t;

sum=sum+y;

}

returnsum;

}

 

3、Fibonacci数列A={1,1,2,3,5,8,…}有如下性质:

30分

a0=a1=1

ai=ai-1+ai-2i>1

对于给定的n,另外有一个由n个元素组成的数列X={x0,x1,…,xn-1},该数列中各元素的值为:

xi=ai/ai+1i=0,1,2,…,n-1,请将X中的元素按由小到大排序,排序用选择法或冒泡法,排序后的数列X输出到文本文件x.txt中,X中的各元素仍以分数形式表示。

例如,当n=5时,排序前的X={1/1,1/2,2/3,3/5,5/8},排序后X={1/2,3/5,5/8,2/3,1/1}。

#include

#include

#definen10

structfenshu

{

intm1;

intm2;

};

voidmain()

{

inti,j,k,a[n+1]={1,1};

for(i=2;i

a[i]=a[i-1]+a[i-2];

floatx[n];

fenshuy[n],temp;

for(i=0;i

{

x[i]=a[i]/a[i+1];

y[i].m1=a[i];

y[i].m2=a[i+1];

}

floatt;

for(i=0;i

{

k=i;

for(j=i+1;j

if(x[j]

k=j;

if(k!

=i)

{t=x[i];x[i]=x[k];x[k]=t;

temp=y[i];y[i]=y[k];y[k]=temp;}

}

FILE*fp;

if((fp=fopen(“x.txt”,”w”))==NULL)

{

printf(“打开文件出错\n”);

exit(0);

}

for(i=0;i

fprintf(fp,”%d/%d,”,y[i].m1,y[i].m2);

fclose(fp);

}

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

当前位置:首页 > 经管营销 > 经济市场

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

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