求计算机二级考试c语言机试题库

Python020

求计算机二级考试c语言机试题库,第1张

这是部分,其余的可以私下给你,我的QQ:916356609,我传给你

一、程序填空题

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

例如,有9个正整数:1 5 7 23 87 5 8 21 45

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

处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45

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

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

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

#include <stdio.h>

#defineN9

int fun(int x[])

{ int i,j,k,t,mid,b[N]

for(i=0i<Ni++) b[i]=x[i]

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

{ k=i

for(j=i+1j<Nj++) if(b[k]>b[j]) k=j

if(k != i )

{

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

t=b[i]b[i]=___1___b[k]=t

}

}

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

mid=b[___2___]

for(i=0i<Ni++)

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

if(x[i] ___3___ mid) x[i]=mid

return mid

}

main()

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

for(i=0i<Ni++) printf("%d ",x[i])

printf("\nThe mid data is: %d\n",fun(x))

for(i=0i<Ni++) printf("%d ",x[i])

printf("\n")

}

2、给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:

11111

12221

12321

12221

11111

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

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

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

#include <stdio.h>

#define N 7

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

void fun(int (*a) __1__)

{ int i,j,k,m

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

else m=N/2+1

for(i=0i<mi++) {

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

for(j= __2__ j<N-ij++)

a[i][j]=a[N-i-1][j]=i+1

for(k=i+1k<N-ik++)

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

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

}

}

main()

{ int x[N][N]={0},i,j

fun(x)

printf("\nThe result is:\n")

for(i=0i<Ni++)

{ for(j=0j<Nj++) printf("%3d",x[i][j])

printf("\n")

}

}

3、给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。

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

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

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

#include<stdio.h>

void fun(char *s)

{ int i, j=0, k=0 char t1[80], t2[80]

for(i=0s[i]!='\0'i++)

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

{

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

t2[j]=s[i]___1___

}

else t1[k++]=s[i]

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

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

for(i=0i<ki++) ___2___

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

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

}

main()

{ char s[80]="def35adh3kjsdf7"

printf("\nThe original string is : %s\n",s)

fun(s)

printf("\nThe result is : %s\n",s)

}

4、给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:

123

456

789计算结果为

100

650

10 14 9

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

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

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

#include<stdio.h>

#defineN4

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

void fun(int (*t)___1___ )

{ int i, j

for(i=1i<Ni++)

{ for(j=0j<ij++)

{

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

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

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

___3___ =0

}

}

}

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=0i<Ni++)

{ for(j=0j<Nj++) printf("%2d ",t[i][j])

printf("\n")

}

fun(t)

printf("\nThe result is:\n")

for(i=0i<Ni++)

{ for(j=0j<Nj++) printf("%2d ",t[i][j])

printf("\n")

}

}

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

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

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

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

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

#include<stdio.h>

void fun(char *s, char *p)

{ int i, j, n, x, t

n=0

for(i=0s[i]!='\0'i++) n++

for(i=1i<n-2i=i+2) {

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

___1___

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

for(j=___2___+2 j<nj=j+2)

if(s[t]>s[j]) t=j

if(t!=i)

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

}

for(i=1,j=0i<ni=i+2, j++) p[j]=s[i]

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

p[j]=___3___

}

main()

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

printf("\nThe original string is : %s\n",s)

fun(s,p)

printf("\nThe result is : %s\n",p)

}

6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。

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

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

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

#include <stdio.h>

typedef struct

{ int num

char name[9]

char sex

struct { int year,month,day } birthday

float score[3]

}STU

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

void show(STU ___1___)

{ int i

printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,

tt.birthday.year, tt.birthday.month, tt.birthday.day)

for(i=0i<3i++)

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

printf("%5.1f", ___2___)

printf("\n")

}

main( )

{ STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 }

printf("\nA student data:\n")

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

show(___3___)

}

7、给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:

123

456

789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

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

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

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

#include<stdio.h>

#defineN4

fun(int t[][N], int n)

{ int i, sum

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

___1___

for(i=0i<ni++)

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

sum+=___2___

for(i=0i<ni++)

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

sum+= t[i][n-i-___3___]

return sum

}

main()

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

printf("\nThe original data:\n")

for(i=0i<Ni++)

{ for(j=0j<Nj++) printf("%4d",t[i][j])

printf("\n")

}

printf("The result is: %d",fun(t,N))

}

8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000

主函数中输出:46 32 40 45 48

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

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

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

#include <stdlib.h>

#include <stdio.h>

#define N 10

double fun(double x[],double *y)

{ int i,j double av

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

av=__1__

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

for(i=0i<Ni++) av = av + __2__

for(i=j=0i<Ni++)

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

if(x[i]>av) y[__3__]= x[i]

y[j]=-1

return av

}

main()

{ int i double x[N] = {46,30,32,40,6,17,45,15,48,26}

double y[N]

for(i=0i<Ni++) printf("%4.0f ",x[i])

printf("\n")

printf("\nThe average is: %f\n",fun(x,y))

for(i=0y[i]>=0i++) printf("%5.0f ",y[i])

printf("\n")

}

9、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000

移动后的输出为:30 6 17 15 26 46 32 40 45 48

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

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

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

#include <stdlib.h>

#include <stdio.h>

#define N 10

double fun(double *x)

{ int i, j double av, y[N]

av=0

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

for(i=0i<Ni++) av +=__1__

单项选择题(每小题2分,共50分)

1、一个C程序的执行是从___A__。

A、本程序的main函数开始,到main函数结束

B、本程序的main函数开始,到本程序文件的最后一个函数结束

C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

2、C语言程序的基本单位是___C___。

A、程序行 B、语句

C、函数 D、字符

3、请选出可用作C语言用户标识符的一组标识符___B___。

A、void B、a3_b3 C、For D、2a

define _123 -abc DO

WORD IF ase sizeof

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。

以上内容参考:百度百科-c语言