计算机二级C语言机试题库(7)

2018-11-19 21:11

计算机等级考试二级C语言内部教材

fun(__3__); &t printf(\

printf(\for (i=0; i<3; i++) printf(\printf(\}

解题思路:

本题是对结构体变量中的值进行修改并通过函数中的参数进行返回。 第一处:对学号进行更改,所以应填:->no。 第二处:对姓名进行更改,所以应填:->name。 第三处:对函数的调用,所以应填:&t。

第30套

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include struct student { long sno; char name[10]; float score[3]; };

void fun(struct student a) { struct student b; int i; /**********found**********/

b = __1__; a b.sno = 10002;

/**********found**********/

strcpy(__2__, \printf(\

printf(\/**********found**********/

for (i=0; i<3; i++) printf(\printf(\} main()

{ struct student s={10001,\int i;

printf(\

printf(\

31

计算机等级考试二级C语言内部教材

for (i=0; i<3; i++) printf(\printf(\fun(s); }

解题思路:

本题是对结构体变量中的值进行修改。

第一处:要修改的结构体变量是由形参a来传递的,所以应填:a。 第二处:对结构体中的成员name进行替换,所以应填:b.name。 第三处:分别输出结构体中的成绩,所以应填:score[i]。

第31套

给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include

void fun(char *s, char *p) { int i, j, n, x, t; n=0;

for(i=0; s[i]!='\\0'; i++) n++; for(i=1; i

___1___; t=i /**********found**********/

for(j=___2___+2 ; js[j]) t=j; if(t!=i)

{ x=s[i]; s[i]=s[t]; s[t]=x; } }

for(i=1,j=0; i

p[j]=___3___; '\\0' } main()

{ char s[80]=\printf(\fun(s,p);

printf(\}

解题思路:

第一处:取外循环的控制变量,所以应填:t=i。 第二处:内循环的起始变量,应该是i+2,所以应填:i。

第三处:新字符串处理完后应添加字符串结束符,所以应填:'\\0'。

32

计算机等级考试二级C语言内部教材

第32套:

给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 5 #define M 10

/**********found**********/

void fun(char (*ss) __1__, int k) M { int i=0 ;

/**********found**********/

while(i< __2__) { N /**********found**********/

ss[i][k]=__3__; i++; } 0 } main()

{ char x[N][M]={\int i;

printf(\for(i=0;i

printf(\for(i=0; i

解题思路:

本题是根据给定的字符串数组中删除串长大于某个值的右边字符串。 第一处:函数的定义,试题中已用M作为字符串的长度,所以应填:M。

第二处:利用while循环,分别对字符串数组中的每个字符串置字符串结束符,程序中已经给定了N个字符串,所以应填:N。

第三处:置字符串结束符,所以应填:0(或'\\0')。

第33套

给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include

33

计算机等级考试二级C语言内部教材

int fun(char *source, char *target) { FILE *fs,*ft; char ch; /**********found**********/

if((fs=fopen(source, ___1___))==NULL) \return 0;

if((ft=fopen(target, \return 0;

printf(\ch=fgetc(fs);

/**********found**********/

while(!feof(___2___)) fs { putchar( ch );

/**********found**********/

fputc(ch,___3___); ft ch=fgetc(fs); }

fclose(fs); fclose(ft); printf(\return 1; } main()

{ char sfname[20] =\FILE *myf; int i; char c; myf=fopen(sfname,\

printf(\

for(i=1; i<30; i++){ c='A'+rand()%;fprintf(myf,\fclose(myf);printf(\

if (fun(sfname, tfname)) printf(\else printf(\}

解题思路:

本题要求是把一个文件中的内容复制到另一个文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。

第一处:要求打开一个读方式的源文件,因此可以填上\或\。打开读文件操作的流是fs。

第二处:用while循环来判断源文件是否已读到文件结束符,int feof(FILE *stream),因此,此处只能填写fs。

第三处:把已经读取的字符写入目标文件中,打开写文件操作的流是ft,因此,此处只能填写ft。

第34套

用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,?? 函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序:

34

计算机等级考试二级C语言内部教材

#include int fun(int n)

{ int a[10000], i,j, count=0; for (i=2; i<=n; i++) a[i] = i; i = 2; while (i

/**********found**********/

for (j=a[i]*2; j<=n; j+=___1___) a[i] a[j] = 0; i++;

/**********found**********/

while (___2___==0) a[i] i++; }

printf(\for (i=2; i<=n; i++) /**********found**********/

if (a[i]!=___3___) 0 { count++; printf( count?\return count; } main()

{ int n=20, r; r = fun(n);

printf(\}

解题思路:

第一处:所有2的倍数的数从数表中删去,所以应填:a[i]。 第二处:找出下一个不是的a[i],所以应填:a[i]。

第三处:输出素数,只要判断a[i]不是0就是素数,所以应填:0。

第35套

给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,?依次类推。例如,若N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #define N 7

/**********found**********/

35


计算机二级C语言机试题库(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:爆炸冲击波

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: