荟萃馆

位置:首页 > 计算机 > C语言

计算机二级C语言上机程序填空题

C语言3.12W

考虑到一部分同学的计算机二级C语言程序填空题基础比较薄弱,为此本站小编为大家整理了计算机二级C语言上机程序填空题,希望能够帮助到同学们。

计算机二级C语言上机程序填空题

  一、程序填空题

1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出:

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

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

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

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

#include

double f1(double x)

{ return x*x; }

double f2(double x, double y)

{ return x*y; }

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

__1__ fun(int i, double x, double y)

{ if (i==1)

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

return __2__(x);

else

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

return __3__(x, y);

}

main()

{ double x1=5, x2=3, r;

r = fun(1, x1, x2);

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

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

}

2、给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。

例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:

letter 'a' : 3 times

letter 's' : 3 times

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

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

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

#include

#include

#include

void fun(char *s)

{ int k[26]={0},n,i,max=0; char ch;

while(*s)

{ if( isalpha(*s) ) {

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

ch=tolower(__1__);

n=ch-'a';

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

k[n]+= __2__ ;

}

s++;

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

if(max

}

printf("nAfter count :n");

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

if (k[i]==max) printf("nletter '%c' : %d timesn",i+'a',k[i]);

}

main()

{ char s[81];

printf("nEnter a string:nn"); gets(s);

fun(s);

}

3、给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:

1 2 3

4 5 6

7 8 9交换后为:

3 2 1

4 5 6

9 8 7

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

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

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

#include

#define N 4

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

void fun(int ___1___ , int n)

{ int i,s;

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

for(___2___; i++)

{ s=t[i][i];

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

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

t[i][n-1-i]=___3___;

}

}

main()

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

printf("nThe original array:n");

for(i=0; i

{ for(j=0; j

}

fun(t,N);

printf("nThe result is:n");

for(i=0; i

{ for(j=0; j

}

}

4、给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。

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

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

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

#include

int fun(int x)

{ int n, s1, s2, s3, t;

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

n=__1__;

t=100;

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

while(t<=__2__)

{ s1=t%10; s2=(t/10)%10; s3=t/100;

if(s1+s2+s3==15)

{ printf("%d ",t);

n++;

}

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

__3__;

}

return n;

}

main()

{ int x=-1;

while(x>999||x<0)

{ printf("Please input(0

printf("nThe result is: %dn",fun(x));

}

5、函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

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

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

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

# include

#define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t;

for (i=0; i

{

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

max = min = ___1___;

px = pn = i;

for (j=i+1; j

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

if (max<___2___)

{ max = a[j]; px = j; }

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

if (min>___3___)

{ min = a[j]; pn = j; }

}

if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t;

if (px == i) px =pn;

}

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; }

}

}

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i;

printf("nThe original data :n");

for (i=0; i

fun(b, N);

printf("nThe data after moving :n");

for (i=0; i

}

5、函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

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

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

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

# include

#define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t;

for (i=0; i

{

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

max = min = ___1___;

px = pn = i;

for (j=i+1; j

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

if (max<___2___)

{ max = a[j]; px = j; }

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

if (min>___3___)

{ min = a[j]; pn = j; }

}

if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t;

if (px == i) px =pn;

}

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; }

}

}

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i;

printf("nThe original data :n");

for (i=0; i

fun(b, N);

printf("nThe data after moving :n");

for (i=0; i

}

6、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

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

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

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

#include

void fun(char *s, char *p)

{ int i, j, n, x, t;

n=0;

for(i=0; s[i]!=''; 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()

{ char s[80]="baawrskjghzlicda", p[50];

printf("nThe original string is : %sn",s);

fun(s,p);

printf("nThe result is : %sn",p);

}