C语言上机100套题 联系客服

发布时间 : 星期五 文章C语言上机100套题更新完毕开始阅读

void fun (char *a,int n ,int h , int e) {

int i,j=0;

for(i=h;i

a[j]=′\\0′; }

23◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:计算一个带头结点的单向链表中各结点的数据域中数值之和,结果作为函数值返回。 【答案】【1】data 【2】next 【3】head 【改错】下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为\,t1所指子串中的内容为\,t2所指子串中的内容为\时,在w所指的数组中的内容应为\。 【答案】【1】while( *r) 【2】{*a=*r;a++;r++;}

【编程】函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为\时,在t所指数组中的内容应是:\。 【答案】

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

int i,j=0,k=strlen(s); for(i=1;i

24◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。

例如,a所指变量s中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,修改后输出t中的数据应为:10002、\、96、81、89。 【答案】【1】struct student* 【2】a->score[i] 【3】a

【改错】下列给定程序中,函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 【答案】【1】char *fun(char (*sq)[M]) 【2】return sp;

【编程】编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 【答案】

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

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

25◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将N×N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 1 4 5 6 9 8 7 【答案】【1】t[][N]

【2】i=0;i

【改错】由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。 【答案】

【1】int fun(int a[],int m) 【2】else if(m>a[mid])

【编程】假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。 【答案】

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

char *t=a;

for(;t<=p;t++) if(*t!=′*′)

*(a++)=*t; for(;*t!=′\\0′;t++) *(a++)=*t; *a=′\\0′; }

26◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、

140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。 【答案】【1】999 【2】t/10 【3】x

【改错】下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为7654321时,t中的数为642。 【答案】

【1】void fun(long s,long *t) 【2】while(s>0) 【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 【答案】

void fun (STREC a[]) {

int i,j; STREC t;

for(i=1;i

for(j=0;j

27◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。例如,若b所指变量t中的学号、姓名和三门课的成绩依次是:10002、\、93、85、87,修改后输出t中的数据应为:10004、\、93、85、87。 【答案】【1】->sno 【2】->name 【3】&t

【改错】下列给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214。 【答案】

【1】double fun(double a,double x0) 【2】if(fabs(x1-x0)>=0.00001) 【编程】学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 【答案】

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

int i;

double av=0.0; *n=0;

for(i=0;i

for(i=0;i

if(av<=a[i].s)

{ b[*n]=a[i];*n=*n+1;} return av; }

28◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 【答案】【1】q 【2】next 【3】next

【改错】下列给定程序中函数fun的功能是:用选择法对数组中的n个元素进行升序排列。 【答案】【1】p=j;【2】p=i;

【编程】编写函数fun,其功能是:将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 【答案】

void fun(int m, int *a, int *n) {

int i,j=0;

for(i=1;i<=m;i++) if(i%7==0||i==0) a[j++]=i; *n=j; }

29◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算后结果为 1 0 0 6 5 0 10 14 9 【答案】【1】[N] 【2】t[i][j] 【3】t[j][i]

【改错】下列给定程序中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,z和y的值不相等。

例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。 【答案】【1】#define FU(m,n)(m)/(n) 【2】return (value);

【编程】规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****,删除后字符串中的内容应当是:A*BC*DEF*G****。编写函数时,不得使用C语言提供的字符串函数。 【答案】