C语言机试编程题库Word下载.docx
- 文档编号:19473960
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:97
- 大小:42.15KB
C语言机试编程题库Word下载.docx
《C语言机试编程题库Word下载.docx》由会员分享,可在线阅读,更多相关《C语言机试编程题库Word下载.docx(97页珍藏版)》请在冰豆网上搜索。
,&
x);
\neps=%lf,PI=%lf\n"
x,fun(x));
3.求出1~1000之间能被7或11整除,但不能同时被7和11
整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
voidfun(int*a,int*n)
inti,j=0;
for(i=1;
=1000;
i++)/*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&
&
i%77!
=0)
a[j++]=i;
*n=j;
{intaa[1000],n,k;
voidNONO();
fun(aa,&
n);
for(k=0;
k<
n;
k++)
if((k+1)%10==0)printf("
\n"
elseprintf("
%5d"
aa[k]);
4.规定输入的字符串中只包含字母和*号。
编写函数fun,其功能是:
删除字符串中所有的*号。
编写函数时,不能使用C语言提供的字符串函数。
voidfun(char*a)
a[i]!
='
\0'
;
if(a[i]!
*'
)
a[j++]=a[i];
/*若不是要删除的字符'
则留下*/
a[j]='
main()
{chars[81];
Enterastring:
);
gets(s);
fun(s);
Thestringafterdeleted:
puts(s);
NONO();
5.实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后面。
voidfun(charp1[],charp2[])
inti,j;
p1[i]!
i++);
p2[j]!
p1[i++]=p2[j];
p1[i]='
{chars1[80],s2[40];
Enters1ands2:
%s%s"
s1,s2);
s1=%s\n"
s1);
s2=%s\n"
s2);
Invokefun(s1,s2):
fun(s1,s2);
Afterinvoking:
%s\n"
NONO();
6.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:
求出该同学的平均分,并放入记录的ave成员中。
#defineN8
typedefstruct
{charnum[10];
doubles[N];
doubleave;
}STREC;
voidfun(STREC*a)
doubleave=0.0;
inti;
N;
a->
ave=a->
ave+a->
s[i];
ave/=N;
{STRECs={"
GA005"
85.5,76,69.5,85,91,72,64.5,87.5};
fun(&
s);
The%s'
sstudentdata:
s.num);
i++)
%4.1f\n"
s.s[i]);
\nave=%7.3f\n"
s.ave);
7.N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。
请编写函数fun,其功能是:
求出平均分,并由函数值返回。
stdlib.h>
structslist
{doubles;
structslist*next;
};
typedefstructslistSTREC;
doublefun(STREC*h)
STREC*p=h->
next;
while(p!
=NULL)
{ave=ave+p->
s;
p=p->
returnave/N;
STREC*creat(double*s)
{STREC*h,*p,*q;
inti=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->
s=0;
while(i<
N)
{q=(STREC*)malloc(sizeof(STREC));
q->
s=s[i];
i++;
p->
next=q;
p=q;
next=0;
returnh;
outlist(STREC*h)
{STREC*p;
p=h->
head"
do
{printf("
->
%4.1f"
p->
s);
p=p->
=0);
\n\n"
{doubles[N]={85,76,69,85,91,72,64,87},ave;
STREC*h;
h=creat(s);
outlist(h);
ave=fun(h);
ave=%6.3f\n"
ave);
8.将所有大于1小于m的非素数存入xx所指数组中,非素数的个数通过k返回。
voidfun(intm,int*k,intxx[])
/*inti,j;
intt=0;
for(i=2;
m;
{j=2;
while(j<
i)
{if(i%j==0)
{xx[t]=i;
t++;
break;
j++;
*k=t;
}*/
inti,j,n=0;
for(i=4;
i++)/*找出大于1小于整数m的非素数*/
{for(j=2;
i;
if(i%j==0)break;
if(j<
i)xx[n++]=i;
*k=n;
/*返回非素数的个数*/}
intm,n,zz[100];
printf("
\nPleaseenteranintegernumberbetween10and100:
"
);
scanf("
%d"
&
n);
fun(n,&
m,zz);
\n\nThereare%dnon-primenumberslessthan%d:
m,n);
for(n=0;
n<
m;
n++)
\n%4d"
zz[n]);
9.求ss所指字符串中指定字符的个数,并返回此值。
string.h>
#defineM81
intfun(char*ss,charc)
inti=0;
for(;
*ss!
ss++)
if(*ss==c)
returni;
{chara[M],ch;
\nPleaseenterastring:
gets(a);
\nPleaseenterachar:
ch=getchar();
\nThenumberofthecharis:
%d\n"
fun(a,ch));
NONO();
10.计算n门课程的平均分,结果作为函数值返回。
floatfun(float*a,intn)
inti;
floatav=0.0;
for(i=0;
i<
n;
av=av+a[i];
return(av/n);
{floatscore[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
\nAveragescoreis:
%5.2f\n"
aver);
11.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。
把分数最高的学生数据放在b所指的数组中。
注意:
分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
#defineN16
ints;
intfun(STREC*a,STREC*b)
inti,j=0,max=a[0].s;
a[i].s)max=a[i].s;
if(max==a[i].s)b[j++]=a[i];
returnj;
{STRECs[N]={{"
GA05"
85},{"
GA03"
76},{"
GA02"
69},{"
GA04"
85},
{"
GA01"
91},{"
GA07"
72},{"
GA08"
64},{"
GA06"
87},
GA015"
GA013"
GA012"
GA014"
91},
GA011"
77},{"
GA017"
GA018"
GA016"
72}};
STRECh[N];
inti,n;
FILE*out;
n=fun(s,h);
The%dhighestscore:
n);
%s%4d\n"
h[i].num,h[i].s);
out=fopen("
out.dat"
"
w"
fprintf(out,"
%d\n"
%4d\n"
h[i].s);
fclose(out);
12.规定输入的字符串中只包含字母和*号。
除了字符串前导的*号之外,将串中其他*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
char*p=a;
while(*p&
*p=='
)
{
a[i]=*p;
p++;
while(*p)
if(*p!
{a[i]=*p;
i++;
a[i]='
13.编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中‘a'
到'
z'
26个小写字母各自出现的次数,并依次放在pp所指的数组中。
voidfun(char*tt,intpp[])
26;
pp[i]=0;
/*初始化pp数组各元素为0*/
*tt!
tt++)
if(*tt>
a'
*tt<
pp[*tt-'
]++;
{charaa[1000];
intbb[26],k;
\nPleaseenteracharstring:
);
%s"
aa);
fun(aa,bb);
26;
k++)printf("
%d"
bb[k]);
NONO();
14.规定输入的字符串中只包含字母和*号。
将字符串尾部的*号全部删除,前面和中间的*号不动。
while(*a!
a++;
a--;
while(*a=='
a--;
*(a+1)='
15.比较字符串的长度,不得使用C语言提供的求字符串长度的函数,函数返回较长的字符串。
若两个字符长度相同,则返回第一个字符串。
char*fun(char*s,char*t)
s[i]!
='
i++);
t[j]!
j++);
if(i<
=j)
returnt;
else
returns;
{chara[20],b[20];
Input1thstring:
gets(a);
Input2thstring:
gets(b);
fun(a,b));
NONO();
16.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体的数组s中。
函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
strcmp
STRECfun(STREC*a,char*b)
STRECstr={"
\0"
-1};
if(strcmp(a[i].num,b)==0)
str=a[i];
returnstr;
GA003"
GA002"
GA004"
GA001"
GA007"
GA008"
GA006"
STRECh;
charm[10];
Theoriginaldata:
{if(i%4==0)printf("
%s%3d"
s[i].num,s[i].s);
\n\nEnterthenumber:
gets(m);
h=fun(s,m);
Thedata:
\n%s%4d\n"
h.num,h.s);
h=fun(s,"
fprintf(out,"
17.将两个两位数的正整数a、b合并成一个整数放在c中。
合并方式是:
将a数的十位和个位依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
voidfun(inta,intb,long*c)
*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;
{inta,b;
longc;
Inputa,b:
%d,%d"
a,&
b);
fun(a,b,&
c);
Theresultis:
c);
18.利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=cos(Xn)
(1)取x1初值为0.0...
doublefun()
doublex0,x1;
x1=0.0;
do
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>
=1e-6);
returnx1;
Root=%f\n"
fun());
19.规定输入的字符串中只包含字母和*号。
将字符串中的前导*号全部移到字符串的尾部。
inti=0,n=0;
char*p;
p=a;
while(*p=='
n++;
p++;
while(*p)
a[i]=*p;
while(n!
=0)
a[i]='
n--;
intn=0;
voidNONO();
Thestringaftermoveing:
20.将两个两位数的正整数a、b合并成一个整数放在c中。
将a数的十位和个位依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
%ld\n"
21.编写函数fun,其功能是计算:
s=根号(ln1+ln2+ln3+...+lnm)s作为函数值返回。
(doublelog(doublex))
doublefun(intm)
doubles=0.0;
=m;
s=s+log(i);
returnsqrt(s);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 题库