第6套
一、填空
给定程序中已建立一个带有头结点的单向链表,在答案ain函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中的数据,并释放该节点,是链表缩短。
答案:
nextt->datat
二、修改
将字符串中的字符按逆序输出,单补改变字符串中的内容。
答案:
voidfun(char*a)printf("%c",*a);
三、程序
比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
答案:
inti;char*p=s,*q=t;intn=0,m=0;while(*p){n++;p++;}while(*q){m++;q++;}if(n>=m)p=s;elsep=t;returnp;
第7套
一、填空
删除链表中数据域值相同的结点,使之只保留一个
答案:
qnextnext
二、修改
用选择法对数组中的n个元素按从小到大的顺序进行排序。
答案:
p=j;p=i;
三、程序
求出1到答案之间(含答案)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
答案:
inti,j=0;*n=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0){a[j]=i;j++;}*n=j;
第8套
一、填空
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回改结点在链表中所处的顺序号;不存在,函数返回0值
答案:
NULLnhead,ch
二、修改
删除p所指字符串中的所有空白字符,输入字符串是用“#”结束输入。
答案:
for(i=0,t=0;p[i];i++)c[t]='\0';
三、程序
将ss所指字符串中所有下标为奇数位置上的字母转换成大写
答案:
inti;for(i=1;i='a'&&ss[i]<='z')ss[i]-=32;}
第9套
一、填空
统计出带有头结点的单向链表中的个数,存放在形参n所指的存储单元中。
答案:
*nnexthead
二、修改
求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL
答案:
a=NULL;if(*r==*p)
三、程序
将s所指字符串中除了下标问为偶数,同时ASCII值也为偶数的字符外,其余的全部删除:
串中剩余字符所形成的一个新串放在t所指的数组中
答案:
inti,j=0;for(i=0;i第10套一填空
计算出带有头结点的单向链表中各结点数据域中值之和作为函数的返回值。
答案:
datanexthead
二、修改
将s所指字符串中出现的与t1所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。
答案:
while(*r)*a=*r;a++;r++;
三、程序
将s所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t所指的数组中
答案:
inti,j=0;for(i=1;i第11套
一填空
找出指定编号人员的数据作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串
答案:
STUstd[i].numstd[i]
二、修改
从s所指字符串中,找出与t所指字符串相同的字串的个数作为函数返回值
答案:
r++;p++;if(*r==’\0’)
三、程序
将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中
答案:
inti,j=0;for(i=0;i第12套.一、填空
找出指定出生年份的人员,将数据放在形参k所指的数组,由主函数输出,有函数值返回满足指定条件的人数
答案:
std[i].yearstd[i]n
二、修改
读入一个整数k(2《k《1000),打印她的所有因子
答案:
分号去掉orIsprime(intn)if(!
(n%i))
三、设计
找出成绩最高的学生记录,通过形参指针传回主函数
答案:
inti,max=a[0].s,j=0;for(i=1;i第13套.一、填空
给定程序。
。
。
将该学生的各科成绩都乘以一个系数a
答案:
STUscore[i]&std
二、修改
求k!
(k<13),所求阶乘的值作为函数值返回,
答案:
if(k>0)elseif(k==0)
三、程序
使数组左下三角元素的值乘以n
答案:
inti,j;for(i=0;i第14套
一、.填空
将形参所指结构体数组中的三个元素按num成员进行升序排列
答案:
*stdPERSONstd
二、修改
将m个字符串连接起来组成一个新串,放入pt所指存储区中
答案:
intk,q,i;pt[i]=str[k][i];
三、程序
使数组左下三角元素中的值全部值0
答案:
inti,j;for(i=0;ifor(j=0;j<=i;j++)a[i][j]=0;
第15套
一、.填空
将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在主函数中输出
答案:
*stdstd[i].agemax.name
二、修改
实现两个整数的交换
答案:
voidfun(int*a,int*b)tt=*b;*b=*a;*a=t;
三、程序
请编写一个函数、、tt指向一个M行N列的二维数组,求二维数组每列中最小元素,并以此放入pp所指一维数组中。
二维数组中的数已在主函数中赋予
答案:
inti,j,min,k;for(i=0;itt[j][i]){min=tt[j][i];k=j;}pp[i]=tt[k][i];}
第16套
一、.填空
程序通过定义。
。
输出这位学生的信息
答案:
tttt.score[i]std
二、修改
求出数组中最大数和次大数,并把最大数和a【0】中的数对调,次最大数和a【1】中的书对调
答案:
m=i;if(a[k]>a[m])m=k;
三、程序
请编写一个程序。
。
w是一个大与10的无符号整数,若w是n为的整数,函数求出w的低n-1位的数作为函数值返回
答案:
unsignedt,s=0,s1=1,p=0;t=w;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}returns;
第17套
一、.填空
对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。
ss所指字符串数组中共有M个字符串,且串长《N
答案:
i+1k=jt
二、修改
判断ch中字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后
答案:
voidfun(char*str,charch)if(*str!
=ch)str[1]=’\0’;
三、设计
请编写一个函数把s所指字符串中的内容逆值
答案:
charb[N];inti=0,j;memset(b,0,N);for(j=strlen(s)-1;j>=0;j--)b[i++]=s[j];strcpy(s,b);
第18套
一、填空
求出形参ss所指的字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长,字符串数组中共有M个字符串
答案:
klenss[i][j]
二、修改
计算整数n的阶乘
答案:
result*=n--;returnresult;
三、程序
从s所指的字符串中删除给定字符。
同一个字母的大小写按不同字符处理
答案:
char*p=s;inti=0;while(*p){if(*p!
=c)s[i++]=*p;p++;}s[i]=’\0‘;
第19套
一、.填空
求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。
Ss所指的字符串数组中共有M个字符串
答案:
ss[i]n+j1
二、修改
将p所指字符串中每个单词的最后一个字母改成大写
答案:
if(*p==’’)*(p-1)=toupper(*(p-1));
三、程序
请编写函数fun对长多为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII降序排列
答案:
chart;inti,j;for(i=1;i第20套
一、.填空
求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。
Ss所指字符串数组中共有M个字符串
答案:
[N]len*n=len
二、修改
根据形参答案,计算如下公式的值
答案:
t+=1.0/i;returnt;
三、程序
编写一个函数。
该函数可以统计一个长度为2的字符串在另个字符串中出现的次数
答案:
intcnt=0;char*p=str,*q;while(*p){q=strstr(p,substr);if(q==NULL)break;p=q+strlen(substr);cnt++;}returncnt;
第21套
一、.填空
求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中
答案:
M二、修改
将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变
答案:
if((‘a’<=tt[i])&&(tt[i]<=’z’))tt[i]-=32;
三、程序
将大于1小于整数m的非素数存入xx所指数组中非素数的个数通过k传回
答案:
inti,j;intt=0;for(i=2;i{j=2;while(j
第22套
一、.填空
将s所指字符串中的所有数字字符转移到所有非数字字符之后,并保持数字字符和非数字字符串原有的前后次序
答案:
j++s[i]=t1[i]j
二、修改
用冒泡法对6个字符串由小到大的顺序进行排序
答案:
for(j=i+1;j<6;j++)*(pstr+i)=*(pstr+j);
三程序
求出ss所指字符串中指定字符的个数,并返回此值
答案:
intcnt=0;char*p=ss;while(*p){if(*p==c)cnt++;p++;}returncnt;
第23套
一、.填空
在形参所指字符串中的每个数字字符之后插入一个*号
答案:
&&0s[j]
二、修改
根据整形形参m,计算如下公式的值
答案:
for(i=2;i<=m;i++)y+=1.0/(i*i);
三程序
实现B=A+A’,即把矩阵A加上A的转置,存放到B中
答案:
intc[3][3];inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++){c[i][j]=a[j][i];b[i][j]=a[i][j]+c[i][j];}
第24套
一、.填空
统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。
答案:
s[i]‘9’*t=n
二、修改
通过某种方式实现俩个变量值的交换,规定不予许增加语句和表达式
答案:
t=*x;*x=y;return(t);
三、程序
求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将他们放在a所指的数组中,通过n返回这些数的个数
答案:
inti;*n=0;for(i=7;i<1000;i++)if(((i%7)==0||(i%11)==0)&&(i%77)!
=0)a[(*n)++]=i;
第25套
一、.填空
把形参s所指字符串中下标为奇数的字符右移到下一个奇数的位置,最后边被移除字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动
答案:
1s[k]c
二、填空
求s=aa…aa-….aaa-aa-a
答案:
longs=0,t=0;t=t/10;
三、程序
请编写一个函数。
。
。
统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中
答案:
char*p=tt;inti;for(i=0;i<26;i++)pp[i]=0;while(*p){if(*p>='a'&&*p<='z')pp[*p-'a']+=1;p++;}
第26套.
一、填空
对形参s所指字符串中下标为奇数的字符按ascii码大小递增排序,并将排序后下标为基数的字符取出,存入形参p所指字符数组中,形成一个新串
答案:
t=Ii0
二、填空
用下面公式求π的近似值,直到最后一项的绝对值小于指定的数为止
答案:
while(fabs(t)>=num)t=s/n;
三、程序
删除一个字符串中指定下标的字符,其中,a指向原字符,删除指定字符后的字符串存在b所指的数组中,n中存放指定下标
答案:
intp,m=0;for(p=0;p=n){b[m]=a[p];m++;}b[m]=’\0’;
第27套
一填空
在形参所指字符串中寻找一个字符串与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理
答案:
00c
二修改
计算数组元素中值为正数的平均值
答案:
doublesum=0.0;sum/=c;
三设计
根据以下公式s,计算结果作为函数返回值,n通过形参传入
答案:
intk;floatstr=1.0,sum=1.0;for(k=2;k<=n;k++){sum=sum+k;str=str+1/sum;}returnstr;
第28套
一填空
有N*N的矩阵,根据给定的m的值,将每行元素中的值均右移m个位置,左边置为0
答案:
i++mm
二修改
计算并输出high以内最大的10个素数之和。
High的值由主函数传给fun函数
答案:
while((2<=high)&&(n<10))yes=0;break;
三设计
利用一下所示的简单迭代方法求方程:
答案:
floatx0,x1=0.0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>0.000001);returnx1;
第29.套
一填空
将N*N的矩阵中元素值按列右移1个位置,右边被移出矩阵的元素绕回左边
答案:
NN-10
二修改
计算并输出下列的前N项之和Sn,Sn+1大于q为止,q的值通过形参传入
答案:
s=s+(n+1.)/n;returnt;
三设计
求Fibon….数列中大于t的最小的一个数,结果由函数返回,
答案:
intf0=0,f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f第30套
一.填空
有N*N矩阵,将矩阵的外围元素顺时针逆转,操作顺序是:
首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行。
临时数组中的元素成为最后一列
答案:
0j--j
二修改
计算s=f(-n)+f(-n+1)+…+f(0)+f
(1)+f
(2)+…+f(n)的值,
答案:
doublef(doublex)returns;
三设计
编写函数fun,他的功能是计算s=ln
(1)+ln(2.)..ln(m)开根号
答案:
doubles=0.0;inti;for(i=1;i<=m;i++)s+=log(1.0*i);s=sqrt(s);returns;
第31套一.填空
有N*N矩阵,以主对角线为对称线,对称元素相加并将结构存放在左下三角元素中,右上三角元素之位0
答案:
[N]t[i][j]t[j][i]
二修改
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不等,z和y的值不等
答案:
((m)/(n))return(value);
三设计
将字符串中的前导*号全部删除,中间和尾部的*号不删除
答案:
intj=0;char*p=a;while(*p=='*')p++;while(*p){a[j++]=*p;p++;}a[j]=’\0’;
第32套一.填空
将N*N矩阵主对角线元素中的值域反向对角线对应位置上的元素中的值交换
答案:
t[][N]i=0;i二修改
利用折半查找法查找整数答案在整数数组的位置。
若找到,返回其下标;反之,返回-1
答案:
intfun(inta[],intm)elseif(m>a[mid])
三设计
除了尾部的*号外,将字符串中的*号全部删除,形参p以指向字符串中最后的一个字符,
答案:
char*q=a;intj=0;while(*q&&q
='*')a[j++]=*q;q++;}while(*p)a[j++]=*p++;a[j]=’\0’;
第33套一.填空
计算N*N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回,
答