【计算机类职业资格】程序员-C语言试题及答案解析.doc
《【计算机类职业资格】程序员-C语言试题及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】程序员-C语言试题及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、程序员-C 语言试题及答案解析(总分:150.00,做题时间:90 分钟)一、B试题一/B(总题数:2,分数:15.00)1.【函数 1.1 说明】 函数 strcpy(char * destination,char * source)将字符串 source 复制到字符串destination。 【函数 1.1】 void strcpy (char * destination,char*source) whileU (1) /U;(分数:3.00)_【函数 1.2 说明】函数 merge(int a,int n,int b,int m,int *c)是将两个从小到大有序数组 a 和 b 复制合
2、并出一个有序整数序列 c,其中形参 n 和 m 分别是数组 a 和 b 的元素个数。【函数 1.2】void merge(int a ,int n,int b ,int m,int *c) int i,j;for(i=j:0;in & jm;)*c+ =ai bj? ai+:bj+;while(in) U(2) /U;while(jm) U(3) /U;(分数:12.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_二、B试题二/B(总题数:1,分数:15.00)阅读下列函数说明和 C 代码,把应填入其中 n 处的字句写在答卷
3、的对应栏内。【函数 2 说明】本题中的函数 encode()和 decode()分别实现对字符串的变换和复原。变换函数 encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:1若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。2若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。3若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为 n,则将它的后续字符(包括后续字符是一个数字字符)重复复制 n+1 次到新字符串中。4以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。enco
4、de()函数对字符串 26a3t2 的变换结果为 666_a_tttt_2复原函数 decode()做变换函数 encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过 10 个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。假定调用变换函数 encode()时的已知字符串中不包含下划线字符。【函数 2】int encode(char*instr,char * outstr)char*ip,*op,c;int k,n;ip=instr;opoutstr;while(*ip)ifU (1) /
5、U&*(ip+1)n= *ip -0+ 1;c= *+ip;for(k0;kn;k+)U (2) /U;elseU (3) /U;*op+ -;ip+;if(opoutstr) U(4) /U;*op=/0;return op-outstr;int decode(char * instr,char * outstr)char*ip,*op,c;int n;ipinstr;opoutstr;while(*ip)c= *ip;n0;while(*ip=c & n=10)ip+;n+;ifU (5) /U*op+=0+n-1;*op+c;if(* ip=_,) U(6) /U;* op=/0;ret
6、urn op-outstr;(分数:15.00)(1).(分数:2.50)_(2).(分数:2.50)_(3).(分数:2.50)_(4).(分数:2.50)_(5).(分数:2.50)_(6).(分数:2.50)_三、B试题三/B(总题数:1,分数:15.00)阅读下列程序说明和 C 代码,把应填入其中 n 处的字句写在答卷的对应栏内。【说明】程序利用选择排序算法对数组 a 中的 N 个整数按照从小到大的顺序排列,并将排序结果显示出来。【程序】#define N 10main()void U(1) /U;int i,aN;for(i=0;i10,i+) /*输入*/scanf(“%d”,&a
7、i);U (2) /U;for(i=0;iN,i+) /*输出*/printf(“%3d”,ai);void selectSon(int x,int n)int i,j,k,t;for(int i=0;U (3) /U;i+)k=i;for(j=i+1;jn;j+)ifU (4) /Uk=j;ifU (5) /Ut=xi;xi=xk;xk =t;(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_四、B试题四/B(总题数:1,分数:15.00)阅读下列程序说明和 C 代码,把应填入其中
8、n 处的字句写在答卷的对应栏内。1 说明】函数 create 能够建立具有任意行和任意列的动态二维整数数组。【函数 4.1 程序】#include“stdioh”int * * create(int row, int col ) int * * x,i;x=(int * *)U (1) /U;for(U (2) /U)xi=(int *)malloc(col * sizeof(int);U(3) /U;【函数 4.2 说明】函数 main()能够判断输入年是否为闰年。【函数 4.2 程序】main()int year,n;scanf(“input year %d”,&year);n=(U (4
9、) /U | U(5) /U);if(n=1)printf(“%d is a leap year/n”,year);else printf(“%d is not a leap year/n”,year);(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_五、B试题五/B(总题数:1,分数:15.00)阅读下列程序说明和 C 代码,把应填入其中 n 处的字句写在对应栏内。【说明】下面的程序能够计算不同图形的面积。程序中把每个图形的数据定义成结构类型,利用共同体类型描述 2种图形的数据。程
10、序根据输入参数代表的图形类型,求出图形的面积并输出。【程序】struct Circlefloat x,y; /*圆心位置*/float r; /*圆半径*/;struct Rectanglefloat width; /*矩形宽*/float length; /*矩形长*/;union shapestruct Circle circle;/*圆数据结构*/struct Rectangle rectangle;/*矩形数据结构*/;main()union shape a;float area;int i;printf(“input number: 1circle,2rectangle,3 end/
11、n”);scanf(“%d“,&i);whileU (1) /U /*循环接收输入,并计算输出*/switch(i)case 1:printf(“input radius:/n”);scanf(“%f”,U (2) /U;/*共同体类型变量接收输入*/area=3.1415926*U (3) /U;printf(“the area of circle=%f/n”,area);break;case 2:printf(“input width and length :/n”);seanf(“%f,%f”,U (4) /U;/*共同体类型变量接收输入*/。area=U (5) /U;printf(“
12、the area of rectangle=%f/n”,area);break;printf(“input number:1 circle,2 rectangle,3 end/n”);scanf(“%d”,&i);(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_六、B试题六/B(总题数:1,分数:15.00)阅读下列程序说明和 C 程序,把应填入其中(n)处的字句,写在对应栏内。【程序说明】对角线下元素全为 0 的矩阵称为上三角矩阵,设对于一个 nn 的上三角矩阵 a,为节约存贮,只
13、将它的上三角元素按行主序连续存放在数组 b 中。下面的函数 trans 在不引入工作数组的情况下,实现将 a 改为按列主序连续存放在数组 b 中。设 n=5,(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_七、B试题七/B(总题数:1,分数:15.00)阅读以下程序说明和 C 程序,将应填入(n)处的字句,写在对应栏内。【程序说明】某网络由 n 个端点组成,这些端点被物理地分成若干个分离的端点组。同一组内的两件端点 i 和 j,它们或直接相连,或间接相连(端点 i 和端点 j 间接相
14、连是指在这两件端点之间有一个端点相连序列,其中端点 i 和 j 分别与这相连序列中的某个端点直接相连)。网络的 n 个端点被统一编号为 0,1,n-1。本程序输入所有直接相连的端点号对,分别求出系统各分离端点组中的端点号并输出。程序根据输入的直接相连的两件端点号,建立 n 个链表,其中第 i 个链表的首指针为 si,其结点是与端点 i 直接相连的所有端点号。程序依次处理各链表。在处理 si链表中,用 top 工作链表重新构造 si链表,使 si链表对应系统中的一个端点组,其中结点按端点号从小到大连接。【程序】#inelude#define N 100typeef struct nodeint
15、data;struct node *link;NODE;NODE * sN;int i,j,n,t;NODE *q,*p,*x,*y,*top;main()printf(“Enter namber of components”);scanf(“%d”,&n);for(i=0;in;i+) printf(“Enter pairs/n”);while(scanf(“%d%d”,&i,&j)=2) /*输入相连端点对,生成相连端点结点链表*/p=(NODE*)malloc(sizeof(NODE);pdata=j;plink=si;si=p;p=(NODE*)malloc(sizeof(NODE);
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 程序员 语言 试题 答案 解析 DOC
