《全国计算机c语言考试上机题库.docx》由会员分享,可在线阅读,更多相关《全国计算机c语言考试上机题库.docx(167页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一套1 .程序填空给定程序中,函数fim的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数 按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。如输入一个 数27638496,新的数为729第一空:t=*n%10;第二空:if(t%2!=0)第三空:*n=x;2 .程序修改给定程序modil.c中函数fun的功能是:计算n!.例如,给n输入5,则输出120.000000。 double fun(int n)double result=1.0;/*Cund*/if(n=0)return 1.0;while(n 1 &n=0&si=,9,)/*Cund*/sj+=si
2、;/*Cund*/sj=O;)3 .程序设计题请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放 到一个字符串中。void fun(char sN,char *b)int ij,n=0;for(i=O;iN;i-H-)/*请填写其相应语句完成其功能*/(fbr(j=Ojnext=null;fbr(i=l;idata=rand()%m;s-next=p-next;p-next=s;p=p-next;)/*Cund*/return h;3 .程序设计请编写函数fim,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字 符串在主函数中输入,规定所有单词由
3、小写字母组成,单词之间由若干个空格格开,一行的 开始没有空格。int fun(char *s)(int k=l;while(*s) if(*s=)k+;s+; return k;)第四套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均 以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据, 并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文 件中,覆盖原来的文件内容。第 1 处0=fbpen(filename, rb);第 2 处 if (si.sno sj.sno)第 3
4、 处 fwrite(s,sizeof(STU),N,fp);2 .程序修改给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,差且 覆盖原串。注意:字符串的长度最长允许为79.void fun(char s ,int n)char a80,*p;int i;/* * * * *lund* */P=S;fbr(i=O;in;i+)doai=*p;i-H-;/* *found */while(*p-H-)ai=0;strcpy(s,a);)3 .程序设计请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能过调用随机函数获得,并 放在主函数的age数组中:要
5、求函数把0至9岁的年龄段的人数放在d0中,把10至19 岁的年龄段的人数放在dl中,把20至29岁的年龄段的人数放在d2中,其余依次类推, 把100岁(含100岁)以上年龄的人数都放在dIO中。结果在主函数中输出。void fun(int *a, int *b)int ij;for(i=0;iM;i-H-)bi=0;fbr(i=0;i10)bM-l+;else bj+;第五套1 .程序填空给定程序中,函数fim的功能是将参数给定的字符串、整数、浮点数写到文件文件中,再用 字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串换成相应的整数 和浮点数,然后将其显示在屏幕上。第
6、1 处:FILE *fp;第 2 处:fclose(fp);第 3 处:fscanffp,%s%s%s,str,str 1 ,str2);2 .程序修改给定程序M0DI1.C中函数fun的功能是:对N名学生的学生成绩,按从高到低的顺序找出 前m(m10)名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区的 首地址作为函数值返回。STU fiin(STU a ,int m) STU bN,*t;int ij,k;/* * * * *lund* */t=(STU *)calloc(sizeof(STU),m);fbr(i=O;iN;i+)bi=ai;fbr(k=O;km;k-H-)
7、 fbr(i=j=O;ibU.s)j=i;/* * * * *found */tk=bD;bj.s=O;) return t;)3 .程序设计请编写函数fun,函数的功能是,删去一维数组中所有相同的数,使之只剩一个。数组中的 数按从小到大的顺序排序,函数返回删除后数组中数据的个数。int fiin(int a ,int n)int ij=l,k=aO;fbr(i=l;in;i+)if(k!=ai) aU+=ai; k=ai; aj=O;return j;第六套1 .程序填空给定程序中,函数ftm的功能是根据形参i的值返回某个函数年值。当调用正确时,程序输 出:xl=5.000000x2=3.0
8、00000.xl*xl+xl *x2=40.000000第一处:double fun(int i,double x,double y) 第二处:return fl (x);第二处:return f2(x,y);2 .程序修改给定程序MODH.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作 为函数值返回。/include /*Cund* */ char *fiin(char *s,char *t) (int sl=O,tl=O;char *ss,*tt;ss=s; tt=t;while(*ss) S1+;/* * * * *Qund */SS-H-; while(*tt) t
9、l+;/* * * *found */ tt+;ifi(tlsl) return t; else return s; 3 .程序设计请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个 字符,平均移到字符串的最后,把第m+1个到最后的;字符移到字符串的前部。void fun(char *w, int m) ( int i;fbr(i=0;im;i+) funl(w); 第七套 1.程序填空 程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数fun的功能是 输出这位学生的信息。第 1 处 void show( STU tt)第 2 处 printf
10、lfli%5.1 ftt.scorei);第 2 处 show(std)4 .程序修改给定程序MOD”中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a0 中的数对调、次最大数和al中的数对调。int fun(int *a,int n) int i,m,t,k;fbr(i=0;i2;i-H-)/* * * * *)und */ m=i;fbr(k=i+l ;kam)m=k; t=ai ;ai=am ;am=t;5 .程序设计请编写一个unsigned fiin(unsigned w), w是一个大于10的无符号整数,若w是n (n=2) 位的整数,函数求出w的后n-1位的数作为函
11、数值返回。例如:w值为5923,则函数返回923; w值为923则函数返回23。unsigned fun( unsigned w )if(w= 10000) return w% 10000;ifi(w= 1000) return w%1000;if(w=100) return w%100;return w%10;第八套1 .程序填空给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生学号、姓名和3门课的成 绩。函数ftm的功能是将该学生的各科成绩都乘以一个系统a。第 1 处 void modi fy( STU *ss,float a)第 2 处 ss-scorei*=a;第 3 处 mo
12、dify(&std,a);2 .程序修改给定程序MODI1.C中函数fun的功能是:求k!,所求阶乘的值作为函数值返回。例如: 若k=10,则应输出:3628800。long fiin(int k)(/* *found */if(k0)return (k*fiin(k-l);/* *Cund */else if(k=O)return IL;3 .程序设计程序定义了 N*N的二维数组,并在主函数中自动赋值。请编写函数fun(intaN,intn),函 数的功能是:使数组左下三角元素中的值乘以n。int fun(int a N,int n) int ij;fbr(i=0;iN;i+)fbr(j=O
13、ynext;第 2 处 while(q)第 3 处 p=p-next;2 .程序修改给定程序M0DI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后 续字母(但Z转换为A, z转换成a ),其它字符不变。void fiin(char *s)/* * * */while(*s)ifi*sA&*sv=Z|*s=,a,&*s=,z,)if(*s=,Z,)*s=W;else if(*s=,z,)*s=,a,;else *s=*s+l;/*Cund*/s+;)3.程序设计void fun(int *w,int p, int n)int ij=0,bN;fbr(i=p+1 ;in;i
14、+)bj-H-=wi;fbr(i=O;i=p;i+)bj+=wi;fbr(i=O;in;i+)wi=bi;第十套1程序填空给定程序中,函数fun的功能是:判定形参a所指的NxN (规定N为奇数)的矩阵是否是“幻 方“,若是,函数返回值为1;不是,函数返回值为0。“幻方的判定条件是:矩阵每行、每 列、主对角线及反对角线上元素之和都相等。第 1 处 row=colum=0;第 2 处 if(row!=colum)|(row!=ml)retum 0;第 3 处 return 1;2程序修改给定MODIl.Cfun函数的功能是:根据整型形参m,计算如下公式的值。t=l-l/2-l/3-1/m.#inc
15、lude double fun( int m )Idouble t = 1.0;int i;fbr(i=2;inext;第 2 处 if (p=0) return;第 3 处 p=q; q=r;2.程序修改给定MODH.Cfun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函 数值返回。请改正函数ftin中指定部位的错误,使它能得出正确的结果。# include # include # define N 80int fun(char *s, char *t)int n;char *p,*r;n=0;while (*s) P=s;/*Cund*/r=t;while (*r)if(
16、*r=*p)r4-+;p+;else break;/*Cund*/if(*r=O)n-H-;s+;)return n;3程序设计请编写函数ftin,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N), 按顺序合并组成一个新的字符串,函数fun中给出的语句供供参考。void fun (char aMN),char *b)int i;*b=0;fbr(i=O;inext;第3处q=r;2程序修改给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII 码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中).#include#include#d
17、efine N 80void fun(char *s,char t)int ij=0;for(i=O;istrlen(s);i+)/*Cund*/if(i%2| si%2=0)t|j-H-=si;/* *found */tj=O;)3程序设计请编写函数Am,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到 一维数组中。函数fUn中给出的语句仅供参考。#include void fun (int (*s)10,int *b, int *n, int mm, int nn)int ij,np=0;fbr(i=0;inn;i-H-)fbr(j=0jnext;第 2 处 q=p-next
18、;第 3 处 ifp-data=q-data)2程序修改给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。 函数fim的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值 返回。请改正函数fim中指定部位的错误,使它能得出正确的结果。fun (NODE *h) int max=l;NODE *p;/*3und*/p=h-next;while(p)if (p-datamax)max=p-data;/*必und*/p=p-next;return max;3程序设计请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到
19、一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。void fun( int (*s)10,int *b, int *n, int mm, int nn)int ij,k;fbr(i=0;imm;i+)fbrG=Oynext;while (p)i fi(p-data%2=0)sum +=p-data;/*Cund*/p=p-next;return sum;3程序设计请编写函数fun,函数的功能是:判断字符串是否为回文?叵是,函数返回1,主函数 中输出:YEX,否则返回0,主函数中输出NO。回文是指顺读t和倒读都一样的字符串。 int fun(char *str)int ij=str
20、len(str);fbr(i=0;ij/2;i+)if (stri!=strj-i-l) return 0;return 1;)第十五套1程序填空程序通过定义学生结构体变量,存储了学生的学号,姓名和3门课的成绩。所有学生数 据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号 的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重 写文件中该学生的数据,即用该学生的背后数据覆盖原数据,其它学生数据不变:若找不到, 则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。第 1 处 while(!f
21、eof(fp)第 2 处 if(n.sno=sno) break;第 3 处 fseek(fp,-lL*sizeof(STU),SEEK CUR);2程序修改给定程序M0DI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的 顺序进行排序,插入法的基本算法是:先对字符串中的头两个元素进行排序,然后把第三个 字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符 中待排序的字符串已在主函数中赋予。请改正函数fun中指定部位的错误,使它能得出正确的结果。void insert(char *aa)int i,j,n; char ch;/*Cun(i*/n
22、=strlen(aa);fbr(i=l;i=O)&(chs;STREC *p;p=h-next;while(p)if(p-smax)max=p-s;p=p-next;return max;第十六套1程序填空给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度, 将其余字符串右边用字符*补齐,使其与最长的字符串等长。Ss所指字符串数组中共有M个 字符串,且串长N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正 确的结果。第 1 处 n=strlen(ssi);第 2 处 ssin+j=,*;第 3 处 ssin+j+l=,O,;2程序修改给定程序MODI1.
23、C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成 大写。(这里的“单词”是指由空格隔开的字符串)。请改正程序中的错误之处,使它能得出正 确的结果。#includevoid fiin(char *p)(int k = 0;for(; *p; p+ )if(k)/*fbund*/*p =)k = 0;/*砧und*/* (p-1 )=touppcr( *(p-1);)elsek=l;3程序设计请编写函数firn,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符ASCII 码降序排列。int fiin(char *s, int num)char ch;int ij;fbr(
24、i=l;i6;i+)fbr(j=i+l;j6j+)if(*(s+i)(s+j)ch = *(s+j);*(s+j)=*(s+i);*(s+i)=ch;第十七套1程序填空程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数 fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程 序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。第 1 处 struct student t;第 2 处 fbr(i=O;iO)2程序修改给定程序M0DI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符, 将其放在第一个位置上;并
25、将该字符前的原字符向后顺序移动。fun (char *p) char max, *q; int i=0;max=pi;while( pi!=O)if(maxp)*q=*(q-l);q-;)pO=max;3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写 了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内 的学生人数由函数值返回。int fun (STREC *a, STREC *b,int 1, int h)int ij = 0;fbr(i=0;i=l&ai.s=h)bg+=ai;return j;/*程序中1是用L的小写
26、*/第十八套1程序填空给定程序中,函数firn的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字 符顺序后移,处理后新字符串的苜地址作为函数值返回。第 1 处 tj=si;j-H-;第 2 处 fbr(i=O;ik;i+) tj+i=pi;第 3 处 tj+k=O;2程序修改给定程序MODILC中函数(Un的功能是:将s所指字符串中最后一次出现的与tl所指字符 串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl 和t2所指字符串的长度相同。int fun (char *s, char *tl, char *t2, char *w)int i; char
27、 *p,*r,*a;strcpy( w,s);/* *Cund*/while (*w) p=w;r=tl;while (*r)/*!Qypj*/if ( *r=*p)r+;p+;else break;if(*r=O)a=w;W-H-;r=t2;while (*r) *a=*r;a+;r+;3程序设计函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个 新串放在t所指的数组中。void fun (char *s, char t) int ij=0;fbr(i=O;istrlen(s);i+)if(si%2=0)tj+=si;tj=O;)第十九套1程序填空程序通过
28、定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能 是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在 主函数中输出修改后的数据。第 1 处 struct student *fun(struct student *a)第 2 处 fbr(i=O;iscorei+=l;第 3 处 return a;2程序修改给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址 作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。/* *Cund*/char *fiin(char (*sq)M) int i; ch
29、ar *sp;sp=sqO;fbr(i=O;iN;i+)if (strlen(sp)strlen(sqi)sp=sqi;/* *)und */return sp;3程序设计函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的 方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次 放在变量c的十位和千位上。#include void fun (int a, int b, long *c) *c=(b%10)*1000+(a/10)*100+(b/10)*10+a% 10;第二十套1程序填空给定程序中,函数fim的功能是:计算形参x所指数组
30、中N个数的平均值,(规定所有数均 为正数),将所指桑骂槐数组中小于平均值的数据移至数据的前部,大于等于平均值的数据 移至x决指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第 1 处 for(i=0; iN; i+) av+=xi/N第 2 处 yj=xi; xi=-l;j+;第3处i+;2程序修改给定程序MODI1.C函数firn的功能是:统计字符串各元音字母(即:A、E、I、0、U)的 个数。注意字母不分大、小写。fun (char *s, int num5)int k, i=5;fbr(k=O;k=0)numi+;)3程序设计请编写函数fun,函数的功能是求出二
31、级数组周边元素之和,作为函数值返回。二维数组中 的值在主函数中赋予。int fun(int a MN)int tot = 0, ij;fbr(i=0;iN;i+)(tot +=a0i;tot +=aM-li;for (i=l;iM-l ;i+) tot +=ai0;tot +=aiN-l;)return tot;第21套1程序填空给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有 数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移 至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第 1 处 av=s/N;第
32、 2 处 yj+=xi;xi=l;第 3 处 if(xi!=-l) yU+=xi;2程序修改给定程序M0DI1.C的功能是:读入一英文文本行,将其中每个单词的第一个字母改成大写, 然后输出此文本行(这里的“单词”是指由空格隔开的字符串)/* *砧5记*/#include /*Cund*/upfst (char *p)int k=0;fbr(; *p; p+)if(k)if (*p=,)k=O;else if (*p!=”)k=l; *p=toupper(*p);3程序设计程序定义了 NxN的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出 数组周边元素的平均值并作出函数值返给主函数中的s。double fim (int wN)int i,j, n=0;double sum=0;fbr(i=O; iN;i+) sum+=w0i+wN-1 i;n+=2;for (i=l;iN-l;i+) sum+=wiO+wiN-l;n+=2;