100套计算机二级C语言上机题库Word下载.docx
《100套计算机二级C语言上机题库Word下载.docx》由会员分享,可在线阅读,更多相关《100套计算机二级C语言上机题库Word下载.docx(437页珍藏版)》请在冰豆网上搜索。
voidfun(char*filename,STUn)
{FILE*fp;
/**********found**********/
fp=fopen(__1__,"
rb+"
);
fseek(__2__,-(long)sizeof(STU),SEEK_END);
fwrite(&
n,sizeof(STU),1,__3__);
fclose(fp);
}
main()
{STUt[N]={{10001,"
MaChao"
91,92,77},{10002,"
CaoKai"
75,60,88},{10003,"
LiSi"
85,70,78},{10004,"
FangFang"
90,82,87},{10005,"
ZhangSan"
95,80,88}};
STUn={10006,"
ZhaoSi"
55,70,68},ss[N];
inti,j;
FILE*fp;
fp=fopen("
student.dat"
"
wb"
fwrite(t,sizeof(STU),N,fp);
rb"
fread(ss,sizeof(STU),N,fp);
printf("
\nTheoriginaldata:
\n\n"
for(j=0;
j<
N;
j++)
{printf("
\nNo:
%ldName:
%-8sScores:
"
ss[j].sno,ss[j].name);
for(i=0;
i<
3;
i++)printf("
%6.2f"
ss[j].score[i]);
\n"
fun("
n);
\nThedataaftermodifing:
解题答案:
/**********第一空**********/
fp=fopen(filename,"
/**********第二空**********/
fseek(fp,-(long)sizeof(STU),SEEK_END);
/**********第三空**********/
n,sizeof(STU),1,fp);
******************************************
二、改错题:
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<
stdlib.h>
typedefstructaa
{intdata;
structaa*next;
}NODE;
NODE*Creatlink(intn,intm)
{NODE*h=NULL,*p,*s;
inti;
/**********found***********/
p=(NODE)malloc(sizeof(NODE));
h=p;
p->
next=NULL;
for(i=1;
=n;
i++)
{s=(NODE*)malloc(sizeof(NODE));
s->
data=rand()%m;
s->
next=p->
next;
next=s;
p=p->
returnp;
outlink(NODE*h)
{NODE*p;
p=h->
\n\nTHELIST:
\n\nHEAD"
while(p)
->
%d"
p->
data);
p=p->
{NODE*head;
head=Creatlink(8,22);
outlink(head);
p=(NODE*)malloc(sizeof(NODE));
returnh;
三、程序题:
请编写函数fun,函数的功能是:
统计一行字符串中单词的个数,作为函数值返回。
一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
string.h>
#defineN80
intfun(char*s)
{
{charline[N];
intnum=0;
voidNONO();
Enterastring:
gets(line);
num=fun(line);
Thenumberofwordis:
%d\n\n"
num);
NONO();
voidNONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
inti,num;
charline[N],*p;
rf=fopen("
in.dat"
"
r"
wf=fopen("
out.dat"
w"
for(i=0;
i<
10;
i++){
fgets(line,N,rf);
p=strchr(line,'
\n'
if(p!
=NULL)*p=0;
num=fun(line);
fprintf(wf,"
%d\n"
num);
fclose(rf);
fclose(wf);
参考答案:
intfun(char*s)
{
intk=1;
while(*s){
if(*s=='
'
)k++;
s++;
}
returnk;
##################################
第02套:
给定程序的功能是:
从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
voidWriteText(FILE*);
voidReadText(FILE*);
if((fp=fopen("
myfile4.txt"
))==NULL)
openfail!
!
exit(0);
WriteText(fp);
ReadText(fp);
voidWriteText(FILE
___1___)
{charstr[81];
\nEnterstringwith-1toend:
gets(str);
while(strcmp(str,"
-1"
)!
=0){
fputs(___2___,fw);
fputs("
fw);
voidReadText(FILE*fr)
\nReadfileandoutputtoscreen:
fgets(str,81,fr);
while(!
feof(fr)){
%s"
___3___);
voidWriteText(FILE*fw)
fputs(str,fw);
str);
给定程序MODI1