您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页二级C语言模拟题2018年(63)_真题-无答案

二级C语言模拟题2018年(63)_真题-无答案

来源:华佗小知识


二级C语言模拟题2018年(63) (总分100,考试时间90分钟)

一、程序填空题

1. 给定程序中,函数fun的功能是:将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。

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

#include<stdio.h> #include<stdlib.h>

void fun(char *s, int a, double f) {

/**********found**********/ ______ fp;

char str[100], str1[100], str2[100]; int a1; double f1;

fp=fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\ /**********found**********/ ______;

fp=fopen(\"file1.txt\

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

fscanf(______, \"%s%s%s\ fclose(fp); a1=atoi(str1); f1=atof(str2);

printf(\"\\nThe result:\\n\\n%s %d %f\\n\ }

main()

{char a[10]=\"Hello!\"; int b=12345; double c=98.76; fun(a, b, c); }

二、程序改错题

1. 下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include <stdlib.h> #include <conio.h> #include <string.h> #include <stdio.h> #include <malloc.h> #define N 10 typede* struct ss {

char num[10]; int s; }STU;

STU *fun(STU a[], int m) {

STU b[N], *t; int i, j, k;

/**********found**********/ *t=calloc(m, sizeof(STU)); for(i=0; i<N; i++) b[i]=a[i];

for(k=0; k<m; k++) {

for(i=j=0; i<N; i++) if(b[i].s>b[j].s) j=i;

/**********found**********/ t[k].num=b[j].num; t[k].s=b[j].s; b[j].s=0; }

return t; }

outresult(STU a[], FILE*pf) { int i;

for(i=0; i<N; i**)

fprintf(pf, \"No=%s Mark=%d\\n\ fprintf(pf, \"\\n\\n\");

}

void main() {

STU a[N]={{\"A01\81}, {\"A02\}, {\"A03\66},{\"A04\87}, {\"A05\77}, {\"A06\90}, {\"A07\ STU *pOrder; int i, m;

system(\"CLS\");

printf(\"****THE EESULT****\\n\"); outresult(a, stdout);

printf(\"\\nGive the number of the students who have better score:\"); scanf(\"%d\ while(m>10) {

printf(\"\\nGive the number of the students who have better score:\"); scanf(\"%d\ pOrder=fun(a, m);

printf(\"****THE RESULT****\\n\"); printf(\"The top:\\n\"); for(i=0; i<m; i++)

printf{\"%s %d\\n\ free(pOrder); }

三、程序设计题

1. 请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10

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

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:

#include<stdio.h> #define N 80

int fun(int a[], int n) { }

void main() {

in\\a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10}, i, n=20; printf(\"The original data:\\n\"); for(i=0; i<n; i++) printf{\"%3d:, a[i]}; n=fun(a, n);

printf(\"\\n\\nThe data after deleted:\\n\"); for(i=0; i<n; i++) printf(\"%3d\ printf(\"\\n\\n\"); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务