历年全国计算机等级考试二级C语言上机考试题库及答案Word格式文档下载.docx
- 文档编号:21300798
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:93
- 大小:172.34KB
历年全国计算机等级考试二级C语言上机考试题库及答案Word格式文档下载.docx
《历年全国计算机等级考试二级C语言上机考试题库及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《历年全国计算机等级考试二级C语言上机考试题库及答案Word格式文档下载.docx(93页珍藏版)》请在冰豆网上搜索。
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
/************found************/
for(i=0;
=s1;
i++)
t[i]=s[i];
for(i=0;
sl;
t[sl+i]=s[sl-i-1];
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;
i<
sl;
i++)t[2*sl]=0;
P:
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
2.填空
给定程序的功能是:
从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText和WriteText实现。
main()
{FILE*fp;
myfile4.txt"
w"
{printf("
openfail!
!
exit(0);
}
WriteText(fp);
r"
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___);
给定程序MODI1.c中函数fun的功能是:
从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
当s中的数为:
7654321时,t中的数为:
7531
#include<
stdio.h>
voidfun(longs,longt)
{longsl=10;
*t=s%10;
while(s>
0)
{s=s/100;
*t=s%10*sl+*t;
sl=sl*100;
a=45,b=12时,调用该函数后,c=1524.
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的文本文档中,然后再顺序读出显示在屏幕上。
intfun(char*fname)
inti,n;
floatx;
if((fp=fopen(fname,"
))==NULL)return0;
for(i=1;
i<
=10;
i++)
fprintf(___1___,"
%d%f\n"
i,sqrt((double)i));
\nSucceed!
!
___2___;
\nThedatainfile:
if((fp=fopen(___3___,"
return0;
fscanf(fp,"
%d%f"
&
n,&
x);
while(!
feof(fp))
n,x);
return1;
给定程序MODI1.c中fun函数的功能是:
将n个无序整数从小到大排序。
fun(intn,int*a)
{inti,j,p,t;
for(j=0;
j<
n-1;
j++)
{p=j;
for(i=j+1;
i++)
if(a[p]>
a[i])
t=i;
if(p!
=j)
{t=a[j];
a[j]=a[p];
a[p]=t;
a=45,b=12时,调用该函数后,c=2514
3、B:
fpfclose(fp)fname
np=i
*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;
if((fs=fopen(source,___1___))==NULL)
if((ft=fopen(target,"
ch=fgetc(fs);
feof(___2___))
{putchar(ch);
fputc(ch,___3___);
fclose(fs);
fclose(ft);
\n\n"
将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
87653142时,t中的数为:
8642
voidfun(longs,long*t)
{intd;
longsl=1;
*t=0;
{d=s%10;
if(d%2=0)
{*t=d*sl+*t;
sl*=10;
s\=10;
a=45,b=12时,调用该函数后,c=5142
4、B:
“r”fsft
(d%2==0)s/=10;
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
5.填空
给定程序中已建立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表。
把形参x的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。
typedefstructlist
{intdata;
structlist*next;
}SLIST;
voidfun(SLIST*h,intx)
{SLIST*p,*q,*s;
s=(SLIST*)malloc(sizeof(SLIST));
s->
data=___1___;
q=h;
p=h->
next;
while(p!
=NULL&
&
x>
p->
data){
q=___2___;
p=p->
next=p;
q->
next=___3___;
计算正整数num的各位上的数字之积。
例如,若输入:
252,则输入应该是:
20.若输入:
202,则输出应该是:
0.
longfun(longnum)
longk;
do
{k*=num%10;
num\=10;
}while(num);
return(k);
请编写一个函数fun,它的功能是:
它的功能是:
计算n门课程的平均分,计算结果作为函数值返回。
若有5门课程的成绩是:
90.5,72,80,61.5,55
则函数的值为:
71.80
5、B:
xps
longk=1;
num/=10;
floatave=0.0;
n;
i++)ave=ave+a[i];
ave=ave/n;
returnave;
6.填空
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中的数据,并释放该节点,是链表缩短。
voidfun(SLIST*p)
{SLIST*t,*s;
t=p->
s=p;
while(t->
next!
=NULL)
{s=t;
t=t->
___1___;
%d"
___2___);
next=NULL;
free(___3___);
将字符串中的字符按逆序输出,单补改变字符串中的内容。
例如,若字符串味abcd,则应输出:
dcba
fun(chara)
{if(*a)
{fun(a+1);
%c"
*a);
请编写一个函数fun,他的功能是:
比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
例如,输入beijing<
CR>
shanghai<
(<
为回车键),函数将返回shanghai
6、B:
nextt->
datat
fun(char*a)printf("
*a);
char*p=s,*q=t;
for(i=0;
*p&
*q;
{
p++;
q++;
}
if(*p==0&
*q==0)returns;
if(*p)returns;
elsereturnt;
7.填空
给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序连接。
删除链表中数据域值相同的结点,使之只保留一个
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___;
else
{p=q;
q=q->
___3___;
用选择法对数组中的n个元素按从小到大的顺序进行排序。
voidfun(inta[],intn)
{inti,j,t,p;
for(j=0;
j<
n-1;
j++){
p=j
for(i=j;
i<
n;
if(a[i]<
a[p])
p=j;
t=a[p];
a[p]=a[j];
a[j]=t;
求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传3送给m的之位50,则程序输出:
711142122183335424449
答案:
7、B:
qnextnext
p=i;
inti;
*n=0;
for(i=7;
=m;
i++)
if((i%7==0)||(i%11==0))a[(*n)++]=i;
8.填空
给定程序中,函数fun的gongn是:
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回改结点在链表中所处的顺序号;
若不存在值为ch的结点,函数返回0值
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{SLIST*p;
intn=0;
=___1___)
{n++;
if(p->
data==ch)return___2___;
elsep=p->
修改
删除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);
将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)
若输入“abc4EFg”,则应输出“aBc4Efg”。
8、B:
NULLnhead,ch
forc[t]='
for(i=1;
strlen(*ss);
i+=2){if(ss[i]>
='
a'
&
ss[i]<
z'
)ss[i]-=32;
9.填空
统计出带有头结点的单向链表中的个数,存放在形参n所指的存储单元中。
voidfun(SLIST*h,int*n)
___1___=0;
while(p)
{(*n)++;
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48},num;
head=creatlist(a);
outlist(head);
fun(___3___,&
num);
\nnumber=%d\n"
num);
求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;
若未找到,则函数值为NULL
当字符串中的内容为“abcdefabcdx”t中的内容为“ab”时,输出的结果应是:
abcdx
当字符串中的内容为“abcdefabcdx”t中的内容为“abd”时,则程序输出未找到信息notbefound
char*fun(char*s,char*t)
char*p,*r,*a;
a=Null;
while(*s)
{p=s;
r=t;
whil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 全国 计算机等级考试 二级 语言 上机 考试 题库 答案