搜档网
当前位置:搜档网 › 计算机二级--机试复习资料

计算机二级--机试复习资料

计算机二级--机试复习资料
计算机二级--机试复习资料

2010下半年C语言机试复习资料

1删除星号 (2)

2两个数组合成一个新数 (4)

3求和 (5)

4素数问题 (11)

5结构体编程题 (13)

6链表编程题 (16)

7字符串问题 (17)

8统计编程题 (20)

9二维数组编程题 (22)

10一维数组编程题 (26)

12四舍五入编程题 (30)

13其他编程题 (31)

1删除星号

1除了短期断后的信号将其他的信号删除H第一字母P最后字字母

void fun(char *a,char *h,char *p)

{

char str[81];

int i=0;

/*保存第一段*/

while(a[i]=='*') str[i]=a[i++];

/*处理第二段*/

while(h

{

if(*h!='*') str[i++]=*h;

h++;

}

/*处理第三段*/

while(*p!='\0')

{

str[i++]=*p;

p++;

}

str[i]='\0';

/*将处理后的结果重新保存到a字符串中*/

i=0;

while(str[i]!='\0')

a[i]=str[i++];

str[i]='\0';

}

4是前面的字母不得多于N个删除多余的少于不做什么处理中间后面不作处理

void fun(char *a,int n)

{

int count=0,i,j;

/*统计前面星号的个数*/

while(a[count]=='*') count++;

if(count>n)

{

for(i=0;i

{

for(j=0;a[j]!='\0';j++)

a[j] = a[j+1];

a[j]='\0';

}

}

}

63讲后面信号删除前面中间不删除

void fun(char *a)

{

char *p;

p = a;

while(*p!='\0') p++;

p--;

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

*p =0;

}

void fun(char *a,char *p)

{ int i=0;

char str[81],*q;

q = a;

while(q

{

if(*q!='*') str[i++]=*q;

q++;

}

while(*p!='\0')

{

str[i++] = *p;

p++;

}

str[i]='\0';

i=0;

while(str[i]!='\0')

a[i] = str[i++];

a[i] ='\0';

}

2两个数组合成一个新数将两位A B位数形成CA的个位十位放C的百位个位

void fun(int a,int b,long *c)

{ *c =a/10*100+a%10+b/10*10+b%10*1000; }

3求和

2根据公式求拍值精度0.0005

double fun ( double eps)

{

double pi,t;

int i;

pi = 0.0;

t = 1.0;

i = 1;

while(t>=eps)

{

pi += t;

t *= 1.0*i/(2*i+1);

i++;

}

pi = pi * 2;

return pi;

}

19计算便输出给点数数组9(长度为)没想了每相邻两个平均值的平方根之和90

double fun(double x[9])

{

double ave,t;

int i;

ave = 0.0;

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

{

t =(x[i]+x[i+1])/2.0;

ave += sqrt(t);

}

return ave;

}

20多项式值键盘输8输出S=0.662872

double fun(int n)

{

int i;

double s;

s = 0.0;

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

{

s = s +(1.0/(2*i-1)-1.0/(2*i));

}

return s;

}

22输出X,<0.97直到|S(n)-S(n-1)<0.000001

double fun(double x)

{ double t1,t2,t,s;

int i;

t1 = 1;

t2 =0.5*x;

t = t2 -t1;

s = 0;

while(fabs(t)>=0.000001)

{ s += t1;

t1 = t2;

i++;

t2 *= (0.5-i+1)/i*x;

t = t2 - t1;

}

return s;

}

23十个数方差s=11.730729

double fun(double x[10])

{

double ave,s;

int i;

ave = 0.0;

s = 0.0;

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

ave +=x[i]/10.0;

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

s+=(x[i]-ave)*(x[i]-ave)/10;

s = sqrt(s);

return s;

}

25j输入20输出s=534.188884

double fun(int n)

double t,s;

t = 0.0;

s = 0.0;

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

{

t += sqrt(i);

s += t;

}

return s;

}

44若n值11函数值1.833333

float fun(int n)

{ int i;

float t,sum;

t=0.0;

sum=0.0;

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

{ t = t + i;

sum = sum + 1.0 / t;

}

return sum;

}

46例如m=12.n=8 运行结果495.0000000

float fun(int m,int n)

float jm,jn,jc,p;

jm=jn=jc=1;

if(m

{ t=m; m=n; n=t;}

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

{

if(i<=n) jn*=i;

if(i<=m-n) jc*=i;

jm*=i;

}

p = jm/(jn*jc);

return p;

}

90函数n=15输出s=2.718282

double fun(int n)

{

int i;

double t,s;

s = 1.0;

t = 1.0;

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

{

t *= i;

s += 1.0/t;

}

return s;

}

53s=in1 in2 in3+in(m)'''0.5l落个

double fun( int m)

{

int i;

double s=0.0;

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

s+=log(i);

s = sqrt(s);

return s;

}

611、(s= n*(n+1))

double fun(int n)

{

int i;

double s=0.0;

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

{

s += 1.0/(i*(i+1));

}

return s;

}

62n=10 x=0.3 函数值1.349859

double fun(double x,int n)

{ int i;

double t,s;

t = 1.0;

s = 0.0;

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

{

s += t;

t = t *x/i;

}

return s;

}

4素数问题

24计算出3到n之间的数数平方之和

double fun(int n)

{

int i,j;

double sum;

sum = 0;

for(i=3;i

{

for(j=2;j

{

if(i%j==0) break;

}

if(j>=i)

sum += sqrt(i);

}

return sum;

}

28求出小于等于lim所有素数放在aa数组中返回素数个数

int fun(int lim,int aa[MAX])

{

int i,j,count=0;

for(i=2;i<=lim;i++)

{

for(j=2;j

{

if(i%j==0) break;

}

if(j>=i)

{

aa[count] = i;

count++;

}

}

return count;

}

41void fun(int m,int,k int xx【】)

void fun(int m,int k,int xx[])

{

int i,j,count=0;

for(i=m+1;count

{

for(j=2;j

{

if(j>=i)

xx[count++]=i;

}

}

5结构体编程题

6学号8门课程成绩和平均分组成求学生平均分放到ave成员中

void fun(STREC *p)

{

int i;

(*p).ave=0.0;

for(i=0;i

(*p).ave +=(*p).s[i];

(*p).ave =(*p).ave/N;

}

8学号成绩组成N名在结构体数组s中按分数高低排列学生记录高分在前

void fun(STREC a[])

{

int i,j;

STREC temp;

for(i=0;i

{

for(j=i+1;j

{

if(a[i].s

{

temp = a[i]; a[i] =a[j]; a[j] =temp;

}

}

}

7学号成绩组成N名在结构体数组s 把高于等于平均分的学生放到h数组中高于等于平均分人数返回平均分函数值返回

double fun(STREC *a,STREC *b,int *n)

{

int i;

double ave=0.0;

*n = 0;

/*求平均分*/

for(i=0;i

{

ave +=a[i].s;

}

ave = ave/N;

/*寻找高于并等于平均分的记录*/

for(i=0;i

{

if(a[i].s>=ave)

{ b[*n] = a[i];

(*n)++;

}

}

return ave;

}

10同同同函数返回指点学生数据没找到空窜成绩-1返回

STREC fun(STREC *a,char *b)

{

STREC result={"",-1};

for(i=0;i

{

if(strcmp(a[i].num,b)==0)

result = a[i];

}

return result;

}

11指点分数范围放在h数组分数范围人数函数返回

int fun(STREC *a,STREC *b,int l,int h)

{

int count=0,i;

for(i=0;i

{

if(a[i].s>=l&&a[i].s<=h)

b[count++]=a[i];

}

return count;

}

42找成绩最低学生记录通过现场返回已经给出函数首部

fun(STU a[],STU *s)

{

int i;

*s = a[0];

for(i=1;i

{

if((*s).s>a[i].s) *s = a[i];

}

}

6链表编程题

12N名学生成绩h指向链表头肩顶求平均分85 76 69 85 91 72 64 87

double fun(STREC *h)

{

double ave=0.0;

int count=0;

STREC *p;

p=h->next;

while(p!='\0')

{

ave += p->s;

count++;

p=p->next;

}

ave = ave/count;

return ave;

}

70找学生最高分函数值返回

double fun(STREC *h)

{

double max;

STREC *p;

p = h->next;

max = p->s;

while(p!='\0')

{

if(max<(p->s)) max = p->s;

p=p->next;

}

return max;

}

7字符串问题

15讲一个字符串转换为一个整数(不得调用)“-1234“变-1234

long fun ( char *p)

{

int flag=0;

long n=0;

while(*p!='\0')

{

if(*p=='-')

{

flag = 1;

p++;

}

else if(*p>=’0’&&*p<=’9’)

{

n=n*10+*p-'0';

}

p++;

}

if(flag==1) return -n;

else return n;

}

32从传入的num个字符串找最长一个字符串指针max返回窜地址

fun(char(*a)[81],int num,char **max)

{

int i;

*max = a[0];

for(i=1;i

{

if(strlen(*max)

*max = a[i];

}

}

18将s下标为偶数的字符删除窜中形成新窜放t数组中ABCDEFGHIJ BDFHJ

void fun(char *s, char t[])

{

int i,j;

j=0;

for(i=0;s[i]!='\0';i++)

{

if(i%2==1)

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

}

t[j]='\0';

}

30长度为7个字符串除首尾外其余5个按降序拍了

int fun(char *s,int num)

{

int i,j;

char t;

for(i=1;i

{

for(j=i+1;j

{

if(s[i]

{

t = s[i];

s[i] = s[j];

s[j] = t;

}

}

}

3比较两个字符串的长度函数返回较长字符串字符串长度同返回第一字符串

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

{

int length1,length2;

length1=length2=0;

while(s[length1]!='\0') length1++;

while(t[length2]!='\0') length2++;

if(length1>=length2)

return s;

else

return t;

}

52将s字符串除了下标为基同时数ASCII也为基数以外其余所有字符都删除剩余的字符串形成新的放在数组他中

void fun(char *s,char t[])

{

int i,j;

j = 0;

for(i=0;s[i]!='\0';i++)

{

if(i%2!=0&&s[i]%2!=0)

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

}

t[j] ='\0';

72删除字符串的空格

void fun(char *str)

{

int i,j;

for(i=0;str[i]!='\0';i++)

{

if(str[i]==' ')

{

for(j=i;str[j]!='\0';j++)

str[j] = str[j+1];

str[j] ='\0';

}

}

}

8统计编程题

33统计一个长度为2的字符串在连一个字符串中出现的次数

int fun(char *str,char *substr)

{

char *p,*r;

int count=0;

while(*str!='\0')

{

p = str;

r = substr;

while(*r!='\0')

{

if(*p==*r){p++;r++;}

else

break;

相关主题