C语言期末考试题库试题及答案.docx

上传人:b****1 文档编号:12753539 上传时间:2023-04-21 格式:DOCX 页数:77 大小:39.22KB
下载 相关 举报
C语言期末考试题库试题及答案.docx_第1页
第1页 / 共77页
C语言期末考试题库试题及答案.docx_第2页
第2页 / 共77页
C语言期末考试题库试题及答案.docx_第3页
第3页 / 共77页
C语言期末考试题库试题及答案.docx_第4页
第4页 / 共77页
C语言期末考试题库试题及答案.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

C语言期末考试题库试题及答案.docx

《C语言期末考试题库试题及答案.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题库试题及答案.docx(77页珍藏版)》请在冰豆网上搜索。

C语言期末考试题库试题及答案.docx

C语言期末考试题库试题及答案

1【程序填空】

-—-—--—-—————-——--------—--—----————--———-—————---—---—-—

题目:

下面函数为二分法查找key值。

数组中元素已递增排序,

若找到key则返回对应的下标,否则返回—1.

——---——-—--—---————--—--—--—-—--—--—---———-——-——-——-—-—*/

#include〈stdio.h>

fun(inta[],intn,intkey)

{

intlow,high,mid;

low=0;

high=n—1;

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

while(【low〈=high】)

mid=(low+high)/2;

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

if(key〈a[mid])【high=mid—1】;

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

elseif(key〉a[mid])【low=mid+1】;

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

else【return(mid)】;

}

return-1;

voidmain()

{

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

intb,c;

b=4;

c=fun(a,10,b);

if(c==-1)printf("notfound");

elseprintf("position%d\n",c);

/*—---—--—-———————-————--—-—--——-—-—————--—-—----—-----——

2【程序填空】

-———-————---——----—-——-——-——-——--——----—---—---————-———-—

题目:

求n!

,n值由键盘输入.

—-—————-———-----—--———-—-—-—-—-—--——-----—-———-—----———*/

#include〈stdio.h>

voidmain()

intn,i;

floatt;

printf("pleaseinputn(n>=0):

");

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

scanf("%d”,【&n】);

i=1;

t=1.0;

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

while(【i<=n】)

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

{【t*=i】

i++;

printf("%d!

=%f",n,t);

a/*————————-—---———--—--——---——-—-—--——-----—-———-——-—-———

3【程序填空】

----——---—--—--—-—-------———--—----——---——-—--——-——-—-———

题目:

以下程序的功能是统计一个字符串中的字母、数字、空格、

和其它字符的个数。

—-------——-----—-——--——---—-—-——----—————-—————---——---*/

#include”stdio.h”

main()

{

chars1[80];inta[4]={0};

intk;

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

【voidfun(chars[],int[])】;

gets(s1);

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

【fun(s1,a)】;

puts(s1);

for(k=0;k〈4;k++)

printf("%4d”,a[k]);

}

voidfun(chars[],intb[])

inti;

for(i=0;s[i]!

='\0';i++)

if('a’<=s[i]&&s[i]〈=’z'||'A'〈=s[i]&&s[i]〈=’Z’)b[0]++;

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

elseif(【’0’〈=s[i]&&s[i]<=’9’】)b[1]++;

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

elseif(【s[i]==32】)b[2]++;

elseb[3]++;

/*—----———-—--——-——-———-—--——--———-—-————--————--—----——-

4【程序填空】

-—-———--—-—————-—————-———-—--—---—---—--—-—-——————--——--—

题目:

判断一个给定的整数是否为素数.

—---—-———---—--—--—-—-—--—-——--————--——-—-———-————-----*/

#include〈stdio。

h〉

#include"math。

h"

voidmain()

{intm,i,k;

scanf(”%d",&m);

k=sqrt(m);

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

for(i=2;【i〈=k】;i++)

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

if(【m%i==0】)break;

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

if(【i>k】)

printf(”Yes\n");

else

printf("No\n”);

}

/*-——-——-—-—--——---——-——-————----—--—-----—-—-———--——--—-

5【程序填空】

-———-——-—-—-—-—--——-—-————-——--—--—-----—---——---—--——-—-

题目:

以下程序的功能:

计算并输出500以内最大的10个能被

13或17整除的自然数之和.

—-————-——-———--——-—-——-—---———--———-—-------————-——-—-—*/

#include〈stdio。

h>

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

intfun(【intk】)

{

intm=0,mc=0;

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

while(k>=2&&【mc〈10】)

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

if(k%13==0||【k%17==0】)

{m=m+k;mc++;}

k—-;

}

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

【return(m)】;

}

voidmain()

{

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

/*-—-————---———-———-—---—----——---—————--—----——-———--—--

6【程序填空】

---—-—-————----—--—-—-——-—--—-—-——--—-—--——-----————--—-—

题目:

输入N个数据存入数组中,将其倒置存放,并打印输出。

————-—-—-—-—————-—------——---—--——-—----—---—---—-—-———*/

#include〈stdio.h>

#defineN10

voidmain()

{inti,t,a[N];

printf(”Enter%dNumbers:

\n",N);

for(i=0;i

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

scanf(”%d”,【&a[i]】);

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

for(i=0;i<【n/2】;i++)

{t=a[i];

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

a[i]=【a[n-i—1]】;

a[N—i-1]=t;

}

for(i=0;i

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

}

/*-—-—-————-——-——-——-—-—------—-——--——-——---———-—-—----——

7【程序填空】

—-------------—-———---———---———————-————------—-—----——--

题目:

输出Fibonacci数列的前15项,要求每行输出5项.

Fibonacci数列:

1,1,2,3,5,8,13.。

.。

....。

..

--———-—--—-—---—-——--—--—-——----—-—————-—-——---——--——-—*/

#include〈stdio。

h〉

voidmain()

{

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

int【fib】[15],i;

fib[0]=1;fib[1]=1;

for(i=2;i〈15;i++)

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

fib[i]=【fib[i—2]+fib[i—1]】;

for(i=0;i〈15;i++)

printf(”%d\t”,fib[i]);

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

if(【i%5==4】)printf("\n");

}

/*-———--————-—-—--—-——-————-——--—-——-——------———--—-—-—--

8【程序填空】

-—-—--—-———-—-————--—-———-—-———-—-—-—-—--—-——-—---—-—-—-—

题目:

以下程序的功能是求100-999之间的水仙花数(水仙花数

是指一个三位数的各个位数字的立方和是这个数本身,

如:

153=1^3+5^3+3^3)。

-------—--——————-—--—----—-————-——---———--—-———-—---—-—*/

#include

h〉

intfun(intn)

{inti,j,k,m;

m=n;

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

【k=0】

for(i=1;i〈4;i++)

{

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

【j=m%10】

m=(m—j)/10;

k=k+j*j*j;

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

if(k==n)【return

(1)】

elsereturn(0);}

voidmain()

inti;

for(i=100;i<1000;i++)

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

if(【fun(i)】==1)printf(”%disok!

\n”,i);

}

/*-—----——---—----—--——————-—-———-———-----—-——-———-—-—-——

9【程序填空】

-—-—--—-———-—--————--———-—--——————-———--—-—-—--—-—-—---——

题目:

某次大奖赛,有10个评委打分,下面的程序是对一名参赛者评分,输入10个评

委的打分分数,去掉一个最高分,一个最低分后,求出平均分即为该参赛者的得分.

—-——-——-——----————--—-———-——-——----——-———--—-——--—----—*/

#include

h>

voidmain()

{

floatmark,max,min,aver=0.0,sum=0。

0;

inti;

for(i=1;i〈=10;i++)

{printf(”输入第%d位评委的打分\n”,i);

scanf("%f",&mark);

if(i==1)

{max=mark;

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

【min=mark】;

}

elseif(mark

min=mark;

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

elseif(【mark〉max】)

max=mark;

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

【sum+=mark】;

aver=(sum-max-min)/8;

printf(”TheAveragescoreis%f\n",aver);

/*-—————--—-——--—-——-————-—-—--——---—-—--———————--———---—

10【程序填空】

—-————----—---———-—-----—--——--——----——--—-—-—--—-———-——-

题目:

输出9*9口诀。

—-——--——-———-—-------——----——--------———-——--—-—--—---—*/

#include〈stdio。

h>

voidmain()

{inti,j,result;

printf(”\n”);

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

for(i=1;【i<10】;i++)

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

{for(j=1;j<10;【j++】)

{

result=i*j;

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

printf(”%d*%d=%-3d",i,j,【result】);

printf("\n");

}

}

/*---—--—--——-————-———-—-—---—-——---———---————-—-——-—————

11【程序填空】

-—-—-—-------——---———--——---——--—----———---————-————————-

题目:

用辗转相除法求两个整数的最大公约数、最小公倍数。

—--————-————------———---——————--—-——-———-——-—--——-——--—*/

#include〈stdio。

h>

voidmain()

{intn,m,nm,r,t;

printf(”Enterm,n=?

");

scanf(”%d%d”,&m,&n);

nm=n*m;

if(m〈n)

{t=m;m=n;n=t;}

r=m%n;

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

while(【r!

=0】)

{m=n;

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

【n=r】

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

【r=m%n】

}

printf(”ThemaxGyshu=%d\n”,n);

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

printf("TheminGbshu=%d\n”,【nm/n】);

/*-——-————————-——-——---—-——---——---——-—-—----——-—-——-————

12【程序填空】

----——--——------—--—--—-----—---————-——-—--———-——-——---—-

题目:

以下程序的功能是将一个数组中的元素按逆序存放。

---——--——---—-——-———--—---—————-—-—————-—--—-———--——-—-*/

#defineN7

#include〈stdio。

h〉

voidmain()

{

staticinta[N]={12,9,16,5,7,2,1},k,s;

printf("\ntheoriganalarray:

\n");

for(k=0;k〈N;k++)

printf("%4d”,a[k]);

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

for(k=0;k<【N/2】;k++)

{

s=a[k];

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

【a[k]=a[N-k-1]】;

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

【a[N—k—1]=s】;

printf(”\nthechangedarray:

\n”);

for(k=0;k〈N;k++)

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

【printf】(”%4d”,a[k]);

}

/*-—-——---—---—--—-—————--—-—--—--—--———-———-——-————--——-

13【程序填空】

--——-----——---—------—-——--—--—----——-—-—---—-———————-—-—

题目:

输入3个整数,输出最大数.

--—-----—--——-—-—————--—--—---——-—————--—---—---—----—-*/

#include

voidmain()

{inta,b,c,max;

printf(”inputthreenumbers:

”);

scanf(”%d%d%d",&a,&b,&c);

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

if(【a>b】)

max=a;

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

【else】

max=b;

if(max〈c)

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

【max=c】

printf(”max=%d\n”,max);

/*-————---——--—--———-----—-———-——---—-—---————-------——-—

14【程序填空】

---——-—--——-—--—-—--——--——--————---———---——--—-———--——-——

题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

-————-——-——----—-----—-—--—----——--—————-—-——--———-—-—-*/

#include

h>

voidmain()

{intx,y,z,t;

scanf(”%d%d%d",&x,&y,&z);

if(x〉y)

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

{【t=x;x=y;y=t;】}

if(x>z)

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

{【t=z;z=x;x=t;】}

if(y>z)

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

{【t=y;y=z;z=t;】}

printf(”smalltobig:

%d%d%d\n",x,y,z);

}

/*-——-—-——-—-——-——----—------——-——-———--—--——————————--—-

15【程序填空】

—-——--——----——--——-—-——-----——-—--—-—---————-—-——-—----——

题目:

打印出如下图案(菱形)

***

*****

*******

*****

***

-----——-——-----——--————--—---——--—-----—-——-————--—————*/

#include

voidmain()

inti,j,k;

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

for(i=0;【i〈4】;i++)

for(j=0;j〈=4-i;j++)

printf("");

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

for(k=1;k<=【2*i+1】;k++)

printf(”*”);

printf(”\n”);

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

for(【j=0】;j<3;j++)

{

for(k=0;k

printf("”);

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

for(k=0;k<【5-2*j】;k++)

printf("*”);

printf("\n”);

}

/*—-------————-—-—-—-—--———--——-—-——-—---——--————-——--——-

16【程序填空】

-———-————-——--——————-—--——-—-——-————-—-———--——--——-—————-

题目:

以下程序的功能:

计算并输出high以内最大的10个素数

之和,high由主函数传给fun函数,若high的值为100,

则函数的值为732.

-———-———---—-—----————-—-———----——-----———-——-————---—-*/

#include〈stdio。

h〉

#include

h〉

intfun(inthigh)

intsum=0,n=0,j,yes;

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

while((high>=2)&&(【n〈10】))

yes=1;

for(j=2;j〈=high/2;j++)

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

if(【high%j==0】)

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

{yes=0;【break】;}

if(yes)

{sum+=high;n++;}

high--;

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

【return(sum)】;

voidmain()

{

printf("%d\n”,fun(100));

}

/*—————-————--—--—--—--——--—-----—--———--—--—----——--———-

17【程序填空】

——-————-—-——--——--—----——-——-—-—-———--—---——-———-----————

题目:

输入如下形式的二项式系数列标.要求表的行数运行时输入,

若小于1或者大于10则重新输入。

1

11

121

1331

14641

1510

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

当前位置:首页 > 工作范文 > 其它

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

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