Qopgpq历年全国计算机等级考试二级C语言上机考试题库及答案.docx
《Qopgpq历年全国计算机等级考试二级C语言上机考试题库及答案.docx》由会员分享,可在线阅读,更多相关《Qopgpq历年全国计算机等级考试二级C语言上机考试题库及答案.docx(93页珍藏版)》请在冰豆网上搜索。
![Qopgpq历年全国计算机等级考试二级C语言上机考试题库及答案.docx](https://file1.bdocx.com/fileroot1/2022-10/29/f06e1b8a-0444-47e9-a224-ac2b0f969fe9/f06e1b8a-0444-47e9-a224-ac2b0f969fe91.gif)
Qopgpq历年全国计算机等级考试二级C语言上机考试题库及答案
生命是永恒不断的创造,因为在它内部蕴含着过剩的精力,它不断流溢,越出时间和空间的界限,它不停地追求,以形形色色的自我表现的形式表现出来。
--泰戈尔
1.填空
给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.c中
不得增行或删行,也不得更改程序的结构!
voidcheck();
/**********found**********/
intfun(___1___*std)
{
/**********found**********/
___2___*fp;inti;
if((fp=fopen("myfile5.dat","wb"))==NULL)
return(0);
printf("\nOutputdatatofile!
\n");
for(i=0;i/**********found**********/
fwrite(&std[i],sizeof(STYPE),1,___3___);
fclose(fp);
return
(1);
}
修改
给定程序MODI1.C中函数fun的功能是:
先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
例如:
当s中的字符串为:
“ABCDE”时,
则他中的字符串应为:
“ABCDEEDCBA”。
请改正程序中的错误,使他能得出正确的结果。
注意:
不要改动main函数,不能增行或删行,也不得更改程序的结构!
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
/************found************/
for(i=0;i<=s1;i++)
t[i]=s[i];
for(i=0;it[sl+i]=s[sl-i-1];
/************found************/
t[sl]='\0';
}
程序
函数fun的功能是:
将两个两位数的正整数a,b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如:
a=45,b=12时,调用该函数后,c=4152.
注意:
部分源程序存在文件PROG1.C中。
数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
答案:
B:
STYPEFILEfp
M:
for(i=0;iP:
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
2.填空
给定程序的功能是:
从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.c中
不得增行或删行,也不得更改程序的结构!
main()
{FILE*fp;
if((fp=fopen("myfile4.txt","w"))==NULL)
{printf("openfail!
!
\n");exit(0);}
WriteText(fp);
fclose(fp);
if((fp=fopen("myfile4.txt","r"))==NULL)
{printf("openfail!
!
\n");exit(0);}
ReadText(fp);
fclose(fp);
}
/**********found**********/
voidWriteText(FILE___1___)
{charstr[81];
printf("\nEnterstringwith-1toend:
\n");
gets(str);
while(strcmp(str,"-1")!
=0){
/**********found**********/
fputs(___2___,fw);fputs("\n",fw);
gets(str);
}
}
voidReadText(FILE*fr)
{charstr[81];
printf("\nReadfileandoutputtoscreen:
\n");
fgets(str,81,fr);
while(!
feof(fr)){
/**********found**********/
printf("%s",___3___);
fgets(str,81,fr);
}
}
修改
给定程序MODI1.c中函数fun的功能是:
从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
例如:
当s中的数为:
7654321时,t中的数为:
7531
请改正程序中的错误,使他能得出正确的结果。
注意:
不要改动main函数,不能增行或删行,也不得更改程序的结构!
#include
/************found************/
voidfun(longs,longt)
{longsl=10;
*t=s%10;
while(s>0)
{s=s/100;
*t=s%10*sl+*t;
/************found************/
sl=sl*100;
}
}
程序
函数fun的功能是:
将两个两位数的正整数a,b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如:
a=45,b=12时,调用该函数后,c=1524.
注意:
部分源程序存在文件PROG1.C中。
数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
2、B:
*fwstrstr
M:
long*tsl=sl*10;
P:
*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);
3.填空
给定程序中,函数fun的功能是:
将自然数1~10以及它们的平方根写到名为myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.c中
不得增行或删行,也不得更改程序的结构!
intfun(char*fname)
{FILE*fp;inti,n;floatx;
if((fp=fopen(fname,"w"))==NULL)return0;
for(i=1;i<=10;i++)
/**********found**********/
fprintf(___1___,"%d%f\n",i,sqrt((double)i));
printf("\nSucceed!
!
\n");
/**********found**********/
___2___;
printf("\nThedatainfile:
\n");
/**********found**********/
if((fp=fopen(___3___,"r"))==NULL)
return0;
fscanf(fp,"%d%f",&n,&x);
while(!
feof(fp))
{printf("%d%f\n",n,x);fscanf(fp,"%d%f",&n,&x);}
fclose(fp);
return1;
}
修改
给定程序MODI1.c中fun函数的功能是:
将n个无序整数从小到大排序。
fun(intn,int*a)
{inti,j,p,t;
for(j=0;j{p=j;
/************found************/
for(i=j+1;iif(a[p]>a[i])
/************found************/
t=i;
if(p!
=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
程序
函数fun的功能是:
将两个两位数的正整数a,b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如:
a=45,b=12时,调用该函数后,c=2514
注意:
部分源程序存在文件PROG1.C中。
数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
3、B:
fpfclose(fp)fname
M:
iP:
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
4.填空
给定程序的功能是:
调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0,在复制的过程中,把复制的内容输出到终端屏幕。
主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中
intfun(char*source,char*target)
{FILE*fs,*ft;charch;
/**********found**********/
if((fs=fopen(source,___1___))==NULL)
return0;
if((ft=fopen(target,"w"))==NULL)
return0;
printf("\nThedatainfile:
\n");
ch=fgetc(fs);
/**********found**********/
while(!
feof(___2___))
{putchar(ch);
/**********found**********/
fputc(ch,___3___);
ch=fgetc(fs);
}
fclose(fs);fclose(ft);
printf("\n\n");
return1;
}
修改
给定程序MODI1.C中函数fun的功能是:
将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如:
当s中的数为:
87653142时,t中的数为:
8642
voidfun(longs,long*t)