计算机二级C语言41-50套 题库

更新时间:2023-06-12 05:22:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四十一套

所属年份:2010.9;2012.3;

下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,

其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。

例如,若s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2010.9;2012.3;

下列给定程序中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相

同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为:"abcdabfabc",t1所指串中的内容为"ab",t2所指子

串中的内容为"99"时,结果在w所指的数组中的内容应为"abcdabf99c"。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

所属年份:2010.9;2012.3;

编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成

的新串放在t所指数组中。

例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCII码值为奇数,

字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:"BDF24"。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

(1) s[i] (2) k (3) '\0'或0

【参考答案】

(1) s[i] (2) k (3) '\0'或0

【参考答案】

void fun(char *s, char t[])

{

int i,j=0,n;

n=strlen(s);

for(i=0;i<n;i++) /*找出ASCII码值为偶数的字符依次存入数组中*/

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

{ t[j]=s[i];

j++;

}

t[j]='\0';

}

第四十二套

所属年份:2011.9;2012.3;

给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再

用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

所属年份:2011.9;2012.3;

下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前

m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

所属年份:2011.9;2012.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。

注意:部分源程序在文件PROG1.C中。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干

语句。

【参考答案】

(1)FILE*(2)fclose(fp)(3)fp

【参考答案】

(1)t=calloc(m,sizeof(STU));

(2)t[k]=b[j];

【参考答案】

int fun(int a[], int n)

{

int i,j=1;

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

if(a[j-1]!=a[i]) /*若该数与前一个数不相同,则要保留*/

a[j++]=a[i];

return j; /*返回不相同数的个数*/

}

第四十三套

所属年份:2011.9

下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素

之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。

例如,若N=3,有下列矩阵:

1 2 3

4 5 6

7 8 9

首先累加1、5、9,然后累加3、5、7,函数返回值为30。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2011.9

322x 4x 3x 6 0的一下列给定程序中函数fun和funx的功能是:用二分法求方程

个根,并要求绝对误差不超过0.001。

例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构

所属年份:2011.9

规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾

部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当

是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的

若干语句。

【参考答案】

(1) sum=0 (2) t[i][i] (3) 1

【参考答案】

(1)double r ;

(2)while (fabs(n-m) >0.001)

【参考答案】

void fun( char *a, char *h,char *p )

{ int i=0;

char *q=a;

while(q<h)

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

while(q<p)

{ if(*q!='*')

{ a[i]=*q;

i++;

}

q++;

}

while(*q)

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

a[i]='\0';

}

第四十四套

所属年份:2010.9;2012.3;

下列给定程序中,函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15

的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。

例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、

258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2010.9;2012.3;

下列给定程序中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串

中,然后把s所指串中的字符按正序连接到t所指串之后。

例如:当s所指的字符串为"ABCDE"时,t所指的字符串应为"EDCBAABCDE"。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构

所属年份:2010.9;2012.3;

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

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

例如,当a=45,b=12,调用该函数后c=1425。

注意:部分源程序在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

(1) 0 (2) x (3) t++

【参考答案】

(1)int i, sl;

(2)t[i]=s[sl-i-1];

【参考答案】

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

{

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

}

第四十五套

所属年份:2011.3

下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的

字符串中后面的字符删除,只保留前面的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构

所属年份:2011.3

下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。

π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+……

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

所属年份:2011.3

规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*

号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。

例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串

中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

(1) [M] (2) N (3)'\0'

【参考答案】

(1)t=1.0;

(2)return(s*2);

【参考答案】

void fun( char *a, int n )

{

int i=0;

int k=0;

char *p,*t;

p=t=a; /*开始时,p与t同时指向数组的首地址*/

while(*t=='*') /*用k来统计前部星号的个数*/

{k++;t++;}

if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/

{ while(*p)

{ a[i]=*(p+k-n);

i++;

p++;

}

a[i]='\0'; /*在字符串最后加上结束标识位*/

}

}

第四十六套

所属年份:2011.3;2012.3

下列给定程序中,函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的

文本文件中,然后再顺序读出显示在屏幕上。

请在程序下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2011.3;2012.3

下列给定程序中fun函数功能是:将n个无序整数从小到大排序。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

所属年份:2011.3;2012.3

编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的

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

例如,当a=45,b=12时,调用该函数后c=2514。

注意:部分源程序在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。

请勿动改主函数的main和其它函数中的任何内容,仅在函数fun的花括号填入你编写的若干语句

【参考答案】

(1) fp (2) fclose(fp) (3) fname

【参考答案】

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

(2)p=i;

【参考答案】

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

{

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

}

第四十七套

所属年份:2012.3

下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩

余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。

例如,若输入一个数27638496,则新数为739。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2012.3

下列给定程序中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

所属年份:2012.3

请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的

将字符串转换为整数的函数)。例如,若输入字符串"-1234",则函数把它转换为整数值-1234。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句

【参考答案】

(1) 10 (2) 0 (3) x

【参考答案】

(1)if( n==0)

(2)result *=n--;或{result *=n; n--;}

【参考答案】

long fun ( char *p)

{

long n=0;

int flag=1;

if(*p=='-') /*负数时置flag为-1*/

{p++;flag= -1;}

else if(*p=='+') /*正数时置flag为1*/

p++;

while(*p!='\0')

{n=n*10+*p-'0'; /*将字符串转成相应的整数*/

p++;

}

return n*flag;

}

第四十八套

所属年份:2011.9;2012.3

下列给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列向右移动1个位置,右

边被移出矩阵的元素绕回左边第1列。

例如,N=3,有下列矩阵

1 2 3

4 5 6

7 8 9

计算结果为

3 1 2

6 4 5

9 7 8

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构

所属年份:2011.9;2012.3

下列给定程序中函数fun的功能是:计算并输出下列级数的前N项和SN,直到SN+1的值大

于q为止,q的值通过形参传入。

SN 234N 1 … 123N

例如,若q的值为50.0,则函数值应为49.394948。

请改正程序中的错误,使程序能输出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

所属年份:2011.9;2012.3

编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci

数列F(n)的定义为:

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如,当t=1000时,函数值为1597。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

(1) N (2) N-1 (3) 0

【参考答案】

(1)s=s +(double)(n+1)/n;

(2)return t;

【参考答案】

int fun( int t)

{

int f0 = 0, f1 = 1, f ;

do {

f = f0 + f1 ;

f0 = f1 ;

f1 = f ;

} while(f < t) ;

return f ;

}

第四十九套

所属年份:2011.9;

下列给定程序中,函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求

出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,以此类推。例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2011.9;

下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后

再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。

例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均

值。

请改正程序的错误,使它能得出正确结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构

所属年份:2011.9;

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请

编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的

若干语句。

【参考答案】

(1) a[] (2) 2 (3) i+1

【参考答案】

(1)sum=0.0;

(2)if((i+1)%5==0)

【参考答案】

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

{

int i,j=0;

double av=0.0;

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

av=av+a[i].s;

av=av/N; /*求平均值*/

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

if(a[i].s<av) b[j++]=a[i];/*将低于平均值的学生记录存入结构体b中*/

*n=j; /*指针传回低于平均值的学生人数*/

return av; /*返回平均值*/

}

第五十套

所属年份:2010.9;2011.3;2012.3;

下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch

的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表

符、回车符及换行符)。

输入字符串时用'#'结束输入。

请改正程序中的错误,使它能输出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构

所属年份:2010.9;2011.3;2012.3;

编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若

该位置上不是字母,则不转换)。

例如,若输入"abc4EFg",则应输出"aBc4EFg"。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句

【参考答案】

(1) NULL (2) n (3) head,ch

【参考答案】

(1)for(i=0,t=0;p[i];i++)

(2)c[t]= '\0';

【参考答案】

void fun ( char *ss )

{

int i;

for(i=0;ss[i]!='\0';i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/ if(i%2==1&&ss[i]>='a'&&ss[i]<='z')

ss[i]=ss[i]-32;

}

本文来源:https://www.bwwdw.com/article/i4b1.html

Top