好文档 - 专业文书写作范文服务资料分享网站

全国计算机等级考试2级C语言上机题库 

天下 分享 时间: 加入收藏 我要投稿 点赞

第一套:

1.1 填空 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶函数的数去除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。 void fun(unsigned long *n)

{ unsigned long x=0, i; int t; i=1; while(*n)

/**********found**********/ { t=*n % 10 ;

/**********found**********/ if(t%2!= 0)

{ x=x+t*i; i=i*10; } *n =*n /10; }

/**********found**********/

*n=x; }

1.2 改错 给定程序MODI1.C 中函数fun的功能是:计算n!。 double fun ( int n ) { double result = 1.0 ;

/************found************/ if (n == 0) return 1.0 ;

while( n >1 && n < 170 )

/************found************/ result *= n--; return result ;}

1.3 程序 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 long fun ( char *p)

{ /* 以下代码仅供参考 */

int i, len, t; /* len为串长,t为正负标识 */ long x=0; len=strlen(p); if(p[0]=='-')

{ t=-1; len--; p++; }

else t=1;

/* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p++); return x*t; } 第二套:

2.1填空 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数些到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 void fun(char *s, int a, double f) {/**********found**********/ FILE * fp;

char ch;

fp = fopen(\

fprintf(fp, \fclose(fp);

fp = fopen(\

printf(\ ch = fgetc(fp);

/**********found**********/ while (!feof(fp)) {

/**********found**********/ putchar(ch); ch = fgetc(fp); } putchar('\\n');

fclose(fp); }

2.2 改错 给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。 #include

void fun(char *s) { int i,j;

for(i=0,j=0; s[i]!='\\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/

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

/**********found**********/ s[j]='\\0';}

2.3程序 请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 void fun(char s[][N], char *b)

{ int i,j,n=0;

for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */ {

for(j = 0 ; j < M ; j++) { b[n] = s[j][i] ;

n = i * M + j + 1; } } b[n]='\\0'; } 第三套:

3.1填空 程序通过定义学生机构体变量,存储了学生的学号,姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 void fun(char *filename, STU n) { FILE *fp;

/**********found**********/

fp = fopen(filename, \/**********found**********/

fseek(fp, -1L*sizeof(STU), SEEK_END);

/**********found**********/

fwrite(&n, sizeof(STU), 1, fp); fclose(fp);}

3.2改错 给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 typedef struct aa { int data; struct aa *next; } NODE;

NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i;

/**********found***********/

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

p->next=NULL;

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

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

s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; } /**********found***********/

return h;}

3.3程序 请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。(有问题) int fun( char *s) { int k = 1 ; while(*s)

{ if (*s == ' ') k++ ; s++ ; } return k ; } 第四套:

4.1填空 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排列后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。 #define N 5 typedef struct student { long sno; char name[10]; float score[3];

} STU;

void fun(char *filename) { FILE *fp; int i, j;

STU s[N], t;

/**********found**********/ fp = fopen(filename, \ fread(s, sizeof(STU), N, fp); fclose(fp);

for (i=0; is[j].sno)

{ t = s[i]; s[i] = s[j]; s[j] = t; } fp = fopen(filename, \/**********found**********/

fwrite(s, sizeof(STU), N, fp); fclose(fp);}

4.2改错 给定程序MODI1.C中函数fun的功能是:在字符串的最前端假如n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。 void fun ( char s[], int n ) { char a[80] , *p; int i;

/**********found***********/ p=s;

for(i=0; i

{ a[i]=*p; i++;}

/**********found***********/ while(*p++);

a[i]=0;

strcpy(s,a);}

4.3程序 请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的认输放在d[1]中,把20至29岁年龄段的人数放在d[2]中,期于依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。 void fun( int *a, int *b) { int i, j ;

for(i = 0 ; i < M ; i++) b[i] = 0 ; for(i = 0 ; i < N ; i++) {

j = a[i] / 10 ;

if(j > 10) b[M - 1]++ ; else b[j]++ ;} } 第五套:

5.1填空 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成响应的整数、浮点数,然后将其显示在屏幕上。 void fun(char *s, int a, double f)

{/**********found**********/ FILE * fp;

char str[100], str1[100], str2[100]; int a1; double f1; fp = fopen(\ fprintf(fp, \ %d %f\\n\/**********found**********/ fclose(fp) ;

fp = fopen(\/**********found**********/ fscanf(fp,\ fclose(fp); a1 = atoi(str1); f1 = atof(str2);

printf(\

5.2改错 给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩按从高到低的顺序找出前m(≤10)名学生出来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首笛子作为函数值返回。 typedef struct ss { char num[10]; int s;

} STU;

STU *fun(STU a[], int m) { STU b[N], *t; int i,j,k;

/**********found**********/

t=(STU *)calloc(sizeof(STU),m); for(i=0; i b[j].s) j=i; /**********found**********/ t[k]=b[j];

b[j].s=0; }

return t;}

5.3程序 请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。

int fun(int a[], int n) { int i, j = 1, k = a[0] ; for(i = 1 ; i < n ; i++) if(k != a[i])

{ a[j++]=a[i] ; k = a[i] ; }

全国计算机等级考试2级C语言上机题库 

第一套:1.1填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶函数的数去除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。voidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n)/**
推荐度:
点击下载文档文档为doc格式
8gmq84dbzq667gj1z1sv
领取福利

微信扫码领取福利

微信扫码分享