计算机二级考试C语言模拟题五套Word文件下载.docx
《计算机二级考试C语言模拟题五套Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机二级考试C语言模拟题五套Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
![计算机二级考试C语言模拟题五套Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/401dc6ea-2742-4a82-8693-e738993e7dbc/401dc6ea-2742-4a82-8693-e738993e7dbc1.gif)
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;
i<
p>
{q=(SLIST*)malloc(sizeof(SLIST));
q->
data=a[i];
p->
next=q;
p=q;
p->
next=0;
returnh;
voidoutlist(SLIST*h)
{SLIST*p;
p=h->
if(p==NULL)printf("
\nThelistisNULL!
\n"
);
else
{printf("
\nHead"
do{printf("
->
%d"
p->
data);
p=p->
}while(p!
=NULL);
End\n"
main()
{SLIST*head;
inta[N]={11,12,15,18,19,22,25,29};
head=creatlist(a);
\nOutputfromhead:
outlist(head);
\nOutputfromtail:
\n"
while(head->
=NULL){
fun(head);
\n\n"
\nOutputfromheadagain:
解题答案:
/**********第一空**********/
/**********第二空**********/
t->
/**********第三空**********/
free(t);
******************************************
二、改错题:
给定程序MODI1.C中函数fun的功能是:
将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:
dcba。
请改正程序中的错误,使它能计算出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
/************found************/
fun(chara)
{if(*a)
{fun(a+1);
%c"
*a);
{chars[10]="
abcd"
;
处理前字符串=%s\n处理后字符串="
s);
fun(s);
printf("
voidfun(char*a)
*a);
三、程序题:
请编写一个函数fun,它的功能是:
比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
例如,输入beijingshanghai(为回车键),函数将返回shanghai。
注意:
部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
char*fun(char*s,char*t)
{
{chara[20],b[20];
voidNONO();
Input1thstring:
"
gets(a);
Input2thstring:
gets(b);
%s\n"
fun(a,b));
NONO();
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti;
chara[20],b[20];
fp=fopen("
in.dat"
"
r"
wf=fopen("
out.dat"
w"
for(i=0;
i<
10;
i++){
fscanf(fp,"
%s%s"
a,b);
fprintf(wf,"
fun(a,b));
fclose(fp);
fclose(wf);
参考答案:
inti;
char*p=s,*q=t;
*p&
&
*q;
p++;
q++;
if(*p==0&
*q==0)returns;
if(*p)returns;
elsereturnt;
题库7
一、填空题:
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。
函数fun的功能是:
删除链表中数据域值相同的结点,使之只保留一个。
源程序存放在考生文件夹的BLANK1.C中。
voidfun(SLIST*h)
{SLIST*p,*q;
if(p!
=NULL)
{q=p->
while(q!
{if(p->
data==q->
data)
{p->
next=q->
free(___1___);
q=p->
___2___;
{p=q;
q=q->
___3___;
>
inta[N]={1,2,2,3,4,4,4,5};
\nThelistbeforedeleting:
\nThelistafterdeleting:
free(q);
用选择法对数组中的n个元素按从小到大的顺序进行排序。
请修改程序中的错误,使它能得出正确的结果。
不要改动main函数,不得增行和删行,也不得更改程序的结构!
#defineN20
voidfun(inta[],intn)
{inti,j,t,p;
for(j=0;
j<
n-1;
j++){
p=j
for(i=j;
i<
n;
i++)
if(a[i]<
a[p])
p=j;
t=a[p];
a[p]=a[j];
a[j]=t;
inta[N]={9,6,8,3,-1},i,m=5;
排序前的数据:
for(i=0;
m;
i++)printf("
%d"
a[i]);
fun(a,m);
排序后的数据:
p=j;
p=i;
三、程序题:
求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传送给m的值为50,则程序输出:
711142122283335424449
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
#defineM100
voidfun(intm,int*a,int*n)
{intaa[M],n,k;
fun(50,aa,&
n);
for(k=0;
k<
k++)
if((k+1)%20==0)printf("
elseprintf("
%4d"
aa[k]);
NONO();
inti,n,j,k,aa[M],sum;
%d,"
&
j);
fun(j,aa,&
sum=0;
for(k=0;
n;
k++)sum+=aa[k];
%d\n"
sum);
*n=0;
for(i=7;
=m;
if((i%7==0)||(i%11==0))a[(*n)++]=i;
题库8
给定程序中,函数fun的功能是:
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;
若不存在值为ch的结点,函数返回0值。
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
intn=0;
while(p!
=___1___)
{n++;
if(p->
data==ch)return___2___;
elsep=p->
return0;
intk;
charch;
chara[N]={'
m'
'
p'
g'
a'
w'
x'
r'
d'
};
outlist(head);
Enteraletter:
scanf("
&
ch);
k=fun(___3___);
if(k==0)printf("
\nNotfound!
Thesequencenumberis:
%d\n"
k);
SLIST*creatlist(char*a)
do
}
=0)
data==ch)returnn;
k=fun(head,ch);
二、改错题:
删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用'
#'
结束输入。
请改正程序中的错误,使它能输出正确的结果。
fun(char*p)
{inti,t;
charc[80];
For(i=0,t=0;
p[i];
if(!
isspace(*(p+i)))c[t++]=p[i];
c[t]="
\0"
strcpy(p,c);
{charc,s[80];
inti=0;
Inputastring:
c=getchar();
while(c!
='
)
{s[i]=c;
i++;
c=getchar();
s[i]='
\0'
puts(s);
for(i=0,t=0;
p[i];
c[t]='
将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入"
abc4EFg"
,则应输出"
aBc4EFg"
。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
voidfun(char*ss)
{chartt[81];
\nPleaseenteranstringwithin80characters:
gets(tt);
\n\nAfterchanging,thestring\n\"
%s\"
tt);
fun(tt);
\nbecomes\n\"
chartt[81];
%s"
for(i=1;
strlen(*ss);
i+=2){
if(ss[i]>
='
&
ss[i]<
z'
)ss[i]-=32;
题库9
给定程序中,函数fun的功能是:
统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
SLIST*creatlist(int*a);
voidfun(SLIST*h,int*n)
___1___=0;
while(p