admin 管理员组

文章数量: 887021


2024年2月27日发(作者:blackpink舞蹈kill this love)

国家二级(C语言)机试模拟试卷120

(总分86,考试时间90分钟)

1. 选择题

1. 下列关于栈和队列的描述中,正确的是( )。

A. 栈是先进先出 B. 队列是先进后出

C. 队列允许在队头删除元素 D. 栈在栈顶删除元素

2. 已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是( )。

A. ABCDE B. ECABD

C. EACDB D. CDEAB

3. 在数据流图中,带有箭头的线段表示的是( )。

A. 控制流 B. 数据流

C. 模块调用 D. 事件驱动

4. 结构化程序设计的3种结构是( )。

A. 顺序结构,分支结构,跳转结构 B. 顺序结构,选择结构,循环结构

C. 分支结构,选择结构,循环结构 D. 分支结构,跳转结构,循环结构

5. 下列方法中,不属于软件调试方法的是( )。

A. 回溯法 B. 强行排错法

C. 集成测试法 D. 原因排除法

6. 下列选项中,不属于模块间耦合的是( )。

A. 内容耦合 B. 异构耦合

C. 控制耦合 D. 数据耦合

7. 下列特征中不是面向对象方法的主要特征的是( )。

A. 多态性 B. 标识惟一性

C. 封装性 D. 耦合性

8. 在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。

A. 需求分析阶段 B. 概念设计阶段

C. 逻辑设计阶段 D. 物理设计阶段

9. 在一棵二叉树上,第5层的结点数最多是( )。

A. 8 B. 9

C. 15 D. 16

10. 下列有关数据库的描述,正确的是( )。

A. 数据库设计是指设计数据库管理系统

B. 数据库技术的根本目标是要解决数据共享的问题

C. 数据库是一个独立的系统,不需要操作系统的支持

D. 数据库系统中,数据的物理结构必须与逻辑结构一致

11. 以下关于C语言的叙述中正确的是( )。

A. 预处理命令通常位于函数体外面,但也可以位于函数体中间

B. C语言中的变量定义须在其他语句之前

C. 在C语言程序的书写中,一个语句必须单占一行

D. —个C语言源程序可以由一个或多个源文件组成,每个源文件可由自己的ma1n函数

12. 下列叙述中错误的是( )。

A. 用户所定义的标识符允许使用关键字

B. 用户所定义的标识符应尽量做到“见名知意”

C. 用户所定义的标识符必须以字母或下划线开头

D. 用户定义的标识符中,大、小写字母代表不同标识

13. 下列选项中可作为C语言合法常量的是( )。

A. —80 B. —080

C. —8e1.0 D. —80.0e

14. 下列定义变量的语句中错误的是( )。

A. int _int; B. doubleint_;

C. char For; D. floatU

15. 下列关于函数的叙述中正确的是( )。

A. 每个函数都可以被其他函数调用(包括ma1n函数)

B. 每个函数都可以被单独编译

C. 每个函数都可以单独运行

D. 在一个函数内部可以定义另一个函数

16. 当a=1、 b=2、 c=3、d=4时,执行下面程序段后,x的值是( )。 if(a

x=1; else if(a

A. 1 B. 6

C. 3 D. 2

17. 以下程序的输出结果是( )。 #inc1ude main() {int a=4,b=3,c=2,d=1;

printf("%d",a

A. 1 B. 3

C. 2 D. 4

18. 有以下程序 #inc1ude main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0; for(i=0;i=i;j— —)=—b[i]D]; printf("%dn",t); } 程序运行后的输出结果是( )。

A. 4 B. 3

C. 8 D. 9

19. 以下程序: #inc1ude main() {char str[10]; scanf("%s",&str);

printf("%sn",str);} 运行上面的程序,输入字符串“how are you”,则程序的执行结果是( )。

A. how B. how are you

C. h D. howareyou

20. 设变量x和变量y都是int类型,且x=1,y=2,则printI!("%d%dt",x,y,(x,y))的输出结果是( )。

A. 12 B. 122

C. 1,2 D. 输出值不确定

21. 以下程序的输出结果是( )。 #inc1ude main() {int a=8,b=6,m=1;

switch(a%4) {case 0:m++; break; case 1:m++: switch(b%3) {default:

m++; case 0:mH; break; }} printf("%dn",m);}

A. 1 B. 2

C. 3 D. 4

22. 定义如下变量和数组: int i,X[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( )。 for(i=0;i<3;i++)printf("%d",x[i][2—i]);

A. 159 B. 147

C. 357 D. 369

23. 有下列程序段: typedef struct NODE { int num; struct NODE *next; }

OLD; 下列叙述中正确的是( )。

A. 以上的说明形式非法 B. NODE是一个结构体类型

C. OLD是一个结构体类型 D. OLD是一个结构体变量

24. 下列数组定义中错误的是( )。

A. int x[][3]={0);

B. int x[2][3]={{1,2},{3,4},{5,6}};

C. int x[][3]{4,5,6}};

D. int x[2][3]{1,2,3,4,5,6);

25. 以下叙述错误的是( )。

A. 变量的作用域取决于变量定义语句的位置

B. 全局变量可以在函数以外的任何部位进行定义

C. 局部变量的作用域可用于其他函数的调用

D. —个变量说明为static存储类型是为了限制其他编译单元的引用

26. 若定义函数“int *func0”,则函数func的返回值为( )。

A. —个实数 B. 一个指向整型变量的指针

C. 一个指向整型函数的指针 D. —个整型函数的入口地址

27. 若有定义“int a[5],*p=a;”则正确引用数组元素的是( )。

A. *&a[5] B. *a+2

C. *(p+5) D. *(a+2)

28. 以下对C语言中联合类型数据的正确叙述是( )。

A. 定义了联合变量后,即可引用该变量或该变量中的任意成员

B. —个联合变量中可以同时存放其所有成员

C. 联合中的各个成员使用共同的存储区域

D. 在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变

29. 有以下函数定义: int fun(double a,double b) {return a*b;} 若以下选项中所用变量都己正确定义并赋值,错误的函数调用是( )。

A. if(fun(x,y)){……)

B. z= fun (fun (x,y),fun(x,y));

C. z= fun (fun(x,y)x,y);

D. fun(x,y);

30. 执行以下语句段后,xy的值是( )。 int*pt,xy; xy=200; pt=&xy;

xy=*pt+30;

A. 200 B. 170

C. 260 D. 230

31. 下述程序的输出结果是( )。 #inc1ude void main() {int a[20],*p[4]; int

i,k=0; for(i=0;i<20;1++) a[i]=i; for(i=0;i<4;i++) p[i]=&a[i*i+1]; for(i=0;i<4;i++) { k=k+*p[i];} printf("%d",k); }

A. 10 B. 18

C. 6 D. 数组元素引用不合法,输出结果不定

32. 有以下程序: #inc1ude #defineN 8 void fun(int *x,int i) {*x=*(x+i)+1;}

main() { int a[N]={1,2,3,4,5,6,7,8),i; fun(a,2); for(i=0;i

A. 1313 B. 3234

C. 4234 D. 12 3 4

33. 下面程序的输出结果是( )。 #inc1ude main() {char a[]={'a',.b','c','d','f','g'),*p; p=a; printf("%c\n",*p+4); }

A. a B. b

C. e D. f

34. 下面函数的功能是( )。 sss(s,t) char*s,*t; { while(*s); while(*t)

*(s++)=*(t++); retum s; }

A. 将字符串s复制到字符串t中 B. 比较两个字符串的大小

C. 求字符串的长度 D. 将字符串t续接到字符串s中

35. 下列程序的运行结果是( )。 #inc1ude void sub(int*s,int*y) {static int

m=4; *y:s[m]; m— —;} void main() { int a[]={1,2,3,4,5},k,x; printf("\n"); for(k=0;k<=4;kH) { sub(a,&x); printf("%d,",x); }}

A. 5,4,3,2,1, B. 1,2,3,4,5,

C. 0,0,0,0,0, D. 4,4,4,4,4,

36. 设q1和q2是指向一个int型一维数组的指针变量,k为float型变量,下列不能正确执行的语句是( )。

A. k=q1*(*q2); B. q1=k;

C. q1=q2; D. k=*q1+*q2;

37. 下列程序的输出结果为( )。 main() {union un { char *name; int age;

int pay; }s; s.name="zhaoming"; s.age=32; s.pay=3000; printf("%dn",s.age); }

A. 32 B. 3000

C. 0 D. 不确定

38. 以下有关宏替换的叙述不正确的是( )。

A. 使用宏定义可以嵌套 B. 宏定义语句不进行语法检查

C. 双引号中出现的宏名不替换 D. 宏名必须用大写字母表示

39. 有以下程序: #inc1ude int b=3: int fun(int *k) {b=*k+b;return(b);}

main() {int a[10]={1,2,3,4,5,6,7,8},i; for(i=2;i<4;iH) {b=fun(&a[i])+b;printfi["%d",b);} printf("\n");} 程序运行后的输出结果是( )。

A. 12 14 B. 12 32

C. 10 14 D. 10 20

40. 已知函数的调用形式“fread(buffer,size,count,fp);”其中buffer代表的是( )。

A. 一个整型变量,代表要读入的数据项总数

B. —个文件指针,指向要读的文件

C. —个指针,是指向的输入数据放在内存中的起始位置

D. 一个存储区,存放要读的数据项

2. 程序填空题

1. 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include #include #define N 5#define M 10int fun (char (*ss) [Ml,int k){int i,j=0,len; { len=strlen (ss [i] ) ; if (len<= 2 ) strcpy (ss[j++],____3____) ; )

return j;}main () { charx [N] [M]= { "Beij ing"," Shanghai","Tianjing","Nanjing","Wuhan" } ; int if f;printf("nThe originalstringnn") ; for (i=0;i

(i=0; i

3. 程序修改题

1. 给定程序MOD11.C中,函数fun的功能是判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6的因子包括l、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。数组a中存放的是找到的因子,变量k中存放的是因子的个数。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include int fun (int n,int a[],int *k) {int m=0,1,t;t=n;/***********found***********/for(i=0;i

4. 程序设计题

1. 请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为: 1 3 5 7 9 2

9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #define M

4#define N 5int fun (int a[M] [N]){}main(){ int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4),{6,9,9,9,8},{1,3,5,7,0}}; int i,j,y;void NONO (); printf ("The

original data is :n"); for (i=0; i

printf("%6d",aa[i][j]); printf ("n"); } y= fun (aa); printf("nThe sum: %dn" ,y); printf("n"); NONO();}void NONO (){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */ int i,j,y,k,aa [M] [N] ;

FILE *rf, *wf ; rf= fopen ("in.dat","r"); wf= fopen ("out.dat","w"); for(k=

0 ; k< 10 ,k++) { for(i = 0 ; i

(rf, y = fun (aa); fprintf(wf,"%dn",y) } fclose (rf) ; fclose (wf) ;}


本文标签: 函数 结构 变量 定义 字符串