计算机二级C上机考试综合复习题
不少同学反映说计算机二级考试C语言难度很大,下面小编专门整理了计算机二级C上机考试综合复习题,更多计算机二级考试信息请关注免费学习网。
填空题
Str是全部由数字和字母字符组成的字符串,由num传入字符串的长度,请补充fun函数,该函数的功能是把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
例如:str=“Abc123e456hui7890”,结果为:1234567890
注意:部分源程序给出如下
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:#include
#define N80
int bb[N];
intfunchar s[],int bb[],int num
int i,n=0;
fori=0;i
ifs[i]>='0'___1___s[i]<='9'
bb[n]=___2___;
n++;
return___3___;
main
char str[N];
int num=0,n,i;
printf"Enterastring:\n";
getsstr;
whilestr[num]
num++;
n=funstr,bb,num;
printf"\nbb=";
fori=0;i
printf"%d",bb[i];
第1处填空:&&
第2处填空:s[i]-‘0’
第3处填空:n
改错题
下列给定程序中,函数fun的'功能是:求三个数的最小公倍数。例如,给变量x1,x2,x3分别输入15112,则输出结果应当是330。
请改正程序中的错误,使其能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
intfunint x,int y,int z
int j,t,n,m;
/********found********/
j=1;
t=m=n=1;
/********found********/
whilet!=0&&m!=0&&n!=0
j=j+1;
t=j%x;
m=j%y; www.Examda.CoM
n=j%z;
returnj;
main
int x1,x2,x3,j;
printf"Inputx1x2x3: ";
scanf"%d%d%d",&x1,&x2,&x3;
printf"x1=%d,x2=%d,x3=%d\n",x1,x2,x3;
j=funx1,x2,x3;
printf"Theminimalcommonmultipleis:%d\n",j;
第1处:j=1;应改为j=0;
第2处:whilet!=0&&m!=0&&n!=0应改为whilet!=0||n!=0
编程题
假定输入的字符串中只包含字母和*号。请编写函数FUN,它的功能是:使字符串中前导*号全部移到字符串的尾部。
例如,若字符串中的内容为*******A*BC*DEF*G****,移动后,字符串中的内容应当是A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
voidfunchar*a
main 考试大www.Examda。com
char s[81],*p;
FILE*out;
chartest[4][80]="*******A*BC*DEF*G****","A******B*CD**EF*G*",
"****A****G*","*d**b**a**e*";
inti;
printf"Enterastring:\n";
getss;
funs;
printf"Thestringaftermoveing:\n";
putss;
out=fopen"out.dat","w";
fori=0;i<4;i++
funtest[i];
fprintfout,"%s\n",test[i];
fcloseout;
答案是:
voidfunchar*a
inti=0,n=0;
char*p;
p=a;
while*p==’*’
n++;
p++;
while*p
a[i]=*p;
i++;
p++;
whilen!=0
a[i]=’*’;
i++;
n--;
a[i]=’\0’;