}
第十八套
1.下列给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均向右移动m个位置,左位置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6 7 8 9 程序执行结果为 0 0 1 0 0 4 0 0 7
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)i++ (2)m (3)m
2.下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。
例如,若high的值为100,则函数的值为732。 请改正程序中的错误,使程序能输出正确的结果。 (1)while((high>=2) && (n<10)) (2)yes=0; break;
3.编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,将x1的值赋给x0; (3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739086。 float fun() {
float x1=0.0,x0; do {
x0=x1; x1=cos(x0); }
while (fabs(x0-x1)>=1e-6); return x1; }
第十九套
1.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓
名,最后输出修改后的数据。
例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) a (2) b.name (3) score[i]
2.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。 请改正程序中的错误,使它能得出正确的结果。 (1)s[j++]=s[i];或{s[j]=s[i];j++;} (2)s[j]= ′\\0′;
3.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。
例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。 void fun(char *a) {
int i=0,n=0; char *p; p=a;
while (*p==′*′) /*判断*p是否是*号,并统计*号的个数*/ {
n++;p++; }
while(*p) /*将前导*号后的字符传递给a*/ {
a[i]=*p;i++;p++; }
while(n!=0) {
a[i]=′*′;i++;n--; }
a[i]=′\\0′; }
第二十套
1.下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数ReadText和WriteText实现。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) *fw (2) str (3) str
2.下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531 (1)void fun(long s,long *t) (2)s1=s1]
3.void fun(int a,int b,long *c)
{
*c=a/10+(b)*10+(a)*100+(b/10)*1000; }
第二十一套
1下列给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素做顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,再使临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 操作后应为: 7 4 1 8 5 2 9 6 3
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果 (1)0 (2)j-- (3)j
2.下列给定程序中函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。
例如,当n的值为5时,函数值应为10.407143。 f(x)函数定义如下:
f(x)=(x+1)/(x-2) x>0且x≠2
f(x) 0 x=0或x=2 (x-1)/(x-2) x<0
请改正程序中的错误,使程序能输出正确的结果。 (1)double f(double x) (2)return s ;
3.编写函数fun,其功能是计算: s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。 例如,若m的值为20,则fun函数值为6.506583。 double fun(int m) {
int i;
double s=0.0;
for(i=1;i<=m;i++)
s=s+log(i); /*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/ return sqrt(s); /*对s求平方根并返回*/ }
第二十二套
1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若
没有,函数值为0,若有,函数值为非0。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) N (2) substr (3) 0
2.下列给定程序中函数fun的功能是:求三个数的最小公倍数。
例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。 请改正程序中的错误,使它能得出正确的结果 (1)fun(int x,int y, int z)或int fun(intx,inty,intz) (2)return j;
3.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。
void fun (char *a,int n ,int h , int e) {
int i,j=0;
for(i=h;i a[j]=′\\0′; /*在字符串最后加上结束标识*/ } 第二十三套 1.下列给定程序中,函数fun的功能是:计算一个带头结点的单向链表中各结点的数据域中数值之和,结果作为函数值返回。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)data (2) next (3) head 2.下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。 例如,当s所指字符串中的内容为\,t1所指子串中的内容为\,t2所指子串中的内容为\时,在w所指的数组中的内容应为\。 请改正程序中的错误,使它能得出正确的结果。 (1)while( *r) (2)r++; 3函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。 例如,当s所指字符串中的内容为\时,在t所指数组中的内容应是:\。 void fun(char *s,char t[]) { int i,j=0,k=strlen(s); /*k为字符串的长度*/ for(i=1;i 1.程序通过定义学生结构体变量,存储学生的学号、姓名和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 2.下列给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 请改正程序中的错误,使它能得出正确的结果。 (1)char *fun(char (*sq)[M]) (2)return sp; 3.编写函数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; } 第二十五套 1.下列给定程序中,函数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 2.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low 请改正程序中的错误,使它能得出正确的结果。 (1)int fun(int a[],int m)或fun(int a[],intm) (2)else if(m>a[mid]) 3.假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,