计算机二级C语言上机题及答案汇总.docx

上传人:b****3 文档编号:12865628 上传时间:2023-04-22 格式:DOCX 页数:37 大小:24.59KB
下载 相关 举报
计算机二级C语言上机题及答案汇总.docx_第1页
第1页 / 共37页
计算机二级C语言上机题及答案汇总.docx_第2页
第2页 / 共37页
计算机二级C语言上机题及答案汇总.docx_第3页
第3页 / 共37页
计算机二级C语言上机题及答案汇总.docx_第4页
第4页 / 共37页
计算机二级C语言上机题及答案汇总.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

计算机二级C语言上机题及答案汇总.docx

《计算机二级C语言上机题及答案汇总.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言上机题及答案汇总.docx(37页珍藏版)》请在冰豆网上搜索。

计算机二级C语言上机题及答案汇总.docx

计算机二级C语言上机题及答案汇总

2012年计算机二级C语言上机题及答案汇总

1、给定程序中,函数fun的功能是:

在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。

例如,有9个正整数:

1572387582145

按升序排列时的中间数为:

8

处理后主函数中输出的数列为:

8882387882145

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#defineN9

intfun(intx[])

{inti,j,k,t,mid,b[N];

for(i=0;i  for(i=0;i<=N/2;i++)

{k=i;

for(j=i+1;jb[j])k=j;

if(k!

=i)

{

/**********found**********/

t=b[i];b[i]=___1___;b[k]=t;

}

}

/**********found**********/

mid=b[___2___];

for(i=0;i  /**********found**********/

if(x[i]___3___mid)x[i]=mid;

returnmid;

}

main()

{inti,x[N]={1,5,7,23,87,5,8,21,45};

for(i=0;i  for(i=0;i  }

2、给定程序中,函数fun的功能是建立一个N×N的矩阵。

矩阵元素的构成规律是:

最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。

例如,若N=5,生成的矩阵为:

11111

12221

12321

12221

11111

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#defineN7

/**********found**********/

voidfun(int(*a)__1__)

{inti,j,k,m;

if(N%2==0)m=N/2;

elsem=N/2+1;

for(i=0;i  /**********found**********/

for(j=__2__;j  a[i][j]=a[N-i-1][j]=i+1;

for(k=i+1;k  /**********found**********/

a[k][i]=a[k][N-i-1]=__3__;

}

}

main()

{intx[N][N]={0},i,j;

fun(x);

printf("Theresultis:

");

for(i=0;i  {for(j=0;j

3、给定程序中,函数fun的功能是:

将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。

例如,形参s所指的字符串为:

def35adh3kjsdf7。

执行结果为:

defadhkjsdf3537。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

voidfun(char*s)

{inti,j=0,k=0;chart1[80],t2[80];

for(i=0;s[i]!

=’\0’;i++)

if(s[i]>=’0’&&s[i]<=’9’)

{

/**********found**********/

t2[j]=s[i];___1___;

}

elset1[k++]=s[i];

t2[j]=0;t1[k]=0;

/**********found**********/

for(i=0;i  /**********found**********/

for(i=0;i<___3___;i++)s[k+i]=t2[i];

}

main()

{chars[80]="def35adh3kjsdf7";

printf("Theoriginalstringis:

%s",s);

fun(s);

printf("Theresultis:

%s",s);

}

4、给定程序中,函数fun的功能是:

有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵:

123

456

789计算结果为

100

650

10149

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#defineN4

/**********found**********/

voidfun(int(*t)___1___)

{inti,j;

for(i=1;i  {for(j=0;j  {

/**********found**********/

___2___=t[i][j]+t[j][i];

/**********found**********/

___3___=0;

}

}

}

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

printf("Theoriginalarray:

");

for(i=0;i  {for(j=0;j  printf("");

}

fun(t);

printf("Theresultis:

");

for(i=0;i  {for(j=0;j  printf("");

}

}

5、给定程序中,函数fun的功能是:

对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:

baawrskjghzlicda,执行后p所指字符数组中的字符串应为:

aachjlsw。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

voidfun(char*s,char*p)

{inti,j,n,x,t;

n=0;

for(i=0;s[i]!

=’\0’;i++)n++;

for(i=1;i  /**********found**********/

___1___;

/**********found**********/

for(j=___2___+2;j  if(s[t]>s[j])t=j;

if(t!

=i)

{x=s[i];s[i]=s[t];s[t]=x;}

}

for(i=1,j=0;i  /**********found**********/

p[j]=___3___;

}

main()

{chars[80]="baawrskjghzlicda",p[50];

printf("Theoriginalstringis:

%s",s);

fun(s,p);

printf("Theresultis:

%s",p);

}

31、给定程序中,函数fun的功能是:

在形参s所指字符串中的每个数字字符之后插入一个*号。

例如,形参s所指的字符串为:

def35adh3kjsdf7。

执行结果为:

def3*5*adh3*kjsdf7*。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

voidfun(char*s)

{inti,j,n;

for(i=0;s[i]!

=’\0’;i++)

/**********found**********/

if(s[i]>=’0’___1___s[i]<=’9’)

{n=0;

/**********found**********/

while(s[i+1+n]!

=___2___)n++;

for(j=i+n+1;j>i;j--)

/**********found**********/

s[j+1]=___3___;

s[j+1]=’*’;

i=i+1;

}

}

main()

{chars[80]="ba3a54cd23a";

printf("Theoriginalstringis:

%s",s);

fun(s);

printf("Theresultis:

%s",s);

}

32、函数fun的功能是:

输出a所指数组中的前n个数据,要求每行输出5个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#include

voidfun(int*a,intn)

{inti;

for(i=0;i  {

/**********found**********/

if(___1___==0)

/**********found**********/

printf("___2___");

/**********found**********/

printf("%d",___3___);

}

}

main()

{inta[100]={0},i,n;

n=22;

for(i=0;i  fun(a,n);

printf("");

}

33、给定程序中,函数fun的功能是:

调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#include

#defineN20

voidfun(int*a)

{inti,x,n=0;

x=rand();

/**********found**********/

while(n<__1__)

{for(i=0;i  /**********found**********/

if(x==a[i])__2__;

/**********found**********/

if(i==__3__){a[n]=x;n++;}

x=rand();

}

}

main()

{intx[N]={0},i;

fun(x);

printf("Theresult:

");

for(i=0;i  {printf("M",x[i]);

if((i+1)%5==0)printf("");

}

printf("");

}

34、函数fun的功能是进行数字字符转换。

若形参ch中是数字字符’0’~’9’,则’0’转换成’9’,’1’转换成’8’,’2’转换成’7’,……,’9’转换成’0’;若是其它字符则保持不变;并将转换后的结果作为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

/**********found**********/

___1___fun(charch)

{

/**********found**********/

if(ch>=’0’&&___2___)

/**********found**********/

return’9’-(ch-___3___);

returnch;

}

main()

{charc1,c2;

printf("Theresult:

");

c1=’2’;c2=fun(c1);

printf("c1=%cc2=%c",c1,c2);

c1=’8’;c2=fun(c1);

printf("c1=%cc2=%c",c1,c2);

c1=’a’;c2=fun(c1);

printf("c1=%cc2=%c",c1,c2);

}

35、给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。

ss所指字符串数组中共有M个字符串,且串长  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#include

#defineM5

#defineN20

/**********found**********/

intfun(char(*ss)___1___,int*n)

{inti,k=0,len=0;

for(i=0;i  {len=strlen(ss[i]);

/**********found**********/

if(i==0)*n=___2___;

if(len>*n){

/**********found**********/

___3___;

k=i;

}

}

return(k);

}

main()

{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

intn,k,i;

printf("Theoriginalstringsare:

");

for(i=0;i  k=fun(ss,&n);

printf("Thelengthoflongeststringis:

%d",n);

printf("Thelongeststringis:

%s",ss[k]);

}

26、给定程序中,函数fun的功能是:

将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。

例如,N=3,有下列矩阵

123

456

789计算结果为

312

645

978

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#defineN4

voidfun(int(*t)[N])

{inti,j,x;

/**********found**********/

for(i=0;i<___1___;i++)

{

/**********found**********/

x=t[i][___2___];

for(j=N-1;j>=1;j--)

t[i][j]=t[i][j-1];

/**********found**********/

t[i][___3___]=x;

}

}

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

printf("Theoriginalarray:

");

for(i=0;i  {for(j=0;j  printf("");

}

fun(t);

printf("Theresultis:

");

for(i=0;i  {for(j=0;j  printf("");

}

}

27、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。

当调用正确时,程序输出:

x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

doublef1(doublex)

{returnx*x;}

doublef2(doublex,doubley)

{returnx*y;}

/**********found**********/

__1__fun(inti,doublex,doubley)

{if(i==1)

/**********found**********/

return__2__(x);

else

/**********found**********/

return__3__(x,y);

}

main()

{doublex1=5,x2=3,r;

r=fun(1,x1,x2);

r+=fun(2,x1,x2);

printf("x1=%f,x2=%f,x1*x1+x1*x2=%f",x1,x2,r);

}

28、给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:

将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

typedefstructlist

{chardata;

structlist*next;

}Q;

voidfun(Q*pa,Q*pb,Q*pc)

{Q*p;

/**********found**********/

pa->next=___1___;

pb->next=pc;

p=pa;

while(p)

{

/**********found**********/

printf("%c",____2_____);

/**********found**********/

p=____3____;

}

printf("");

}

main()

{Qa,b,c;

a.data=’E’;b.data=’F’;c.data=’G’;c.next=NULL;

fun(&a,&b,&c);

}

29、给定程序中,函数fun的功能是:

对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。

ss所指字符串数组中共有M个字符串,且串长  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#include

#defineM5

#defineN20

voidfun(char(*ss)[N])

{inti,j,k,n[M];chart[N];

for(i=0;i  for(i=0;i  {k=i;

/**********found**********/

for(j=___1___;j  /**********found**********/

if(n[k]>n[j])___2___;

if(k!

=i)

{strcpy(t,ss[i]);

strcpy(ss[i],ss[k]);

/**********found**********/

strcpy(ss[k],___3___);

n[k]=n[i];

}

}

}

main()

{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

inti;

printf("Theoriginalstringsare:

");

for(i=0;i  printf("");

fun(ss);

printf("Theresult:

");

for(i=0;i  }

30、给定程序中,函数fun的作用是:

统计整型变量m中各数字出现的次数,并存放到数组a中,其中:

a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9]存放9出现的次数。

例如,若m为14579233,则输出结果应为:

0,1,1,2,1,1,0,1,0,1,

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

voidfun(intm,inta[10])

{inti;

for(i=0;i<10;i++)

/**********found**********/

__1__=0;

while(m>0)

{

/**********found**********/

i=___2___;

a[i]++;

/**********found**********/

m=___3___;

}

}

main()

{intm,a[10],i;

printf("请输入一个整数:

");scanf("%d",&m);

fun(m,a);

for(i=0;i<10;i++)printf("%d,",a[i]);printf("");

}

21、函数fun的功能是:

把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。

例如:

若a所指数组中的数据最初排列为:

9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:

4、2、6、8,返回值为4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i  /**********found**********/

if(_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1