c语言复习题及答案Word文档下载推荐.docx

上传人:b****5 文档编号:20782037 上传时间:2023-01-25 格式:DOCX 页数:15 大小:19.40KB
下载 相关 举报
c语言复习题及答案Word文档下载推荐.docx_第1页
第1页 / 共15页
c语言复习题及答案Word文档下载推荐.docx_第2页
第2页 / 共15页
c语言复习题及答案Word文档下载推荐.docx_第3页
第3页 / 共15页
c语言复习题及答案Word文档下载推荐.docx_第4页
第4页 / 共15页
c语言复习题及答案Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

c语言复习题及答案Word文档下载推荐.docx

《c语言复习题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言复习题及答案Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

c语言复习题及答案Word文档下载推荐.docx

max=%d\n"

max);

count=CountFail(score,20);

count=%d\n"

count);

intFindMax(intscore[],intn)

intmax,i;

max=score[0];

if(score[i]>

max)max=score[i];

returnmax;

intCountFail(intscore[],intn)

intcount,i;

count=0;

if(score[i]<

60)count++;

returncount;

3.一个班有6位同学,每位同学包括学号、姓名、数学、物理、计算机成绩和总分,要求输入学号、姓名、数学、物理、计算机成绩,计算出每位同学的总分,并按总分降序输出。

要求每位同学的信息定义成一个结构体。

structstudent

longnum;

charname[10];

intmt;

intph;

intcm;

intsum;

stu[6],temp;

voidmain()

inti,j;

for(i=0;

i<

6;

i++)

{scanf("

%ld%s%d%d%d"

stu[i].num,stu[i].name,&

stu[i].mt,&

stu[i].ph,&

stu[i].cm);

stu[i].sum=0;

stu[i].sum=stu[i].mt+stu[i].ph+stu[i].cm;

5;

for(j=i+1;

j<

j++)

if(stu[j].sum<

stu[i].sum)

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

%ld\t%s%5d%5d%5d%5d"

stu[i].num,stu[i].name,stu[i].mt,stu[i].ph,stu[i].cm,stu[i].sum);

\n"

);

4.判断101-200之间有多少个素数,并输出所有素数。

math.h>

intm,i,h=0,leap=1;

printf("

for(m=101;

m<

=200;

m++)

{

for(i=2;

=sqrt(m+1);

if(m%i==0)

{leap=0;

break;

if(leap)

{printf("

%-4d"

m);

h++;

if(h%10==0)printf("

leap=1;

\nThetotalis%d"

h);

5.编写程序,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

{charc;

intletters=0,space=0,digit=0,others=0;

pleaseinputsomecharacters\n"

while((c=getchar())!

='

\n'

if(c>

a'

&

c<

z'

||c>

A'

Z'

letters++;

elseif(c=='

'

space++;

elseif(c>

0'

9'

digit++;

else

others++;

allinall:

char=%dspace=%ddigit=%dothers=%d\n"

letters,

space,digit,others);

6.编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。

voidmain()

{staticcharx[]="

computer"

;

char*p;

for(p=x;

p<

x+7;

p+=2)

putchar(*p);

7.编一程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。

要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。

string.h>

voidcopystr(char*p1,char*p2,intm)

{intn=0;

while(n<

m-1)

{p2++,n++;

while(*p2!

\0'

{*p1=*p2;

p1++;

p2++;

*p1='

voidmain()

{intm;

charstr1[80],str2[80];

Inputastring:

gets(str2);

Inputm:

scanf("

m);

if(strlen(str2)<

m)

Errinput!

else{copystr(str1,str2,m);

Resultis:

%s\n"

str1);

8.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?

第10次反弹多高?

编写程序求解该问题。

 #include<

floatsn=100.0,hn=sn/2;

intn;

for(n=2;

n<

=10;

n++)

sn=sn+2*hn;

/*第n次落地时共经过的米数*/

hn=hn/2;

/*第n次反跳高度*/

thetotalofroadis%f\n"

sn);

thetenthis%fmeter\n"

hn);

9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。

main()

{intyear=0,number=0;

for(year=2000;

year<

3000;

year++)

{if((year%4==0&

year%100!

=0)||year%400==0)

{printf("

%6d"

year);

number++;

if(number%10==0)printf("

\ntotalnumberofleapyearis%d"

number);

10试编一程序完成以下功能:

定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;

然后按顺序每5个数求出一个平均值,放在另一数组中并输出。

{inta[30],b[6],sum=0,k,j=0;

for(k=0;

k<

30;

k++)

a[k]=(k+1)*2;

if(k%5==0){b[j]=sum/5;

j++;

sum=0;

elsesum=sum+a[k];

for(j=0;

printf(“%4d”,b[j]);

11.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。

main()

{inti,array[10];

intmin,k=0;

printf(“\nPleaseinputarray10elements\n”);

10;

array[i]);

printf(“Beforeexchange:

\n”);

printf(“%5d”,array[i]);

min=array[0];

for(i=1;

if(min>

array[i])

{min=array[i];

k=i;

array[k]=array[0];

array[0]=min;

printf(“\nAfterexchange:

printf(“\nk=%d\nmin=%d\n”,k,min);

12.试编程完成如下功能:

输入一个不多于4位的整数,求出它是几位数,并逆序输出各位数字。

#include<

intx,n,t;

x);

n=0;

while(x>

0)

t=x%10,

t);

x=x/10;

n++;

n=%d\n"

n);

13.请编写一个函数fun(),它的功能是:

比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。

若两个字符串长度相等,则返回第1个字符串。

例如,输入nanjing<

CR>

nanchang<

(<

为回车键),函数将返回nanjing。

char*fun(char*s,char*t)

s[i]!

='

i++);

/*求字符串的长度*/

t[j]!

j++);

if(i<

=j)/*比较两个字符串的长度*/

returns;

/*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/

else

returnt;

chara[20],b[10],*p,*q;

inti;

Input1thstring:

"

gets(a);

Input2thstring:

gets(b);

%s"

fun(a,b));

14.请编写函数fun(),它的功能是:

求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

voidfun(int*a,int*n)

inti,j=0;

=1000;

i++)/*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/

if((i%5==0||i%13==0)&

i%65!

=0)

a[j++]=i;

*n=j;

/*传回满足条件的数的个数*/

intaa[1000],n,k;

fun(aa,&

n;

if((k+1)%10==0)

%5d"

aa[k]);

\n"

/*一行写10个数*/

15.请编写一个函数fun(),它的功能是:

将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。

例如,若输入ABC4efG,则应输出aBc4efg。

voidfun(char*ss)

ss[i]!

i++)/*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/

if(i%2==0&

ss[i]>

ss[i]<

ss[i]=ss[i]+32;

chartt[81];

clrscr();

\nPleaseenteranstringwithin80characters:

gets(tt);

\n\nAfterchanging,thestring\n\%s"

tt);

fun(tt);

\nbecomes\n\%s\n"

16.下列给定程序中函数fun()的功能是:

从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

例如,当s中的数为4576235时,t中的数为4725。

voidfun(longs,long*t)

longs1=10;

*t=s%10;

while(s>

{

s=s/100;

*t=s%10*s1+*t;

s1=s1*10;

longs,t;

\nPleaseenters:

%ld"

s);

fun(s,&

t);

Theresultis:

%ld\n"

17.请编写一个函数fun(),该函数的功能是:

统计字符串str中的单词个数,结果由变量num传回。

每个单词之间都由空格隔开,并且字符串str开始不存在空格。

str是全部由小写字母字符和空格字符组成的字符串例如:

str=“howdoyoudo”,结果为:

num=4。

#defineN80

voidfun(char*s,int*num)

inti,n=0;

*num;

if(s[i]>

s[i]<

(s[i+1]==

'

||s[i+1]=='

))

n++;

}

*num=n;

charstr[N];

intnum=0;

Enterastring:

gets(str);

while(str[num])

num++;

fun(str,&

num);

Thenumberofwordis:

%d\n\n"

num);

18.编一程序:

从一个字符串中截取前面若干个给定长度的子字符串。

其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。

例如:

当str1=“cdefghij”,然后输入4,则str2=“cdef”。

#defineLEN80

charstr1[LEN],str2[LEN];

intn,i;

Enterthestring:

gets(str1);

Enterthepositionofthestring

deleted:

"

scanf″%d″,&

for(i=0;

str2[i]=str1[i];

str2[i]='

Thenewstringis:

str2);

19.编一程序:

依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。

voidfun(char*s)

for(i=0,j=0;

s[i]!

i++)

if((s[i]>

)||(s[i]>

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

s[j]='

charitem[80];

\nEnterastring:

gets(item);

\n\nThestringis:

\%s\n"

item);

fun(item);

\n\nThestringofchangingis:

20.编一程序:

从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。

例如,当str1=“cdefghij”,则str2=“cegi”。

char*p1=str1,*p2=str2;

inti=0,j=0;

scanf(″%s″,str1);

***theorigialstring***\n"

while(*(p1+j))

printf("

%c"

*(p1+j));

j++;

j;

i+=2)

*p2++=*(str1+i);

*p2='

\nThenewstringis:

学习委员

2010年6月21日星期一

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

当前位置:首页 > 工作范文 > 制度规范

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

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