C语言期末复习题doc.docx

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

C语言期末复习题doc.docx

《C语言期末复习题doc.docx》由会员分享,可在线阅读,更多相关《C语言期末复习题doc.docx(128页珍藏版)》请在冰点文库上搜索。

C语言期末复习题doc.docx

C语言期末复习题doc

二、操作题(93题=25+50+18)

1.填空题(25)

6、给定程序功能是用冒泡法对6个字符串进行排序。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank6.c中。

不得增行或删行,也不得更改程序的结构!

/******blank6.c******/

#include

#defineMAXLINE20

fun(char*pstr[6])

{inti,j;

char*p;

for(i=0;i<5;i++){

for(j=i+1;j<6;j++){

/**************found**************/

if(strcmp(*(pstr+i),___1___)>0)

{

p=*(pstr+i);

/**************found**************/

pstr[i]=___2___;

/**************found**************/

*(pstr+j)=___3___;

}

}

}

}

main()

{inti;

char*pstr[6],str[6][MAXLINE];

for(i=0;i<6;i++)pstr[i]=str[i];

printf("\nEnter6string(1stringateachline):

\n");

for(i=0;i<6;i++)scanf("%s",pstr[i]);

fun(pstr);

printf("Thestringsaftersorting:

\n");

for(i=0;i<6;i++)printf("%s\n",pstr[i]);

}

//blank6.c参考答案:

/**************found**************/

if(strcmp(*(pstr+i),*(pstr+j))>0)

/**************found**************/

pstr[i]=pstr[j];

/**************found**************/

*(pstr+j)=p;

7、给定程序的功能是将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank7.c中。

不得增行或删行,也不得更改程序的结构!

/******blank7.c******/

#include

voidfun(intm,intk)

{

intaa[20],i;

for(i=0;m;i++){

/**********found**********/

aa[i]=___1___;

/**********found**********/

m/=___2___;

}

for(;i;i--)

/**********found**********/

printf("%d",___3___[i-1]);

}

main()

{

intb,n;

printf("\nPleaseenteranumberandabase:

\n");

scanf("%d%d",&n,&b);

fun(n,b);

}

//blank7.c参考答案:

/**********found**********/

aa[i]=m%k;

/**********found**********/

m/=k;

/**********found**********/

printf("%d",aa[i-1]);

8、给定程序的功能是将未在字符串s中出现,而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排序,但去掉重复字符。

例如:

当s="12345",t="24677"时,u中的字符为:

"67"。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank8.c中。

不得增行或删行,也不得更改程序的结构!

/******blank8.c******/

#include

#include

voidfun(char*s,char*t,char*u)

{inti,j,sl,tl,k,ul=0;

sl=strlen(s);tl=strlen(t);

for(i=0;i

{for(j=0;j

if(t[i]==s[j])break;

if(j>=sl)

{for(k=0;k

/************found************/

if(t[i]==u[k])___1___;

if(k>=ul)

/************found************/

u[ul++]=___2___;

}

}

/************found************/

___3___='\0';

}

main()

{chars[100],t[100],u[100];

printf("\nPleaseenterstrings:

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

printf("\nPleaseenterstringt:

");scanf("%s",t);

fun(s,t,u);

printf("Theresultis:

%s\n",u);

}

//blank8.c参考答案:

/************found************/

if(t[i]==u[k])break;

/************found************/

u[ul++]=t[i];

/************found************/

u[ul]='\0';

10、给定程序的功能是将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列。

(注意0为偶数)

例如:

当s中的字符串为:

"1234567"时,则t中的字符串应为:

"664422"。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank10.c中。

不得增行或删行,也不得更改程序的结构!

/******blank10.c******/

#include

#include

voidfun(char*s,char*t)

{inti,j,sl;

sl=strlen(s);

/************found************/

if(sl%2)sl-=2;___1___sl--;

/************found************/

for(i=sl,j=___2___;i>=0;i-=2)

{t[2*j]=s[i];

/************found************/

t[2*j+1]=___3___;

j++;

}

t[2*j]='\0';

}

main()

{chars[100],t[100];

printf("\nPleaseenterstrings:

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

fun(s,t);

printf("Theresultis:

%s\n",t);

}

//blank10.c参考答案:

/************found************/

if(sl%2)sl-=2;elsesl--;

/************found************/

for(i=sl,j=0;i>=0;i-=2)

/************found************/

t[2*j+1]=s[i];

11、给定程序的功能是将大写字母转换为对应小写字母之后的第五个字母;若小写字母为v~z,使小写字母的值减21。

转换后的小写字母作为函数值返回。

例如,若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank11.c中。

不得增行或删行,也不得更改程序的结构!

/******blank11.c******/

#include

#include

charfun(charc)

{if(c>='A'&&c<='Z')

c=c+32;

if(c>='a'&&c<='u')

/**************found**************/

c=c+___1___;

elseif(c>='v'&&c<='z')

c=c-21;

/**************found**************/

return___2___;

}

main()

{charc1,c2;

printf("\nEnteraletter(A-Z):

");c1=getchar();

if(isupper(c1)){

/**************found**************/

c2=fun(___3___);

printf("\n\nTheletter\'%c\'changeto\'%c\'\n",c1,c2);

}

elseprintf("\nEnter(A-Z)!

\n");

}

//blank11.c参考答案:

/**************found**************/

c=c+5;

/**************found**************/

returnc;

/**************found**************/

c2=fun(c1);

 

12、给定程序功能是计算S=f(-n)+f(-n+1)+…+f(0)+f

(1)+f

(2)+…+f(n)的值。

例如,当n为5时,函数值应为:

10.407143。

┌(x+1)/(x-2)x>0

f(x)=┤0x=0或x=2

└(x-1)/(x-2)x<0

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank12.c中。

不得增行或删行,也不得更改程序的结构!

/******blank12.c******/

#include

#include

floatf(doublex)

{

if(x==0.0||x==2.0)

/************found************/

return___1___;

elseif(x<0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

}

doublefun(intn)

{inti;doubles=0.0,y;

/************found************/

for(i=-n;i<=___2___;i++)

{y=f(1.0*i);s+=y;}

/************found************/

return___3___;

}

main()

{

printf("%f\n",fun(5));

}

//blank12.c参考答案:

/************found************/

return0.0;

/************found************/

for(i=-n;i<=n;i++)

/************found************/

returns;

 

13、给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:

圆面积公式为:

S=πr2,在程序中定义的变量名要与公式的变量相同)。

例如输入圆的半径值:

19.527输出为:

s=598.950017。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank13.c中。

不得增行或删行,也不得更改程序的结构!

/******blank13.c******/

#include

/**********found**********/

floatfun(float___1___)

{

/**********found**********/

return3.14159*___2___/2.0;

}

main()

{floatx;

printf("Enterx:

");

/**********found**********/

scanf("%f",___3___);

printf("s=%f\n",fun(x));

}

//blank13.c参考答案:

/**********found**********/

floatfun(floatr)

/**********found**********/

return3.14159*r*r/2.0;

/**********found**********/

scanf("%f",&x);

16、给定程序的功能是从字符串s尾部开始,按逆序把相邻的两个字符交换位置,并依次把每个字符紧随其后重复出现一次,放在一个新串t中。

例如:

当s中的字符串为:

"12345"时,则t中的字符串应为:

"4455223311"。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank16.c中。

不得增行或删行,也不得更改程序的结构!

/******blank16.c******/

#include

#include

voidfun(char*s,char*t)

{inti,j,sl;

/************found************/

sl=___1___;

for(i=sl-1,j=0;i>=0;i-=2)

{if(i-1>=0)t[j++]=s[i-1];

if(i-1>=0)t[j++]=s[i-1];

t[j++]=s[i];t[j++]=s[i];

}

/************found************/

___2___;

}

main()

{chars[100],t[100];

printf("\nPleaseenterstrings:

");

/************found************/

scanf("%s",___3___);

fun(s,t);

printf("Theresultis:

%s\n",t);

}

//blank16.c参考答案:

/************found************/

sl=strlen(s);

/************found************/

t[j]=0;

/************found************/

scanf("%s",s);

19、给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。

234N+1

SN=─+─+─+…+──

123N

例如,若q的值为50.0,则函数值为50.416687。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank19.c中。

不得增行或删行,也不得更改程序的结构!

/******blank19.c******/

#include

doublefun(doubleq)

{intn;doubles;

n=2;

s=2.0;

/************found************/

while(s___1___q)

{

s=s+(double)(n+1)/n;

/************found************/

___2___;

}

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

/************found************/

___3___;

}

main()

{

printf("%f\n",fun(50));

}

//blank19.c参考答案:

/************found************/

while(s<=q)

/************found************/

n++;

/************found************/

returns;

20、给定程序的功能是求k!

(k<13)并通过函数名传回主函数。

例如:

若k=10,则应输出:

3628800。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank20.c中。

不得增行或删行,也不得更改程序的结构!

/******blank20.c******/

#include

longfun(intk)

{

/************found************/

if(k___1___0)

/************found************/

return(k*fun(___2___));

/************found************/

elseif(k___3___0)

return1L;

}

main()

{intk=10;

printf("%d!

=%ld\n",k,fun(k));

}

//blank20.c参考答案:

/************found************/

if(k>0)

/************found************/

return(k*fun(k-1));

/************found************/

elseif(k==0)

21、给定程序的功能是:

读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。

例如,若输入整数:

3410,则应输出:

2、5、11、31。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank21.c中。

不得增行或删行,也不得更改程序的结构!

/******blank21.c******/

#include

IsPrime(intn)

{inti,m;

m=1;

for(i=2;i

/************found************/

if(!

(n___1___i)){

/************found************/

m=0;___2___;

}

return(m);

}

main()

{intj,k;

printf("\nPleaseenteranintegernumberbetween2and10000:

");

/************found************/

scanf("%d",___3___);

printf("\n\nTheprimefactor(s)of%dis(are):

",k);

for(j=2;j<=k;j++)

if((!

(k%j))&&(IsPrime(j)))printf("\n%4d",j);

printf("\n");

}

//blank21.c参考答案:

/************found************/

if(!

(n%i)){

/************found************/

m=0;break;

/************found************/

scanf("%d",&k);

23、给定程序的功能是分别统计字符串中大写字母和小写字母的个数。

例如,给字符串ss输入:

AaaaBBb123CCccccd,

则输出结果应为:

upper=5,lower=9

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank23.c中。

不得增行或删行,也不得更改程序的结构!

/******blank23.c******/

#include

voidfun(char*s,int*a,int*b)

{

while(*s)

{if(*s>='A'&&*s<='Z')

/**********found**********/

___1___;

if(*s>='a'&&*s<='z')

/**********found**********/

___2___;

s++;

}

}

main()

{chars[100];intupper=0,lower=0;

printf("\nPleaseastring:

");gets(

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

当前位置:首页 > 求职职场 > 职业规划

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

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