C语言大题Word文档格式.docx

上传人:b****6 文档编号:16635260 上传时间:2022-11-25 格式:DOCX 页数:102 大小:62.06KB
下载 相关 举报
C语言大题Word文档格式.docx_第1页
第1页 / 共102页
C语言大题Word文档格式.docx_第2页
第2页 / 共102页
C语言大题Word文档格式.docx_第3页
第3页 / 共102页
C语言大题Word文档格式.docx_第4页
第4页 / 共102页
C语言大题Word文档格式.docx_第5页
第5页 / 共102页
点击查看更多>>
下载资源
资源描述

C语言大题Word文档格式.docx

《C语言大题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言大题Word文档格式.docx(102页珍藏版)》请在冰豆网上搜索。

C语言大题Word文档格式.docx

2.改错题

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

将p所指字符串中每个单词的最后一个字母改成大写(这里的"

单词"

是指有空格隔开的字符串)。

例如,若输入:

Iamastudenttotaketheexamination

则应输出:

IaMAstudenTtOtakEthEexaminatioN

请改正程序中的错误,使它能得出正确的结果。

不要改动main函数,不得增行或删行,也不得更改程序的结构。

conio.h>

ctype.h>

voidfun(char*p)

intk=0;

for(;

*p;

p++)

if(k)

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

if(p=='

'

k=0;

*p=toupper(*(p-1));

//改*(p-1)=toupper(*(p-1));

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

else

k=1;

{charchrstr[64];

intd;

\nPleaseenteranEnglishsentencewithin63letters:

"

gets(chrstr);

d=strlen(chrstr);

chrstr[d]='

;

chrstr[d+1]=0;

\nBoforechanging:

\n%s"

chrstr);

fun(chrstr);

\nAfterchanging:

3.编程题

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:

把分数最高的学生数据放在h所指的数组中。

分数高的学生可能不只一个,函数返回分数最高学生的人数。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

main()

STRECs[N]={{"

GA005"

85},{"

GA003"

76},{"

GA002"

69},{"

GA004"

85},

{"

GA001"

91},{"

GA007"

72},{"

GA008"

64},{"

GA006"

87},

GA015"

GA013"

GA012"

GA014"

91},

GA011"

66},{"

GA017"

GA018"

GA016"

72}};

STRECh[N];

inti,n;

FILE*out;

n=fun(s,h);

The%dhighestscore:

n);

for(i=0;

i<

n;

%s%4d\n"

h[i].num,h[i].s);

/*输出最高分学生的学号和成绩*/

out=fopen("

out15.dat"

"

w"

fprintf(out,"

%d\n"

for(i=0;

i++);

%4d\n"

h[i].s);

fclose(out);

请补充main函数,该函数的功能是:

把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。

例如:

当str[N]="

123abcdefABCDEF!

"

,结果输出:

123ABCDEFABCDEF!

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

#include<

stdlib.h>

voidmain()

intj;

charstr[N]="

123abcdefABCDEF!

char*pf=str;

***originalstring***\n"

【1】//答案:

j=0

while(*(pf+j))

if(*(pf+j)>

='

a'

&

*(pf+j)<

z'

{

*(pf+j)=【2】;

//答案:

str[j]-32

j++;

}

else

【3】;

//答案:

j++

******newstring******\n"

system("

pause"

下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。

a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。

请改正程序中的错误,使它能得到正确结果。

string.h>

voidfun(char*p,char*q,char*c)

{intk=0;

while(*p||*q)

{if(*p<

=*q)//改:

*p>

=*q

c[k]=*q;

elsec[k]=*p;

if(*p)p++;

if(*q)q++;

k++//加;

{chara[10]="

fshADfg"

b[10]="

sdAEdi"

c[80]={'

\0'

};

fun(a,b,c);

Thestringa:

puts(a);

Thestringb:

puts(b);

Theresult:

puts(c);

请编写函数fun,其功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。

例如,当a=16,b=35,调用该函数后,c=5361。

voidfun(inta,intb,long*c)

 

{

inta,b;

longc;

Inputa,b;

scanf("

%d%d"

&

a,&

b);

fun(a,b,&

c);

Theresultis:

%ld\n"

c);

请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。

方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。

例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00,x2=-1.00。

#include"

math.h"

floata,b,c,disc,x1,x2;

do

printf("

Inputa,b,c:

scanf("

%f,%f,%f"

a,&

b,&

disc=b*b-4*a*c;

if(disc<

0)

printf("

disc=%f\nInputagain!

disc);

}while(【1】);

//答案:

disc<

*******theresult*******\n"

x1=【2】;

//x1=(-b+sqrt(disc))/(2*a);

x2=【3】;

//x2=(-b-sqrt(disc))/(2*a);

\nx1=%6.2f\nx2=%6.2f\n"

x1,x2);

请补充main函数,该函数的功能是求方程ax2+bx+c=0的根(方程的系数a,b,c从键盘输入)。

例如,当a=1,b=2,c=1时,方程的两个根分别是:

x1=-1.00,x2=-1.00。

请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

math.h>

floata,b,c,disc,x1,x2,p,q;

disc=b*b-4*a*c;

*******theresult*******\n"

if(disc>

=0)

x1=【1】;

x2=(-b-sqrt(disc))/(2*a);

x1=%6.2f,x2=%6.2f\n"

p=【2】;

//p=(-b)/(2*a);

q=【3】;

//q=sqrt(-disc)/(2*a);

x1=%6.2f+%6.2fi\n"

p,q);

x2=%6.2f-%6.2fi\n"

下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。

y=1-1/(2×

2)+1/(3×

3)-1/(4×

4)+…+(-1)(m+1)/(m×

m)

m中的值为5,则应输出0.838611。

doublefun(intm)

{doubley=1.0;

intj=1;

for(i=2;

=m;

j=-1*j;

y+=1/(i*i);

//y+=j*1.0/(i*i);

return(y);

intn=5;

\nTheresultis%lf\n"

fun(n));

请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。

二维数组中的数已在主函数中给出。

#defineM3

#defineN4

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

intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};

intp[N],i,j,k;

Theriginaldatais:

i<

M;

i++)

for(j=0;

j<

N;

j++)

%6d"

t[i][j]);

fun(t,p);

\nTheresultis:

for(k=0;

k<

k++)

%4d"

p[k]);

把一个整数转换成字符串,并倒序保存在字符数组str中。

当n=13572468时,str="

86427531"

charstr[N];

voidfun(longintn)

inti=0;

while(【1】)//n!

=0

str[i]=【2】;

//str[i]=(n-n/10*10)+48;

n/=10;

i++;

【3】;

//str[i]='

形成字符串结尾要有‘/0’

longintn=13572468;

***theorigialdata***\n"

n=%ld"

fun(n);

\n%s"

str);

下列给定程序中,函数fun的功能是按以下递归公式求函数值。

当给n输入5时,函数值为240;

当给n输入3时,函数值为60。

fun(intn);

//intfun(intn)

intc;

if(n=1)//if(n==1)

c=15;

c=fun(n-1)*2;

return(c);

intn;

Entern:

%d"

n);

%d\n\n"

fun(n));

请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。

编写完程序,运行程序后输入:

字符串为Bdsihad,则排序后输出为应为Badhisd。

intfun(char*s,intnum)

chars[10];

输入7个字符的字符串:

gets(s);

fun(s,7);

s);

1.填空题

数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。

从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。

当xx[8]={135,78,72,32,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。

#defineN1000

intfun(intxx[],intbb[],intnum)

inti,n=0;

intg,b;

num;

g=【1】;

//g=xx[i]%10;

b=xx[i]/100;

if(g==b)

【2】;

//bb[n++]=xx[i];

return【3】;

//n;

intxx[8]={135,787,232,222,424,333,

141,541};

intyy[N];

intnum=0,n=0,i=0;

num=8;

***originaldata***\n"

%u"

xx[i]);

\n\n\n"

n=fun(xx,yy,num);

\nyy="

yy[i]);

下列给定程序中函数fun()的功能是计算1/n!

的值。

给n输入5,则输出0.008333。

intfun(intn)//doublefun(intn)

{doubleresult=1.0;

if(n==0)

return1.0;

while(n>

1&

n<

170)

result*=n++;

//result*=n--;

result=1/result;

returnresult;

InputN:

\n1/%d!

=%lf\n"

n,fun(n));

编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

n为1000时,函数值应为s=96.979379。

doublefun(intn)

clrscr();

printf("

s=%f\n"

fun(1000));

2.下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

输入352,则输出应该是38;

若输入328,则输出应该是77。

longfun(longnum)

longk=1;

//k=0;

do

k+=(num%10)*(num%10);

num/=10;

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

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

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

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

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