二级C语言机试-257_第1页
二级C语言机试-257_第2页
二级C语言机试-257_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级C语言机试-257(总分:100.00,做题时间:90分钟)、填空题(总题数:1,分数:30.00)在给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参 t所指字符串相同的串, 找到 后返回该串在字符串数组中的位置 (下标值),未找到则返回-1,ss所指字符串数组中共有 N个内容不同的 字符串,且串长小于 No请在程序的下画线处填入正确的内容并把下画线删除,使程序得岀正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。文件BLANK1.C内容如下:#include < stdio.h >#include <

2、; string.h >#define N 5#define M 8,char *t)int fun(char(*ss)Mint i :*found*for(i=0 ; i < (1); i+)*found*,t)=0)return (2)if(stremp(ssi return -1:void main()char chNM="f","while" ,"switch" ,"int" ,"for" ,tM;int n , i ;printf('7nThe original s

3、tringin/n") for(i=0 ; i < N; i+)puts(chi) printf("/n") ; printf("/nEnter a string for search:")gets(t); n=fun(eh ,t);*found*if(n= (3) )printf("/nDon't found!/n")else printf("/nThe position is%d./n",n);(分数:30.00 )填空项1:(正确答案:N)解析:填空项1:(正确答案:i )解析:填空项

4、1:(正确答案:-1 )解析:解析main函数中定义了一个二维数组并存放了5行字符串。通过调用函数 fun查找形参t所指字符串是否在此二维字符数组中岀现。函数fun中使用了顺序查找法,通过 for循环,从第一字符串开始依次进行比较,因为有 N行字符串,所以i循环从0开始,循环到N(不包括N),因此第1空处应填入No 如果strcmp(ssi ,t)=0,说明两个字符串相等,则返回该字符串在数组中位置,即它的行号,所以第2空处应填入i。如果循环完毕都没有找到相等的字符串,则说明该字符串不在数组中,应该返回-1 o main函数中调用fun函数,返回值赋给了变量n,若n的值等于-1,则说明t指向的

5、字符串不在二维数组 ch中, 应该输出“ Don't found! ”,所以第 3 空处应填入 -1 。二、 改错题 ( 总题数: 1,分数: 30.00)1.下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列后续字母(但Z转换为 A, z 转换为 a) ,其他字符不变。请改正程序指定部位的错误,使它能得到正确结果。 注意 不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题源程序 #include < stdio.h >#include < ctype.h > void fun(char *s)*found*whi

6、le(*s!='') if(*s >='A' *s <='Z' | *s >='a' 's < ='z') if(*s='Z')*s='A'elseif(*s='z')*s='a'else*s+=1;*found*(*s)+;void main()char s80;printf("/n Enter a string with length< 80. :/n/n "); gets(s);print

7、f("/n The string:/n/n t");puts(s);fun(s);printf ("/n/n The Cords: /n/n "); puts(s);分数: 30.00 ) 正确答案: (1) 错误: while(*s!='') 正确: while(*s) 或 while(*s!=0) 或 while(*s!='0')(2) 错误: (*s)+;正确: s+; 或 -s+;)解析: 解析 错误 1: while 循环的结束条件是查找完字符串, 即指向字符串结尾标志 '/0' 。由于字符 &#

8、39;/0' 的ASCAII码值为0,因而*s指向串尾70'时,*s的值为0,结束循环。所以while(*s!=) 应改为while(*s) 或 while(*s!=0) 或 while(*s!='/0')。错误 2:s 为字符指针, *s 为指针所指的字符,要处理完字符串中的所有字符,指针必须向字符串的后面 移动,即S+或*s+,而不是字符值增加(*s)+。三、编程题 (总题数: 1,分数: 40.00)2.请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从pn-1(p < n-1)的数组元素平移到数组的前面。例

9、如,一维数组中的原始内容为 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, P的值为 6。移动后,一维数组的内容应为 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6。 注意 部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题源程序 #inciude < stdio.h >#define N 80void fun(int *w, int p, int n)main()int aN=(i, 2, 3, 4,

10、 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);int i, P, n=15;printf("The original data:/n");for(i=0; i < n; i+)printf("%3d", ai);printf("/n/nEnter p: ");scanf("%d", p);fun(a, P, n);printf("/nThe data after moving:/n");for(i=0; i < n; i+)printf("%3d", ai);printf("/n/n&qu

温馨提示

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

评论

0/150

提交评论