全国计算机等级考试c语言编程题目汇总
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h)
{int i,j=0;
for(i=0;i<N;i++)
if((a[i].s>=1&&a[i].s<=h)
b[j++]=a[i];
return j;
}
3.  程序设计
请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
void fun(int m,int *a,int *n)
{
int i;
*n=0;
for(i=7;i<=m;i++)
if((i%7==0)||(i%11==0))
a[(*n)++]=i;
}
3.  程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的,指定的学生号在主函数中输入,若没有到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
STREC fun(STREC*a,char *b)
{
STREC c;
Int i;
c.num[0]=’\0’;
c.s=-1;
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)==0)
{strcpy(c.num,a[i].num);
c.s=a[i].s;break;}
return c;
}
3.  程序设计
请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
void fun(char *ss)
{
int i;
for(i=1;i<strlen(ss);i+=2)
{if(ss[i]>=’a’&&ss[i]<=’z’)
ss[i]-=32;
}
}
3.  程序设计
请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14…。
double fun(double eps)
{ double s=1,t=1./3;
int n=1;
while(t>=eps)
{s+=t;n++;t=t*n/(2.0*n+1)
;}
return(s*2.0);
}
3.  程序设计
函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。
void fun(char *s,char t[])
{ int i,j=0;
for(i=0;i<strlen(s);i++)
if(s[i]%2==0)t[j++]=s[i];
t[j]=0;
}
3.  程序设计
函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
#include <stdio.h>
void fun(int a,int b,long *c)
{ *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;
}
3.  程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最高的放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
int fun(STREC *a,STREC *b)
{
int i,max=a[0].s,n=0
;
for(i=1;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(max==a[i].s)b[n++]=a[i];
return n;
}
3.  程序设计
请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
int fun(int a [M][N])
{
int tot=0,i,j;
for(i=0;i<N;i++)
{
tot +=a[0][i];
tot +=a[M-1][i];
}
for(i=1;i<M-1;i++){
tot +=a[i][0];
tot +=a[i][N-1];
}
return tot;
}
3.  程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最低的放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
int fun(STREC *a,STREC *b)
{
int i,j=0,min=a[0].s;
for(i=0;i<N;i++)
{ if(min>a[i].s){
j=0;
b[j++]=a[i];min=a[i].s;
}
else if(min==a[i].s)
b[j++]=a[i];
}
return j;
}
3.  程序设计
程序定义了N×N的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值饭给主函数中的s。
double fun(int w[][N])
{ int i,j,n=0;
double sum=0;
for(i=0;i<N;i++)
{  sum+=w[0][i]+w[N-1][i];
n+=2;}
for(i=1;i<N-1;i++)
{  sum+=w[i][0]+w[i][N-1];
n+=2;
}
return sum/n;
}
3.  程序设计
函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的个位和百位上,b中的十位和个位数依次放在变量c的十位和千位上。
#include <stdio.h>
void fun(int a,int b,long *c)
{
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);}
3.  程序设计
编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。
#include <stdio.h>
#define MAX100
int fun(int lim,int aa[MAX])
{int i,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<=(i/2);j++)
if(i%j==0)break;
if(j>(i/2))aa[k++]=i;
} return k;}
3.  程序设计
请编写函数fun,函数的功能是:计算并输出给定整数n的所有因子(不包过1和n本身)之和。规定n的值不大于1000.
int fun(int n)
{
int s=0,i;
for(i=2;i<n;i++)
if(n%i==0)s+=i;
return s;
}
3.  程序设计
请编写一个函数void fun(char*tt,int pp[ ]),统计在tt所指字符串中‘a’至‘z’26个小写字母各自出现在的次数,并依次放在pp数组中。
void fun(char*tt, int pp[ ])
{
char *p=tt;
int i;
for(i=0;i<26;i++)
pp[i]=0;
while(*p)
{if(*p>=’a’&&*p<=’z’)
pp[*p-‘a’]+=1;
p++;
}
}
3.  程序设计
函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。
#include <stdio. h>
#include <string. h>
void fun (char*s, char t[])
{
int
i, j=0;
for(i=0;i<strlen(s);i++)
if(s[i]%2) t[j++]=s[i];
t[j]=0;
}
3.  程序设计
请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
#include <stdio. h>
viod fun (int *a,int *n)
{int i;
*n=0;
for(i=7;i<1000;i++)
if(((i%7)= =0││(i%11)= =0
&&(i%77)!=0) a[(*n)++]=i;
}
3.  程序设计
请编写函数fun,函数的功能是:利用一下所示的简单迭代方法求方程求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1的初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001执行步骤(5)否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根作为函数值返回。程序将输出结果为:Root=0.739058。
float fun()
{
float x0,x1=0.0;
do{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>0.000001);
return x1;
}
3.  程序设计
函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
void fun(int a,int b,int*c)
{
*c=(a%10)*1000+(b%10)*100
+(a/10)*10+(b/10);
}
3.  程序设计
请编写一个函数void fun(char a[ ],char b[ ],int n),其功能是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串放在b所指的n中存入指定的下标。
viod fun (char a[ ],char
b[],int n)
{
strncpy (b,a,n);
b[n]=0;
strcat(b,a+n+1);
}
3.  程序设计
假定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。函数fun中给出的语句仅供参考。
void fun(char*a,int n)
{
int i=0,k=0;
while(a[k]= =’*’)k++;
if(k>n)
{
i=n;j=k;
for(;a[j]!=0;j++)
a[i++]=a[j];
a[i]=0;
}}
3.  程序设计
请编写函数fun,函数的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
void fun(char *ss)
{
char *p=ss;
inr i=0;
while(*p){
if((i%2)&&(*p>=’a’ &&*p<=’z’))
计算机编程语言
*p-=32;
p++;
i++;
}
}
3.  程序设计
函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。
void fun(int a,int b,long*c)
{
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
3.  程序设计
假定输入的字符串中只包含字母
和*号。请编写函数fun,它的功能是:将字符串的前导*号全部移到字符串的尾部。函数fun中给出的函数仅供参考。
void fun(char *a)
{ char *p,*q;
int n=0;
p=a;
while(*p==’*’)
{n++;p++;}
q=a;
while(*p){
*q=*p;
p++;q++;
}
for(;n>0;n--)
*q++=’*’;
*q=’\0’;
}
3.  程序设计
请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
double fun(int n)
{
int i;
double sum=0.0;
for(i=1;i<n;i++)
if(i%5= =0||i%9==0)
sum+=1.0/i;
return sum;
}
3.  程序设计
编写一个函数,从num个字符串中出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考)。
fun(char (*a)[81],int num,char **max)
{
int i,k=0,maxlen;
maxlen=strlen(a[k]);
for(i=1;i<num;i++)
{
if(strlen(a[i])>maxlen)
{maxlen=strlen(a[i]);
k=i;
}
}
*max=a[k];
}
3.  程序设计
请编写函数fun,它的功能是:计算并输出下列多项式的值:sn=1+1/1!+1/2!+1/3!+1/4!+……1/n!。例如:在主函数中从键盘给n输入15,则输出为:s=2.718282。注意:要求n的值大于1但不大于100。
double fun(int n)
{
double s=1’
long t=1;
int i;
for(i=1;i<=n;i++){
t=t*i;
s+=1.0/t;}
return s;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中的第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。
void fun(char *a,char *h,char *p)
{
int j=0;
char *q=a;
while(*q&&q<h)a[j++]=*q++;
while(*h&&*p&&h<p)
{
if(*h!=’*’)a[j++]=*h;
h++;
}
while(*p)a[j++]=*p++;
a[j]=0;
}
3.  程序设计
编写一个函数fun,它的功能是计算:s=根号下(ln(1)+ln(2)+ln(3)+……ln(m))S作为函数返回,在C语言中可以调用log(n)求ln(n)。log函数引用说明是:Double log(double x)例如,若m的值为:20,fun函数值为:60506583。
double fun(int m)
{
double s=0.0;
int i;
for(i=0;i<=m;i++)
s+=log(1.0*i);
s=sqrt(s);
return s;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。
void fun(char *a)
{
int j=0;
char *p=a;
while(*p){
if(*p!=’*’)
a[j++]=*p;
p++;
}
a[j]=0;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
void f
un(char *a)
{
int i=0,k;
while(a[i]!==’*’)i++;
k=i;
while(a[i]!=’\0’)
{
if(a[i]!=’*’)
a[k++]=a[i];
i++;
}
a[k]=’\0’;
}
3.  程序设计
请编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数返回。
float fun(float *a,int n)
{
int i;
float ave=0.0;
for(i=0;i<n;i++)
ave=ave+a[i];
ave=ave/n;
return ave;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
void fun(char *a,int n,int h,int e)
{
char *p=a;
int j=0,len=0;
while(*p){p++;len++;}
while(j<len-h-e){
a[j]=a[h+j];
j++;
}
a[j]=0;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。
void fun(char *a)
{
char *p=a;
while(*p)p++;p--;
while(*p==’*’)p--;
p++;
*p=0;
}
3.  程序设计
函数fun的功能是:将s所指字符串中除了下标为偶数,同时ASCII指也为偶数的字符外,其余的全部都删除:串中剩余字符所形成的一个新串放在t所指的数组中。
void fun(char *s,char t[ ])
{
int i,j=0;
for(i=0;i<strlen(s);i+=2)
if(s[i]%2==0)t[j++]=s[i];
t[j]=0;
}
3.  程序设计
N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,它的功能是:求出平均分,有函数值返回。
double fun(STREC *h)
{
STREC *p=h->next;
double av=0.0;
int n=o;
while(p!=NULL)
{
av=av+p->s;
p=p->next;
n++;
}
av/=n;
return av;
}
3.  程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
void fun(char *a,int n)
{
char *p=a;
int j=0;
while(*p)p++;p--;
while(*p==’*’)p--;
p++;
while(j<n&&*p){
p++;
j++;
}
*p=0;
}
3.  程序设计
请编写函数fun,它的功能是:计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。
double fun(double x,int n)
{double s=1.0,y=x;
int i;
for(i=1;i<=n;i++)
{
s+=y/(double)jc(i);
y*=x;
}
return s;
}
3.  程序设计
程序定义了N×N的二维数组,并在主函数中自动赋值,请编写函数fun,它的功能是:使数组右上三角元素中的值乘以m。
int fun(int a[][N],int m)
{
int i,j;
for(i=0;i<N;i++)
for(j=i;j<N;j++)
a[i][j]*=m;
}
3.  程序设计
请编写函数fun,它的功能是:求出ss所指字符串中指定字符个数,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。