2012计算机国二C语言等级考试题库(内部资料)程序编辑 联系客服

发布时间 : 星期三 文章2012计算机国二C语言等级考试题库(内部资料)程序编辑更新完毕开始阅读3e7b44e2551810a6f5248678

1. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) { int i,j=0; for(i=0;i

if(a[i].s>=1&&a[i].s<=h)b[j++]=a[i]; return j; }

2. 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

void fun(int m,int *a,int *n)

{

int i,j=0;*n=0; for(i=1;i<=m;i++) if((i%7==0)||(i==0)) { a[j]=i; j++; } *n=j; }

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

if(strcmp(a[i].num,b)==0) {strcpy(c.num,a[i].num); c.s=a[i].s;break;} return c; }

4. 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。void fun(char *ss) { int i;

for(i=1;i=’a’&&ss*i+<=’z’)ss*i]-=32; } }

5.请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度

0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14?。

double fun(double eps) { double s; float n,t,pi;

t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) { pi+=s; t=n/(2*n+1); s*=t; n++; } pi=pi*2; return pi; }

6. 函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。 void fun(char *s,char t[])

{ int i,j=0;

for(i=1;i

7. 函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。

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

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

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

把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 int fun(STREC *a,STREC *b) {

int i,max=a[0].s,n=0; for(i=1;i

if(max==a[i].s)b[n++]=a[i]; return n; }

9. 请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 int fun(int a [M][N]) {

int tot=0,i,j;

for(i=0;i

tot +=a[M-1][i]; }

for(i=1;i

return tot; }

10. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 int fun(STREC *a,STREC *b) {

int i,j=0,min=a[0].s; for(i=0;ia[i].s){

j=0;b[j++]=a[i];min=a[i].s; }

else if(min==a[i].s) b[j++]=a[i]; } return j; }

11. 程序定义了N×N的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值饭给主函数中的s。

double fun(int w[][N]) { int i,j,n=0; double sum=0; for(i=0;i

sum+=w[0][i]+w[N-1][i];n+=2; }

for(i=1;i

return sum/n;

}

12. 函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的个位和百位上,b中的十位和个位数依次放在变量c的十位和千位上。 #include void fun(int a,int b,long *c) {

*c=(b)*1000+(a)*100+(b/10)*10+a/10; }

13. 编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。

#include #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; }

14请编写函数fun,函数的功能是:计算并输出给定整数n的所有因子(不包过1和n本身)之和。规定n的值不大于1000. int fun(int n) { int s=0,i;

for(i=2;i

15. 请编写一个函数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++; } }

16 函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。 #include #include void fun (char*s, char t[]) {

int i, j=0;

for(i=0;i

17.. 请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。#include viod fun (int *a,int *n) { int i; *n=0;

for(i=7;i<1000;i++) if(((i%7)==0│

|(i)==0&&(iw)!=0)

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

18. 请编写函数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; }

19. 函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数

放在c中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。

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

*c=(a)*1000+(b)*100+(a/10)*10+(b/10); }

20.请编写一个函数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); }

21. 假定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。函数fun中给出的语句仅供参考。 void fun(char*a,int n) {

int i=0,k=0; char *t=a; while(*t==’*’); { k++; t++; } t=a; if(k>n) t=a+k-n; while(*t) { a[i]=*t; i++;

t++; } a[i]='\\0';

22. 请编写函数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++; } }

23. 函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放

在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。 void fun(int

a,int

b,long*c)

{

*c=(a)*1000+(b/10)*100+(a/10)*10+(b); 24. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串的前导*号全部移到字符串的尾部。函数fun中给出的函数仅供参考。 void fun(char *a) { int i=0,n=0; char *p; p=a;

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

while(*p) { a[i]=*p; i++; p++; }

while(n!=0) { a[i]='*'; i++; n--; } a[i]='\\0'; }

25. 请编写函数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; }

26. 编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考)。 fun(char (*a)[81],int

num,char **max)

{

int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i

if(strlen(a[i])>maxlen){ maxlen=strlen(a[i]); k=i; } }

*max=a[k]; }

27. 请编写函数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./t;} return s; }

28. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中的第一个字母,形参p已指向字符串中最后一个字母。在编写

函数时,不得使用c语言提供的字符串函数。 void fun(char

*a,char

*h,char *p)

{ int j=0; char *q=a;

while(*q&&q

while(*h&&*p&&h

while(*p)a[j++]=*p++; a[j]='\\0'; }

29. 编写一个函数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=1;i<=m;i++)s+=log(1.0*i); s=sqrt(s); return s; }

30. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a) { int j=0; char *p=a; while(*p){ if(*p!=’*’)a*j+++=*p; p++; } a[j]='\\0'; }

31. 假定输入的字符串中

只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 void fun(char *a) { int i=0; char*p=a;

while(*p&&*p=='*') { a[i]=*p; i++; p++; } while(*p) { if(*p!='*') { a[i]=*p; i++ } p++

} a*i+=’\\0’; }

32. 请编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数返回。

float fun(float *a,int n) { int i; float ave=0.0;

for(i=0;i

33. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数。在编写函数时,不得使用C语言提供