最新计算机二级c语言历年真题及答案Word文件下载.docx
- 文档编号:21247776
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:25
- 大小:26.49KB
最新计算机二级c语言历年真题及答案Word文件下载.docx
《最新计算机二级c语言历年真题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新计算机二级c语言历年真题及答案Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
(8)数据库管理系统是
a)操作系统的一部分
b)在操作系统支持下的系统软件
c)一种编译系统
d)一种操作系统
(9)在e-r图中,用来表示实体联系的图形是
a)椭圆图
b)矩形
c)菱形
d)三角形
(10)有三个关系r,s和t如下:
其中关系t由关系r和s通过某种操作得到,该操作为
a)选择
b)投影
c)交
d)并
(11)以下叙述中正确的是
a)程序设计的任务就是编写程序代码并上机调试
b)程序设计的任务就是确定所用数据结构
c)程序设计的任务就是确定所用算法
d)以上三种说法都不完整
(12)以下选项中,能用作用户标识符的是
a)void
b)8_8
c)_0_
d)unsigned
(13)阅读以下程序
#include
main()
{intcase;
floatprintf;
printf(“请输入2个数:
”);
scanf(“%d%f”,case,pjrintf);
printf(“%d%f\n”,case,printf);
}
该程序编译时产生错误,其出错原因是
a)定义语句出错,case是关键字,不能用作用户自定义标识符
b)定义语句出错,printf不能用作用户自定义标识符
c)定义语句无错,scanf不能作为输入函数使用
d)定义语句无错,printf不能输出case的值
(14)表达式:
(int)((double)9/2)-(9)%2的值是
a)0
b)3
c)4
d)5
(15)若有定义语句:
intx=10;
,则表达式x-=x+x的值为
a)-20
b)-10
c)0
d)10
(16)有以下程序
{inta=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
程序运行后的输出结果是
a)0,0
c)3,2
d)1,2
17)设有定义:
inta=1,b=2,c=3;
,以下语句中执行效果与其它三个不同的是
a)if(ab)c=a,a=b,b=c;
b)if(ab){c=a,a=b,b=c;
}
c)if(ab)c=a;
a=b;
b=c;
d)if(ab){c=a;
(18)有以下程序
{intc=0,k;
for(k=1;
k3;
k++)
switch(k)
{default:
c+=k
case2:
c++;
break;
case4:
c+=2;
printf(“%d\n”,c);
a)3
b)5
c)7
d)9
(19)以下程序段中,与语句:
k=ab?
(bc?
1:
0):
0;
功能相同的是
a)if((ab)(bc))k=1;
elsek=0;
b)if((ab)||(bc)k=1;
c)if(a=b)k=0;
elseif(b=c)k=1;
d)if(ab)k=1;
elseif(bc)k=1;
20)有以下程序
{chars[]={“012xy”};
inti,n=0;
for(i=0;
s[i]!
=0;
i++)
if(s[i]=’a’s[i]=’z’)n++;
printf(“%d\n”,n);
b)2
c)3
(21)有以下程序
{intn=2,k=0;
while(k++n++2);
printf(“%d%d\n”,k,n);
a)02
b)13
c)57
d)12
(22)有以下定义语句,编译时会出现编译错误的是
a)chara=’a’;
b)chara=’\n’;
c)chara=’aa’;
d)chara=’\x2d’;
(23)有以下程序
{charc1,c2;
c1=’a’+’8’-‘4’;
c2=’a’+’8’-‘5’;
printf(“%c,%d\n”,c1,c2);
已知字母a的ascii码为65,程序运行后的输出结果是
a)e,68
【篇二:
2014年三月全国计算机二级c语言上机考试题库】
txt>
题库100套
第01套:
给定程序中,函数fun的功能是:
将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:
27638496,新的数:
为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的blank1.c中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#includestdio.h
voidfun(unsignedlong*n){unsignedlongx=0,i;
intt;
i=1;
while(*n)
{t=*n%__1__;
if(t%2!
=__2__){x=x+t*i;
i=i*10;
}*n=*n/10;
*n=__3__;
{unsignedlongn=-1;
while(n99999999||n0){printf(pleaseinput(0n100000000):
);
scanf(%ld,n);
}fun(n);
printf(\ntheresultis:
%ld\n,n);
解题思路:
第一处:
t是通过取模的方式来得到*n的个位数字,所以应填:
10。
第二处:
判断是否是奇数,所以应填:
0。
第三处:
最后通形参n来返回新数x,所以应填:
x。
给定程序modi1.c中函数fun的功能是:
计算n!
。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
doublefun(intn){doubleresult=1.0;
ifn==0return1.0;
while(n1n170)result*=n--returnresult;
main(){intn;
printf(inputn:
);
scanf(%d,n);
printf(\n\n%d!
=%lf\n\n,n,fun(n));
条件语句书写格式错误,应改为:
if(n==0)。
语句后缺少分号。
***************************************************请编写一个函数fun,它的功能是:
将一个数字字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的。
例如,若输入字符串-1234,则函数把它转换为整数值-1234。
函数fun中给出的语句仅供参考。
注意:
部分源程序存在文件prog1.c文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#includestdio.h#includestring.hlongfun(char*p)
{inti,len,t;
/*len为串长,t为正负标识*/longx=0;
len=strlen(p);
if(p[0]==-)
{t=-1;
len--;
p++;
}elset=1;
/*以下完成数字字符串转换为一个数字*/returnx*t;
main()/*主函数*/{chars[6];
longn;
printf(enterastring:
\n);
gets(s);
n=fun(s);
printf(%ld\n,n);
nono();
nono()
{/*本函数用于打开文件,输入数
据,调用函数,输出数据,关闭
文件。
*/file*fp,*wf;
inti;
chars[20];
longn;
fp=fopen(c:
\\test\\in.dat,r);
wf=fopen(c:
\\test\\out.dat,w);
for(i=0;
i10;
i++){fscanf(fp,%s,s);
fprintf(wf,%ld\n,n);
fclose(fp);
fclose(wf);
本题是将一个数字字符串转换为一个整数。
参考答案:
#includestdio.h#includestring.hlongfun(char*p){
inti,len,t;
/*以下完成数字字符串转换为一个数字*/
while(*p)x=x*10-48+(*p++);
returnx*t;
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
}注意:
由于nono()这个函数是改卷人用的,与考生没有什么关系,故下面从第2套试题开始均省略nono()
※※※※※※※※※※※※※※※※※※※※※※※※※第02套:
给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
voidfun(char*s,inta,doublef){
__1__fp;
charch;
fp=fopen(file1.txt,w);
fprintf(fp,%s%d%f\n,s,a,f);
fclose(fp);
fp=fopen(file1.txt,r);
printf(\ntheresult:
\n\n);
ch=fgetc(fp);
while(!
feof(__2__)){
putchar(__3__);
}putchar(\n);
{chara[10]=hello!
;
intb=12345;
doublec=98.76;
fun(a,b,c);
本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。
定义文本文件类型变量,所以应填:
file*。
判断文件是否结束,所以应填:
fp。
显示读出的字符,所以应填:
ch。
***************************************************
给定程序modi1.c中函数fun的功能是:
依次取出字符串中所有数字字符,形成新的字符串,并取
代原字符串。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#includestdio.hvoidfun(char*s){inti,j;
for(i=0,j=0;
s[i]!
=\0;
i++)if(s[i]=0s[i]=9)s[j]=s[i];
s[j]=\0;
{charitem[80];
printf(\nenterastring:
gets(item);
printf(\n\nthestringis:
\%s\\n,item);
fun(item);
printf(\n\nthestringofchangingis:
\%s\\n,item);
第一处:
要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j
来控制新字符串的位置,所以应改为:
s[j++]=s[i];
第二处:
置新字符串的结束符,所以应改为:
s[j]=\0;
.
请编写函数fun,函数的功能是:
将m行n列的二维数组中的字符数据,按列的
顺序依次放到一个字符串中。
例如,二维数组中的数据为:
wwwwsssshhhh
则字符串中的内容应是:
wshwshwsh。
部分源程序在文件prog1.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
#includestdio.h#definem3#definen4
voidfun(chars[][n],char*b){
inti,j,n=0;
in;
i++)/*请填写相应语句完成其功能*/{}
b[n]=\0;
main(){chara[100],w[m][n]={{w,w,w,w},{s,s,s,s},{h,h,h,h}};
inti,j;
printf(thematrix:
\n);
im;
i++){for(j=0;
jn;
j++)printf(%3c,w[i][j]);
printf(\n);
fun(w,a);
printf(theastring:
puts(a);
printf(\n\n);
nono();
本题是把二维数组中的字符数据按列存放到一个字符串中。
1.计算存放到一维数组中的位置。
2.取出二维数组中的字符存放到一维数组(已计算出的位置)中。
i++)/*请填写相应语句完成其功能*/{
for(j=0;
jm;
j++){b[n]=s[j][i];
n=i*m+j+1;
}}
※※※※※※※※※※※※※※※※※※※※※※※※※第03套:
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。
#includestdio.h#definen5
typedefstructstudent{longsno;
charname[10];
floatscore[3];
}stu;
voidfun(char*filename,stun){file*fp;
fwrite(n,sizeof(stu),1,__3__);
{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];
file*fp;
fp=fopen(student.dat,wb);
fwrite(t,sizeof(stu),n,fp);
fp=fopen(student.dat,rb);
fread(ss,sizeof(stu),n,fp);
printf(\ntheoriginaldata:
for(j=0;
jn;
j++)
{printf(\nno:
%ldname:
%-8sscores:
ss[j].sno,ss[j].name);
for(i=0;
i3;
i++)printf(%6.2f,ss[j].score[i]);
fun(student.dat,n);
printf(\nthedataaftermodifing:
本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。
从指定的文件中读出数
据,所以应填:
filename。
读取文件fp的最后一条记录,所以应填:
再把读出的记录,写入文件fp指定的位置上,所以应填:
给定程序modi1.c中的函数creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数creatlink中指定部位的错误,使它能得出正确的结果。
#includestdio.h#includestdlib.htypedefstructaa{intdata;
structaa*next;
}node;
node*creatlink(intn,intm){node*h=null,*p,*s;
inti;
p=(node)malloc(sizeof(node));
h=p;
p-next=null;
for(i=1;
i=n;
i++){s=(node*)malloc(sizeof(node));
s-data=rand()%m;
s-next=p-next;
p-next=s;
p=p-next;
returnp;
outlink(node*h){node*p;
p=h-next;
printf(\n\nthelist:
\n\nhead);
while(p)
{printf(-%d,p-data);
{node*head;
head=creatlink(8,22);
outlink(head);
指向刚分配的结构指针,所以应改为:
p=(node*)malloc(sizeof(node));
在动态分配内存的下一
行语句是,使用临时结构指针变量h保存p指针的初始位置,最后返回不能使用p,是因为p的位置已经发生了变化,所以应改为返回h。
*************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 计算机 二级 语言 历年 答案