C语言上机题库百科园第6章2南信大Word格式文档下载.docx

上传人:b****1 文档编号:4101813 上传时间:2023-05-02 格式:DOCX 页数:28 大小:20.44KB
下载 相关 举报
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第1页
第1页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第2页
第2页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第3页
第3页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第4页
第4页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第5页
第5页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第6页
第6页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第7页
第7页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第8页
第8页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第9页
第9页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第10页
第10页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第11页
第11页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第12页
第12页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第13页
第13页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第14页
第14页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第15页
第15页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第16页
第16页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第17页
第17页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第18页
第18页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第19页
第19页 / 共28页
C语言上机题库百科园第6章2南信大Word格式文档下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言上机题库百科园第6章2南信大Word格式文档下载.docx

《C语言上机题库百科园第6章2南信大Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第6章2南信大Word格式文档下载.docx(28页珍藏版)》请在冰点文库上搜索。

C语言上机题库百科园第6章2南信大Word格式文档下载.docx

/************************************/

out=fopen("

debug\\out12.dat"

w"

for(i=0;

i<

4;

i++)

if(fun(test[i]))

fprintf(out,"

else

fclose(out);

【参考代码】

intfun(charstr[])

{

inti,n=0,fg=1,j=0;

while(str[j])

{

n++;

j++;

}

n/2;

i++)

/*循环比较字符*/

if(str[i]==str[n-1-i]);

/*相同,什么都不作*/

else

/*不同,直接跳出循环*/

fg=0;

break;

returnfg;

}

统计一行字符串中单词的个数,作为函数值返回。

一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

#include<

string.h>

intfun(char*s)

/************Begin*************/

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

FILE*wf;

charline[N];

intnum=0;

Enterastring:

\n"

gets(line);

num=fun(line);

Thenumberofwordis:

%d\n\n"

num);

/******************************/

wf=fopen("

d:

\\out19.dat"

fprintf(wf,"

%d"

fun("

Thisisabigcar"

));

fclose(wf);

/*****************************/

inti,j=0;

for(i=0;

s[i]!

='

\0'

;

if(s[i]!

'

&

(s[i+1]=='

||s[i+1]=='

))

/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/

returnj;

/*返回单词个数*/

/*假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

除了字符串前导的*号之外,将串中其他*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。

*/

voidfun(char*a)

/************Begin*************/

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

chars[81];

FILE*in,*out;

\n"

fun(s);

Thestringafterdeleted:

/******************************/

in=fopen("

in21.dat"

r"

debug\\out21.dat"

8;

{

fscanf(in,"

%s"

s);

fprintf(out,"

%s\n"

}

fclose(in);

inti=0;

char*p=a;

while(*p&

*p=='

*'

a[i]=*p;

i++;

p++;

while(*p)

if(*p!

p++;

a[i]='

将字符串中的前导*号全部删除,中间和后面的*号不删除。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G*******。

注意:

部分源程序给出如下。

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

/************Begin**************/

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

FILE*wf,*in;

chars[81],t[81]="

****A*BC*DEF*G*******"

puts(s);

in18.dat"

debug\\out18.dat"

t);

fun(t);

while(*p=='

/*指针p指向字符串第一个字母*/

for(;

*p!

p++,a++)

*a=*p;

*a='

/*请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。

#defineN81

voidfun(char*s)

 

chara[N];

"

gets(a);

Theoriginalstringis:

puts(a);

fun(a);

Thestringaftermodified:

strcpy(a,"

HelloWorld!

ThisisafirstCprogram!

\\out17.dat"

a);

charch;

inti,m,n;

i=0;

m=n=strlen(s)-1;

while(i<

(n+1)/2)

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m--;

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

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

合并的方式是:

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

例如,当a=45,b=12,调用该项函数后,c=4152。

conio.h>

voidfun(inta,intb,long*c)

/************Begin************/

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

inta,b;

longc;

Inputa,b:

scanf("

%d%d"

&

a,&

b);

fun(a,b,&

c);

Theresultis:

%ld\n"

c);

debug\\out20.dat"

for(a=10;

a<

20;

a++)

fun(a,109-a,&

%d\n"

fclose(out);

*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;

程序改错

/*下列给定程序中函数fun的功能是:

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。

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

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

stdlib.h>

voidfun(char*s,char*t)

inti,s1;

s1=strlen(s);

for(i=0;

s1;

/**********ERROR**********/

t[i]=s[s1-1];

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

t[2*s1]="

\0"

{chars[100],t[100];

\nPleaseenterstrings:

fun(s,t);

printf("

Theresultis:

%s\n"

【参考答案】

t[i]=s[s1-1-i];

t[i]=s[s1-i-1i];

t[2*s1]='

t[2*s1]=0;

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

在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上,

并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入ABCDeFGH,调用后字符串中的内容为eABCDFGH。

fun(char*p)

{charmax,*q;

inti=0;

max=p[i];

while(p[i]!

=0)

{if(max<

p[i])

p=q+i;

max=p[i];

while(q<

p)

{*q=*(q-1);

q--;

p[0]=max;

{charstr[80];

gets(str);

\nTheoriginalstring:

puts(str);

fun(str);

\nThestringaftermoving:

voidfun(char*p)

q=p+i;

q=i+p;

while(q>

while(p<

q)

计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

intfun(char*s,char*t)

{intn;

char*p,*r;

n=0;

p=&

s[0];

*r=t;

while(*p)

if(*r==*p)

r++;

if(*r=='

{

n++;

【1】;

}

p++;

returnn;

{chara[N],b[N];

intm;

system("

CLS"

\nPleaseenterstringa:

gets(a);

\nPleaseentersubstringb:

gets(b);

m=fun(a,b);

m=printf("

\nTheresultis:

m=%d\n"

m);

r=t;

r=&

t[0];

从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,

平均分存放在形参aver所指的存储单元中。

例如输入8名学生的成绩:

80.5607290.59851.58864

则低于平均分的学生人数为4(平均分为75.5625)。

#defineN20

intfun(float*s,intn,float*aver)

{floatave,t=0.0;

intcount=0,k,i;

for(k=0;

k<

n;

k++)

t=s[k];

ave=t/n;

if(s[i]<

ave)count++;

*aver=&

ave;

returncount;

{floats[30],aver;

intm,i;

\nPleaseenterm:

m);

\nPleaseenter%dmark:

m;

i++)scanf("

%f"

s+i);

\nThenumberofstudents:

fun(s,m,&

aver));

Ave=%f\n"

aver);

t+=s[k];

t=t+s[k];

*aver=ave;

实现两个整数的交换。

例如,给a和b分别输入60和65,输出为:

a=65b=60

voidfun(inta,b)

{intt;

t=b;

b=a;

a=t;

{inta,b;

Entera,b:

scanf("

fun(&

a,&

a=%db=%d\n"

a,b);

voidfun(int*a,int*b)

t=*b;

*b=*a;

*a=t;

t=*b,*b=*a,*a=t;

t=*a;

*a=*b;

*b=t;

t=*a,*a=*b,*b=t;

/*给定程序中函数fun的功能是:

把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。

例如,输入的数为:

551234,

输出结果应当是:

a=55.0,b=34.0,c=12.0。

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

给定源程序:

*/

voidfun(float*a,float*b,float*c)

float*k;

if(*a<

*b)

{k=*a;

*a=*b;

*b=k;

if(*a>

*c)

{k=*c;

*c=*a;

*a=k;

if(*b<

{k=*b;

*b=*c;

*c=k;

intmain()

{floata,b,c;

printf("

Inputabc:

%f%f%f"

b,&

a=%4.1f,b=%4.1f,c=%4.1f\n\n"

a,b,c);

fun(&

return0;

floatk;

*a<

*c

*c>

*a

p=j;

p=i;

程序填空

/*给定程

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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