填空 题(最终).doc

上传人:仙人指路1688 文档编号:2323065 上传时间:2023-02-11 格式:DOC 页数:3 大小:375.50KB
返回 下载 相关 举报
填空 题(最终).doc_第1页
第1页 / 共3页
填空 题(最终).doc_第2页
第2页 / 共3页
填空 题(最终).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《填空 题(最终).doc》由会员分享,可在线阅读,更多相关《填空 题(最终).doc(3页珍藏版)》请在三一办公上搜索。

1、1.将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。 t=*n %10; if(t%2!= 0) *n= x; 2 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。FILE* fp; while (!feof(fp) 。(ch); 。3学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原

2、来的数据,其它学生的数据不变。fp = fopen( filename, rb+); fseek( fp, -1L*sizeof(STU), SEEK_END); fwrite(&n, sizeof(STU), 1, fp);4学生的学号、姓名和3门课的成绩。从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原文件。fp=fopen(filename, rb); if (si.sno sj.sno)fwrite(s, sizeof(STU), N, fp); 5将参数给定的字符串、整数、浮点数写到文

3、本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。FILE*fp; fclose(fp); scanf(fp,%s%s%s, str,str1,str2); 6根据形参i的值返回某个函数的值。调用正确时,程序输出:x1=5.000000. x2=3.000000. x1*x1+x1*x2=40.000000double 。 return f1 (x); return f2 (x, y); 7程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数FUN的功能是输出这位学生的信息。(STU tt) 。

4、(%5.1f, tt.scorei); show(std);8给定程序通过定义并赋初值的方式,利用结构体变量存储了一个学生的学号,姓名和3门课的成绩。函数FUN的功能是将学生的各科成绩都乘以一个系数a。 STU ss- scorei*=a; modify(&std,a);9 二维数组:编写函数fun(int aN,int n),函数的功能是:使数组左下三角元素中的值乘以n。例如:n值为3,a数组中值为。 q=p-next; while(q) p=p-next;10.判定形参a所指的NN(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是;矩阵每

5、行、每列、主对角线及反对角线上元素之和都相等。例如,以下33的矩阵就是一个“幻方”: row=colum=0; if( (row!=colum) | (row!=m1) ) return 0; return 1; 11将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。p = h-next; if (p=0)return; p = q; q = r;12将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。NODE

6、* fun(NODE *h) r = q-next; q = r ; 13函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。p = h-next; q = p-next; if (p-data =q-data) 14用函数指针指向要调用的函数,并进行调用。规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.000000.x2=3.000000.x1*x1+x1*x2=40.000000double (*f)();

7、 f =f1 。 f = f2 。 15学生的学号、姓名和3门课的成绩。从指定文件中找出指定学号的学生数据,读入此学生的数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。while (!feof(fp) if(n.sno= = sno)break;。sizeof(STU), ; 16求形参SS所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长饿字符串等长。SS所指字符串数组中共有M个字符串,且串长N.n=strlen(ssi); ssi n+j=*; 。sin+j+1=0

8、; 17定义存储了若干名学生的学号、姓名和3门课的成绩。功能是将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。struct student t; 。i 0) 18将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s为:asd123fgh543df, 处理后为:asdfghdf12543。tj= si; j+; for(i=0; ik; i+) tj+i=pi; tj+k= 0;19学生学号、姓名和3门课的成绩。将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。例如:a所指变

9、量s中学号、姓名、和三门课成绩依次是:10001、“ZhangSan”、95、80、88,修改后输出t中数据应为:10002、“LiSi”、96、81、89。struct student *fun(struct student *a)for (i=0; iscorei += 1; return a ;20计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如46 30 32 40 6 17 45 1 5 48 26,平均值为:30.500000

10、,输出为:30 6 17 15 26 46 32 40 45 48for(i=0; iN; i+) av += xi/N; yj=xi; xi=-1; j+; i+;21计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000,输出为46 32 40 45 30 6 17 15 26av=s/N; y j+=xi; xi=-1; if( xi!=

11、 -1) yj+=xi;22将自然数110以及他们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。fprintf(fp,%d %fn,i,sqrt(double)i);fclose(fp); if(fp=fopen(fname,r)=NULL)23找出NN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。bi= a0i; if(bi aji) bi=aji; fun(x,y);24学生的学号、姓名和3门课的成绩。将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10

12、001、“ZhangSan”95、80、88,修改后的数据应为:10002、“LiSi”、96、81、89。struct student fun(struct student a)strcpy(a.name, LiSi); for (i=0;i next; q=q- next; 27例如,当形参n的值为10时,函数返回:9.612558。s=0; for(i=1; i=0&sisno=10004; strcpy(b-name,LiJie); fun(&t); 30学生学号、姓名和3门课的成绩。将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。

13、例如10001、“ZhangSan”、95、80、88,输出10002、“LiSi”、95、80、88。b =a; strcpy(b.name, LiSi); for (i=0; i3; i+) printf(%6.2f , b. scorei);31对形参S所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参P所指字符数组中,形成一个新串。例如,形参S为:baawrskjghzlicda,执行后P为:aachjlswt=i; for(j=i+2;jn;j=j+2) pj=0; 32在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除

14、,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。(*ss) M, int k) while(i N) ssik=0; i+; 33调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1, 失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名房子变量sfname中, 目标文件名放在变量tfname中。if(fs=fopen(source, r)=NULL) while(!feof(fs) fputc(ch, ft); 34 用筛选法可得到2n(n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数

15、从数表中删去(把数表中相应位置的值置成0)接着从数表中找下一个非0数,并从数表中找下一个非0数,并从数表中删去该书的所有倍数:依次类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,for (j=ai*2; j=n; j+=ai) while (ai=0) if (ai!= 0)35建立一个NN的矩阵。矩阵元素构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,依次类推。例如若N=5,生成的矩阵为:for(j=i;jnext; fun(head, &num); 37在形参ss所指字符串数组中,查找含有形参

16、substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。for(i=0;iN;i+) if(strstr(ssi, substr)!=NULL )if (find=0) printf(nDont found!n);38函数FUN的功能是:把形参a所指数组总的奇数原顺序依次存放到a0,a1,a2.中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a为: 9、1、4、2、3、6、5、8、7,删除偶数后,a所指数组中数据为:9、1、3

17、、5、7,返回值为5。if (ai%2=1) aj = ai; j+; return j;39在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串组中共有N个字符串,且串长小于M。for(i=0; i N ; i+)if(lendata= x; q=p; q-next= s; 41计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000,主函数中输出:m=30.

18、0*av =s/N; d=*av-xi; j= i; return xj; 42将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符原有的先后次序。例如,形参S串为def35adh3kjsdf7. 结果为:defadhkjsdf3537.t2j=si; j+; for(i=0; ik; i+) si=t1i;for(i=0; ij; i+) sk+i=t2i;43在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。for(i=0; i=

19、0 & ch=9)return 9- (ch-0);45把形参a所指数组中的偶数按原顺序依次存放到a0,a1,a2,把奇数从数组中删除,偶数个数通过函数值返回。例如a为:9,1,4,2,3,6,5,8,7,删除后a 为:4,2,6,8,返回值为4。if (ai%2= 0) aj= ai; j+; return j; 46利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M 。k= i ; if (strlen(psk) strlen(psj) ) k=j; tp=psi; psi=psk; psk= tp; 47找

20、出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。例如,形参s为:abcAbsmaxless,执行后结果为:ch=tolower(*s); kn+=1; if(maxkn)max=kn ;48将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s:abs5def126jkm8,执行后为:22。if( isdigit(*s)sum+=*s- 48; s+; return sum;49将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。例如,形参

21、s为:Abc1x56*,执行后t为A156*。 *(t+n)= *s ; n+; s+; return n ;50给定程序中,函数FUN的功能是:有N X N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: void fun(int (*t) N)tij =tij+tji; tji =0; 51计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如:This is a C language program ,返回值为6。n+; flag=1; if (*s= ) flag= 0 ;

22、s+ ; 52将N X N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有矩阵for(i=0; i= 1e-6);54计算出带有头结点的单向链表中各结点数据域之和作为函数值返回。s+=p-data; p=p-next;printf(nsum=%dn, fun(head); 55判断形参s所指字符串是否是“回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。“回文”是正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Level是“回文”,而LEVLEV不是“回文”。lp= s ; lp+; rp - ; if(lprp) ret

23、urn 0 ; 56从键盘输入若干行文字(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和writetext实现。Text(FILE *fw) fputs(str,fw); 。(%s, str); 57函数FUN:把形参a所指数组中的最小值放在元素a0中,接着把形参a 所指数组中的最大值放在a1元素中;再把a所指数组元素中的次小值放在a2中,把a所指数组元素中的次大值放在a3;其余以次类推。例如:若a数组中:9,1,4,2,3,6,5,8,7;移动后:1,9,2,8,3,7,

24、4,6,5。max=min=ai; if(maxaj) 58把形参s所指字符串中最右边的n个字符复制到形参t 所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。例如,abcdefgh,n的值为5,执行后t应为:defgh。if(n=len) strcpy(t,s);for(i=len-n; i=len-1; i+) tj+=si; tj= 0;59在34的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。例如,有下列矩阵:1 2 13 47 8 10 63 5 9 7程序执行结果为:find: a22=9rmax=

25、aij;c=j;if (k!=i & akc=a)&(ch=z) return ch+a-A; return ch; 62把形参S所指字符中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参S所指的字符串为:ahcbedgf.。if(n%2=0) k=n-1; c= sk; s1= c; 63有N X N矩阵,根据给定的m(m=N)值,将每个元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有矩阵for(i=0;iN;i+) tij+m =tij; for(j=0;jm; j+)64将a所

26、指35矩阵中第k列的元素左移到第0第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵。for(p=1; p=k; p+)for(j=0;jN-1;j+)aij=aij+1; aiN-1= temp;65将a所指43矩阵中第k行元素与第0行元素交换。例如,有下列矩阵(略):若k为2,程序执行结果为(略):void fun(int (*a)N, intk) for(i = 0 ; i N; i+) a0i = aki;66将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并将 main函数输出。max= *std; if(max.agestd) max=stdi

27、;printf(nName:%s,Age:%dn, ax.name,max.age);67调用随机函数产生20个互不相同的整数放在形参 a所指数组中(此数组在主函数中已置0)。while (nN) if( x=ai ) break; if( i=n) an=x; n+; 68求SS所指字符串数组中长度最厂的字符串所在的行下标,作为函数值返回,并把其串长防在形参n所指变量中。SS所指字符串数组中共有M个字符串,且串长 N.int fun(char (*ss) N, int *n) if(i=0) *n= len; *n= len ;69将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为

28、函数值返回,规定字符串中只含有9个以下数字字符。例如,串32486和12345,输出44831。d=d*10+*s-0; s+; return ctod(a)+ctod(b);70计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000av=0; 。av + xi/N; 。 yj+= xi; 71将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如asd123fgh

29、543df,新串为:12543asdfghdf。 pj=si; j+; 。i k; i+) 。return p; 72. 为函数值返回。例如:e的为1e-3, 函数返回值为2.735678. s=0; i=0; i+; 。( 2.0*i)*(2*i); 73 例如,e为1e-3,返回值为0.551690。x=3./4; x=(2*i+1)/(t*t);74人员记录由编号和出生组成,N名人员的数据已在主函数中存入结构体数组std中。找出指定出生年份的人员,将数据放在形参k所指的数组中,由主函数输出,同时由函数返回满足指定条件的人数。if(stdi.year=year) kn+= stdi;75对

30、形参ss所指字符串数组中的M字符串按长度由短到长进行排序。SS所指字符串数组中共有M个字符串,且串长Nfor(j=i+1; jnj) k=j;strcpy(ssk, t);76例如,当形参n的值为10时,函数返回:-0.204491。k=1; t=2*i; k=k*-1; 77将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入整数:27638496,函数返回值为:64862。if(t%2=0) x= x*10+t; n= n/10; 78 给定程序中,函数FUN的功能是:将N X N 矩阵主对角线元素中的值与反向对角线对应位置上元素中的

31、值进行交换。例如,若N=3,有下列矩阵:.。void fun(int tN , int n)for(i=0;in; i+) tin-1-i= s; 79求SS所指字符串数组中长度最短的字符串所在的行下标, 作为函数值返回,并把其串长放在形参n所指变量中。SS所指字符串数组中共有M个字符串,且串长N 。for(i=0; i M; i+) if(len =0&si=9) while(si+1+n!=0)n+; sj+1=j;82找出100999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。while(t=999) s1=t%

32、10;s2=(t/10)%10; s3=t/100; if(s1+s2+s3= x) 83找出100至x(x999)之间各位上的数字之和为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个。 n=0; while(tb) ? (bc? b :(ac?c: a) : (ac)? a : (bc)?c: b);85建立班级

33、通讯录。通讯录中记录每位同学的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人信息作为一个数据块写到名为myfile5.dat二进制文件中。int fun(STYPE *std) FILE 。 。, 1, fp); 86 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次函数FUN的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。for(t=1; t maxt*(n-1); t+) return count;87统计长整数N的各个位上出现数字1,2,3的次数,并通过外部(全部)变量c1,c2,c

34、3,返回主函数。例如: 当n=123114350时, 结果为:c1=3 c2=1 c3=2switch(n%10) case 1:c1+;break; case 2: c2+;break;88把形参a所指数组中的最大值放在a0中,接着求出a所指数组中的最小值防在 a1中;再把a所指数组元素中的次大值a2中,把a所指数组的数据最初排列为:1,4,2,3,9,6,5,8,7,则按规则移动后,数据排列为:9,1,8,2,7,3,6,4,5。形参n中存放a所指数组中数据的个数。void fun(int *a , int n) for (i=0; in-1; i+=2) for (j= i; jn; j

35、+)89求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长=0; j-) ssij=*; 90统计所有小于等于n(n2)的素数的个数,素数的个数作为函数值返回。for (j=2; j=i) 91 f = 1.0+ x; t *= x/ n; f += t; 92t = 1; for (i=1; inext; printf( %d , s-data); free(t);94 f = 1; t *= (-1)*x/i; f += t;95计算N X N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:先

36、累加主对角线元素中的值,软后累加反向对角线的值。例如,若N=3 有下列矩阵:首先累加1,5,9,然后累加3,5,7,函数的返回值为30。sum=0; sum+=tii ; sum+= tin-i-1 ; 96t0N-j-1=tj 0; for(j=N-1; j=0; j- ) tjN-1=rj;97 函数FUN的功能是:逆置数组元素中的值。例如:若a为:1,2,3,4,5,6,7,8,9,逆置后为:9,8,7。6,5,4,3,2,1。形参n给出数组中数据的个数。for (i=0; idata=ch) return n; k=fun(head,ch);99将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号