云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 计算机二级c语言上机100题

计算机二级c语言上机100题

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 21:16:27

上机100练习题

备注:1.1 一套填空题 1.2 一套改错题 1.3 一套编程题 第一套:

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

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] ; } a[j] = 0 ; return j ;} 第六套:

6.1填空 给定程序中:函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000。

double f1(double x)

{ return x*x; }

double f2(double x, double y) { return x*y; }

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

double fun(int i, double x, double y) { if (i==1)

/**********found**********/ return f1(x); else

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

return f2(x, y);}

6.2改错 给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。

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

{ int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss)

{ sl++;

/**********found**********/ ss++; } while(*tt)

{ tl++;

/**********found**********/ tt++; }

if(tl>sl) return t; else return s;}

6.3程序 请编写函数fun函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移动到字符串的前部。例如,字符串中原由的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是DEFGHIJKABC。

void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ { int i; char t;

t=w[0];

for(i=0;i

w[i]=w[i+1];

w[strlen(w)-1]=t; }

void fun(char *w, int m) /* 可调用fun1函数左移字符 */

{ int i;

for(i = 0 ; i < m ; i++) fun1(w); } 第七套:

7.1填空 程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。

typedef struct { int num;

char name[9]; char sex;

struct { int year,month,day ;} birthday; float score[3];

}STU;

/**********found**********/ void show(STU tt) { int i;

printf(\ tt.birthday.year, tt.birthday.month,

tt.birthday.day);

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

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

printf(\ printf(\

7.2改错 给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 int fun ( int * a, int n ) { int i, m, t, k ; for(i=0;i<2;i++) {

/**********found**********/ m=i; for(k=i+1;ka[m]) m=k; t=a[i];a[i]=a[m];a[m]=t; }}

7.3程序 请编写一个函数unsigned fun (unsigned w),w是一个大于10的无符号整数,若w是n(≤2)位的整数,函数求出的w的低n-1位的数作为函数值返回。例如:W值为5923,则函数返回923;W值位923则函数返回23。 unsigned fun ( unsigned w ) { if(w>10000) w %= 10000 ; else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ; else if(w>10) w %=10 ; return w ;} 第八套:

8.1填空 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 void show(STU tt)

{ int i;

printf(\ %s : \ for(i=0; i<3; i++)

printf(\ printf(\

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

void modify(STU *ss,float a) { int i;

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

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

ss->score[i] *=a; }

8.2改错 给定程序MODI1.C中的函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若K=10,则应输出:3628800。 long fun ( int k)

{/************found************/ if (k > 0)

return (k*fun(k-1));

/************found************/ else if ( k==0 ) return 1L;}

8.3程序 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[],int n),函数的功能是:使数组左下三角元素中的值乘以n。例如:若n的值为3,a

?197?数组中的值为 a???238??则返回主程序后a数组中的

??456???397?值应为

a???698??。

??121518??int fun ( int a[][N], int n )

{ int i, j;

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

for(j = 0 ; j <= i; j++) a[i][j] *= n ;} 第九套:

9.1填空 给定程序中,函数fun的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据位:10、4、2、8、6,排序后链表接点数据域从头至尾的数据为:2、4、6、8、10。 void fun(NODE *h)

{ NODE *p, *q; int t; p = h;

while (p) {

/**********found**********/ q = p->next ;

/**********found**********/ while (q)

{ if (p->data > q->data)

{ t = p->data; p->data = q->data; q->data = t; }

q = q->next; }

/**********found**********/ p = p->next ; }}

搜索更多关于: 计算机二级c语言上机100题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

上机100练习题 备注:1.1 一套填空题 1.2 一套改错题 1.3 一套编程题 第一套: 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; }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com