c语言题库最终版WPS版.docx

上传人:b****7 文档编号:26670731 上传时间:2023-06-21 格式:DOCX 页数:114 大小:39.85KB
下载 相关 举报
c语言题库最终版WPS版.docx_第1页
第1页 / 共114页
c语言题库最终版WPS版.docx_第2页
第2页 / 共114页
c语言题库最终版WPS版.docx_第3页
第3页 / 共114页
c语言题库最终版WPS版.docx_第4页
第4页 / 共114页
c语言题库最终版WPS版.docx_第5页
第5页 / 共114页
点击查看更多>>
下载资源
资源描述

c语言题库最终版WPS版.docx

《c语言题库最终版WPS版.docx》由会员分享,可在线阅读,更多相关《c语言题库最终版WPS版.docx(114页珍藏版)》请在冰豆网上搜索。

c语言题库最终版WPS版.docx

c语言题库最终版WPS版

2012年C语言机房最新考试题库

献给11级理工科各专业同学

试卷编号:

8257

所属语言:

C语言

试卷方案:

TC_1204092119

试卷总分:

100分

共有题型:

3种

 

一、程序填空共2题(共计30分)

第1题(15.0分)题号:

70

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

【程序填空】

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

功能:

约瑟夫环问题求解。

即有n个人围成一圈,顺序排号。

从第一个人开始报数(从1到3报数),凡报到3的人退出

圈子,问最后留下的是原来第几号的那位。

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

#include

#definenmax50

intmain()

{

inti,k,m,n,num[nmax],*p;

printf("pleaseinputthetotalofnumbers(<=%d):

",nmax);

scanf("%d",&n);

p=num;

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

for(i=0;【?

】;i++)

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

*(p+i)=【?

】;

i=0;

k=0;

m=0;

while(m

{

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

if(【?

】!

=0)k++;

if(k==3)

{

*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)i=0;

}

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

while(【?

】)p++;

printf("%disleft\n",*p);

return0;

}

 

答案:

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

ii

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

i+1或1+i

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

*(p+i)或*(i+p)

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

*p==0或0==*p

 

第2题(15.0分)题号:

34

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

【程序填空】

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

功能:

输入某年某月某日,判断这一天是这一年的第几天?

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

#include

intmain()

{

intday,month,year,sum,leap;

printf("\npleaseinputyear,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)/*从月份得出已过多少天*/

{

case1:

sum=0;

break;

case2:

sum=31;

break;

case3:

sum=59;

break;

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

case4:

【?

】;

break;

case5:

sum=120;

break;

case6:

sum=151;

break;

case7:

sum=181;

break;

case8:

sum=212;

break;

case9:

sum=243;

break;

case10:

sum=273;

break;

case11:

sum=304;

break;

case12:

sum=334;

break;

default:

printf("dataerror");

break;

}

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

【?

】;/*再加上日期数*/

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

if(year%400==0||(year%4==0【?

】)/*判断是否闰年*/

leap=1;

else

leap=0;

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

if(leap==1【?

】)

sum++;

printf("itisthe%dthday.",sum);

return0;

}

 

答案:

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

sum=90

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

sum=sum+day或sum=day+sum或sum+=day

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

&&year%100!

=0或&&0!

=year%100或&&(year%100!

=0)

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

&&month>2或&&2

 

二、程序改错共2题(共计30分)

第1题(15.0分)题号:

254

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

【程序改错】

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

功能:

请编写函数fun,对长度为8个字符的字符串,将8个字符按

降序排列。

例如:

原来的字符串为CEAedcab,排序后输出为edcbaECA。

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

#include

#include

#include

voidfun(char*s,intnum)

{

/**********FOUND**********/

inti;j;

chart;

for(i=0;i

/**********FOUND**********/

for(j=i;j>num;j++)

/**********FOUND**********/

if(s[i]>s[j])

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

main()

{

chars[10];

printf("输入8个字符的字符串:

");

gets(s);

fun(s,8);

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

}

答案:

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

inti,j;

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

for(j=i+1;j

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

for(j=i;j

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

if(s[i]

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

if(s[j]>s[i])

 

第2题(15.0分)题号:

41

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

【程序改错】

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

功能:

以下程序能求出满足条件:

1*1+2*2+......+n*n<=1000中的

最大的n。

说明:

输出:

n=13

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

#include

intmain()

{

intn,s;

/**********FOUND**********/

s==n=0;

/**********FOUND**********/

while(s>1000)

{

++n;

/***********FOUND***********/

s=n*n;

}

printf("n=%d\n",n-1);

return0;

}

答案:

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

s=n=0;

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

s=0,n=0;

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

s=0,n=0;

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

n=s=0;

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

s=0;n=0;

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

while(s<=1000)

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

while(1000>=s)

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

s+=n*n;

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

s=s+n*n;

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

s=s+n*n;

 

三、程序设计共2题(共计40分)

第1题(20.0分)题号:

380

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

【程序设计】

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

功能:

编写函数fun其功能是:

根据整型形参m,计算如下

公式的值:

y=1+1/3+1/5+1/7+…+1/(2m+1)

例如:

若m=9,则应输出:

2.133256

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

#include

floatfun(intm)

{

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

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

}

intmain()

{

intn;

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

return0;

}

答案:

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

doubley=1;

inti;

for(i=1;i<=m;i++)

{y+=1.0/(2*i+1);}

return(y);

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

 

第2题(20.0分)题号:

379

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

【程序设计】

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

功能:

不使用字符串strlen函数,编写函数fun求一个字符串的长度,在main函数中

输入字符串,并输出其长度。

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

#include

intfun(char*p1)

{

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

 

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

}

intmain()

{

char*p,a[20];

intlen;

p=a;

printf("pleaseinputastring:

\n");

gets(p);

return0;

len=fun(p);

printf("Thestring'slengthis:

%d\n",len);

}

 

答案:

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

char*p;

intn=0;

p=p1;

while(*p++)

n++;

returnn;

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

 

试卷编号:

8275

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

【程序填空】

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

功能:

读入一行英文文本,将其中每个单词的第一个字母改成

大写,然后输出此文本行(这里的“单词”是指由空格

隔开的字符串)。

例如:

若输入“iamastudenttotaketheexamination.”,

则应输出“IAmAStudenToTakeTheExamination.”。

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

#include"conio.h"

#include

#include"ctype.h"

#include"string.h"

voidupfst(char*p)

{

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

if(【?

】)/****upperthefirstcharofthestring***/

{

*p=toupper(*p);

p++;

}

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

for(;*p;【?

】)/***searchthewholestring***/

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

if(*(p-1)==''【?

】*p!

='')

*p=toupper(*p);

}

intmain()

{

charchrstr[81];

printf("\nPleaseenterastring:

");

gets(chrstr);

printf("\n\nBeforechanging:

\n%s",chrstr);

upfst(chrstr);

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

printf("\nAfterchanging:

\n%s",【?

】);

return0;

}

 

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

【程序填空】

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

功能:

写一个函数,求一个字符串的长度,不允许使用求字符串

长度的库函数。

在main函数中输入字符串,并输出其长度。

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

#include

intmain()

{

intlength(char*p);

intlen;

charstr[20];

printf("pleaseinputastring:

\n");

gets(str);

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

len=length(【?

】);

printf("thestringhas%dcharacters.",len);

return0;

}

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

【?

】(char*p)

{

intn;

n=0;

while(*p!

='\0')

{

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

【?

】;

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

【?

】;

}

returnn;

}

 

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

【程序改错】

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

功能:

根据整型形参m,计算某一数据项的值。

y=1/(100*100)+1/(200*200)+1/(300*300)+……+1/(m*m)

例如:

若m=2000,则应输出:

0.000160。

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

#include

#include

/**********FOUND**********/

fun(intm)

{

doubley=0,d;

inti;

/**********FOUND**********/

for(i=100,i<=m,i+=100)

{

d=(double)i*(double)i;

/**********FOUND**********/

y+=1.0\d;

}

return(y);

}

main()

{

intn=2000;

printf("\nTheresultis%lf\n",fun(n));

}

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

【程序改错】

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

功能:

根据整型形参m,计算如下公式的值:

y=1+1/3+1/5+1/7+...+1/(2m-3)

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

#include

doublefun(intm)

{

doubley=0;

inti;

/**********FOUND**********/

for(i=1;i

/**********FOUND**********/

y+=1.0/(2i-3);

return(y);

}

main()

{

intn;

printf("Entern:

");

/**********FOUND**********/

scanf("%d",n);

printf("\nTheresultis%1f\n",fun(n));

}

 

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

【程序设计】

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

功能:

编写函数fun(),对某一正数(单精度)的值保留2位小数,

并对第三位进行四舍五入处理,然后作为函数值返回。

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

#include

#include"conio.h"

voidwwjt();

floatfun(floath)

{

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

 

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

}

voidmain()

{

floatm;

printf("Enterm:

");

scanf("%f",&m);

printf("\nTheresultis%8.2f\n",fun(m));

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

ints;

floatt;

doubleo;

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

if(IN==NULL)

{

printf("ReadFILEError");

}

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

if(OUT==NULL)

{

printf("WriteFILEError");

}

for(s=1;s<=5;s++)

{

fscanf(IN,"%f",&t);

o=fun(t);

fprintf(OUT,"%8.2f\n",o);

}

fclose(IN);

fclose(OUT);

}

 

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

【程序设计】

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

功能:

编写函数fun(inttt[M][N],intpp[N]),求二维数组tt

每列中最大元素,并依次存入一维数组pp中。

二维数组

已在主函数中赋值。

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

#include

#include

#defineM3

#defineN4

voidwwjt();

voidfun(inttt[M][N],intpp[N])

{

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

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

}

intmain()

{

intt[M][N]={{22,45,56,30},

{19,33,45,38},

{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

{

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:

\n");

for(k=0;k

printf("\n");

wwjt();

return0;

}

voidwwjt()

{

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

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

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

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