全国计算机等级考试二级C语言上机考试试题详解Word文档格式.doc
《全国计算机等级考试二级C语言上机考试试题详解Word文档格式.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言上机考试试题详解Word文档格式.doc(49页珍藏版)》请在冰豆网上搜索。
charstr[N]="
123abcdefABCDEF!
"
;
char*pf=str;
printf("
***originalstring***\n"
);
puts(str);
【1】;
while(*(pf+j))
{if(*(pf+j)>
='
a'
&
*(pf+j)<
z'
)
{*(pf+j)=【2】;
j++;
}
else
【3】;
}
printf("
******newstring******\n"
puts(str);
system("
pause"
改错题:
下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCⅡ值小或相等的字符依次存放到c数组中,形成一个新的字符串。
a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。
请改正程序中的错误,使它能得到正确结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<
string.h>
voidfun(char*p,char*q,char*c)
{intk=0;
while(*p||*q)
/*************found**************/
{if(*p<
=*q)
c[k]=*q;
elsec[k]=*p;
if(*p)p++;
if(*q)q++;
/*************found**************/
K++
}
}
{chara[10]="
fshADfg"
,b[10]="
sdAEdi"
,c[80]={‘\0’};
fun(a,b,c);
Thestringa:
puts(a);
Thestringb:
puts(b);
Theresult:
puts(C);
编程题:
请编写函数fun(),其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和十位上,b数的十位和个位数依次放出c数的百位和千位上。
例如,当a=16,b=35,调用该函数后,c=5361。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
voidfun(inta,intb,long*c)
{
}
{inta,b;
longc;
printf("
Inputa,b;
scanf("
%d%d"
,&
a,&
b);
fun(a,b,&
c);
Theresultis:
%ldln"
,c);
第2套
请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。
方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。
例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00,x2=-1.00。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include"
math.h"
#include<
main()
{floata,b,c,disc,xl,x2;
do
{printf("
Inputa,b,c:
scanf("
%f,%f,%f"
b,&
disc=b*b-4*a*c;
if(disc<
0)
printf("
disc=%f\nlnputagain!
\n"
,disc);
}while(【1】);
*******theresult*******\n1"
x1=【2】;
x2=【3】;
\nx1=%6.2f\nx2=%6.2f\n"
,x1,x2);
改错题:
下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
y=l-1/(2×
2)+1/(3×
3)-1/(4×
4)+…+(-1)(m+1)/(m×
m)
例如:
m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
注意:
doublefun(intm)
{doubley=1.0;
/*************found**************/
intj=1,i;
for(i=2;
i<
=m;
i++)
{j=-1*j;
y+=1/(i*i);
return(y);
{intn=5;
\nTheresultis%lf\n"
,fun(n));
请编一个函数voidfun(inttt[M][N],intpp[N],tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。
二维数组中的数已在主函数中给出。
注意;
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<
#defineM3
#defineN4
voidfun(inttt[M][N],intp[N])
{intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};
intp[N],i,j,k;
Theriginaldatais:
for(i=0;
M;
{for(j=0;
j<
N;
j++)
%6d"
,t[i][j));
fun(t,p);
\nTheresultis:
for(k=0;
k<
k++)
%4d"
,p[k]);
第3套
数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。
请补充函数fun(),该函数的功能是:
从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组中,其个数由函数fun()返回。
当xx[8]={135,78,72,32,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。
部分源程序给出如下.
#defineN1000
intfun(intxx[],intbb[],intnum)
{inti,n=0;
intg,b;
for(i=0;
num;
{g=【1】;
b=xx[i]/100;
if(g==b)
【2】;
return【3】;
{intxx[8]={135,787,232,222,424,333,141,541},yy[N];
intnum=8,n=0,i=0;
printf("
***originaldata***\n"
for(i=0;
printf("
%u"
,xx[i]);
\n\n\n"
n=fun(xx,YY,num);
\nyy="
n;
printf("
,yy[i]);
下列给定程序中函数fun()的功能是计算1/n!
的值。
给n输入5,则输出0.008333。
/*************found**************/
intfun(intn)
{doubleresult=1.0;
if(n==0)
return1.0;
while(n>
1&
n<
170)
result*=n++;
result=1/result;
returnresult;
{i