【计算机类职业资格】C程序基本结构及答案解析.doc
《【计算机类职业资格】C程序基本结构及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】C程序基本结构及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、C 程序基本结构及答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:3,分数:48.00)1.函数 fun()的功能是:统计 substr 所指子字符串在 str 所指字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为 as,则应输出 2。#includestdio.hint fun(char*str,char*substr)int i,j,k,num=0;/*found*/for(i=0,stri,i+)for(j=i,k=0;substrk=strj;k+,j+)/*found*/If(substrk+1=/0)num+;break;return
2、 num;main()char str80,substr80;printf(“Input a string:“);gets(str);printf(“Input a substring:“);gets(substr);printf(“%d/n“,fun(str,substr);(分数:16.00)_2.给定程序 MOD11.C 中函数 fun()的功能是:用递归算法计算斐波拉契数列中第 n 项的值。从第 1 项起,斐波拉契数列为 1、1、2、3、5、8、13、21例如,若给 n 输入 7,该项的斐波拉契数值为 13。#includestdio.hlong fun(int g)/*found*/
3、switch(g);case 0:return 0;/*found*/case 1;case 2;return 1;retum(fun(g-1)+fun(g-2);main()long fib;int n;printf(“Input n:“);scanf(“%d“,printf(“n=%d/n“,n);fib=fun(n);printf(“fib=%dn/n/n,fib);(分数:16.00)_3.fun()的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给 hum1 和 num2 分别输入 49 和 21,则输出的最大公约数为 7;若给 num1 和 num2 分别输入
4、27和 81,则输出的最大公约数为 27。#includestdio.hint fun(int a,int b)int r,t;if(ab)/*found*/t=a;b=a;a=t;r=a%b;while(r!=0)a=b;b=r;r=a%b;/*found*/return(a);main()int num1,num2,a;printf(“Input num1 num2:“);scanf(“%d%d“,printf(“num1=%d num2=%d/n/n“,num1,num2);a=fun(num1,num2);printf(“The maximun common divisor is%d/
5、n/n“,a);(分数:16.00)_二、程序填空(总题数:2,分数:36.00)4.函数 fun()的功能是:将形参 a 所指数组中的前半部分元素的值和后半部分元素的值对换。形参 n 中存放数组中数据的个数,若 n 为奇数,则中间的元素不动。例如,若 a 所指数组中的数据依次为1、2、3、4、5、6、7、8、9,则调换后为 6、7、8、9、5、1、2、3、4。#includestdio.h#define N 9void fun(int a,int n)int i,t,p;/*found*/p=(n%2=0)?n/2:n/2+ (1) ;for(i=0;in/2;i+)t=ai;/*found
6、*/ai=ap+ (2) ;/*found*/(3) =t;main()int bN=1,2,3,4,5,6,7,8,9,i;printf(“/nThe original data:/n“);for(i=0;iN;i+)printf(“%4d“,bi);printf(“/n”);fun(b,N);printf(“nThe data after moving:/n“);for(i=0;iN;i+)printf(“%4d“,bi);printf(“/n“);(分数:18.00)填空项 1:_5.给定程序中,函数 fun()的功能是计算下式直到 (分数:18.00)填空项 1:_三、程序设计(总题数
7、:1,分数:16.00)6.函数 fun()的功能是:将 s 所指字符串中除了下标为奇数,同时 ASCII 值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。例如,若 s 所指字符串中的内容为“ABCDEFG12345”,其中字符 A 的 ASCII 码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符 1 的 ASCII 码值为奇数,所在数组中的下标也为奇数,因此不应当删除;以此类推,最后 t 所指数组中的内容应是“135”。#includestdio.h#includestring.hvoid fun(char*s,char t)main
8、()char s100,t100;void NONO();printf(“/nPlease enter string S:“);scanf(“%s“,s);fun(s,t);printf(“/nThe result is:%s/n“,t);(分数:16.00)_C 程序基本结构答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:3,分数:48.00)1.函数 fun()的功能是:统计 substr 所指子字符串在 str 所指字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为 as,则应输出 2。#includestdio.hint fun(char*
9、str,char*substr)int i,j,k,num=0;/*found*/for(i=0,stri,i+)for(j=i,k=0;substrk=strj;k+,j+)/*found*/If(substrk+1=/0)num+;break;return num;main()char str80,substr80;printf(“Input a string:“);gets(str);printf(“Input a substring:“);gets(substr);printf(“%d/n“,fun(str,substr);(分数:16.00)_正确答案:(1)for(i=0;stri
10、;i+) (2)if(substrk+1=/0)解析:解析 本题中函数的功能是统计子字符串 substr 在字符串 str 中出现的次数。解题过程是在 str中查找指定的子串,并且统计了串出现的次数。第二个标识下的 for 循环中的循环表达式之间应使用分号来分隔,所以第二个标识下的“for(i=0,stri,i+)”应改为“for(i=0;stri;i+)”。第二个标识下“If(substrk+1=/0)”,其含义是判断 substr 是否到达了尾部。这里应该用 if 来判断,在 C 语言中没有“If”关键字,故第二个标识处应改成“if(substrk+1=/0)”。考点 函数定义,for 循
11、环语句。2.给定程序 MOD11.C 中函数 fun()的功能是:用递归算法计算斐波拉契数列中第 n 项的值。从第 1 项起,斐波拉契数列为 1、1、2、3、5、8、13、21例如,若给 n 输入 7,该项的斐波拉契数值为 13。#includestdio.hlong fun(int g)/*found*/switch(g);case 0:return 0;/*found*/case 1;case 2;return 1;retum(fun(g-1)+fun(g-2);main()long fib;int n;printf(“Input n:“);scanf(“%d“,printf(“n=%d/
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 程序 基本 结构 答案 解析 DOC
