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

2018-11-19 21:11

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

r2 = (*f)(a, b); return r1 + r2; } main()

{ double x1=5, x2=3, r; r = fun(x1, x2);

printf(\}

解题思路:

本题主要是考察用函数指针指向要调用的函数。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。

第一处:定义函数指针的类型,所以应填:double。 第二处:使f指向函数f1,所以应填:f1。 第三处:使f指向函数f2,所以应填:f2。

第15套

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。

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

typedef struct student { long sno; char name[10]; float score[3]; } STU;

void fun(char *filename, long sno) { FILE *fp; STU n; int i;

fp = fopen(filename,\/**********found**********/

while (!feof(__1__)) fp { fread(&n, sizeof(STU), 1, fp); /**********found**********/

if (n.sno__2__sno) break; == }

if (!feof(fp))

{ for (i=0; i<3; i++) n.score[i] += 3; /**********found**********/

fseek(__3__, -1L*sizeof(STU), SEEK_CUR); fp fwrite(&n, sizeof(STU), 1, fp);

16

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

}

fclose(fp); } main()

{ STU t[N]={ {10001,\{10003,\{10005,\int i,j; FILE *fp;

fp = fopen(\fwrite(t, sizeof(STU), N, fp); fclose(fp);

printf(\fp = fopen(\fread(ss, sizeof(STU), N, fp); fclose(fp);

for (j=0; j

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

fun(\fp = fopen(\fread(ss, sizeof(STU), N, fp); fclose(fp);

printf(\for (j=0; j

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

解题思路:

本题是考察如何从指定文件中找出指定学号的学生数据,并进行适当的修改,修改后重新写回到文件中该学生的数据上,即用该学生的新数据覆盖原数据。 第一处:判断读文件是否结束,所以应填:fp。

第二处:从读出的数据中判断是否是指定的学号,其中学号是由形参sno来传递的,所以应 填:==。

第三处:从已打开文件fp中重新定位当前读出的结构位置,所以应填:fp。

第16套

给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长

17

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

#include #include #define M 5 #define N 20

void fun(char (*ss)[N]) { int i, j, n, len=0; for(i=0; in)n=len; }

for(i=0; i

n=strlen(___1___); ss[i] for(j=0; j

ss[i][ ___2___]='*'; n+j /**********found**********/

ss[i][n+j+ ___3___]='\\0'; 1 } } main()

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

printf(\for(i=0; i

printf(\

for(i=0; i

解题思路:

第一处:利用for循环语句取当前字符串的长度,所以应填:ss[i]。

第二处:在字符串的右边填字符*,其开始位置是n+j,其中n是该字符串本身的长度,j是循环控制变量,所以应填:n+j。

第三处:字符串处理结束应置字符串结束符,其位置是n+j+1,所以应填:1。

第17套

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。

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

18

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

struct student { long sno; char name[10]; float score[3]; };

void fun(struct student a[], int n) {

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

__1__ t; struct student int i, j;

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

for (i=0; i<__2__; i++) n-1 for (j=i+1; j

if (strcmp(__3__) > 0) a[i].name,a[j].name { t = a[i]; a[i] = a[j]; a[j] = t; } } main()

{ struct student s[4]={{10001,\{10003,\int i, j;

printf(\for (j=0; j<4; j++)

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

fun(s, 4);

printf(\for (j=0; j<4; j++)

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

解题思路:

本题是对结构体数组中的姓名按升序进行排列。

第一处:t是一个临时变量,主要是存放学生数据的结构变量,所以应填:struct student。 第二处:利用两重for循环进行排序操作,排序的终止条件应该是总人数减1,所以应填:n-1。 第三处:对姓名进行比较大小,所以应填:a[i].name,a[j].name。

第18套

给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。

例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

19

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

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #include char *fun(char *s)

{ int i, j, k, n; char *p, *t; n=strlen(s)+1;

t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0;

for(i=0; i

{ if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { /**********found**********/

t[j]=__1__; j++;} s[i] else

{ p[k]=s[i]; k++; } }

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

for(i=0; i<__2__; i++) t[j+i]=p[i]; k /**********found**********/

t[j+k]= __3__; '\\0' return t; } main() { char s[80];

printf(\printf(\}

解题思路:

第一处:函数中申请了两个内存空间,其p是存放字母字符串,t是存放非字母字符串,根据条件可知,p依次存放字母字符串,其位置由j来控制,所以应填:s[i]。

第二处:利用for循环再把t中的内容依次追加到p中,其中t的长度为k,所以应填:k。 第三处:字符串处理好后必须添加字符串结束符,所以应填:'\\0'。

第19套

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。 例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、\ZhangSan \、95、80、88,修改后输出t中的数据应为:10002、\、96、 81、89。

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

20


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

下一篇:爆炸冲击波

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

马上注册会员

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