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

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

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

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

程序填空题

1.下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。

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

注意:部分源程序给出如下。

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

试题程序:

#include<stdio.h>

#include<string.h>

#define M 5

#define N 20

int fun(char(*ss)[N],int*n)

{ int i,k=0,len=N;

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

for(i=0;i<【1】;i++)

{ fen=strlen(ss[i]);

if(i==0) *n=len;

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

if(len【2】*n)

{*n=len;

k=i;

}

}

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

return(【3】);

}

main()

{ char ss.[M][N]={\\

(1)M

(2)<

(3)k

解析:本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。

填空1:题目指出ss所指字符串数组中共有M个字符串,所以for循环语句的循环条件是i<M。

填空2:要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,将当前字符串长度与*n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len<*n。

填空3:将最短字符串的行下标作为函数值返回,变量k存储行下标的值。

程序修改题

2.下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当S所指字符串中的内容为“abcdabfabc”,t1所指串中的内容为“ab”,t2所指子串中的内容为“99”时,结果在w所指的数组中的内容应为“abcdabt99c”。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

void fun(char *s,char t1,char t2,char w)

{

char*P,*r,*a;

strcpy(w,S);

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

while(w)

{

p=W;

r=t1;

while(*r)

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

IF(*r==*P)

{

r++;

p++;

}

else

{

break;

}

if(*r==’\0’)

a=w;

w++;

}

r=t2;

while(*r)

{

*a=*r;

a++;

r++;

}

}

main()

{

char s[100],t1[100],t2[100],W[100];

printf(\\

(1)while(*w)

(2)if(*r==*p)

解析:(1)此处要判断的是值的真假,而不是地址,所以改为while(*w)。

(2)c语言中关键字区分大小写,只需运行程序,就可以根据错误提示找到。

程序设计题

3.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int fun(int score[],int m,int below[])

{

}

void main()

{

FILE*wf;

int i,n,below[9];

int score[9]={10,20,30,40,50,60,70,80,90};

system(\\

int fun(int score[],int m,int below[])

{

int i,j=0 ;

float av=0.0;

for(i=0;i<m;i++)

av=av+score[i]/m;/*求平均值*/

for(i=0 ;i<m;i++)

if(score[i]<av)/*如果分数低于平均分,则将此分数放入below数组中*/

below[j++]=score[i];

return j;/*返回低于平均分的人数*/

}

解析:要计算低于平均分的人数,首先应该求出平均分,然后通过for循环语句和if条件语句找出低于平均分的分数。该题第1个循环的作用是求出平均分aV,第2个循环的作用是找出低于平均分的成绩记录并存入below数组中。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号