【计算机类职业资格】函数、指针及答案解析.doc
《【计算机类职业资格】函数、指针及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】函数、指针及答案解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、函数、指针及答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:9,分数:72.00)1.函数 fun()的功能是:交换主函数中两个变量的值。例如,若变量 a 中的值原为 8,b 中的值为 3,程序运行后 a 中的值为 3,b 中的值为 8。#includestdio.h/*found*/void fun(int x,int y)int t;/*found*/t=x;x=y;y=t;main()int a,b;a=8;b=3;fun(printf(“%d,%d/n“,a,b);(分数:8.00)_2.函数 fun()的功能是:将字符串中的字符按逆序输出,但不改变字符串中的
2、内容。例如,若字符串为abcd,则应输出 dcba。#includestdio.h/*found*/fun(char a)if(*a)fun(a+1);/*found*/printf(“%c“*a);main()char s10=“abcd“;printf(“处理前字符串=%s/n 处理后字符串=“,s);fun(s);printf(“/n“);(分数:8.00)_3.给定程序 MODI1.C 的功能是:读入一个整数 k(2k10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数 2310,则应输出 2、3、5、7、11。#includestdio.h/*found*/IsP
3、rime(int n);int i,m;m=1;for(i=2;in;i+)/*found*/if !(n%i)m=0;break;return(m);main()int j,k;printf(“/nPlease enter an integer number between 2 and 10000:“);scanf(“%d“,printf(“/n/nThe prime factor(s)of%d is(are):“,k);for(j=2;J=k;j+)if(!(k%j)printf(“/n“);(分数:8.00)_4.给定程序 MODI1.C 中函数 fun()的功能是按以下递归公式求函数值
4、。(分数:8.00)_5.给定程序 MODI1.C 中函数 fun()的功能是:输出 M 行、M 列列数方阵,然后求两条对角线上元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。#includestdio.h#define M 5/*found*/int fun(int n,int xx)int i,j,sum=0;printf(“/nThe%d x%d matrix:/n“,M,M);for(i=0;iM;i+)for(i=0;jM;j+)/*found*/printf(“%f“,xxij);printf(“/n“);for(i=0;in;i+)sum +=xxii+xxin-
5、i-1;return(sum);main()int aaMM=1,2,3,4,5,4,3,2,1,0,6,7,8,9,0,9,8,7,6,5,3,4,5,6,7;printf(“/nThe sum of all elements on 2 diagonals is%d.“,fun(M,aa);(分数:8.00)_6.给定程序 MODI1.C 中函数 fun()的功能是:根据整型形参 m,计算如下公式的值。(分数:8.00)_7.函数 fun()的功能是:从 s 所指字符串中,找出与 t 所指字符串相同的子串的个数作为函数值返回。例如,当 s 所指字符串中的内容为”abcdabfab”,t 所指
6、字符串的内容为”ab”,则函数返回整数 3。请改正程序中的错误,使它能得出正确的结果。#include stdio.h#include string.hint fun(char *s,char *t)int n;char *p,*r;n=0;while(*s)p=s;r=t;while(*r)if(*r=*p)/*found*/r+;p+else break;/*found*/if(r=/0)n+;s+;return n;main()char s100,t100;int m;printf(“/nPlease enter string S:“);scanf(“%s“,s);printf(“/nP
7、lease enter substring t:“);scanf(“%s“,t);m=fun(s,t);printf(“/nThe result is:m=%d/n“,m);(分数:8.00)_8.给定程序 MODI1.C 中函数 fun()的功能是:用冒泡法对 6 个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。#includestdio.h#includestring.h#define MAXLINE 20fun(char *pstr6)int i,j;char *p;for(i=0;i5;i+)/*found*/for(j=i+1,j6,j+)if(strcm
8、p(*(pstr+i),*(pstr+j)0)p=*(pstr+i);/*found*/*(pstr+i)=pstr+j;*(pstr+j)=p;main()int i;char *pstr6,str6MAXLINE;for(i=0;i6;i+)pstri=stri;printf(“/nEnter 6 string(1 string at each line):/n“);for(i=0;i6;i+)scanf(“%s“,pstri);fun(pstr);printf(“The strings after sorting:/n“);for(i=0;i6;i+)printf(“%s/n“,pstr
9、i);(分数:8.00)_9.函数 fun()的功能是:将 s 所指字符串中的字母转换为按字母序列排列的其后续字母(注:Z 转换为A,z 转换为 a),其他字符不变。改正函数 fun()中指定部分的错误,使它能得出正确的结果。#includestdio.h#includectype.hvoid fun(char *s)/*found*/while(*s!=)if(*s=Aelse if(*s=Z)*s=a;else *s+=1;/*found*/(*s)+;main()char s80;printf(“/n Enter a string with length80.:/n/n“);gets(s
10、);print“/n The string:/n/n“);puts(s);fun(s);printf(“/n/n The Cords:/n/n“);puts(s);(分数:8.00)_二、程序设计(总题数:4,分数:28.00)10.请编写一个函数 fun(),其功能是比较两个字符串的长度(不得调用 C 语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入 beijingCRshanghaiCR(CR为回车键),函数将返回 shanghai。#includestdio.hchar*fun(char*s,char*t)main()char a
11、20,b20;void NONO();printf(“Input 1th string:“);gets(a);printf(“Input 2th string:“);gets(b);printf(“%s/n“,fun(a,b);(分数:7.00)_11.编写函数 fun(),其功能是从 s 所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。例如,若程序执行时输入字符串为 turbo c and borland c+,从键盘上输入字符 n,则输出后变为turbo c ad borlad c+。如果输入的字符在字符串中不存在,则字符串照原样输出。#includestdio.h#inc
12、ludestring.hvoid fun(char s,char c)main()static char str=“turbo c and borland c+“;char ch;printf(“原始字符串:%s/n“,str);printf(“输入一个字符:“);scanf(“%c“,fun(str,ch);printf(“str=%s/n“,str);(分数:7.00)_12.编写函数 fun(),其功能是将 M 行、N 列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参 n 所指的存储单元中。例如,二维数组中的数据如下:33 33 33 3344 44 44
13、 4455 55 55 55则一维数组中的内容应是:33 33 33 33 44 44 44 44 55 55 55 55。#includestdio.hvoid fun(int(*s)10,int*b,int*n,int mm,int nn)main()int w1010=33,33,33,33,44,44,44,44,55,55,55,55,id;int a100=0,n=0;void NONO();printf(“The matrix:/n“);for(i=0;i3;i+)for(j=0;j4;j+)printf(“%3d“,wij);printf(“/n“);fun(w,a,print
14、f(“The A array:/n“);for(i=0;in;i+)printf(“%3d“,ai);printf(“/a/n“);(分数:7.00)_13.编写函数 fun(),其功能是将放在字符数组中的 M 个字符串(每串的长度不超过 N)按顺序合并组成一个新的字符串。例如,字符数组中的 M 个字符串如下:AAAABBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBCC。提示:strcat(a,b)的功能是将字符串 b 复制到字符串 a 的尾部,成为一个新串。#includestdio.h#includestring.h#define M 3#define N 20void
15、 fun(char aMN,char *b)main()char wMN=“AAAA“,“BBBBBBB“,“CC“,a100;im i;void NONO();printf(“The string:/a“);for(i=0;iM;i+)puts(wi);printf(“/n“);fun(w,a);printf(“The A string:/a“);printf(“%s“,a);printf(“/a/a“);(分数:7.00)_函数、指针答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:9,分数:72.00)1.函数 fun()的功能是:交换主函数中两个变量的值。例如,
16、若变量 a 中的值原为 8,b 中的值为 3,程序运行后 a 中的值为 3,b 中的值为 8。#includestdio.h/*found*/void fun(int x,int y)int t;/*found*/t=x;x=y;y=t;main()int a,b;a=8;b=3;fun(printf(“%d,%d/n“,a,b);(分数:8.00)_正确答案:(1)void fun(int*x,int*y) (2)t=*x;*x=*y;*y=t;)解析:解析 本题中函数的功能是交换主函数中两个变量的值。利用临时变量存放临时交换值,实现两个变量的交换。主函数中“fun(”引用的是变量 a 和
17、b 的地址,所以第一个标识下的 fun()函数定义中的参数应该是指针型,即“void fun(int x,int y)”改为“void fun(int*x,int*y)”。同理,第二个标识下的“t=x;x=y;y=t;”改为“t=*x;*x=*y;*y=t;”。考点 函数定义,函数传值,指针操作。2.函数 fun()的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出 dcba。#includestdio.h/*found*/fun(char a)if(*a)fun(a+1);/*found*/printf(“%c“*a);main()char s1
18、0=“abcd“;printf(“处理前字符串=%s/n 处理后字符串=“,s);fun(s);printf(“/n“);(分数:8.00)_正确答案:(1)void fun(char *a);(2)printf(“%c“,*a);)解析:解析 本题中函数的功能是将字符串中的内容逆序。题干中给出的 fun()函数通过递归调用自身,实现字符串的逆序。主函数中“fun(s);”语句中的 s 是数组名,所以在 fun()函数中参数的定义应该是指针型,“fun(char a)”改为“void fun(char *a)”。printf()函数的调用形式是“printf(格式字符串,输出项表);”,在“格
19、式字符串”和“输出项表”之间有“,”,因此第二个标识处应该是“printf(“%c“,*a);”。考点 数组,函数定义。3.给定程序 MODI1.C 的功能是:读入一个整数 k(2k10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数 2310,则应输出 2、3、5、7、11。#includestdio.h/*found*/IsPrime(int n);int i,m;m=1;for(i=2;in;i+)/*found*/if !(n%i)m=0;break;return(m);main()int j,k;printf(“/nPlease enter an integer
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 函数 指针 答案 解析 DOC
