最新C语言机试题库.docx

上传人:b****5 文档编号:28748593 上传时间:2023-07-19 格式:DOCX 页数:60 大小:31.93KB
下载 相关 举报
最新C语言机试题库.docx_第1页
第1页 / 共60页
最新C语言机试题库.docx_第2页
第2页 / 共60页
最新C语言机试题库.docx_第3页
第3页 / 共60页
最新C语言机试题库.docx_第4页
第4页 / 共60页
最新C语言机试题库.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

最新C语言机试题库.docx

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

最新C语言机试题库.docx

最新C语言机试题库

5请编写一个函数,它的功能是:

计算n门课程的平均分,计算结果作为函数值返回。

例如5门课程的成绩是:

90.5,72,80,61.5,55,函数返回值为:

71.80

#include

floatfun(float*a,intn)

{

inti;

floatave=0.0;

for(i=0;i

ave=ave/n;

returnave;

}

6请编写一个函数,它的功能是:

比较两个字符串的长度,函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

例如输入beijing<>shanghai<>,函数将返回shanghai

#include

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

{

inti;

char*p=s,*q=t;

intn=0,m=0;

while(*p)

{

n++;

p++;

}

while(*q)

{

m++;

q++;

}

if(n>=m)

p=s;

else

p=t;

returnp;

}

7请编写一个函数,它的功能是:

求出1到m之间能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数

例如m的值为50,则输出:

7111421283335424449

#include

#defineM100

voidfun(intm,int*a,int*n)

{

inti,j=0;*n=0;

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

if(i%7==0||i%11==0)

{

a[j]=i;

j++;

}

*n=j;

}

8请编写一个函数,它的功能是:

将ss所指字符串中所有下标为奇数位置上的字母转换为大写例如输入abc4EFg则输出aBc4EFg

#include

#include

voidfun(char*ss)

{

inti;

for(i=1;i

{

if(ss[i]>='a'&&ss[i]<='z')ss[i]-=32;

}

}

9请编写一个函数,它的功能是:

将s所指字符串中除了下标为偶数、同时ASCII直为偶数的字符外,其余的全部删除;剩余字符组成一个新字符串放在t所指的数组中。

例如s所指字符串中的内容为ABCDEFG12346,、、、、、、、、t所指的数组中的内容为246

#include

#include

voidfun(char*s,chart[])

{

inti,j=0;

for(i=0;i

if(s[i]%2==0)t[j++]=s[i];

t[j]='\0';

}

10请编写一个函数,它的功能是:

将s所指字符串中下标为偶数的字符删除,剩余字符组成一个新字符串放在t所指的数组中

例如s所指字符串中的内容为ABCDEFGHIJK,t所指的数组中的内容为BDFHJ

#include

#include

voidfun(char*s,chart[])

{

inti,j=0;

for(i=1;i

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

t[j]='\0';

}

11请编写一个函数,它的功能是:

将s所指字符串中ASCII直为偶数的字符删除,剩余字符组成一个新字符串放在t所指的数组中

例如s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数、、、、字符2的ASCII码值为偶数、、、都应当删除,类他依次类推。

最后t所指的数组的内容应是ACEG135

#include

#include

voidfun(char*s,chart[])

{

inti,j=0;

for(i=0;i

if(s[i]%2)

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

t[j]=0;

}

12已知学生的记录由学好和成绩构成,N名学生的数据已存入结构体数组a中,请编写一个函数,它的功能是:

找出成绩最高的学生记录,通过形参指针传回主函数。

#include

#include

#defineN10

typedefstructss

{charnum[10];ints;}STU;

fun(STUa[],STU*s)

{

inti,max=a[0].s,j=0;

for(i=1;i

if(max

j=i;

max=a[i].s;

}

*s=a[j];

}

13程序定义了N*N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N],intn),函数的功能是:

使数组左下三角元素中的值乘以n

例如n的值为3,a数组的值为a=197则返回a数组的值为a=397

238698

456121518

#include

#include

#defineN5

voidfun(inta[][N],intn)

{

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]*=n;

}

14程序定义了N*N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N],intn),函数的功能是:

使数组左下三角元素中的值全部为0

例如a数组的值为a=197则返回a数组的值为a=097

238008

456000

#include

#include

#defineN5

voidfun(inta[][N])

{

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]=0;

}

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

二维数组中的书已经在主函数中赋予

#include

#defineM3

#defineN4

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

{

inti,j,min,k;

for(i=0;i

min=tt[0][i];k=0;

for(j=1;j

if(min>tt[j][i]){

min=tt[j][i];

k=j;

}

pp[i]=tt[k][i];

}

}

16请编写一个函数unsingnedfun(unsingnedw),w是一个大于10的无符号整数,若w是n为的整数,函数求出w的第n-1为的数作为函数返回值。

例如w值为5923,则函数返回923,w的值为923,函数返回23

#include

unsignedfun(unsignedw)

{

unsignedt,s=0,s1=1,p=0;

t=w;

while(t>10)

{

if(t/10)

p=t%10;

s=s+p*s1;

s1=s1*10;

t=t/10;

}

returns;

}

17请编写一个函数fun(char*s),函数的功能是把s所指字符串中的内容倒置。

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

#include

#include

#defineN81

fun(char*s)

{

charb[N];

inti=0,j;

memset(b,0,N);

for(j=strlen(s)-1;j>=0;j--)b[i++]=s[j];

strcpy(s,b);

}

18请编写一个函数,它的功能是:

从s所指的字符串中删除给定的字符,同一字母的大、小写按不同字符处理。

若程序执行时输入字符串为:

turbocandBorlandc++,从键盘上输入字符:

n,则输出后变为tuebocadborladc++

、、、、、、、、

#include

#include

voidfun(chars[],charc)

{

char*p=s;

inti=0;

while(*p){

if(*p!

=c)s[i++]=*p;

p++;

}

s[i]='\0';

}

19请编写一个函数,对长度为7的字符串,除首尾字符外,将其与5个字符按ASCII降序排列。

例如原来的字符串为CEAedca,排序后输出CedcEAa

#include

#include

#include

voidfun(char*s,intnum)

{

chart;

inti,j;

for(i=1;i

//对n个元素进行循环选择

for(j=i+1;j

if(s[i]

//将str[i]设为最大值,和剩下的j~n-1进行比较

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

20请编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为asdasasdfgasdzx67asdmklo,字符串为as,则应输出6

#include

#include

intfun(char*str,char*substr)

{

intcnt=0;

char*p=str,*q;

while(*p){

q=strstr(p,substr);

if(q==NULL)break;

p=q+strlen(substr);

cnt++;

}

returncnt;

}

21请编写一个函数,它的功能是:

将所有大于1小于m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如输入17,则输出46810121416

#include

voidfun(intm,int*k,intxx[])

{

inti,j;

intt=0;//初始化数组个数

for(i=2;i

{

j=2;

while(j

{

if(i%j==0)//如果i不是素数

{

xx[t]=i;

t++;

break;

}

j++;

}

*k=t;

}

}

22请编写一个函数,它的功能是:

求出ss所指字符串中指定字符的个数,并返回此值。

例如输入字符串123412132输入字符为1,则输出3

#include

#include

#defineM81

intfun(char*ss,charc)

{

intcnt=0;

char*p=ss;

while(*p){

if(*p==c)cnt++;

p++;

}

returncnt;

}

23请编写一个函数,它的功能是:

实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。

计算结果main函数中输出。

例如输入下面矩阵123,其转置矩阵为147程序输出为2610

45625861014

789369101418

#include

voidfun(inta[3][3],intb[3][3])

{

intc[3][3];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++){

c[i][j]=a[j][i];//矩阵的转置

b[i][j]=a[i][j]+c[i][j];

}

}

24请编写一个函数,它的功能是:

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

#include

voidfun(int*a,int*n)

{

inti;

*n=0;

for(i=7;i<1000;i++)

if(((i%7)==0||(i%11)==0)&&(i%77)!

=0)a[(*n)++]=i;

}

25请编写一个函数voidfun(char*tt,intpp[]),统计tt所指字符串中a到z26个小写字母各自出现的次数,并依次放到pp所指的数组中

例如输入字符串abcdefgabcdeabc后,程序输出结果3332211000000000000

#include

#include

voidfun(char*tt,intpp[])

{

char*p=tt;

inti;

for(i=0;i<26;i++)pp[i]=0;

while(*p){

if(*p>='a'&&*p<='z')pp[*p-'a']+=1;

p++;

}

}

26请编写一个函数voidfun(chara[],charb[]),其功能是:

删除一个字符串中指定下标的字符。

其中,a指向原来字符串,剩下字符存放在b所指数组中,n中存放指定的下标。

例如输入word,然后输入3,则调用后结果为word

#include

#include

#defineLEN20

voidfun(chara[],charb[],intn)

{

intp,m=0;

for(p=0;p

if(p!

=n)//如果字符下标不满足题目要求的标志n

{

b[m]=a[p];

//原始串的字符赋值给新串b

m++;

}

b[m]='\0';//新串末尾加上结束符

}

27请编写一个函数,它的功能是:

根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/1+2+1/1+2+3+、、、、、、+1/1+2+3+、、、、、+n,n值为11时,函数值为1.833333

#include

doublefun(intn)

{

intk;

floatstr=1.0,sum=1.0;

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

{

sum=sum+k;//求得每一项的分母

str=str+1/sum;//级数累加求和

}

returnstr;

}

28请编写一个函数,它的功能是:

利用以下所示的简单迭代方法求方程:

cos(x)-x=0的一个实根。

Xn+1=cos(Xn)、、、、、、程序将输出结果Root=0.739086

#include

#include

doublefun()

{

floatx0,x1=0.0;

do{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001);

returnx1;

}

29请编写一个函数,它的功能是:

求Fibonacci数列中大于t的最小的一个数,结果由函数返回。

其中,Fibonacci数列F(n)的定义为:

F(0)=0,F

(1)=1,F(n)=F(n-1)+F(n-2)

例如当t=1000,函数值为1597

=#include

#include

intfun(intt)

{

intf0=0,f1=1,f;

do{

f=f0+f1;

f0=f1;

f1=f;

}while(f

returnf;

}

30请编写一个函数,它的功能是计算:

S=根号下(ln

(1)+ln

(2)+ln(3)_、、、、、、、+ln(m))S作为函数返回值。

例如m的值为20,函数值为6.506583

#include

#include

doublefun(intm)

{

doubles=0.0;

inti;

for(i=1;i<=m;i++)s+=log(1.0*i);

s=sqrt(s);

returns;

}

31规定输入的字符只包含字母和*。

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

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

例如字符串中的内容为*******A*BC*DEF*G****,删除后,字符串中的内容为A*BC*DEF*G****

#include

voidfun(char*a)

{

intj=0;

char*p=a;

while(*p=='*')p++;

while(*p){

a[j++]=*p;

p++;

}

a[j]='\0';

}

32规定输入的字符只包含字母和*。

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

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

例如字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容为ABCDEFG*******

#include

voidfun(char*a,char*p)

{

char*q=a;

intj=0;

while(*q&&q

if(*q!

='*')a[j++]=*q;

q++;

}

while(*p)a[j++]=*p++;

a[j]='\0';

}

33规定输入的字符只包含字母和*。

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

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

例如字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容为****ABCDEFG********

#include

voidfun(char*a,char*h,char*p)

{

intj=0;

char*q=a;

while(*q&&q

while(*h&&*p&&h

if(*h!

='*')a[j++]=*h;

h++;

}

while(*p)a[j++]=*p++;

a[j]='\0';

}

34规定输入的字符只包含字母和*。

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

将字符串中所有的*全部删除。

例如字符串中的内容为****A*BC*DEF*G*****,删除后,字符串中的内容为ABCDEFG

#include

voidfun(char*a)

{

intj=0;

char*p=a;

while(*p){

if(*p!

='*')a[j++]=*p;

p++;

}

a[j]='\0';

}

35规定输入的字符只包含字母和*。

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

使字符串中尾部的*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则什么也不做,字符串前面和中间的*不删除。

#include

voidfun(char*a,intn)

{

inti=0,j=0;

char*p,*t;

p=t=a;

while(*t)//让指针t指向串尾

t++;

t--;//t指向串中的最后一个字符

while(*t=='*')

//当t指针当前指向的字符是"*"号时

{

j++;//对"*"号计数的累加器加1

t--;//指向前一个字符

}

t++;//跳出"*"号统计后,指针t继续指向字符串的下一个字符

if(j>n)//对统计的"*"号数目大于给定的"*"号总数n

{

while(*p&&p

//当超出给定的"*"号数目,则开始进行截取

{

a[i]=*p;//截取n个"*"号

i++;

p++;

}

a[i]='\0';//对新生成的串加尾符

}

}

36某学生的记录由学好、8门课程成绩和平均分组成,学好、8门课程成绩已在主函数中给出,请编写一个函数,它的功能是:

求出该学生的平均分放在记录的ave成员中。

例如学生的成绩是85.5,76,69,5,85,91,72,64.5,87.5他的平均分应当是78.875

#include

#defineN8

typedefstruct

{charnum[10];

doubles[N];

doubleave;

}STREC;

voidfun(STREC*a)

{

inti;

for(i=0;i

a->ave=a->ave+a->s[i];

a->ave/=N;

}

37学生的记录由学好和成绩构成,N名学生的数据已存入结构体数组s中,请编写一个函数,它的功能是:

把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

#include

#defineN8

typedefstruct

{charnum[10];

doubles;

}STREC;

doublefun(STREC*a,STREC*b,int*n)

{

inti;

doubleave=0.0;

*n=0;

for(i=0;i

ave/=N;/*计算平均值*/

for(i=0;i

if(a[i].s

b[*n]=a[i];

(*n)++;/*人数加1*/

}

returnave;/*返回平均值*/

}

38学生的记录由学好和成绩构成,N名学生的数据已存入结构体数组s中,请编写一个函数,它的功能是:

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

#in

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

当前位置:首页 > 初中教育 > 语文

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

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