二级C上机模拟题Word下载.docx
- 文档编号:19000645
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:18
- 大小:18.97KB
二级C上机模拟题Word下载.docx
《二级C上机模拟题Word下载.docx》由会员分享,可在线阅读,更多相关《二级C上机模拟题Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
TheOriginalstringis:
\n"
puts(s);
Inputcharacter\n"
scanf("
%c"
&
ch);
n=fun(s,ch);
\nThenumberofcharacteris:
%d\n"
n);
Thepositionofcharacter:
for(i=0;
i<
n;
i++)
%d"
str[i]);
2.改错题
下列给定程序中,函数fun的功能是:
用递归算法计算斐波拉契级数数列中第n项的值。
从第1项起,斐波拉契级数序列为1、1、2、3、5、8、…例如,若给n输入7,则该项的斐波拉契级数值为13。
请修改程序中的错误,得出正确的结果。
不要改动main函数,不能增行或删行,也不能更改程序的结构。
longfun(intm)
/*******error*********/
switch(m);
case0:
return0;
/********error********/
case1;
case2:
return1;
return(fun(m-1)+fun(m-2));
longa;
intn;
Inputn:
"
%d"
n);
n=%d\n"
a=fun(n);
a=%d\n\n"
a);
3.编程题
请编写函数fun,该函数的功能是:
删除一维数组中所有相同的数,使之只剩一个。
数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
1,1,1,2,2,3,3,3,3,4
删除后,数组中的内容应该是:
1,2,3,4
请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
intfun(intb[],intm)
{
intb[M]={1,1,1,2,2,3,3,3,3,4},i,m=10;
FILE*out;
Theoriginaldata:
m;
%3d"
b[i]);
m=fun(b,m);
\nThedataafterdeleted:
out=fopen("
outfile.dat"
"
w"
fprintf(out,"
%d\n"
fclose(out);
模拟练习二
给定程序中,函数fun的功能:
将s所指字符串中的所有非数字字符移到所有数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。
例如,形参s所指的字符串为:
asf34fgrt5657gngjh78。
则执行结果为:
34565778asffgrtgngjh。
voidfun(char*str)
inti,j=0,k=0;
chartemp1[80],temp2[80];
str[i]!
='
\0'
;
if(str[i]>
a'
&
&
str[i]<
z'
)
___1___;
j++;
else
temp1[k++]=str[i];
temp2[j]=0;
temp1[k]=0;
k;
___3___;
str[k+i]=temp2[i];
charstr[100]="
asf34fgrt5657gngjh78"
\nTheoriginalstringis:
%s\n"
str);
fun(str);
\nTheresultis:
2.改错题
计算并输出max以内最大的10个素数之和。
high由主函数传给fun函数。
若max的值为50,则函数的值为300。
请修改程序中的错误,使程序能得出正确的结果。
math.h>
intfun(intmax)
intsum=0,n=0,j,flag;
while((max>
=2)&
(n<
10))
flag=1;
for(j=2;
j<
=max/2;
j++)
if(max%j==0)
flag=0;
break
if(flag)
sum+=max;
n++;
max--;
returnsum;
fun(50));
将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串是:
1111
2222222
33
4444
则合并后的字符串的内容应是11112222222334444。
#defineM4
#defineN20
voidfun(charstr[M][N],char*a)
charmatrix[M][N]={"
1111"
2222222"
"
33"
4444"
},i;
charstr[100]={"
****************"
};
Thestring:
M;
puts(matrix[i]);
fun(matrix,str);
%s"
\n\n"
模拟练习三
在给定程序中,函数fun的功能是:
在形参s所指字符串中的每个非数字字符之后插入一个"
*"
号。
a1bc45sdtg56f,则执行结果为a*1b*c*45s*d*t*g*56f*。
inti,j,n;
___1___str[i]<
n=0;
while(str[i+1+n]!
=___2___)
for(j=i+n+1;
j>
i;
j--)
str[j+1]=___3___;
str[j+1]='
*'
i=i+1;
a1bc45sdtg56f"
将大写字母转换为对应小写字母之后的第五个字母,若小写字母为v~z,使小写字母的值减21,转换后的小写字母作为函数值返回。
例如,若形参是字母A,则转换为小写字母f;
若形参是字母W,则转换为小写字母b。
请修改函数fun中的错误,得出正确的结果。
ctype.h>
charfun(charch)
/******error**********/
if(ch>
A'
ch<
Z'
ch=ch-32;
u'
ch=ch-5;
elseif(ch>
v'
ch=ch-21;
returnch;
charch1,ch2;
\nEnteraletter(A-Z):
ch1=getchar();
if(isupper(ch1))
ch2=fun(ch1);
\n\nTheletter%cchangeto%c\n"
ch1,ch2);
\nEnter(A-Z)!
编写一个函数fun,它的功能是:
实现两个字符串的连接(不使用库函数strcat),即把str2所指的字符串连接到str1所指的字符串后。
例如,分别输入下面两个字符串:
just--
test
则程序输出:
just--test
voidfun(charstr1[],charstr2[])
chars1[100],s2[50];
FILE*out;
Enters1ands2:
);
%s%s"
s1,s2);
s1=%s\n"
s1);
s2=%s\n"
s2);
fun(s1,s2);
Afterinvoking:
%s\n"
out=fopen("
strcpy(s1,"
Hello"
fun(s1,"
World!
This"
is"
a"
test"
string."
fclose(out);
模拟联系四
函数fun的功能:
逆置数组元素中的值,形参m给出数组中数据的个数。
例如,若x所指数组中的数据依次为9、8、7、6、5,则逆置后依次为5、6、7、8、9。
voidfun(inta[],intm)
inti,temp;
___1___;
temp=a[i];
a[i]=a[m-1-___2___];
___3___=temp;
intx[9]={9,8,7,6,5},i;
\nTheoriginaldata:
5;
%4d"
x[i]);
fun(x,5);
\nThedataafterinvert:
下列给定程序中,函数fun的功能是根据输入的三个边长(整型值),判断能否构成三角形;
构成的是等边三角形,还是等腰三角形。
若能构成等边三角形函数,返回3;
若能构成等腰三角形函数,返回2;
若能构成三角形函数,返回1;
若不能构成三角形函数,返回0。
intfun(intx,inty,intz)
if(x+y>
z&
y+z>
x&
x+z>
y)
if(x==y&
y==z)
elseif(x==y||y==z||x==z)
return2;
return3;
intx,y,z,shape;
\nInputx,y,z:
%d%d%d"
x,&
y,&
z);
\nx=%d,y=%d,z=%d\n"
x,y,z);
shape=fun(x,y,z);
\n\nTheshape:
shape);
假定输入的字符串中只包含字母和"
#"
号,请编写函数fun,它的功能是:
删除字符串中所有的"
在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为"
##w#el##come###"
,删除后,字符串中的内容则应当是"
welcome"
。
voidfun(char*s)
charstr[81];
Enterastring:
gets(str);
Thestringafterdeleted:
puts(str);
strcpy(str,"
###T#ES#T#######"
模拟练习五
请补充fun函数,该函数的功能是求能整除k且是偶数的数,把这些数保存在数组a中,并按从大到小输出。
例如,当k=40时,依次输出402010842。
voidfun(intk,inta[])
{inti;
intj=0;
for(___1___;
=k;
if(k%i==0___2___i%2==0)
a[j++]=i;
\n\n"
for(i=___3___;
i>
=0;
i--)
%d"
a[i]);
intk=1;
inta[100];
\nPleaseinputk\n"
k);
fun(k,a);
下列给定程序的功能是:
读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的"
单词"
是指由空格隔开的字符串)。
例如,若输入"
goodluck!
,则应输出"
GoodLuck!
string.h>
/*******error*********/
voidtop(chars)
inti=0;
for(;
*s;
s++)
if(i)
if(*s=='
'
i=0;
if(*s!
i=1;
*s=toupper(*s);
\nPleaseenteranEnglishtextline:
\n\nBeforechanging:
\n%s"
top(str);
\nAfterchanging:
\n%s\n"
请编写函数fun,它的功能是:
除了字符串前导和尾部的"
号之外,将串中其他"
号全部删除。
形参r已指向字符串中第一个字母,形参v已指向字符串中最后一个字母。
####a#bc#def##g#####"
####abcdefg#####"
voidfun(char*s,char*r,char*v)
charstr[100],*p,*q;
p=q=str;
while(*p)
p--;
while(*p=='
#'
while(*q=='
)
q++;
fun(str,q,p);
#####a#b#c#d######"
fun(str,str+4,str+13);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上机 模拟