全国计算机二级c语言上机练习题及答案(二)

2018-12-19 22:26

计算机二级C上机练习题汇总(二)

第四套

(1) 填空题

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。

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

#include #include #define N 8 typedef struct { char num[10];

int year,month,day ; }STU;

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

___1___ fun(STU *std, char *num)

{ int i; STU a={\ for (i=0; i

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

if( strcmp(___2___,num)==0 ) /**********found**********/ return (___3___); return a; }

main()

{ STU std[N]={ {\ {\ {\

STU p; char n[10]=\ p=fun(std,n); if(p.num[0]==0)

printf(\ else

{ printf(\ \

printf(\ %d-%d-%d\\n\ }

}

第1 处:STU fun(STU *std, char *num) 第2 处:if( strcmp(std[i].num,num)==0 ) 第3 处:return (std[i]);

(2) 改错题

给定程序modi.c中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

例如,当s所指字符串为:\时,则t所指字符串中的内容应为:\。 请改正程序中的错误,使它能得出正确结果。

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

#include #include #include #include

/************found************/ void fun(char s,char t) {

int i,d; d=strlen(s);

for(i=0;i

for(i=0;i

main() {

char s[100],t[100]; system(\

printf(\ fun(s,t);

printf(\}

第1 处:void fun(char s,char t) 改为 void fun (char *s, char *t) 第2 处:t[2*d-1]='\\0'; 改为 t[2*d] = '\\0'; (3) 程序设计

请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代):

程序运行后,如果输入精度0.0005,则程序输出为3.140578。 注意:部分源程序存在文件prog.c中。

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

/******本答案只作参考。******/

#include #include

double fun ( double eps) {

int n=0;

double down=1,up=1; double one ,pi=0;

one = (double)up/(double)down; while(one>=eps) { pi+=one; n++; up=up*n;

down=down*(2*n+1);

one=(double)up/(double)down; }

return pi*2; }

main( )

{ double x;

printf(\

scanf(\}

第五套

(1) 填空题

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。

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

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include #define N 8 typedef struct { int num;

int year,month,day ; }STU;

int fun(STU *std, STU *k, int year) { int i,n=0;

for (i=0; i

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

if( ___1___ )

/**********found**********/ k[___2___]= std[i]; /**********found**********/ return (___3___); }

main()

{ STU std[N]={ {1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15}, {5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}}; STU k[N]; int i,n,year;

printf(\ \ scanf(\ n=fun(std,k,year); if(n==0)

printf(\ else

{ printf(\ for(i=0; i

printf(\ %d-%d-%d\\n\ } }

第1 处:if( std[i].year==year) 第2 处:k[n++]= std[i]; 第3 处:return (n);

(2) 改错题

给定程序modi.c中,函数fun的功能是:将从键盘上输入的每个单词的第一个字母写为大写字母,输入时各单词必须用空格隔开,用'.'结束输入。

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

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

#include

int fun(char *c,int status) {

/************found************/ if (*c=='') return 1; else {

if(status && *c<='z' && *c>='a') /************found************/ c+='A'-'a'; return 0; } }

main() {

int flag=1;

char ch;

printf(\请输入一字符串,用点号结束输入!\\n\ do {

ch=getchar();

flag=fun(&ch,flag); putchar(ch); }while(ch!='.'); printf(\}

第1 处:if (*c=='') return 1; 改为 if (*c==' ') return 1; 第2 处:c+='A'-'a'; 改为 *c+='A'-'a'; (3) 程序设计

请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing shanghai↙,函数将返回shanghai。 注意:部分源程序存在文件prog.c中。

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

/******本答案只作参考。******/ #include

char *fun ( char *s, char *t) {

int first=0,second=0; char *p,*q; p=s; q=t;

while(*p++!='\\0') first++;

while(*q++!='\\0') second++; if(first==second) return s;

else if (first>second) return s; else

return t; }

main( )

{ char a[20],b[10];

printf(\ gets( a);

printf(\ gets( b);

printf(\


全国计算机二级c语言上机练习题及答案(二).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:济南市人民政府关于调整城区及市区部分建制镇(街道办事处)驻地国

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

马上注册会员

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