计算机等级考试二级C语言上机题库6367套含答案.docx
《计算机等级考试二级C语言上机题库6367套含答案.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言上机题库6367套含答案.docx(8页珍藏版)》请在冰豆网上搜索。
计算机等级考试二级C语言上机题库6367套含答案
第63套
1程序填空
给定程序中,函数fun的功能是:
有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边值为0。
第1处for(i=0;i第2处t[i][j+m]=t[i][j];
第3处for(j=0;j2程序修改
给定程序MODI1.C是函数fun的功能是:
计算并输出high以内最大的10个素数之和。
high的值由主函数传给fun函数。
intfun(inthigh)
{intsum=0,n=0,j,yes;
/*******found******/
while((2<=high)&&(n<10))
{yes=1;
for(j=2;j<=high/2;j++)
if(high%j==0){
/*******found******/
yes=0;break;
}
if(yes){sum+=high;n++;}
high--;
}
returnsum;
}
3程序设计
编写函数fun,它的功能是:
利用以下所示的简单迭代方法求方程:
cos(x)-x=0的一个实根。
xn+1=cos(xn)迭代步骤如下:
1.取x1初值为0.0
2.x0=x1,把x1的值赋给x0
3.x1=cos(x0),求出一个新的x1
4.若x0-x1的绝对值小于0.000001执行步骤(5)否则执行步骤
(2)
5.所求x1就是方程cos(x)-x=0的一个实根作为函数值返回。
程序将输出结果Root=0.739058。
floatfun()
{
floatx0,x1=0.0;
do{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>0.000001);
returnx1;
}
第64套
1程序填空
给定程序中,函数fun的功能是:
将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
第1处for(p=1;p<=k;p++)
第2处for(j=0;ja[i][j]=a[i][j+1];
第3处a[i][N-1]=temp;
2程序修改
给定程序MODI1.C是函数fun的功能是:
根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。
例如,若输入2则输出
12
24
/*******found******/
fun(inta[][M],intm)
{intj,k;
for(j=0;jfor(k=0;k/*******found******/
a[j][k]=(k+1)*(j+1);
}
3程序设计
函数fun的功能是:
将a、b中的两位正整数合并形成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
voidfun(inta,intb,int*c)
{
*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);
}
第65套
1程序填空
给定程序中,函数fun的功能:
将a所指4×3矩阵中第k行的元素与第0行元素交换。
例如:
有下列矩阵
123
456
789
101112
若k为2,程序执行结果为
789
456
123
101112
第1处voidfun(int(*a)[N],intk)
第2处for(i=0;i第3处a[0][i]=a[k][i];
2程序修改
给定程序MODI1.C中函数fun的功能是:
读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,若输入edcba,则应输出:
abcde。
voidfun(chart[])
{
charc;
inti,j;
/*******found******/
for(i=strlen(t)-1;i;i--)
for(j=0;j
/*******found******/
if(t[j]>t[j+1])
{
c=t[j];
t[j]=t[j+1];
t[j+1]=c;
}
}
3程序设计
请编写一个函数fun,其功能:
将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
voidfun(char*ss)
{
char*p=ss;
inti=0;
while(*p){
if((i%2)&&(*p>=’a’&&*p<=’z’))
*p-=32;
p++;
i++;
}
}
第66套
1程序填空
给定程序中,函数fun的功能是:
将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
第1处max=*std;
第2处if(max.agemax=std[i];
第3处printf(“\nName:
%s,Age:
%d\n”,max.name,max.age);
2程序修改
给定程序MODI1.C中函数fun的功能是:
实现两个整数的交换。
例如给a和b分别输入:
60和65,输出为:
a=65b=60
/*******found******/
voidfun(int*a,int*b)
{intt;
/*******found******/
t=*b;*b=*a;*a=t;
}
3程序设计
请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
voidfun(inttt[M][N],intpp[N])
{
inti,j,min,k;
for(i=0;i{
min=tt[0][i];k=0;
for(j=1;jif(min>tt[j][i])
{min=tt[j][i];
k=j;
}
pp[i]=tt[k][i];
}
}
第67套
1程序填空
给定程序中,函数fun的功能是:
调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
第1处while(n第2处if(x==a[i])break;
第3处if(i==n){a[n]=x;n++;}
2程序修改
给定程序MODI1.C中函数fun的功能是:
先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
intfun()
{
inta[3][3],sum;
inti,j;
/*******found******/
sum=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
/*******found******/
scanf(“%d”,&a[i][j]);
}
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf(“Sum=%d\n”,sum);
}
3程序设计
编写程序,实现矩阵(3行3列)的转置(即行列互换)
intfun(intarray[3][3])
{
inti,j,arr[3][3];
memcpy(arr,array,9*sizeof(int));
for(i=0;i<3;i++)
for(j=0;j<3;j++)
array[i][j]=arr[j][i];
}