首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷694

国家二级C语言机试(操作题)模拟试卷694

本单篇文档共3894字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 2971人下载
价格: 1.20 原价:¥7.00
收藏

国家二级C语言机试(操作题)模拟试卷694

程序填空题

1.给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

1 #include <stdio.h>

2 #include<string.h>

3 #define N 5

4 #define M 8

5 void fun(char(*ss)[M])

6 { char *ps[N],*tp;int i,j,k;

7 for(i=0;i<N;i++)ps[i]=ss[i];

8 for(i=0;i<N-1;i++){

9 /**********found**********/

10 k=__1___;

11 for(j=i+1;j<N;j++)

12 /**********found**********/

13 if(strlen(ps[k])<strlen(___2___))k=j;

14 /**********found**********/

15 tp=ps[i];ps[i]=ps[k];ps[k]=___3____;

16 }

17 printf(’’\nThe string after sorting by length:\n\n’’);

18 for(i=0;i<N;i++)puts(ps[i]);

19 }

20 main()

21 {char ch[N][M]={’’red’’,’’green’’,\\

(1)i

(2)ps[j]

(3)tp

解析:本题中函数fun的功能是利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。

第一空:分析可知,fun函数采用的选择排序,在第一空处是初始化k。“for(j=i+1;j<N;j++)”循环是寻找长度最长的字符串,找到之后和k字符串交换,因此k从0开始,随着i变化,故第一空处应为“i”。

第二空:“if(strlenq(ps[k])<strlen(__2__))k=j;”新的字符串ps[j]如果比ps[k]的长度长,那么k记录下新的最长的字符串的下标位置j,故第二空处应为“ps[j]”。

第三空:“tp=ps[i];ps[i]=ps[k];ps[k]=__3___;”是字符串地址交换,显然第三空处应是临时变量tp。

程序修改题

2.已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。

例如,当n=10时,程序的输出结果应为:23.197745。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

1 #include<stdio.h>

2 #include<math.h>

3 /************found************/

4 fun(int n)

5 {double sumf a0,a1,a2,a;int k;

6 sum=1.0;

7 if(n<=2)sum=0.0;

8 s0=0.0;s1=0.0;s2=1.0;

9 for(k=4;k<=n;k++)

10 { s=s0+s1+s2;

11 sum+=sqrt(s);

12 s0=s1;s1=s2;s2=s;

13 }

14 /************found************/

15 return sum

16 }

17 main()

18 { int n;

19 printf(’’Input N=’’);

20 scanf(’’%d’’,&n);

21 printf(’’%f\n’’,fun(n));

22 }

(1)double fun(int n)

(2)return sum;

解析:本题中函数的功能是计算并输出该数列前n项的平方根之和sum。解题思路首先根据题干求得每一项的值,然后再计算数列前n项的平方根之和。

(1)第一个错误标识下fun函数的定义根据题干要返回前n项的平方根之和,函数具有返回值,所以“fun(int n)”应改为“double fun(int n)”,其中,double为双精度型变量。(2)第二个标识符下返回平方根之和,根据C语言语法每一句C语言后面应该以“;”为结尾,所以“return sum”改为“return sum;”。

程序设计题

3.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

例如,当n=10,x=0.3时,函数值为1.349859。

注意:部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

1 #include<stdio.h>

2 #include<math.h>

3 double fun(double x,int n)

4 {

5 }

6 main()

7 { void NONO();

8 printf(’’%f\n’’,fun(0.3,10));

9 NONO();

10 }

11 void NONO()

12 {/(本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

13 FILE *fp,*wf;

14 int i,n;

15 double s,x;

16 fp=fopen(’’in.dat’’,’’r’’);

17 wf=fopen(’’out.dat’’,’’w’’);

18 for(i=0;i<10;i++) {

19 fscanf(fp,’’%1f,%d’’,&x,&n),

20 s=fun(x,n);

21 fprintf(wf,’’%f\n’’,s);

22 }

23 fclose(fp);

24 fclose(wf);}

1 double s=1.0,y=x;

2 int i ;

3 long k=1;

4 for(i=1; i

本文档预览:3600字符,共3894字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷694

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号