计算机二级成绩查询里的题,为什么sizeof(b)是4不是3

07年9月计算机考试二级C语言笔试预测试题(4)及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
07年9月计算机考试二级C语言笔试预测试题(4)及答案
上传于||文档简介
&&C​语​言​考​试​试​题
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢2014年3月计算机二级C语言真题及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
2014年3月计算机二级C语言真题及答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
你可能喜欢计算机二级上机编程题库 - 东大问题解决中心的日志,人人网,东大问题解决中心的公共主页
转自东北大学大学生志愿者协会: (rs)(rs)(rs) 转自东北大学大学生志愿者协会:登记过得童鞋们请记得于22号和23号晚上6.30到9.00到大活304领取服务证明。(rs) 转自东北大学大学生志愿者协会:新的学期开始了,同学们注意咯!大学生志愿者协会送来温馨提示:上学期志愿服务证明没有登记的同学请于3月13日或14日到大活304进行登记,并于3月22日或23日到大活304领取证明,补录活动仅此一次喔,不容错过!新的学期开始了,同学们注意咯!大学生志愿者协会送来温馨提示:上学期志愿服务证明没有登记的同学请于3月13日或14日到大活304进行登记,并于3月22日或23日到大活304领取证明,补录活动仅此一次喔,不容错过!
计算机二级上机编程题库
1.1&填空&给定程序中,函数的功能是:将形参所指变量中,各位上为偶函数的数去除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针传回所指变量。
void&fun(unsigned&long&&*n)
{&unsigned&long&&x=0,&i;&&&&int&&t;
&&while(*n)
/**********found**********/
&&{&t=*n&%&10&;
/**********found**********/
&&&&if(t%2!=&0)
&&&&{&x=x+t*i;&&i=i*10;&&}
&&&&*n&=*n&/10;&}
/**********found**********/
1.2&改错&给定程序中函数的功能是:计算。
double&fun&(&int&n&)
{&double&result&=&1.0&;
/************found************/
&&if&(n&==&0)
&&&&return&1.0&;
&&while(&n&&1&&&&n&&&170&)
/************found************/
&&&&result&*=&n--;
&&return&result&;}
1.3&程序&请编写一个函数,它的功能是:将一个数字字符串转换为一个整数(不得调用语言提供的将字符串转换为整数的函数)。
long&&fun&(&char&*p)
{&&/*&以下代码仅供参考&
&&int&i,&len,&t;&&/*&len为串长,为正负标识&
&&long&x=0;
&&len=strlen(p);
&&if(p[0]=='-')
&&{&t=-1;&len--;&p++;&}
&&else&t=1;
&&/*&以下完成数字字符串转换为一个数字&
&&while(*p)&x&=&x*10-48+(*p++);
&&return&x*t;&}
2.1填空&给定程序中,函数的功能是将形参给定的字符串、整数、浮点数些到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
void&fun(char&&*s,&int&&a,&double&&f)
{/**********found**********/
&&fp&=&fopen("file1.txt",&"w");
&&fprintf(fp,&"%s&%d&%f\n",&s,&a,&f);
&&fclose(fp);
&&fp&=&fopen("file1.txt",&"r");
&&printf("\nThe&result&:\n\n");
&&ch&=&fgetc(fp);
/**********found**********/
&&while&(!feof(fp))&{
/**********found**********/
&&&&putchar(ch);&ch&=&fgetc(fp);&&}
&&putchar('\n');
&&fclose(fp);&}
2.2&改错&给定程序中函数的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数中指定部位的错误,使它能得出正确的结果。
#include&&stdio.h&
void&&fun(char&&*s)
{&&int&&i,j;
&&&for(i=0,j=0;&s[i]!='\0';&i++)
&&&&&&&&if(s[i]&='0'&&&&s[i]&='9')
/**********found**********/
&&&&&&&&&&&&s[j++]=s[i];
/**********found**********/
&&&&&&&&s[j]='\0';}
2.3程序&请编写函数函数的功能是:将行列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
void&&fun(char&&s[][N],&char&*b)
{&&int&i,j,n=0;
&&for(i=0;&i&&&N;i++)&&/*&请填写相应语句完成其功能&
&&&&for(j&=&0&;&j&&&M&;&j++)&{
&&&&&&b[n]&=&s[j][i]&;
&&&&&&n&=&i&*&M&+&j&+&1;&&&&}&&}
&&b[n]='\0';&}
3.1填空&程序通过定义学生机构体变量,存储了学生的学号,姓名和门课的成绩。所有学生数据均以二进制方式输出到文件中。函数的功能是重写形参所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
void&fun(char&&*filename,&STU&&n)
/**********found**********/
&&fp&=&fopen(filename,&"rb+");
/**********found**********/
&&fseek(fp,&-1L*sizeof(STU),&SEEK_END);
/**********found**********/
&&fwrite(&n,&sizeof(STU),&1,&fp);
&&fclose(fp);}
3.2改错&给定程序中的函数的功能是创建带头结点的单向链表,并为各结点数据域赋到的值。
typedef&&struct&&aa
&&&struct&&aa&&*
NODE&*Creatlink(int&&n,&int&&m)
{&&NODE&&*h=NULL,&*p,&*s;
&&&int&&i;
/**********found***********/
&&&p=(NODE&*)malloc(sizeof(NODE));
&&&p-&next=NULL;
&&&for(i=1;&i&=n;&i++)
&&&{&&s=(NODE&*)malloc(sizeof(NODE));
&&&&&&s-&data=rand()%m;&&&&&&s-&next=p-&
&&&&&&p-&next=s;&&&&&&&&&&&&&p=p-&&&&}
/**********found***********/
&&&return&&h;}
3.3程序&请编写函数函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。(有问题)
int&&fun(&char&&*s)
{&&int&k&=&1&;
&&while(*s)
&{&&if&(*s&==&'&')&k++&;
&&&&s++&;&&&}
&&return&k&;&&}
4.1填空&程序通过定义学生结构体变量,存储了学生的学号、姓名和门课的成绩。所有学生数据均以二进制方式输出到文件中。函数的功能是从形参所指的文件中读入学生数据,并按照学号从小到大排列后,再用二进制方式把排序后的学生数据输出到所指的文件中,覆盖原来的文件内容。
#define&&&&N&&&&5
typedef&struct&student&{
&&char&&name[10];
&&float&&score[3];
void&fun(char&&*filename)
{&FILE&&*&&&&&&int&&i,&j;
&&STU&&s[N],&t;
/**********found**********/
&&fp&=&fopen(filename,&"rb");
&&fread(s,&sizeof(STU),&N,&fp);
&&fclose(fp);
&&for&(i=0;&i&N-1;&i++)
&&&&for&(j=i+1;&j&N;&j++)
/**********found**********/
&&&&&&if&(s[i].sno&&s[j].sno)
&&&&&&{&&t&=&s[i];&&s[i]&=&s[j];&&s[j]&=&t;&&}
&&fp&=&fopen(filename,&"wb");
/**********found**********/
&&fwrite(s,&sizeof(STU),&N,&fp);
&&fclose(fp);}
4.2改错&给定程序中函数的功能是:在字符串的最前端假如个号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为。
void&&fun&(&&char&&s[],&int&&n&)
{&&&char&&a[80]&,&*p;
&&&int&&i;
/**********found***********/
&&&for(i=0;&i&n;&i++)&&a[i]='*';
&&&{&&a[i]=*p;
&&&&&&i++;}
/**********found***********/
&&&while(*p++);
&&&a[i]=0;
&&&strcpy(s,a);}
4.3程序&请编写函数函数的功能是:统计各年龄段的人数。个年龄通过调用随机函数获得,并放在主函数的数组中;要求函数把至岁年龄段的人数放在中,把至岁年龄段的认输放在中,把至岁年龄段的人数放在中,期于依此类推,把岁(含)以上年龄的人数都放在中。结果在主函数中输出。
void&&fun(&int&&*a,&&int&&*b)
{&&int&i,&j&;
&&for(i&=&0&;&i&&&M&;&i++)&b[i]&=&0&;
&&for(i&=&0&;&i&&&N&;&i++)&{
&&&&j&=&a[i]&/&10&;
&&&&if(j&&&10)&b[M&-&1]++&;&else&b[j]++&;}&}
5.1填空&给定程序中,函数的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数和将字符串转换成响应的整数、浮点数,然后将其显示在屏幕上。
void&fun(char&&*s,&int&&a,&double&&f)
{/**********found**********/
&&&FILE&*&
&&char&&str[100],&str1[100],&str2[100];
&&int&&a1;&&&&&double&&f1;
&&fp&=&fopen("file1.txt",&"w");
&&fprintf(fp,&"%s&&%d&&%f\n",&s,&a,&f);
/**********found**********/
&&fclose(fp)&;
&&fp&=&fopen("file1.txt",&"r");
/**********found**********/
&&fscanf(fp,"%s%s%s",&str,&str1,&str2);
&&fclose(fp);
&&a1&=&atoi(str1);
&&f1&=&atof(str2);
&&printf("\nThe&result&:\n\n%s&%d&%f\n",&str,&a1,&f1);}
5.2改错&给定程序中函数的功能是:对名学生的学习成绩按从高到低的顺序找出前名学生出来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首笛子作为函数值返回。
typedef&&struct&&ss
{&&char&&num[10];
&&&int&&s;
STU&*fun(STU&&a[],&int&&m)
{&&STU&&b[N],&*t;
&&&int&&i,j,k;
/**********found**********/
&&&t=(STU&*)calloc(sizeof(STU),m);
&&&for(i=0;&i&N;&i++)&&b[i]=a[i];
&&&&&&for(k=0;&k&m;&k++)
&&&&&&{&&for(i=j=0;&i&N;&i++)
&&&&&&&&&if(b[i].s&&&b[j].s)&&j=i;
/**********found**********/
&&&&&&&&&t[k]=b[j];
&&&&&&&&&b[j].s=0;&&&&&&}
&&&&&&return&&t;}
5.3程序&请编写函数函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:。删除后,数组中的内容应该是:。
int&fun(int&&a[],&int&&n)
{&int&i,&j&=&1,&k&=&a[0]&;
&&for(i&=&1&;&i&&&n&;&i++)&
if(k&!=&a[i])
&{&&a[j++]=a[i]&;&&k&=&a[i]&;&}
&&a[j]&=&0&;
&&return&j&;}
6.1填空&给定程序中:函数的功能是根据形参的值返回某个函数的值。当调用正确时,程序输出:&。
double&f1(double&&x)
{&&return&x*x;&&}
double&f2(double&&x,&double&&y)
{&&return&&x*y;&&}
/**********found**********/
double&fun(int&&i,&double&&x,&double&&y)
{&if&(i==1)
/**********found**********/
&&&&return&f1(x);
/**********found**********/
&&&&return&&f2(x,&y);}
6.2改错&给定程序中函数的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。
/**********found**********/
char&*fun(char&*s,&&char&*t)
{&&int&&sl=0,tl=0;&&&&char&&*ss,&*
&&&ss=s;&&&&tt=t;
&&&while(*ss)
&&&{&&sl++;
/**********found**********/
&&&&&&ss++;&&&}
&&&while(*tt)
&&&{&&tl++;
/**********found**********/
&&&&&&tt++;&&&}
&&&if(tl&sl)&&return&&t;
&&&else&&&&&&&return&&s;}
6.3程序&请编写函数函数的功能是:移动字符串中的内容,移动的规则如下:把第到第个字符,平移到字符串的最后,把第到最后的字符移动到字符串的前部。例如,字符串中原由的内容为:,的值为,则移动后,字符串中的内容应该是。
void&fun1(char&*w)&&/*&本函数的功能是将字符串中字符循环左移一个位置&
{&&int&i;&char&t;
&&for(i=0;i&strlen(w)-1;i++)
&&&&w[i]=w[i+1];
&&w[strlen(w)-1]=t;&&}
void&&fun(char&&*w,&int&&m)&&/*&可调用函数左移字符&
&&for(i&=&0&;&i&&&m&;&i++)&fun1(w);&&}
7.1填空&程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数的功能是输出这位学生的信息。
typedef&&struct
&&&char&&name[9];
&&&struct&{&int&&year,month,day&;}&
&&&float&&score[3];
/**********found**********/
void&show(STU&&tt)
{&&int&&i;
&&&printf("\n%d&%s&%c&%d-%d-%d",&tt.num,&tt.name,&tt.sex,
&&&&&&&&&&&&&tt.birthday.year,&tt.birthday.month,&tt.birthday.day);
&&for(i=0;&i&3;&i++)
/**********found**********/
&&&&&printf("%5.1f",&tt.score[i]);
&&printf("\n");}
7.2改错&给定程序中函数的功能是:求出数组中最大数和次最大数,并把最大数和中的数对调、次最大数和中的数对调。
int&&fun&(&int&&*&a,&int&&&n&)
{&&int&i,&m,&t,&k&;
&&for(i=0;i&2;i++)&{
/**********found**********/
&&&&for(k=i+1;k&n;k++)
/**********found**********/
&&&&&&if(a[k]&a[m])&m=k;
&&&&t=a[i];a[i]=a[m];a[m]=t;&&}}
7.3程序&请编写一个函数是一个大于的无符号整数,若是()位的整数,函数求出的的低位的数作为函数值返回。例如:值为,则函数返回;值位则函数返回。
unsigned&&fun&(&unsigned&&w&)
{&&if(w&10000)&w&%=&10000&;
&&else&if(w&1000)&w&%=&1000&;
&&else&if(w&100)&w&%=&100&;
&&else&if(w&10)&w&%=10&;
&&return&w&;}
8.1填空&给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和门课的成绩。函数的功能是将该学生的各科成绩都乘以一个系数。
void&show(STU&&tt)
{&&int&&i;
&&&printf("%d&&%s&&:&&",tt.num,tt.name);
&&&for(i=0;&i&3;&i++)
&&&&&printf("%5.1f",tt.score[i]);
&&printf("\n");}
/**********found**********/
void&modify(STU&&*ss,float&&a)
{&&int&&i;
&&&for(i=0;&i&3;&i++)
/**********found**********/
&&&&&&&ss-&score[i]&*=a;&}
8.2改错&给定程序中的函数的功能是:求所求阶乘的值作为函数值返回。例如:若,则应输出:。
long&&fun&(&int&&&k)
{/************found************/
&&&if&&(k&&&0)
&&&&&&return&(k*fun(k-1));
/************found************/
&&&else&if&(&k==0&)
&&&&&return&1L;}
8.3程序&程序定义了的二维数组,并在主函数中自动赋值。请编写函数函数的功能是:使数组左下三角元素中的值乘以。例如:若的值为,数组中的值为&&则返回主程序后数组中的值应为&&。
int&&fun&(&int&a[][N],&int&n&)
{&&int&i,&j;
&&for(i&=&0&;&i&&&N&;&i++)
&&&&for(j&=&0&;&j&&=&i;&j++)
&&&&&&a[i][j]&*=&n&;}
9.1填空&给定程序中,函数的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据位:、、、、,排序后链表接点数据域从头至尾的数据为:、、、、。
void&fun(NODE&&*h)
{&NODE&&*p,&*q;&&&&int&&t;
&&while&(p)&{
/**********found**********/
&&&&&q&=&p-&next&;
/**********found**********/
&&&&&while&(q)
&&&&&{&&if&(p-&data&&&q-&data)
&&&&&&&{&&t&=&p-&&&p-&data&=&q-&&&q-&data&=&t;&&}
&&&&&&&q&=&q-&&&&}
/**********found**********/
&&&&p&=&p-&next&;&}}
9.2改错&给定程序中函数的功能是:将所指字符串中的字母转换为按字母序列的后续字母(但转换为,转换为),其他字符不变。
void&&fun&(char&&*s)
{/**********found***********/
&&while(*s)
&&{&&if(*s&='A'&&&*s&='Z'&||&*s&='a'&&&&*s&='z')
&&&&&{&&if(*s=='Z')&&*s='A';
&&&&&&&&else&if(*s=='z')&&*s='a';
&&&&&&&&else&&&&&&&&&&&&&&*s&+=&1;&&&&&}
/**********found***********/
&&&&&s++;&&}}
9.3程序&请编写函数函数的功能是:移动一维数组中的内容;若猪组中有个整数,要求把下标从到(含,小于等于)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:,,,,,,,,,;的值为。移动后一维数组中的内容应为:,,,,,,,,,。
void&&fun(int&&*w,&int&&p,&int&&n)
{&&&int&i,&j&=&0,&b[N]&;
&&for(i&=&p&+&1&;&i&&&n&;&i++)&b[j++]&=&w[i]&;
&&for(i&=&0&;&i&&=&p&;&i++)&b[j++]&=&w[i]&;
&&for(i&=&0&;&i&&&n&;&i++)&w[i]=&b[i]&;}
10.1填空&给定程序中,函数的功能是:判定形参所指的(规定为奇数)的矩阵是否是幻方,若是,函数返回值为;不四,函数返回值为。幻方的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下的矩阵就是一个幻方:&。
int&fun(int&&(*a)[N])
{&int&&i,j,m1,m2,row,
&&m1=m2=0;
&&for(i=0;&i&N;&i++)
&&{&j=N-i-1;&&m1+=a[i][i];&&m2+=a[i][j];&&}
&&if(m1!=m2)&return&&0;
&&for(i=0;&i&N;&i++)&{
/**********found**********/
&&&&&row=colum=&0;
&&&&&for(j=0;&j&N;&j++)
&&&&&{&&row+=a[i][j];&&colum+=a[j][i];&&}
/**********found**********/
&&&&&if(&(row!=colum)&||&(row!=m1)&)&return&0;&&}
/**********found**********/
&&return&&1;}
10.2改错&给定程序中函数的功能是:根据整形形参,计算如下公式的值。
&例如,若主函数中输入,则应输出。
double&fun(&int&m&)
{&&double&t&=&1.0;
&&for(&i&=&2;&i&&=&m;&i++&)
/**********found**********/
&&&&t&=&t-1.0/i;
/**********found**********/
&&&return&t;}
10.3&程序&请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入则输出为。
int&fun(char&*str)
{&&char&*p&=&str&;
&&int&i&=&0&;
&&while(*p)&{
&&&&if(*p&!=&'&')&str[i++]&=&*p&;
&&&&p++&;&&}
str[i]=0;}
第十一套:
11.1填空&给定程序,函数的功能是将带头结点的单向链表逆置。即若原链表结点数据域从头至尾的数据位:、、、、,逆置后,从头至尾数据域依次为:、、、、。
void&fun(NODE&&*h)
{&NODE&&*p,&*q,&*r;
/**********found**********/
/**********found**********/
&&if&(p==0)&&
&&p-&next&=&NULL;
&&while&(q)
&&{&&r&=&q-&&&&&q-&next&=&p;
/**********found**********/
&&&&&p&=&q;&&&&&&&&&&q&=&r;&}
&&h-&next&=&p;&}
给定程序中函数的功能是:计算所指字符串中含有所指字符串的数目,并作为函数值返回。
int&&fun(char&&*s,&&char&&*t)
{&&int&&n;
&&&char&&*p&,&*r;
&&&while&(&*s&)
&&&{&&p=s;
/*********found**********/
&&&&&&r=t;
&&&&&&while(*r)
&&&&&&&&if(*r==*p)&{&&r++;&&p++;&&}
&&&&&&&&else&&
/*********found**********/
&&&&&&if(*r==&0)
&&&&&&&&n++;
&&&&&&s++;&}
&&&return&&n;}
11.3程序函数功能:将放在字符串数组中的个字符串(每串的长度不超过),将顺序合并组成一个新的字符串。函数中给出的语句仅供参考。例如,字符串数组中的个字符串为则合并后的字符串的内容应是:。提示:()功能是将字符串复制到字符串的串尾上,成为一个新串。
&void&&fun(char&&a[M][N],&char&&*b)
{&&/*&以下代码仅供参考&
&&int&i;&*b=0;
&&for(i&=&0&;&i&&&M&;&i++)
&&&&strcat(b,&a[i])&;}
第十二套:
12.1填空&给定程序,函数的功能是将不带头结点的单向链表逆置。即若原链表结点数据域从头至尾的数据位:、、、、,逆置后,从头至尾数据域依次:、、、、。
typedef&struct&node&{
&&struct&node&&*
/**********found**********/
NODE&*&fun(NODE&*h)
{&NODE&&*p,&*q,&*r;
&&if&(p&==&NULL)
&&&&return&NULL;
&&p-&next&=&NULL;
&&while&(q)&
{/**********found**********/
&&&&r&=&q-&
&&&&q-&next&=&p;
&&&&p&=&q;
/**********found**********/
&&&&q&=&r&;&&}
&&return&&p;}
12.2改错&给定程序中函数的功能是:计算所指字符串中位于奇数位置的字符或码为偶数的字符放入所指数组中(规定第一个字符放在第位中)。例如:字符串中的数据为:,则输出应当是:。
void&fun(char&*s,&char&t[])
{&&int&&i,&j=0;
&&&for(i=0;&i&strlen(s);&i++)
/***********found**********/
&&&if(i%2&||&s[i]%2==0)
&&&&&&&&t[j++]=s[i];
/***********found**********/
&&&t[j]='\0';&}
12.3程序&程序定义了的二维数组,按列的顺序依次放到一维数组中。例如:二维数组中的数据为&则一维数组中为:。同
void&&fun(int&&(*s)[10],&int&&*b,&int&&*n,&int&mm,&int&nn)
{&&/*&以下代码仅供参考&
&&int&i,j,np=0;&&&/*&np用作数组下标&
&&for(i&=&0&;&i&&&nn&;&i++)
&&&&for(j&=&0&;&j&&&mm&;&j++)&{
&&&&&&b[np]&=&s[j][i]&;
&&&&&&np&=&i&*&mm&+&j&+&1;&&&}
第十三套:
给定程序中,函数的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据位:、、、、,排序后链表接点数据域从头至尾的数据为:、、、、。
typedef&struct&node&{
&&struct&node&&*
void&fun(NODE&&*h)
{&NODE&&*p,&*q;&&&&int&&t;
/**********found**********/
&&p&=&h-&next&;
&&while&(p)&{
/**********found**********/
&&&&&q&=&p-&next&;
&&&&&while&(q)&{
/**********found**********/
&&&&&&&&if&(p-&data&&=&q-&data)
&&&&&&&&{&&t&=&p-&&&p-&data&=&q-&&&q-&data&=&t;&&}
&&&&&&&&q&=&q-&&&&}
&&&&p&=&p-&&&}}
13.2&改错&给定程序是建立一个带头节点的单向链表,并用随机函数为个节点数据域赋值。函数的作用是求出单向链表节点(不包括头节点)数据域中的最大值,并且作为函数值返回。
typedef&&struct&&aa
&&&struct&&aa&&*
fun&(&&NODE&&*h&)
{&int&&max=-1;
&&NODE&&*p;
/***********found**********/
&&while(p)
&&{&&if(p-&data&max&)
&&&&&&&&&&&&&&max=p-&
/***********found**********/
&&&&&p=p-&&&}
&&return&&&&}
程序定义了的二维数组中数据,按行的顺序依次放到一维数组中。一维数组中数据的个数放在形参所指的存储单元中。例如:二维数组中的数据为&则一维数组中为:。
void&&fun(int&&(*s)[10],&int&&*b,&int&&*n,&int&mm,&int&nn)
{&&int&i,&j,&k&;
&&for(i&=&0&;&i&&&mm&;&i++)
&&&&for(j&=&0&;&j&&&nn&;&j++)&{
&&&&&&k&=&i&*&nn&+&j&;
&&&&&&b[k]&=&s[i][j]&;&&}
&&*n&=&mm&*&nn&;}
第十四套:
14.1填空&给定程序中:函数的功能是用函数指向要调用的函数,并进行调用。规定在空处使指向函数,在处使指向函数。当调用正确时,程序输出:&。
double&f1(double&&x)
{&&return&&x*x;&&}
double&f2(double&x,&double&y)
{&&return&&x*y;&&}
double&fun(double&&a,&double&&b)
{&&/**********found**********/
&&double&(*f)();
&&double&&r1,&r2;
/**********found**********/
&&f&=&f1&;&&&/*&point&fountion&f1&*/
&&r1&=&f(a);
/**********found**********/
&&f&=&f2&;&&&/*&point&fountion&f2&*/
&&r2&=&(*f)(a,&b);
&&return&&r1&+&r2;&&}
14.2改错&给定程序是建立一个带头节点的单向链表,并用随机函数为个节点数据域赋值。函数的作用是求出单向链表节点(不包括头节点)数据域为偶数的值累加起来,并且作为函数值返回。
typedef&&struct&&aa
{&&int&&&&struct&&aa&&*&}NODE;
int&&fun(NODE&&*h)
{&int&&&sum&=&0&;
&&NODE&&*p;
/***********found**********/
&&while(p)
&&{&&if(p-&data%2==0)
&&&&&sum&+=p-&
/***********found**********/
&&&&&p=p-&&&}
&&return&&}
14.3程序&编写函数,函数功能:判断字符串是否为回文?若是,函数返回,主函数输出:,否则返回,主函数输出。回文是指顺读和倒读都一样的字符串。&例如:字符串是回文,而字符串就不是回文。
#define&&N&&80
int&fun(char&*str)
{&&int&i,&j&=&strlen(str)&;
&&for(i&=&0&;&i&&&j&/&2&;&i++)
&&&&if(str[i]&!=&str[j&-&i&-&1])&return&0&;
&&return&1&;&}
第十五套:
15.1填空&程序通过定义学生结构体变量,存储了学生的学号、姓名和门课的成绩。所有学生数据均以二进制方式输出到文件中。函数的功能是从文件中找出指定学号的学生数据,读入此学生数据&,对该生的分数进行修改,使每门课的分数加分,修改后的重写文件中该生的数据,即用该学生的新数据覆盖原数据,其它学生的数据不变,若找不到,则什么都不做。
#define&&&&N&&5
typedef&struct&&student&{
&&char&&name[10];
&&float&&score[3];
void&fun(char&&*filename,&long&&sno)
&&STU&&n;&&&&&&int&&i;
&&fp&=&fopen(filename,"rb+");
/**********found**********/
&&while&(!feof(fp))
&&{&&fread(&n,&sizeof(STU),&1,&fp);
/**********found**********/
&&&&&if&(n.sno==sno)&&
&&if&(!feof(fp))
&&{&&for&(i=0;&i&3;&i++)&&n.score[i]&+=&3;
/**********found**********/
&&&&fseek(fp,&-1L*sizeof(STU),&SEEK_CUR);
&&&&fwrite(&n,&sizeof(STU),&1,&fp);&}
&&fclose(fp);&}
15.2改错&利用插入法对字符串中的字符按从大到小的顺序进行排序。插入法基本算法是:对字符串头两个元素进行排序。然后再把第三个字符插入到前俩个字符中,插入后前三个字符仍然有序;再把第四个字符插入到前三个中去,。待排序字符串已在主程序中赋予。
#define&&&&N&&&80
void&&insert(char&&*aa)
{&&int&&i,j,n;&&&&&char&&
/**********found**********/
&&&n=strlen(&aa&);
&&&for(&i=1;&i&n&;i++&)&{
/**********found**********/
&&&&&&&ch=aa[i];
&&&&&&&j=i-1;
&&&&&&&while&((j&=0)&&&&(&ch&aa[j]&))
&&&&&&&{&&&aa[j+1]=aa[j];
&&&&&&&&&&&j--;&&}
&&&&&&&aa[j+1]=&&}&}
15.3程序&个学生的成绩已在主函数中放入一个带头节点的链表结构中,指向链表的头节点。编写函数,找出学生的最高分。
#define&&&N&&&8
struct&&slist
{&&double&&&s;
&&&struct&slist&&*};
typedef&&struct&slist&&STREC;
double&&fun(&STREC&*h&&)
{&&double&&max=h-&s;
&&STREC&&*p;
&&while(p)
&&{&&if(p-&s&max&)
&&&&&&&max=p-&s;
&&&&&p=p-&&}
&&return&&&}
第十六套:
16.1填空&给定程序中函数的功能:求出行参所指字符串中最长的字符串的长度,将其余的字符串右边用字符补齐,使其与最长的字符串等长。所指字符串数组中共有个字符串,且长度小于。
void&fun(char&&(*ss)[N])
{&&int&&i,&j,&n,&len=0;
&&&for(i=0;&i&M;&i++)
&&&{&&len=strlen(ss[i]);
&&&&&&if(i==0)&n=
&&&&&&if(len&n)n=
&&&for(i=0;&i&M;&i++)&{
/**********found**********/
&&&&&&n=strlen(ss[i]);
&&&&&&for(j=0;&j&len-n;&j++)
/**********found**********/
&&&&&&&&ss[i][n+j]='*';
/**********found**********/
&&&&&&ss[i][n+j+1]='\0';&&}}
16.2改错&下面程序中的函数的功能是:将所指字符串中每个单词的最后一个字母改写成大写。(这里的单词是指空格隔离开的字符串)例如,若输入则输出。
void&fun(&char&*p&)
{&int&k&=&0;
&&for(&;&*p;&p++&)
&&&&&if(&k&)
&&&&&{/**********found***********/
&&&&&&&if(&*p&==&'&'&)
&&&&&&&{&&k&&=&0;
/**********found***********/
&&&&&&&&&*&(p-1)&=&toupper(&*(&p&-&1&)&);&&}}
&&&&&&&k&=&1;&}
16.3程序&请编写函数,对长度为个字符的字符串,除首、尾字符外,将其余个字符按码降序排列。例如,排序后&。
int&fun(char&*s,int&num)
{&&char&ch&;
&&int&i,&j&;
&&for(i&=&1&;&i&&&6&;&i++)
&&for(j&=&i&+&1&;&j&&&6&;&j++)&{
&&&&if(*(s&+&i)&&&*(s&+&j))&{
&&&&&&ch&=&*(s&+&j)&;
&&&&&&*(s&+&j)&=&*(s&+i)&;
&&&&&&*(s&+&i)&=&ch&;&&}&}}
第十七套:
17.1填空&函数功能将存放学生的数据的结构体数组,按照姓名的字典序(从下到大)排序&。
struct&student&{
&&char&&name[10];
&&float&&score[3];&};
void&fun(struct&student&&a[],&int&&n)
{/**********found**********/
&&struct&student&t;
&&int&&i,&j;
/**********found**********/
&&for&(i=0;&i&n-1;&i++)
&&&&for&(j=i+1;&j&n;&j++)
/**********found**********/
&&&&&&if&(strcmp(a[i].name,a[j].name)&&&0)
&&&&&&{&&t&=&a[i];&&&a[i]&=&a[j];&&a[j]&=&t;&&}}
17.2改错&在P所指定的字符串找出码值最大的字符,将其放在第一个位置上;并将该字符向后顺序移动。例如:调用后&&。
fun(&char&*p&)
{&&&char&&&max,*q;&&&int&&&i=0;
&&&&max=p[i];
&&&&while(&p[i]!=0&)
&&&&{&&&if(&max&p[i]&)
{&&max=p[i];
/**********found**********/
&&&q=p+i; }
&&&&&&&&i++;&&}
/**********found**********/
&&&&while(&&q&p&)
&&&&{&&*q=*(q-1);
&&&&&&&q--;}
&&&&p[0]=}
17.3程序&编写函数,其功能:把指定分数范围内的学生数据放在所指的数组中,分数范围内的学生人数由函数值返回。&例如:输入则应把分数在的学生数据进行输出,包括分和分的学生数据。主函数中把放在中,把放在中。
#define&&&N&&&16
typedef&&struct
{&&char&&num[10];
&&&int&&&s;
int&&fun(&STREC&&*a,STREC&*b,int&l,&int&h&)
{&&int&i,j&=&0&;
&&for(i&=&0&;&i&&&N&;&i++)
&&&&if(a[i].s&&=&l&&&&a[i].s&&=&h)&b[j++]&=&a[i]&;
&&return&j&;}
第十八套:
18.1填空&功能:将行参所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数的值返回。例如:指的字符串:,处理后。&
char&*fun(char&&*s)
{&int&&i,&j,&k,&n;&&&&char&&*p,&*t;
&&n=strlen(s)+1;
&&t=(char*)malloc(n*sizeof(char));
&&p=(char*)malloc(n*sizeof(char));
&&j=0;&k=0;
&&for(i=0;&i&n;&i++)
&&{&&if(((s[i]&='a')&&(s[i]&='z'))||((s[i]&='A')&&(s[i]&='Z')))&{
/**********found**********/
&&&&&&&t[j]=s[i];&j++;}
&&&&&{&&p[k]=s[i];&k++;&}&&}
/**********found**********/
&&for(i=0;&i&k;&i++)&&t[j+i]=p[i];
/**********found**********/
&&t[j+k]=&0;
&&return&&t;
18.2改错&函数的&功能&:&将所指&字符串中最后一次出现的与所指字符串&相同的子串替换成所指的字符串,所形成的新字符串放在所指的数组中。要求和所指的字符串的长度相同。例如:所指的字符串的内容:,的内容:,&的内容:,结果数组中的内容:。
int&fun&(char&&*s,&&char&*t1,&char&*t2&,&char&*w)
{&&int&&&i;&&&&&&char&&&*p&,&*r,&*a;
&&strcpy(&w,&s&);
/************found************/
&&while&(&*w&)
&&{&&&p&=&w;&&&r&=&t1;
&&&&&&while&(&*r&)
/************found************/
&&&&&&&&if&(&*r&==&*p&)
&&&&&&&&{&r++;&&p++;&}
&&&&&&&&else&&
&&&&&&&&if&(&*r&==&'\0'&)&a&=&w;
&&&&&&&&w++;&}&&r&=&t2;
&&while&(&*r&){&*a&=&*r;&a++;&r++;&}}
18.3程序&函数功能:将所指的字符串中值为奇数的字符删除,字符串中剩余字符形成一个新串放在所指的数组中。例如:所指的内容:,&其中字符的码为奇数、的码为奇数,都应当删除,其他以此类推。最后所指的数组中的内容:。&
void&&fun(char&&*s,&char&&t[])
{&&int&i,&j&=&0&;
&&for(i&=&0&;&i&&&strlen(s);&i++)&if(s[i]&%&2==0)&t[j++]&=&s[i]&;
&&t[j]&=&0&;}}
第十九套:
19.1填空&函数功能是将行参所指结构体变量中的数据进行修改,并把中地址作为函数值返回主函数,在主函数中输出修改后的数据。&例如所指变量中的学号、姓名、和三门的成绩是:、、、、,修改后输出中的数据应为:、、、、。
struct&student&{
&&char&&name[10];
&&float&&score[3];};
/**********found**********/
struct&student&*&fun(struct&student&&*a)
&&a-&sno&=&10002;
&&strcpy(a-&name,&"LiSi");
/**********found**********/
&&for&(i=0;&i&3;&i++)&a-&score[i]&+=&1;
/**********found**********/
&&return&a&;}
19.2改错&功能:从个字符串中找出最长的那个串,并将其地址作为函数值返回。各在主函数中输入,并存放在一个数组中。
#define&&&&N&&&5
#define&&&&M&&&81
/**********found**********/
char&*fun(char&&(*sq)[M])
{&&int&&i;&&&&&char&&*
&&&sp=sq[0];
&&&for(i=0;i&N;i++)
&&&&&&if(strlen(&sp)&strlen(sq[i]))
&&&&&&&&&sp=sq[i]&;
/**********found**********/
&&&return&&}
19.3程序&&功能:将、中的两个两位正整数合并形成一个新整数放在中。合并的方式:将中十位和个位依次放在变量的百位和个位上,中的十位和个位数依次放在变量的十位和千位上。例如:&当,。调用该函数后,。
void&fun(int&a,&int&b,&long&*c)
{&*c&=&(b%10)*1000+(a/10)*100+(b/10)*10+a%10;&&}
第二十套:
20.1填空&计算行参所指数组中个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据以至所指数组的后部,平均值作为函数值返回,在主函数输出平均值和移动后的数据。例如:有个正数:平均值:移动后输出:&&&。&
#define&&&N&&&10
double&fun(double&&*x)
{&int&&i,&j;&&&&double&&av,&y[N];
/**********found**********/
&&for(i=0;&i&N;&i++)&&av&+=x[i]/N;
&&for(i=j=0;&i&N;&i++)
&&&&if(&x[i]&av&){
/**********found**********/
&&&&&&y[j]=x[i];&x[i]=-1;&j++;}
&&while(i&N)
&&{&&if(&x[i]!=&-1&)&y[j++]=x[i];
/**********found**********/
&&&&&i++;}
&&for(i=0;&i&N;&i++)x[i]&=&y[i];
&&return&&}
20.2改错&&统计字符串中各元音字母()的个数。注意字母不分大小写。
&&例如:输入:则输出为:、、、、。
fun&(&char&&&*s,&&int&&&num[5]&)
{&&int&&k,&i=5;
&&&for&(&k&=&0;&k&i;&k++&)
/**********found**********/
&&&&&num[k]=0;
&&&for&(;&*s;&s++)
&&&{&i&=&-1;
/**********found**********/
&&&&switch&(&*s&)
&&&&{&case&'a':&case&'A':&{i=0;&}
&&&&&&case&'e':&case&'E':&{i=1;&}
&&&&&&case&'i':&case&'I':&{i=2;&}
&&&&&&case&'o':&case&'O':&{i=3;&}
&&&&&&case&'u':&case&'U':&{i=4;&}}
&&&&if&(i&&=&0)
&&&&&&num[i]++;&}}
20.3程序&函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组为&&则函数值为。
#define&&M&&4
#define&&N&&5
int&&fun&(&int&a[M][N]&)
{&&int&tot&=&0,&i,&j&;
&&for(i&=&0&;&i&&&N&;&i++)&{
&&&&tot&+=&a[0][i]&;
&&&&tot&+=&a[M-1][i]&;&}
&&for(i&=&1&;&i&&&M&-&1&;&i++)&{
&&&&tot&+=&a[i][0]&;
&&&&tot&+=&a[i][N-1]&;&}
&&return&tot&;}
第二十一套:
21.1&填空&计算行参所指数组中个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据以至所指数组的后部,平均值作为函数值返回,在主函数输出平均值和移动后的数据。例如:有个正数:平均值:移动后输出:&&&&&&。
#define&&&N&&&10
double&fun(double&&*x)
{&int&&i,&j;&&&&double&&s,&av,&y[N];
&&for(i=0;&i&N;&i++)&&s=s+x[i];
/**********found**********/
&&for(i=j=0;&i&N;&i++)
&&&&if(&x[i]&av&){
/**********found**********/
&&&&&&y[j++]=x[i];&x[i]=-1;}
&&for(i=0;&i&N;&i++)
/**********found**********/
&&&&if(&x[i]!=&-1)&y[j++]=x[i];
&&for(i=0;&i&N;&i++)x[i]&=&y[i];
&&return&&}
21.2&改错&读入一个英文文本本行,将其中每个单词的第一个字母改写成大写,然后输出次文本行(这里的单词是指由空格阁开的字符串)。&例如&输入:&,&输出:&。
/************found************/
#include&&&stdio.h&
/************found************/
upfst&(&char&&*p&)
{&&int&&k=0;
&&&for&(&;&*p;&p++&)
&&&&&&if&(&k&)
&&&&&&{&&&if&(&*p&==&'&'&)&&&k&=&0;&&&}
&&&&&&else&&if&(&*p&!=&'&'&)
&&&&&&{&&&k&=&1;&&&*p&=&toupper(&*p&);&}}
21.3&程序&&求出数组周边元素并作为返回主函数中的例如:&数组中的值为&&主程序的值为。
#define&&N&&5
double&fun&(&int&w[][N]&)
{&&int&&i,&j,&n=0;
&&double&sum=0;
&&for&(&i&=0;&&i&N;&i++&)&{
&&&&sum+=w[0][i]+w[N-1][i];&n+=2;&}
&&for&(&i&=1;&&i&N&-&1;&i++&)&{
&&&&sum&+=w[i][0]+w[i][N-1];
&&&&n+=2;&}
&&return&&sum/n;}
第二十二套:
22.1填空&将自然数以及他们的平方根写到名为的文本文件中,然后再顺序读出显示在屏幕上。
int&fun(char&&*fname&)
{&&FILE&&*&&&&&&int&&i,n;&&&&&&float&&x;
&&&if((fp=fopen(fname,&"w"))==NULL)&&return&&0;
&&&for(i=1;i&=10;i++)
/**********found**********/
&&&&&fprintf(fp,"%d&%f\n",i,sqrt((double)i));
&&&printf("\nSucceed!!
/**********found**********/
&&&fclose(fp);
&&&printf("\nThe&data&in&file&:\n");
/**********found**********/
&&&if((fp=fopen(fname,"r"))==NULL)
&&&&&&return&&0;
&&&fscanf(fp,"%d%f",&n,&x);
&&&while(!feof(fp))
&&&&{&&printf("%d&%f\n",n,x);&&&fscanf(fp,"%d%f",&n,&x);&&}
&&&fclose(fp);
&&&return&&1;}
22.2&改错&的功能:将个无序整数从小到大排序。
fun&(&int&&n,&int&&*a&)
{&&int&&i,&j,&p,&t;
&&&for&(&j&=&0;&j&n-1&;&j++&)
&&&{&&p&=&j;
/************found************/
&&&&for&(&i=j+1;&i&n&;&i++&)
&&&&&&if&(&a[p]&a[i]&)
/************found************/
&&&&&&&&&p=i;
&&&&if&(&p!=j&)
&&&&{&t&=&a[j];&a[j]&=&a[p];&a[p]&=&t;&}&}}
22.3程序&将两个两位的正整数,合并成一个整数放在中。合并方式是:将数的十位和个位依次放在数个位和百位上,数的十位和个位数依次放在数的十位和千位上。例如当,时,调用该函数后。
void&fun(int&a,&int&b,&long&*c)
{&*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);}
{&&int&a,b;&long&c;
&&&printf("Input&a,&b:");
&&&scanf("%d,%d",&&a,&&b);
&&&fun(a,&b,&&c);
&&&printf("The&result&is:&%ld\n",&c);
&&&NONO();}
第二十三套:
23.1填空&&找出矩阵中每列元素的最大值,并按顺序依次存放于行参所指的一维数组中。
#define&&N&&4
void&fun(int&&(*a)[N],&int&&*b)
{&int&&i,j;
&&for(i=0;&i&N;&i++)&{
/**********found**********/
&&&&b[i]=&a[0][i];
&&&&for(j=1;&j&N;&j++)
/**********found**********/
&&&&&&&&if(b[i]&&&a[j][i])&b[i]=a[j][i];&&}}
23.2改错&交换主函数中两个变量的值。例如:若变量中的值原为,中的值为。程序运行后的值为,中的值为。
#include&&stdio.h&
/*********found**********/
int&fun(int&*x,int&*y)
/*********found**********/
&&t=*x;*x=*y;*y=t;}
23.3程序&求出小于或等于的所有素数并放在数组中,函数返回所求出的素数的个数。
#define&MAX&100
int&fun(int&lim,&int&aa[MAX])
{&&/*&以下代码仅供参考&
&&int&i,j,k=0;
&&/*&其中变量用于统计素数个数&
&&for(i=2;i&=i++)
&&{&&&&/*&以下完成判断数组中小于或等于的素数并统计个数&
&&&&for(j&=&2&;&j&&=&(i/2)&;&j++)
&&&&&&if(i&%&j&==&0)&
&&&&if(j&&&(i/2))&aa[k++]&=&i;&}
&&return&k;&}
第二十四套:
24.1填空&函数功能是将行参中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如的数据中&学号、姓名、和三门的成绩是:、、、、,修改后输出中的数据应为:、、、、。
struct&student&{
&&char&&name[10];
&&float&&score[3];};
/**********found**********/
struct&student&fun(struct&&student&&a)
&&a.sno&=&10002;
/**********found**********/
&&strcpy(a.name,&"LiSi");
/**********found**********/
&&for&(i=0;&i&3;&i++)&a.score[i]+=&1;
&&return&&a;}
24.2改错&删除数列中值为的元素。中存放的是数列中元素的个数。
#define&&&N&&20
fun(int&*a,int&n,int&x)
{&&&int&&&p=0,i;
&&&&a[n]=x;
&&&&while(&x!=a[p]&)
/**********found**********/
&&&&if(p==n)&return&-1;
&&&&{&for(i=p;i&n;i++)
/**********found**********/
&&a[i]=a[i+1];
&&&&&&return&n-1;&}}
24.3程序&把分数最低的学生数据放在所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。
#define&&&N&&&16
typedef&&struct
{&&char&&num[10];
&&&int&&&s;
int&&fun(&STREC&&*a,&STREC&*b&)
{&&&int&i,&j&=&0,&min=a[0].s&;
&&&for(i&=&0&;&i&&&N;&i++)&{
&&&&&if(min&&&a[i].s)&{
&&&&&&&j&=&0&;&b[j++]&=&a[i]&;&min&=&a[i].s&;&}
&&&&&else&if(min&==&a[i].s)
&&&&&&&b[j++]&=&a[i]&;&}
&&&return&j&;}
第二十五套:
25.1填空&人员的记录由编号和出生年月日组成。编号唯一。找出指定编号人员的数据,作为函数值返回,由主函数输出,若制定编号不存在,返回数据中的编号为空串。
#define&&&&N&&&&8
typedef&&struct
{&&char&&num[10];
&&&int&&year,month,day&;
/**********found**********/
STU&fun(STU&&*std,&char&&*num)
{&&int&&i;&&&&&&&STU&&a={"",};
&&&for&(i=0;&i&N;&i++)
/**********found**********/
&&&&&&if(&strcmp(std[i].num,num)==0&)
/**********found**********/
&&&&&&&&&&&return&(std[i]);
&&&return&&a;}
25.2改错&从所指中,找出与所指字符串相同的子串的个数作为函数值返回。例如,当所指字符串中的内容为:,所指字符串内容为:,则函数返回整数。
int&fun&(char&&*s,&&char&*t)
{&&int&&&n;&&&&&&char&&*p&,&*r;
&&while&(&*s&)
&&{&&&p&=&s;&&&r&=&t;
&&&&&&while&(&*r&)
&&&&&&&&if&(&*r&==&*p&)&&{
/************found************/
&&&&&&&&&&r++;&&p++;&&}
&&&&&&&&else&&
/************found************/
&&&&&&if&(&*r&==&0&)
&&&&&&&&n++;
&&&&&&s++;&}
&&return&&n;}
25.3程序&将所指中值为偶数的字符删除,串中剩余字符形成一个新串放在所指的数组中。例如,若所指中内容为:,其中字符的码值为偶数、都该删除,其他依次类推。最后所指的数组中的内容为:。
#include&&stdio.h&
#include&&string.h&
void&fun(char&&*s,&char&&t[])
{&&int&i,&j&=&0&;
&&for(i&=&0&;&i&&&strlen(s);&i++)&if(s[i]&%&2)&t[j++]&=&s[i]&;
&&t[j]&=&0&;}
第二十六套:
26.1填空&给定程序中已建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序链接。函数功能:删除链表中数据域值相同结点,使之只保留一个。
#define&&&&N&&&&8
typedef&&struct&list
&&&struct&list&&*
void&&fun(&SLIST&*h)
{&&SLIST&&*p,&*q;
&&&if&(p!=NULL)
&&&{&&q=p-&
&&&&&&while(q!=NULL)
&&&&&&{&&if&(p-&data==q-&data)
&&&&&&&&&{&&p-&next=q-&
/**********found**********/
&&&&&&&&&&&&free(q);
/**********found**********/
&&&&&&&&&&&&q=p-&&}
&&&&&&&&&else
&&&&&&&&&{&p=q;
/**********found**********/
&&&&&&&&&&&q=q-&}}&&}&}
26.2改错&用选择法对数组中的个元素按从小到大的顺序进行排序。
#define&&N&&20
void&&fun(int&a[],&int&n)
{&int&i,&j,&t,&p;
&&for&(j&=&0&;j&&&n-1&;j++)&{
/************found************/
&&&&p&=&j;
&&&&for&(i&=&j;i&&&n;&i++)
&&&&&&if(a[i]&&&a[p])
/************found************/
&&&&&&&&p&=&i;
&&&&t&=&a[p]&;&a[p]&=&a[j]&;&a[j]&=&t;&}}
26.3程序&编写函数,求出到之间(含)能被或整除的所有整数放在数组中,通过返回这些的个数。例如,若传送个的值为,则程序输出:&&。
#define&M&100
void&&fun&(&int&&m,&int&*a&,&int&*n&)
&&for(i=7&;&i&=m;&i++)
&&&&if((i&%&7&==&0)&||&(i&%&11&==&0))&a[(*n)++]=i&;}
第二十七套:
27.1填空&计算下式前项的和作为函数值返回。&&例如,当形参的值为时,函数返回:。
double&fun(int&&n)
{&int&&i;&&&&double&&s,&t;
/**********found**********/
/**********found**********/
&&for(i=1;&i&=n;&i++)
&&{&t=2.0*i;
/**********found**********/
&&&&s=s+(2.0*i-1)*(2.0*i+1)/(t*t);&}
&&return&&s;}
27.2改错&统计所指在所指字符串中出现的次数。例如&若字符串为,&子字符串为,则应输出。
fun&(char&*str,char&*substr)
{&&int&i,j,k,num=0;
/************found************/
&&&for(i&=&0;&str[i];&i++)
&&&&&for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
&&&&&&&if(substr[k+1]=='\0')
&&&&&&&{&&num++;
&&&&&&&&&&&&}
&&&return&&}
编写函数根据以下公式求的值(要求满足精度,即某项小于时停止迭代)&&程序运行后,如果输入精度,则程序输出为。
double&&fun&(&double&&eps)
{&&double&s=1,t=1./3;
&&int&n=1;
&&while(t&=eps){&s+=t;&n++;&t=t*n/(2.0*n+1);&}
&&return&(s*2.0);&}
第二十八套:
28.1填空&统计形参所指字符串中数字字符出现的次数,并放在形参所指的变量中,最后在函数中输出。例如:形参所指的字符串为:结果输出:。
void&fun(char&&*s,&int&&*t)
{&&int&i,&n;
/**********found**********/
&&&for(i=0;&s[i]&!=NULL;&i++)
/**********found**********/
&&&&&&if(s[i]&='0'&&s[i]&=&'9')&n++;
/**********found**********/
&&&&*t=n;&}
28.2改错&通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。&例如,变量中的值原为,中的值原为,程序运行后中的值为,中的值为。
int&fun(int&*x,int&y)
{&&int&t&;
/**************found**************/
&&t&=&*x&;&*x&=&y&;
/**************found**************/
&&return(t)&;}
28.3程序&求出之间能被或整除、但不能同时被和整除的所有整数并将其放在所指的数组中,通过返回这些数的个数。
void&&fun&(int&*a,&int&*n)
{&&int&i&;
&&*n&=&0&;
&&for(i&=&7&;&i&&&1000&;&i++)
&&&&if(((i&%&7)&==&0&||&(i&%&11)&==&0)&&&&(i&%&77)&!=&0)&a[(*n)++]&=&i&;}
第二十九套:
29.1填空&函数功能是将行参所指结构体中数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如所指变量中&学号、姓名、和三门的成绩是:、、、、,修改后输出中的数据应为:、、、、。
#include&&&stdio.h&
#include&&&string.h&
struct&student&{
&&char&&name[10];
&&float&&score[3];};
void&fun(&struct&student&&*b)
/**********found**********/
&&b-&sno&=&10004;
/**********found**********/
strcpy(b-&name,&"LiJie");}
{&struct&student&&t={10002,"ZhangQi",&93,&85,&87};
&&printf("\n\nThe&original&data&:\n");
&&printf("\nNo:&%ld&&Name:&%s\nScores:&&",t.sno,&t.name);
&&for&(i=0;&i&3;&i++)&&printf("%6.2f&",&t.score[i]);
&&printf("\n");
/**********found**********/
&&fun(&t);
&&printf("\nThe&data&after&modified&:\n");
&&printf("\nNo:&%ld&&Name:&%s\nScores:&&",t.sno,&t.name);
&&for&(i=0;&i&3;&i++)&&printf("%6.2f&",&t.score[i]);
&&printf("\n");}
29.2改错应用递归发求的平方根。求平方根的迭代公式为:&例如,为时,平方根值为:。
/**********found**********/
double&fun(double&a,&double&x0)
{&&&double&&&x1,&y;
&&&&x1=(x0+&a/x0)/2.0;
/**********found**********/
&&&&if(&fabs(x1-x0)&0.00001&)
&&y=fun(a,x1);
&&&&else&&y=x1;
&&&&return&&y;&}
29.3程序&学生的记录由学好和成绩组成,名学生的数据放在主函数中结构体数组中,编写函数,把高于等于平均分的学生数据放在所指的数组中,把高于或等于平均分的学生人数通过形参传回,通过函数值返回。
#define&&&N&&&12
typedef&&struct
{&&char&&num[10];
&&&double&&nbsp...
阅读(734)|
能弱弱问一句题库来源可靠吗?
人人移动客户端下载

我要回帖

更多关于 sizeof 不是函数 的文章

 

随机推荐