计算机二级C语言上机题库100套(最新版) 下载本文

fun 1 (w); }

第八十三套

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

第1处 void show (STU tt)

第2处 printf (\ 第3处 show (std) 2 程序修改

给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 /**found**/ m= i ;

/**found**/

if ( a [k]>a [m]) m=k; 3 程序设计

请编写一个unsigned fun(unsigned w ),w是一个大雨于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的后n-1位的数作为函数值返回。

例如:w值为5923,则函数返回923;w值为923,则函数返回23.

unsigned fun ( unsigned w) {

if ( w >=10000) return w000; if ( w >=1000) return w00; if ( w >=100) return w0; return w; }

第八十四套 1 程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指的文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 第1处 fp =fopen ( filename , \

第2处 fseek (fp ,-1L*sizeof (STU), SEEK_END); 第3处 fwrite ( &n, sizeof (STU), 1, fp) ; 2 程序修改

给定程序MODI1.C中函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 /**found**/

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

/**found**/ return h; 3 程序设计

26

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

int k=1; while (*s)

{ if (*s==' ')k++; s++; } return k ; }

第八十五套 1 程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生书数据,并按照从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。

第1处 fp =fopen ( filename , \ 第2处 if ( s [ i ] . sno >s [ j ] .sno) 第3处 fwrite (s,sizeof (STU), N, fp); 2 程序修改

给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79. /**found**/ p=s ;

/**found**/ while (*p++) 3程序设计

请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能通过调用随机函数获得,并放在主函数的age数组中:要求函数把0到9岁的年龄段的人数放在d[0]zhong 把10—19岁的年龄段的人数放在d[1]中,其余依此类推,把100岁(含100岁)的年龄段的人数放在d[10]中。结果在主函数中输出。 void fun ( int *a , int *b) {

int i , j ;

for ( i=0; i

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

第八十六套 1 程序填空

给定程序中,函数fun的功能是将不代头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:

10、8、6、4、2.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第1处 NODE * fun (NODE *h) 第2处 r=q - >next ; 第3处 q=r; 2 程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中) /**found**/

if ( i % 2 || s [ i ]%2==0 )

/**found**/ t [ j ]= ' \\0 ' ; 3程序设计

请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。函数fun中给出的语句仅供参考。 # include

void fun ( int (*s) [10] , int *b , int *n, int mm, int nn) {

int i, j, np=0;

for ( i=0; i

b[np] = s [ j ] [ i ]; np=i*mm+j+1; }

*n=np ; }

第八十七套 1程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门的分数加3分,修改后重写文件中该学生的数据,即用该学生背后的数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第1处 while (!feof (fp))

第2处 if (n. sno ==sno) break ;

第3处 fseek (fp, -1L*sizeof(STU),SEEK CUR) ; 2 程序修改

给定程序MODI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序,插入法的基本算法是:先对字符串中的头两个元素进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。请改正函数fun中指定部位的错误,使它能得出真确结果。 /**found**/

27

n=strlen (aa);

/**found**/ ch =aa [i]; 3程序设计

N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 double fun ( STREC *h ) {

double max=h ->s ; STREC *p ; p=h->next ; while (p)

{ if (p-s>max) max=p->s ; p=p->nest; }

return max ; }

第八十八套

1程序填空

给定程序中,函数fun的功能是调用随机函数产生的20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。 第1处 while (n

第2处 if ( x==a[ i ]) break ;

第3处 if ( i==n) { a[n] =x ; n++;} 2 程序修改

给定程序MODI1.C中函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。 /**found**/ sum=0

/**found**/

scanf (\3 程序设计

编写程序,实现矩阵(3行3列)的转置(即行列互换) int fun ( int array[3] [3]) {

int i, j, arr [3] [3];

memcpy(arr,array,9*sizeof(int) ); for ( i=0; i<3; i++) for ( j=0; j<3; j++)

array [ i ] [ j ] =arr [ j ] [ i ]; 第八十九套 1 程序填空

给定程序中,函数fun的功能是:求ss所知字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共m个字符串,且串长>N。

第1处 int fun( char (*ss)[N], int *n) 第2处 if ( i==0) *n=len; 第3处 *n=len; 2 程序修改

给定程序MODI1.C中函数fun的功能是:根据形参m计算如下公式的值。例如,若输入5,则应输出2.283333 /**found**/ t+=1. 0/ i ;

/**found**/ return t; 3程序设计

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

int fun (char *str, char *substr) {

int cnt =0 ;

char *p =str, *q ; while (*p) {

q=strstr (p,substr) ; if (q==NULL) break ; p=q +strlen (substr) ; cnt++; }

第九十套 1 程序填空

给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。Ss所指字符串数组中有M个字符串,且串长

给定程序MODI1.C中函数fun的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。请改正程序中错误之处,使它能得出正确结果。 /**found**/ if(*p= =’ ’) /**found**/

*(p-1)=toupper(*(p-1));

3请编写函数fun对长度为7个字符的字符串,除首、尾字符外,将其余5个字符ASCII码降序排列。 int fun(char *s,int num) {

char ch; int i,j;

for(i=1;i<6;i++) for(j=i+1;j<6;j++) {

28

if(*(s+i)<(s+j)) {

ch=*(s+j); *(s+j)=*(s+i); *(s+i)=ch; }}}

第九十一套 1程序填空

给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。

第一处 max=*std;

第二处 if(max.age

printf(“\\nName:%s,Age:%d\\n”,max.name,max.age);

2 程序修改

给定程序MODI1.C中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入:60和65,输出为:a=65 b=60 /**found**/

void fun(int *a,int *b) /**found**/

t=*b;*b=*a;*a=t; 3程序编写

请编写一个函数void fun(int t t[M] [N],int pp [N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指唯一数组中。二维数组中的数已在主函数中赋予。

void fun(int tt[M][N],int pp[N]) {

int i,j,min,k;

for(i=0;i

min=tt[0][i];k=0; for(j=1;jtt[j][i]) {min=tt[j][i]; k=j; }

pp[i]=tt[k][i]; } }

第九十二套 1 程序填空

给定程序中,函数fun的功能是:将a和b所指的两字符串转达换成面值相同的整数,并进行相加作为函数值返回,规定字符串只含9个以下数字字符。 第一处 d=d*10+*s-‘0’; 第二处 s++;

第三处 return ctod(a)+ctod(b); 2 程序修改

给定程序MODI1.C中函数fun的功能是:分别统计字符串大写字母和小写字母的个数和。 /**found**/ *a=*a+1; /**found**/ *b=*b+1; 3程序设计

请编写函数fun,函数的功能是:使用实型整数保留2位小数,并对第三位进行四舍五入(规定实型数为正数) float fun(float h) {

long w;

w=h*100+1.5; return (float)w/100; }

第九十三套 1 程序填空 给定程序中,函数fun的功能是:找出100—x(x<=999)之间各位上的数字之和为15的所有整数,然后输出,符合条件的整数个数作为函数值返回。 第一处 n=0;

第二处 while(t<=x) 第三处 t++; 2 程序修改

给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序放到t所指字符串中,然后把s所指的字符串中的字符按正序连接到t所指串的后面。 /**found**/ int i,s1; /**found**/ t[i]=s[s1-i-1]; 3程序设计

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

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

第九十四套 1 程序填空

给定程序中,函数fun的功能是:从三个形参a、b、c中找出中间那个数,作为函数值返回。 第一处 t=a>b?(b>c?b: (a>c?c:a)):((ac)?c:b)); 2 程序修改

给定程序MODI1.C中函数fun的功能是:首先将大写字母转换为对应的小写字母:若小写字母为a—u,则将其转换为其后的第五个字母;若小写字母为v—z,使其值减21。转换后的小写字母作为函数值返回。 /**found**/ c=c+32;

29

/**found**/ c=c+5; 3程序设计

请编写函数fun,函数的功能是:计算并输出……例如,在主函数中从键盘给n输入20后,输出为s=534.188884。注意:要求n的值大于1但不大于100. double fun(int n) { int i;

double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) {fac+=sqrt(i); sum+=fac; }

return sum; }

第九十五章 1 程序填空

给定程序中函数fun的功能是:调用fun函数建立班级通讯录。通讯录中记录每位同学的编号、姓名和电话号码。班级的人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为mylife5.dat的二进制文件中。 第一处 int fun(STYPE *std) 第二处 FILE *fp;int i;

第三处 fwrite(&std{i},sizeof(STYPE),1,fp); 2 程序修改

给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正顺序放到t串中,然后把s中的字符按逆顺序放到他串后面。 /**found**/

for(i=0;i

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

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

第九十六套 1 程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。

第一处 b->sno=10004;

第二处 strcpy(b->name,”LiJie”); 第三处 fun(&t); 2 程序修改

给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:例如:a为2时平方根值为1.414214 /**found**/

double fun(double a,double x0) /**found**/

if(fabs(x1-x0)>0.00001) 3 程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分数的学生数据放在b所指的数组中,并把人数通过形参n传回。

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

double t=0; int i; *n=0;

for(i=0;i

for(i=0;i

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

第九十七套 1 程序填空

给定程序中函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计其出现的次数。

第一处 ch=tolower(*s); 第二处 k[n]+=1;

第三处 if(max

给定程序MODI1.C中函数fun的功能是:求s的值。例如:当K为10时,函数应为1.533852. /**found**/ float fun(int k) /**found**/ return s; 3程序设计

请编写函数fun,函数fun的功能是:计算并输出下列级数和:例如,当n=10时,函数值为0.909091. double fun(int n) {

double s=0.0; int i;

for(i=1;i<=n;i++) s=s+1.0/(i*(i+1)); rerurn s; }

第九十八套 1 程序填空

给定程序中函数fun的功能是:将形参n中个位上为偶

30

数的取出,并按原来从高位到低位的顺序组成一个新的数。并作为函数值返回。 第一处 i=1; 第二处 while(s)

第三处 x=x+t*i; i=i*10; 2 程序修改

给定程序MODI1.C中函数fun的功能是:输出M行N列的整数方阵,然后求两条对角线上元素之和,返回此和数。

/**found**/

int fun(int n,int xx[][M]) /**found**/

printf(“%d”,xx[i][j]); 3程序设计

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

*c=(a/10)*1000+(b)*100+(a)*10+(b/10); 第九十九套 1 程序填空

给定程序中函数fun的功能是:求出形参aa所指字符串数组中最长的字符串长度,其余字符串左边用字符*补齐,使其与最长字符串等长。字符串数组中共有M个字符串,且串长

第二处 for(j=len;j>=0;j--) 第三处 ss[i][j]=’*’; 2 程序修改

给定程序MODI1.C中函数fun的功能是:计算整数n的阶乘。请改正程序中错误或在下划线处填上适当内容,删掉下划线,使它能计算出正确结果。 /**found**/ result *=n--; /**found**/ return result; 3程序设计

请编写函数fun,函数fun的功能是:从s所指的字符串删除给定的字符。同一字母的大小写按不同字符处理。 int fun(char s[],char c) {

char *p=s; int i=0; while(*p) {

if(*p!=c)s[i++]=*p; p++;} s[i]=0; }

第一百套 1程序填空