1编一个函数funchars函数的功能是把字符串中的内容逆置

上传人:仙*** 文档编号:95828393 上传时间:2022-05-24 格式:DOC 页数:26 大小:627.50KB
收藏 版权申诉 举报 下载
1编一个函数funchars函数的功能是把字符串中的内容逆置_第1页
第1页 / 共26页
1编一个函数funchars函数的功能是把字符串中的内容逆置_第2页
第2页 / 共26页
1编一个函数funchars函数的功能是把字符串中的内容逆置_第3页
第3页 / 共26页
资源描述:

《1编一个函数funchars函数的功能是把字符串中的内容逆置》由会员分享,可在线阅读,更多相关《1编一个函数funchars函数的功能是把字符串中的内容逆置(26页珍藏版)》请在装配图网上搜索。

1、1、 编一个函数 fun(char *s), 函数的功能是把字 符串中的内容逆置。例子如:字符串中原有的内容为: abcdefg ,则调 用该函数后,串中的内容为: gfedcba。试题程序:#include #include #include #define N 81/* 注:该题的算法是先分别找出字符串的两头,然 后同时逐一往中间移动,每移动一次 都进行两字符的位置对换,直到中间字符(用 s+is+n-1-i 来控制)。由于 s+i 中一个 地址,因此要注意把它的内容取出再进行换位。即 先进行取内容运算 * ) */ fun(char *s) int i=0,t,n=strlen(s);

2、for(;s+is+n-1-i;i+) t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;main() char aN;clrscr();printf(Enter a string:); gets(a); printf(The original string is:);puts(a); fun(a);printf(n);printf(The string after modified:);puts(a);2、 写程序,实现矩阵( 3行 3列)的转置(即行 列互换)。例如,输入一面的矩阵:程序输出:试题程序:#include #include /* 这题的关键在于进

3、行行列下标转换的算法,由矩 阵的对称性我们不难看出在进行行列 互换时 aj 在好是与 aji 互换,因而只要我位 让程序走完矩阵的左上角即可(用 for(i=0;i2;i+) 再套 for(j=i+1;j3;j+) 来完 成左上角的走动。 */ int fun(int array33) int i,j,t; for(i=0;i2;i+) for(j=i+1;j3;j+) t=arrayij;arrayij=arrayji;arra yji=t;main() int i,j;int array33=100,200,300,400, 500,600,700,800,900;clrscr(); fo

4、r(i=0;i3;i+)for(j=0;j3;j+) printf(%7d,arrayij);printf(n);fun(array);printf(Converted array:n); for(i=0;i3;i+)for(j=0;j3;j+) printf(%7d,arrayij);printf(n);3 、 请编一个函数 fun(int *a,int n,int *odd,int *even) ,函数的功能是分别求出数 组中所有奇数之和以及所有偶数之和。形参 n 给了 数组中数据的个数:利用指针 odd 返回 奇数之和,利用指针 even 返回偶娄这和。 例如:数组中的值依次为: 1,8

5、, 2,3,11,6; 则利用指针 odd 返回奇数之和 24;利用 指针 even 返回偶数之和 8。试题程序。#include #include #define N 20/* 注:该题的算法是:用 for() 循环一步一步地找 元素,用 if(!ai%2) 来判断是否是奇 数, %运算是求余运算,当对 2 求余为 1时表示原 数为奇数,否则为偶数。 */ fun(int *a,int n,int *odd,int *even) int i; *even=0;*odd=0;for(i=0;in;i+)if(!(ai%2)*even+=ai;else*odd+=ai;main() int aN

6、=1,9,2,3,11,6,i,n=6,odd,even;clrscr();printf(The original data is:n);for(i=0;in;i+) printf(%5d,*(a+i);printf(nn);fun(a,n,&odd,&even);printf(The sum of odd numbers:%dn,odd); printf(The sum of even number:%dn,even);4、 要求程序的功能是:把 20 个随机数存入一个 数组,然后输出该数组中的最小值。其 中确定最小值的下标的操作在 fun 函数中实现,请 给出该函数的定义。试题程序。#in

7、clude #include #define VSIZE 20int vectorVSIZE;/* 注:该题的算法是用一个变量( j) 来存储最小值 元素的下标,在循环过程中让每个元 素都与原最小值元素进行大小比较(if(listilistj) ,如发现更小的则让 j 重新 拥有最小值元素的下标( j=i) 。 */int fun(int list,int size) int i,j=0;for(i=1;isize;i+)if(listilistj)j=i;return j;main()int i;clrscr();for(i=0;iVSIZE;i+)vectori=rand();printf

8、(Vector%d=%6dn,i,vectori);i=fun(vector,VSIZE);printf(nMininum:vector%d=%6dn,i,vectori);5 、 请编一个函数 float fun(double h) ,函数的 功能是对变量 h 中的值保留 2 位小数,并 对第三位进行四舍五入(规定 h 中的值为正数)。 例如: h 值为 8.32433 ,则函数返回 8.32 ; h 值为 8.32533 ,则函数返回 8.33 。试题程序。#include #include /*注:h乘以1000后正好是原小数点后第三位做了新数的个位数,然后再进行加 5 运算时 。如原小

9、数点后第三位为 4及以下则加 5 后还是不 能进一位(即四舍),如是 5 及以上则加5 后该位就要向前进一位数(即五入)。进行加5运算后除 10 再赋给一个整型变量此时就 只有原小数点第二位及以前各位保留在整型变量 中,最后再对整型变量除 100,这样又出 现了两位小数。该题中,进行四舍五入后一定要赋 给一个整型变量才能将不用部分彻底变成 0 。*/float fun(float h) long t;h=h*1000;t=(h+5)/10;return (float)t/100;main()float a;clrscr();printf(Enter a:); scanf(%f,&a);prin

10、tf(The original data is:);printf(%fnn,a);printf(The result :%6.2fn,fun(a);6、编写函数 fun ,函数的功能是:从字符串中删 除指定的字符。同一字母的大、小写按 不同字符处理。若程序执行时, 输入字符串为: turbo c and Borland c+从键盘上输入字符:n,则输出后变为:turbo cad borlad c+如果输入的字符串不存在,则字符串照原样输出。 试题程序。#include #include /* 注:该题的算法是让 i 控制一个一个字符往后走, 在移动过程中如果 si 不是要删的字 符,则将其按顺

11、序放到新串中 (新串亦是用 s 来做, 只是用 k 来控制新串的下标,由于要 删除一些元素,因此新串的下标总是比原下标 i 要 慢。因而可用此法即同一字符串变量的 方法。 */int fun(char s,int c)int i,k=0;for(i=0;si;i+)if(si!=c) sk+=si;sk=0;main() static char str=turbo c and borland c+; char ch;clrscr();printf( :%sn,str);printf( :);scanf(%c,&ch);fun(str,ch);printf(str=%sn,str);7、请编写一

12、个 unsigned fun(unsigned w) , w是 一个大于10的无符号整数,若 w是n (n=2)位的整数,函数求出w的后n-1位的数作为函数值返回。例如:w值为5923,则函数返回923 ; w值为923 则函数返回 23。试题程序。#include #include /* 注:由于 unsigned 型整数在 0-65535 这间,只 要它大于 10000 则对 10000 求余即得出后面 4位,否则如果大于 1000则对 1000求余得出后3 位数,这样一层一层往小的判断。由于return 的作用除了返回值以外,还有当执行到return 时就跳出该程序,所以可以连续的用 i

13、f() 语句。 */unsigned fun( unsigned w ) if(w=10000) return w%10000;if(w=1000) return w%1000;if(w=100) return w%100;return w%10;main() unsigned x;printf( enter a unsigned integer number : ); scanf( %u,&x);if(x10) printf(data error!);else printf (the result :%un, fun(x);8、编写函数 int fun(int lim,int aaMAX)

14、,该 函数的功能是求出小于 lim 的所有素数 并放在 aa 数组中,该函数返回所求出素数的个数。 试题程序。#include #include #define MAX 100/* 注:循环 for(i=2;i=k) 用于判断在 上一个for()循环中i能否走到k,如果能则表示 在2到k-1的数都不能整除k,即k为素数。*/int fun( int lim, int aaMAX) int i,j=0,k;for( k=2; klim; k+) for( i=2; i=k) aaj+=k;return j;main() int limit,i,sum;int aaMAX;printf(n inp

15、ut a integer number:);scanf( %d,&limit); sum=fun(limit,aa);for(i=0; isum; i+) if(i%10=0&i!=0)printf(n);printf(%5d, aai);9、请编写函数 fun ,函数的功能是求出二维数组 周边元素之和,作为函数值返回。二维 数组中的值在主函数中赋予。例如:二维数组中的值为则函数值为 61。试题程序。#include #include #define M 4#define N 5/* 注:该题的第一个 for() 循环是计算矩阵的最上 一行和最下一行的总和,第二个 for() 是计算除两头元素

16、以外的最左一列和最右一列的 元素的和,最后 sun 就是周边元素的和。*/int fun(int aMN)int sum=0,i;for(i=0;iN;i+) sum+=a0i+aM-1i;for(i=1;iM-1;i+); sum+=ai0+aiN-1;return sum ;main() int aaMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0;int i,j,y;clrscr();printf(The original data is :n);for(i=0;iM;i+)for(j=0;jN;j+) printf(%6d,aaij); printf

17、(n);y=fun(aa);printf(nThe sum: %dn,y);printf(n);10、请编写函数 fun ,对长度为 7个字符的字符串, 除首、尾字符外,将其余 5 个字符按降序排列。例如,原来的字符串为CEAedca排序后输出为 CedcEAa。试题程序。#include #include #include /* 该题采用的排序法是选择法进行降序排序,算法 是用外 for() 循环从字符串的前端往后端走动, 每走动一个字符都用内嵌的 for( )循环在 该字符后找出最小的字符与该字符进 行换位。直到外 for() 循环走到最后一个字符。此 外,此题还要注意把首尾字符除开,即在

18、最外层 for() 循环中从 1 开始,只到 num-2 即可。 */int fun(char *s,int num) int i,j,t;for(i=1;inum-2;i+)for(j=i+1;jnum-1;j+)if(sisj) t=si;si=sj;sj=t;main() char s10;clrscr();printf( 输入 7 个字符的字符串 :);gets(s);fun(s,7);printf(n%s,s);11、请编一函数 void fun(int ttMN,intppN) , tt指向一个M行N列的二维数组, 求出二维数组每列中最小元素,并依次放入 pp 所 指一维数组中,二

19、维数组中的数已在主 函数中赋予。试题程序。#include conio.h#include stdio.h#define M 3#define N 4/* 注:该题用 for(i=0;iN;i+) 来控制一列一列地 找,而内嵌循环 for(j=0;jM;j+) 用于控制同列内元素的比较。多重循环的嵌套 总是最里层循环变化最快,即外层循 环改变一个值,内层循环就要循环完一次,对于多 重循环一定要好好去体会和理解,在 多数题目中都要用到多重循环(一般为二重)。 */ void fun(int ttMN,int ppN) int i, j;for(i=0;iN;i+) pp=tt0i;for(j=0

20、;jM;j+)if(ttjippi) ppi=ttji;main() int tMN= 22,45,56,30,19,33,45,38, 20,22,66,40;int pN,i,j,k;clrscr();printf(the original data is:n);for(i=0;iM;i+)for(j=0;jN;j+)printf(%6d,tij);printf(n);fun(t,p);printf(nthe result is:n);for(k=0;kN;k+)printf(%4d,pk);printf(n);12、写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针

21、 max 传回该串地址。(注意:用 * 作为结束输入的标 志。)试题程序。#include stdio.h#include string.h#include conio.h/* 函数 strlen() 用于求出字符串的长度,这个题 中主要是 *max=p; 不能换成 max=&p;如果用maz=&p;则只改变了 max的指向,它不能 传回给实参。因此我们要改变max指向地址中的内容,这才能使得实参 ps 有正确的值。 */fun(char (*a)81, int num,char *max) char *p=a0;int i;for(i=1;istrlen(p)p=ai;*max=p;main

22、() char ss1081,*ps;int n,i=0;clrscr();printf(enter string:n);gets(ssi);puts(ssi);while(!strcmp(ssi,*)=0)i+;gets(ssi);puts(ssi);n=i;fun(ss,n,&ps);printf(nmax=%sn,ps);13、请编一个函数 fun ,其中 n 所指存储单元中存 放了数组中元素的个数。函数的功能是 :删除所有值为 y 的元素。数组元素中的值和 y 的 值由主函数通过健盘读入。试题程序。#include #include #define M 20/* 注:该题的算法是,用

23、for() 循环控制元素逐一 判断数组元素是否等于y ,若不等则赋给新数bb,由于删除的关系j总是小于或等于i, 故而可用 bb 作为新数组,与第 6 题相似。 还要注意 *n=j ;如果没有这个语句则不能传回新数 组的个数,另外也不能换成 n=&j; 这点是用指针时常犯的错误,切记! */void fun (int bb, int *n,int y) int i , j=0;for( i=0; i*n; i+)if(bbi!=y) bbj+=bbi;*n=j;main() int aaM,n,y,k;printf(nplease enter n:);scanf(%d,&n);printf(n

24、enter %d positive number:n, n);for( k=0; kn; k+) scanf( %d,&aak);printf(the original data is: n);for( k=0; kn; k+) printf( %5d, aak);printf( nenter a number to deleted:); scanf(%d,&y);fun(aa,&n,y);printf(the data after deleted %d:n, y);for(k=0; kn; k+) printf(%4d,aak);printf(n);4、 编写一个函数,该函数可以统计一个长度

25、为 2 的字符串在另一个字符串中出现的次数。例如, 假定输入的字符串为: asd asasdfg asd as zx67 asd mklo ,子字符串为: as,则应输出 6 。试题程序。#include stdio.h#include string.h#include conio.h/* 注:由于小串中只有 2 个字符所以可用 stri=sbustr0&stri+1=substr1 来判断小串是否与长串当前位置( stri ) 相同(即出现一次)。因而只要让长串 当前位置逐一向后移即可 (用 for() 循环来完成) 。 */int fun(char *str,char *substr) i

26、nt i,n=0,s=strlen(str);for(i=0;i100)printf(data eror!n);exit(0); y=fun(x);if(y) printf(%d yesn,x);else printf (%d no!n,x);16、 请编写函数 fun ,函数的功能是: 在字符串中 所有数字字符前加一个 $字符。例如,输入:A1B23CD45则输出为:A$1B$2$3CD$4$5注意:部分源程序给出如下。#include /* 注:该题用 while() 循环来控制原字符串从头走 到尾,在走动过程中判断是当前字符是 否是数字,若是则在新串中先连一个 $ 然后再连 原字符,否则

27、直接连原字符。一定要 注意指针和下标的变化。最后要把新串拷贝到 s 所 指的地址中,注意不能用 s=a ;若用了 ,则实参数组还是原字符串。 */ void fun( char *s)char a100;int i=0;while(*s)if(*s=0&*s=9)ai+=$;ai+=*s+;else ai+=*s+;a=0;strcpy(s,a);main() char s80; printf(enter a string:); scanf(%s, s);fun(s);printf(the result: %sn, s);17 、 请编一个函数 fun(char *s) ,函数的功能是 把字符

28、串中所有的字符前移一个位置, 串中的第一个字符移到最后。例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为: n.123xyZM。试题程序。 #include conio.h #include stdio.h #define N 81/* 注:该题要先将字符串的头元素存到某一变量(用 c=*s) 中,然后后面的字符依向前 移(用 for() 循环),要记得在串的未尾加一个结 束符。 */ fun(char *s) char c=*s; for(;*(s+1);s+) *s=*(s+1);*s=c;*(s+1)=0;main() char aN; clrscr(); prin

29、tf(enter a string:); gets(a);printf(the original string is:);puts(a); fun(a);printf(the string after modified:); puts(a);18、请编写函数 fun ,函数的功能是: 将所有大于1 小于整数 m 的非素数存入 xx 所指数组 中,非素数的个数通过 k 传回。例如,若输入: 17,则应输出: 9和4 6 8 9 10 1214 15 16 。试题程序。#include #include /* 注:内嵌的 for() 循环用于判断是否是素数, 在 ji 的情况下,只要 j 对 i

30、求余,余数为 0 则表示 i 不是素数,则将 i 存入 xx 数组中。 break; 语句只是让它提前结束循环。不用 亦可。 */void fun( int m, int *k, int xx ) int i,j;*k=0;for( i=2; im; i+)for( j=2; ji; j+)if( i%j=0) xx(*k)+=i; break;main() int m, n,zz100;printf(n please enter an integer numberbetween 10 and 100: );scanf( %d,&n);fun(n,&m,zz);printf(nn there

31、are %d non-prime numbersless than %d: , m,n);for(n=0; nm; n+)printf(n %4d,zzn);19、请编一个函数 fun(char *s) ,函数的功能是 把字符串中所有的字母改写成该字母的下一个字母,最后一个字母 z改写成字母a。大写 字母仍为大写字母,小写字母仍为小写 字母,其他的字符不变。例如:原有的字符串为: Mn.123zyZ ,则调用该函 数后,串中的内容为: No.123yzA 。试题程序。#include conio.h#include string.h#include stdio.h#include ctype.

32、h#define N 81/* 该题的思路较为明显, 用 for() 循环一个字符一 个字符地走动,移动过程中判断是否 在 a 到 y 之间,若是则加 1(即下移一个字母), 若是 z 则换成对应的 a */ fun(char *s) int i,n=strlen(s); for(i=0;i=A&si=a&si<z) si=si+1;else if(si=z) si=a;else if(si=Z) si=A; main() char aN;clrscr();printf(enter a string:);gets(a); printf(the original string is:);p

33、uts(a); fun(a);printf(the string after modified:); puts(a);20、请编写函数 fun ,函数的功能是: 将 s 所指字 符串中、下标为奇数位置上的大写字母 转换为字母序列中的下一个小写字母;若该位置上 是小写字母,则不转换;若该位置上是大写字母乙则仅转换成小写字母z。例如,输入:ABCdxZZZ则输出为:AcCdXzZz, 试题程序。#include stdio.h #define N 80/* 该题的算法与上一题相似,注意同一个字母小 写要比大写在 ASCII 值上大 32。 */ void fun(char *s)int i; fo

34、r(i=1;i=A&siZ) si+=32+1;else if(si=Z) si+=32;main()char sN; printf(nenter a string:);scanf(%s,s);fun(s); printf(nthe result:%sn,s);21、程序定义了 N*N 的二维数组,并在主函数中 赋值。请编写函数 fun ,函数的功能是: 给数组周边元素置 0 值。例如: a 数组中的值为则返回主程序后 a 数组中的值应为 注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#inclu

35、de #include #include #define N 5/* 由于是赋值 0,因而只要能表示出周边元素即好 办,它与求和不同在于求和不能重复 对某个元素进行运算,而赋值则可重复赋值。所以 这里只用了一个 for() 循环来找出所有 的周边元素。 */fun(int wN) int i ; for(i=0;iN;i+) wi0=0; wiN-1=0;w0i=0; wN-1i=0;22、请编写函数 fun ,它的功能是:求出 ss 所指 字符串中、指定字符的个数,并返回此 值。例如: 若输入字符串: 123412132,输入字符为: 1, 则输出: 3。试题程序。#include#incl

36、ude#define M 81/* 注:本题用 while() 循环来控制字符的移动, 每 移动一个字符都要进行判断( if(*ss=c) )是否为指定的字母,若是则个数加 1。这里 要注意如何让 ss 指针向下走动( ss+ ) 。*/int fun(char *ss,char c)int num=0;while(*ss!=0)if(*ss=c) num+;ss+;return(num);main()char aM,ch;clrscr();printf(nPlease enter a strint:);gets(a); printf(nPlease enter a char:);ch=get

37、char(); printf(nThe number of the char is:%dn,fun(a,ch);23、程序定义了 N*N 的二维数组,并在主函数中 赋值。请编写函数 fun ,函数的功能是: 求出数组周边元素的平均值并作为函数值返回给 主函数中的 s 。例如: a 数组中的值为则返回主程序后 s 的值应为: 3.375 。 试题程序。#include #include #include #define N 5/* 注意不能重复计算, 它与题 21 不同,第一个 for() 循环求出第一列与最后一列的和,第二个 for() 循环求出第一行与最后一行(已除去 两头元素),要注意第二

38、个 for( )中起 始为 1,最后为 N-2。*/ double fun (int wN) int i,t=0;double s=0;for(i=0;iN;i+)s+=wi0+wiN-1; t+=2; for(i=1;iN-1;i+)s+=w0i+wN-1i; t+=2;s=s/t;return s;main() intaNN=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5, 6,8,2,5,9,1,4,1;int i,j;double s;clrscr();printf(* The array *n);for(i=0;iN;i+)for(j=0;jN;j+) print

39、f(%4d,aij);printf(n);s=fun(a);printf(* The result *n);printf(The sum is %lfn,s);24、编写一个函数 fun ,它的功能是: 实现两个 字符串的连接(不使用库函数 strcat )。 例如,分别输入下面两个字符串:FirstSrting SecondString 程序输出:FirstString SecondString 注意:部分源程序给出如下。 请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#include#include/* 注:第一个 f

40、or() 循环用于让 i 成为第一个字符 串的结束符的下标,要注意在这个 for() 后要有一个分号否则出错。第二个 for() 的作用 是将第二个字符串一个一个字符依次放 到第一个字符串的未尾。此外,还要注意最后一定要有 p1i=0 ;来给字符串加上结束符。 */void fun(char p1,char p2)int i,j;for(i=0;p1i;i+); for(j=0;p2j;j+)p1i+=p2j;p1i=0;main() char s180,s280;clrscr();printf(Enter s1 and s2:n); scanf(%s%s,s1,s2);printf(s1=%

41、sn,s1);printf(s2=%sn,s2);printf(Invoke fun(s1,s2):n);fun(s1,s2);printf(After invoking:n);printf(%sn,s1);25、程序定义了 N*N 的二维数组,并在主函数中 自动赋值。请编写函数 fun(int aN) ,函数的功能是:使数组第一列元素中的值与最 后一列元素中的值对调、第二列元素的值与倒数第二列中的值对调、其他依次类推。例如: a 数组中的值为则返回主程序后 a 数组中的值应为注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编

42、写 的若干语句。试题程序。#include #include #include #define N 5/* 本题的第一个 for() 循环用于控制行, 而内嵌的 for() 用于在同一行中将列与列对调,当i为0时ami为第m行的第一列元素, amN-1-i 为第m行的最后一列的元素,正好 符合调换的要求。依次类推。 */ int fun(int aN) int i ,m,t; for(m=0;mN;m+) for(i=0;iN/2;i+) t=ami;ami=amN-1-i; amN-1-i=t;main() int aNN,i,j; clrscr();printf(* The array *

43、n); for(i=0;iN;i+) for(j=0;jN;j+)aij=rand()%30;printf(%4d,aij); printf(n); fun(a); printf(* The result *n);for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n);26、请编写函数 fun ,函数的功能是: 实现 B=A+A , 即把矩阵 A 加上 A 的转置,存放在矩阵B中。计算结果在 main函数中输出。 例如:输入下面的矩阵: 其转置矩阵为:第一列,第二行作为转置后的第二列,的行列互换 的性质)。而且最后要求出两矩阵的 相加后

44、得出的新矩阵,由转置性质可知原 aji 转置后位置为 aij ,在表达式: b ij=aij+aji第一个 a 为 A 的元素,第二个 a 为 A 的元素。 */void fun(int a33,int b33)int i,j;for(i=0;i3;i+) for(j=0;j3;j+)bij=aij+aji;main()inta33=1,2,3,4,5,6,7,8,9,t33;int i,j;clrscr(); fun(a,t);for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,tij);printf(n);27、序定义了 N*N 的二维数组,并在主函数中自 动

45、赋值。请编写函数 fun(int aN) , 函数的功能是:使数组第一行元素中的值与最后一 行元素中的值对调、第二行元素的值 与倒数第二行中的值对调、其他依次类推。 例如: a 数组中的值为则返回主程序后 a 数组中的值应为程序输出: 注意:部分源程序给出如下。 请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#include#include/* 26题:本题没有先求出 A的转置,而是直接利 用转置的性质(即第一行作为转置后的注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun

46、的花括号中填入你编写 的若干语句。试题程序。#include #include #include #define N 5/* 27 题:该题与 25 题相似,外层 for() 循环用于 控制一列一列地移动,内嵌的 forr() 循 环用于控制在同一列内对应行元素的对调。 aim 为第m列第i行元素,而aN-1-im 为第m列倒数第i行的元素,正好需要对调。*/ fun(int aN) int i,m,t;for(m=0;mN;m+) for(i=0;iN/2;i+) t=aim;aim=aN-1-im; aN-1-im=t;main() int aNN, i,j;clrscr();printf

47、(* The array *n);for(i=0;iN;i+)for(j=0;jN;j+)aij=rand()%30; printf(%4d,aij); printf(n);fun(a);printf(* The result *n);for(i=0;iN;i+)for(j=0;jN;j+)printf(%4d,aij); printf(n);28、m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的 人数作为函数值返回。例如,当 score 数组中的数据为:10、 20、 30、 40、50、 60、 70、 80、 90、时,函数返回的人数应该是 4, belo

48、w 中的数据应为: 10、 20、 30、 40。注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#include #include #include /* 28题:第一个for()循环用来计算score数组中分 数的总和,然后用 aver/=m 求出平均 值,第二个循环用来找出小于平均分的元素,并放 到数组below中,这里要注意j的递增 方式。 */int fun(int score,int m, int below) int i,j=0,aver=0;for(i=0;im;i+) aver+=

49、scorei;aver/=m;for(i=0;im;i+)if(scoreiaver)belowj+=scorei;return j;main() int i,n,below9;int score9=10,20,30,40,50,60,70,80,90;clrscr();n=fun(score,9,below);printf(nBelow the average score are :); for(i=0;in;i+) printf(%4d,belowi);29、程序定义了 N*N 的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),函数的功能是:使数组左下半三角元素中的值全

50、 部置成 0 。例如: a 数组中的值为,则返回主程序后 a 数组中的值应为 注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内 容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#include#include#include#define N 5/* 29 题:该题的关键是如何表示出左下半角的元 素,当从上往下到第 i 行时只有左边的i 个元素要置为 0(每行总是如此) 。用外层 for() 来 控制行而内嵌的 for() 来控制每行的 左边元素,故而在内嵌 for() 中 j 最大只能循环到 i(即表示出第 i 行左边的 i 个元素)。 */in

51、t fun(int aN)int i,j;for(i=0;iN;i+) for(j=0;j=i;j+) aij=0;main()int aNN,i,j;clrscr();printf(* The array *n);for(i=0;iN;i+)for(j=0;jN;j+)aij=rand()%10;printf(%4d,aij); printf(n);fun(a);printf(The resultn);for(i=0;iN;i+)for(j=0;jN;j+) printf(%4d,aij);printf(n);30、请编写函数fun,经的功能是:求出1到1000之内能被 7 或 11 整除、

52、但不能同时补 7 和11整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何去何内容,仅在函数 fun 的花括号中填入你编写 的若干语句。试题程序。#include #include /* 30 题:该题关键就是如何表示能被 7 或 11 整除, 但不能同时被 7 和 11 整除。用( i%7= 0)/(i%11=0) 来 表 示 能 被 7 或 11 整 除 , 用 !(i%7=0)&(i%11=0) 来表示不能 同时被 7 和 11 整除。void fun(int *a,int *n) int i,m=0;for(i=1;i1000;i+)if(i%7=0)/(i%11=0)&!(i%7=0)&(i%11=0)am=i;m+=1;*n=

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!