二级C语言密押卷南开100 题.docx

上传人:b****8 文档编号:23885332 上传时间:2023-05-21 格式:DOCX 页数:28 大小:21.35KB
下载 相关 举报
二级C语言密押卷南开100 题.docx_第1页
第1页 / 共28页
二级C语言密押卷南开100 题.docx_第2页
第2页 / 共28页
二级C语言密押卷南开100 题.docx_第3页
第3页 / 共28页
二级C语言密押卷南开100 题.docx_第4页
第4页 / 共28页
二级C语言密押卷南开100 题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

二级C语言密押卷南开100 题.docx

《二级C语言密押卷南开100 题.docx》由会员分享,可在线阅读,更多相关《二级C语言密押卷南开100 题.docx(28页珍藏版)》请在冰豆网上搜索。

二级C语言密押卷南开100 题.docx

二级C语言密押卷南开100题

951

#include

#include

typedefstructs

{

intdata;

structs*next;

}NODE;

voidfun(intn,char*filename)

{

NODE*h,*p,*s;

FILE*f;

inti;

h=p=(NODE*)malloc(sizeof(NODE));

h->data=0;

for(i=1;i

{

s=(NODE*)malloc(sizeof(NODE));

s->data=i;

p->next=s;

p=p->next;

}

p->next=NULL;

if((f=fopen(filename,"w"))==NULL)

{

printf("Cannotopenfile.dat!

");

exit(0);

}

p=h;

fprintf(f,"THELIST\n");

printf("THELIST\n");

while(p)

{

fprintf(f,"%3d",p->data);

printf("%3d",p->data);

if(p->next!

=NULL)

{

fprintf(f,"->");

printf("->");

}

p=p->next;

}

fprintf(f,"\n");

printf("\n");

fclose(f);

p=h;

while(p)

{

s=p;

p=p->next;

free(s);

}

}

main()

{

char*filename="file.dat";

intn;

printf("\nPleaseinputn:

");

scanf("%d",&n);

fun(n,filename);

}

923#include

#include

#include

voidfun(char*a,intn,intj,intk)

{

inti=0;

char*p;

for(p=a+j;p

{

*(a+i)=*p;//用第一个非"#"号字符特代"#"字符

i++;

}

*(a+i)='\0';//在新生成的字符串加尾符

}

main()

{

charstr[81],*s,*st;

intm=0,t=0,h=0;

FILE*out;

printf("Enterastring:

\n");

gets(str);

s=st=str;

while(*s)

{

s++;

m++;

}

s--;

while(*s=='#')

{

s--;

t++;

}

while(*st=='#')

{

st++;

h++;

}

fun(str,m,h,t);

printf("Thestringafterdeleted:

\n");

puts(str);

out=fopen("outfile.dat","w");

strcpy(str,"#####A#BC#DE#F#######");

fun(str,strlen(str),5,7);

fprintf(out,"%s",str);

fclose(out);

}

853

#include

#include

#include

#include

#defineM5

voidfun(intb[][M],intn)

{

inti,j;

for(j=0;j

for(i=0;i<=j;i++)//行小于列的行循环

b[i][j]=b[i][j]*n;//右上角元素乘以n

}

main()

{

intb[M][M],n,i,j;

FILE*out;

printf("Thearray\n");

for(i=0;i

{

for(j=0;j

{

b[i][j]=rand()%20;

printf("%4d",b[i][j]);

}

printf("\n");

}

n=rand()%4;

printf("n=%4d\n",n);

fun(b,n);

printf("THERESULT\n");

for(i=0;i

{

for(j=0;j

printf("%4d",b[i][j]);

printf("\n");

}

out=fopen("outfile.dat","w");

for(i=0;i

for(j=0;j

b[i][j]=i*j;

fun(b,6);

for(i=0;i

{

for(j=0;j

fprintf(out,"%4d",b[i][j]);

fprintf(out,"\n");

}

fclose(out);

}

843

编写函数fun,该函数的功能是:

将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

#include

#defineM3

#defineN4

voidfun(char(*a)[N],char*c)

{

inti,j,k=0;

for(j=0;j

for(i=0;i

{

c[k]=*(*(a+i)+j);//将每一个元素赋值到一维数组c

k++;//指向下一数组元素

}

c[k]='\0';//数组结束

}

833

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

F=开根号[㏑

(1)+㏑

(2)+㏑(3)L+㏑(n)]

F作为函数值返回。

在c语言中可调用㏒(n).㏒函数的引用说明:

double㏒(doublex)

#include

#include

#include

doublefun(intn)

{

inti;

doublef=0.0,log(doublex);//调用log函数

for(i=1;i<=n;i++)//在C语言中可调用log(n)函数求ln(n)

f=f+log(i);

f=sqrt(f);//利用C语言中的sqrt函数求平方根

returnf;

823

请编写函数fun,其功能是将两个两位数的整数x、y合并成一个整数放在z中。

合并的方式是:

将x的十位和个位依次放在z的十位和千位上,y的十位和个位依次放在z的个位和百位上。

include

#include

voidfun(intx,inty,long*z)

{

*z=(x%10)*1000+(y%10)*100+(x/10)*10+y/10;

}

813

请编写函数fun,其功能是计算并输出下列多项式值:

Fn=(1-1/2)+(1/3-1/4)+L+(1/(2m-1)-1/2m)

#include

doublefun(intm)

{

inti;

doublefn=0.0;//初始化多项式求和的值

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

fn+=(1.0/(2*i-1)-1.0/(2*i));//多项式中的一项

returnfn;

}

803

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

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

#include

#defineM10

typedefstruct

{

charnum[10];

doubles;

}SCORE;

doublefun(SCORE*c,SCORE*l,int*n)

{

doubleaver=0.0;//放平均分的变量设置初始化

inti,j=0;

for(i=0;i

aver+=c[i].s;

aver/=M;//求平均分

for(i=0;i

if(c[i].s<=aver)//如果成绩小于等于平均分

{

*(l+j)=c[i];//将小于平均分的成绩存入l

j++;

}

*n=j;//将小于平均分的个数j赋值给n

returnaver;//返回平均分

}

793

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

将两个两位数的正整数x、y合并成一个整数放在z中。

合并方式是:

将x的十位和个位依次放在z的千位和十位上,y的十位和个位依次放在z的个位和百位上。

#include

#include

voidfun(intx,inty,long*z)

{

*z=(x/10)*1000+(x%10)*10+(y%10)*100+y/10;

}

main()

{

791

#include

#include

#defineN10

typedefstructs

{

charnum[10];

ints;

}student;

fun(studentSTU[],student*s)

{

studenta;

inti;

a=STU[0];

for(i=1;i

if(STU[i].s>a.s)

a=STU[i];

*s=a;

}

main()

{

studentSTU[N]=

{

{"01",81},{"02",89},{"03",66},{"04",87},{"05",77},{"06",90},{"07",79},{"08",61},{"09",80},{"10",71}},m;

inti;

printf("Theoriginaldata\n");

for(i=0;i

printf("No=%sMark=%d\n",STU[i].num,STU[i].s);

fun(STU,&m);

printf("Thehighst:

%s,%d\n",m.num,m.s);

}

783与793763743相似(相同)。

如下:

{

*z=(y/10)*1000+(x%10)*100+(y%10)*10+x/10;

}

773

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

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

#include

floatfun(float*b,intm)

{

floatave=0.0;

inti;

for(i=0;i

ave+=b[i];

ave/=m;

returnave;

}

753

734

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

计算并输出给定10个数的方差:

F=sqart((1/10)∑

include

#include

doublefun(doubley[10])

{

inti,j;

doublef=0.0,f1=0.0;//初始化变量

for(i=0;i<10;i++)//求公式中y的值

f1+=y[i];

f1/=10;

for(j=0;j<10;j++)//求公式中给出的根号下的部分

f+=(y[j]-f1)*(y[j]-f1);

f/=10;

f=pow(f,0.5);//求平方根

returnf;

}

723

M名学生的成绩已在主函数中放入一个带头节点的链表结构中,a指向链表的头节点。

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

求出平均分,由函数值返回。

#include

#include

#defineM5

structlist

{

doubles;

structlist*next;

};

typedefstructlistSCORE;

doublefun(SCORE*a)

{

doubleaver=0.0;//初始化平均值

while(a!

=NULL)//如果头指针不指向链表尾,就累加链表中成绩

{

aver+=a->s;//累加成绩

a=a->next;//指向下一个节点

}

aver/=M;//求平均分

returnaver;

}

713

假定输入的字符串中只包含字母和“#”号,请编写函数fun,它的功能是:

将字符尾部的“#”号全部删除,前面和中间的“#”号不删除。

#include

#include

#include

voidfun(char*s)

{inti=0;char*p,*q;p=q=s;

while(*p)p++;p--;

while(*p=='#')p--;

while(q<=p)

{s[i]=*q;i++;q++;}

s[i]='\0';}

703

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

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

#include

#include

voidfun(intn,int*m,inta[])

{

inti,j;

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

for(i=2;i

{j=2;

while(j

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

{a[t]=i;t++;break;}

j++;}

*m=t;

}

}

 

693

已知学生的记录由学号和学习成绩构成,M名学生的数据已存入stu结构体函数组中。

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

找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

已给出函数的首部,请完成该函数。

#include

#include

#include

#defineM10

typedefstructss

{

charnum[10];

ints;

}SCORE;

voidfun(SCOREstu[],SCORE*s)

{inti,max;max=stu[0].s;

for(i=0;i

if(stu[i].s>max)

{max=stu[i].s;*s=stu[i];}

}

683

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

将str所指的字符串ASCII值为偶数的字符删除,串中剩余字符形成一个新串放入s所指的数组中。

#include

#include

#include

voidfun(char*str,chars[])

{inti,j=0,n=strlen(str);

for(i=0;i

if(str[i]%2!

=0)

{s[j]=str[i];j++;}s[j]='\0';}

653

#include

#include

#include

voidfun(char*s,char*r,char*v)

{inti=0;char*q=s;

while(q

{s[i]=*q;q++;i++;}

while(q

{f(*q!

='#')

{s[i]=*q;i++;}

q++;}

while(*q)

{s[i]=*q;i++;q++;}

s[i]='\0';

}

673难

#include

#include

doublefun(doublex)

{doublef1=1.0,p=1.0,sum=0.0,f0,t=1.0;

intn=1;

do{f0=f1;//前一项sum+=f0;//求和

t*=n;//每一项中的阶乘项

p*=(0.5-n+1)*x;//每一项中的分子

f1=p/t;//每一项n++;}

while(fabs(f1-f0)>=1e-6);//循环条件

returnsum;

}

663

学生的记录由学生和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数fun,其功能是:

把分数最高的学生数据放在high所指的数组中,注意:

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

#include

#defineM10

typedefstruct

{

charnum[10];

ints;

}SCORE;

intfun(SCORE*p,SCORE*q)

{inti,j=0,n=0,max;max=p[0].s;

for(i=0;i

if(p[i].s>max)

max=p[i].s;

for(i=0;i

if(p[i].s==max)

{*(q+j)=p[i];j++;n++;}

returnn;}

653

假定输入的字符串只包含字母和“#”号。

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

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

形参r已指向字符串中的第一个字母,形参v已指向字符串中最后一个字母。

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

#include

#include

#include

voidfun(char*s,char*r,char*v)

{inti=0;char*q=s;

while(q

while(q

='#'){s[i]=*q;i++;}q++;}

while(*q){s[i]=*q;i++;q++;}s[i]='\0';}

main()

{

charstr[100],*p,*q;

FILE*out;

printf("Enterastring:

\n");

gets(str);

p=q=str;

while(*p)

p++;

p--;

while(*p=='#')

p--;

while(*q=='#')

q++;

fun(str,q,p);

printf("Thestringafterdeleted:

\n");

puts(str);

out=fopen("outfile.dat","w");

strcpy(str,"#####a#b#c#d######");

fun(str,str+4,str+13);

fprintf(out,"%s",str);

fclose(out);

}

643与653、593相似

假定输入的字符串只含字母和“#”号,请编写函数fun,它的功能是:

删除字符串中所有的“#”号。

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

#include

#include

voidfun(char*s)

{inti=0;char*p=s;

while(*p)

{if(*p!

='#'){s[i]=*p;i++;}p++;}

s[i]='\0';}

633

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

实现两个字符串的链接(不适使用库函数strcat),即把str2所指的字符串链接到str1所指的字符串后。

#include

#include

voidfun(charstr1[],charstr2[])

{inti=0,n=0;char*p=str1,*q=str2;

while(*p){p++;n++;}

i=n;

while(*q){str1[i]=*q;q++;i++;}

str1[i]='\0';}

623

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

将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

#include

#defineM4

#defineN20

voidfun(charstr[M][N],char*a)

{inti,j,k=0;

for(i=0;i

{for(j=0;j

if(*(*(str+i)+j))//如果不指向行的尾

{a[k]=*(*(str+i)+j);//将行中的值赋值给数组a

k++;//数组下标加1}

else//如果指向尾,则跳出这一行break;

a[k]='\0';//数组加尾符}}

main()

{

charmatrix[M][N]={"1111","2222222","33","4444"},i;

charstr[100]={"****************"};

FILE*out;

printf("Thestring:

\n");

for(i=0;i

puts(matrix[i]);

printf("\n");

fun(matrix,str);

printf("Thestring:

\n");

printf("%s",str);

printf("\n\n");

out=fopen("outfile.dat","w");

fprintf(out,"%s",str);

fclose(out);

}

613

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

删除一维数组中所有相同的数,使之只剩一个。

数组中的数已按由小到大的顺序排列,函数返回删除后数组中的数据的个数。

#

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

当前位置:首页 > 小学教育 > 其它课程

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

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