您好,欢迎来到戏光游戏。
搜索
您的当前位置:首页计算机二级C语言真题及答案

计算机二级C语言真题及答案

来源:戏光游戏




20143月计算机二级C语言真题及答案

一、选择题

二、1下列关于栈叙述正确的是

三、A栈顶元素最先能被删除

四、B栈顶元素最后才能被删除

五、O栈底元素永远不能被删除?

六、D以上三种说法都不对

七、2下列叙述中正确的是

八、A有一个以上根结点的数据结构不一定是非线性结构

九、B只有一个根结点的数据结构不一定是线性结构

十、0循环链表是非线性结构

十一、D双向链表是非线性结构

十二、3某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结

点在第1层)

十三、A3?

十四、B4?

十五、06?

十六、D7

十七、4在软件开发中,需求分析阶段产生的主要文档是



十八、A软件集成测试计划?十九、B软件详细设计说明书二十、C用户手册?


^一、

二十
二、

二十
三、

二十
四、

二十
五、

二十
六、

二十
七、

二十
八、

D软件需求规格说明书

5结构化程序所要求的基本结构不包括

A顺序结构?

B) GOTC跳转

C选择(分支)结构?

D重复(循环)结构

6下面描述中错误的是

A系统总体结构图支持软件系统的详细设计

二十九、B软件设计是将软件需求转换为软件表示的过程三十、C数据结构与数据库设计是软件设计的任务之一

H

DPAD图是软件详细设计的表示工具


三十二、

三十三、

三十四、

三十五、

三十六、三十七、

7负责数据库中查询操作的数据库语言是

A数据定义语言

B数据管理语言

C数据操纵语言

D数据控制语言

8一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教

llFH

和课程间的联系是

三十

Al:l联系?


八、三十 B) 1 :m联系

四十、Cm:l联系?九、

四十

D)m:n联系

一、四十

二、

9有三个关系RST如卜:




四十则由关系RS得到关系T的操作是

四十四、A自然连接三、

四十五、B)交?

四十六、C)除?

四十七、D)

四十八、(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是四十九、

A)-369?

五十、B)369?

-一、C)0.369?

五十二、D)整数集合{123,4, 5}

(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的

A)C语言程序仅可以编译执行

B)C语言程序仅可以解释执行

0C语言程序既可以编译执行又可以解释执行

D)以上说法都不对

(12) 以下叙述中错误的是

A)C语言的可执行程序是由一系列机器指令构成的

B)C语言编写的源程序不能直接在计算机上运行

C)通过编译得到的二进制目标程序需要连接才可以运行

D) 在没有安装C语言集成幵发环境的机器上不能运行

C源程序生成的.exe文件


(13) 以下选项中不能用作C程序合法常量的是

A)1,234?

B)' \123' 0 123?

D)\x7G

(14) 以下选项中可用作C程序合法实数的是

A).leO?

B)3. OeO. 2

C)E9?

D)9. 12E

(15) 若有定义语句:inta=3, b=2, c=l;,以下选项中错误的赋值表达式是

A)a= (b=4)=3;?

B)a=b=c+l;

C)a= (b=4) +c; ?

D)a=l+(b=c=4);

(16) 有以下程序段?

charname[20];

intnum;

scanf(//name=%snum=%d/,name;&num);

当执行上述程序段,并从键盘输入:

A) Li

nameLilinum1001V回车〉后,name的值

B) name=Lili

C) Lilinum=

D)name=Lili num=1001

(17) if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中

正确的是

A)必须是逻辑值?

B)必须是整数值

C)必须是正数?

D)可以是任意合法的数值

(18)有以下程序

^include?

mainO

{int x=011printf("%d\n",++x)

,程序运行后的输出结果是

A)12?

B)11?

010?

D)9

(19)有以下程序

^include?

mainO

{int s; scanf(%d&s):

while(s>0)

{switch(s)

{case 1:printf (〃%d〃,s+5);

case2:printf(〃%d〃,s+4);break;

case3:printf C%dz,s+3) ; default:printf C%dz,s+1) :break;

运行时,若输入12 34 5 0〈回车〉,则输出结果是

A)65656?

B)66656?

C)66666?

D)6666656

(20)有以下程序段?

inti, n;

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

{n=rand() %5;

switch(n)

{case 1:

case3:printf(〃%d\rT,n);break;

case2:


case4:printf(〃%d\rT,n):continue;

case0:exit (0);

}

printf(“%d\n,n);

}

以下关于程序段执行情况的叙述,正确的是

A)for循环语句固定执行8

B)当产生的随机数n4时结束循环操作

0当产生的随机数n12时不做任何操作

D)当产生的随机数n0时结束程序运行

(21)有以下程序

#include?

main()

{chars[]=012xy\08s34f4w2;

inti,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]'O'&&s[i]〈二'9')n++;

printf(“%d\n,n);

)

程序运行后的输出结果是

A)0?

B)3?

C)7?

D)8

(22)ik都是int类型变量,有以卜for语句for(i=0, k=-

1;k=l;k++)printf(*****\n)

下面关于语句执行情况的叙述中正确的是

A)循环体执行两次

B)循环体执行一次

0循环体一次也不执行

D)构成无限循环

(23)有以下程序

^include

main()

{char b,c;int i ;

b=‘V ; c= A';

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

{if (i%2) putchar (i+

B);

elseputchar (i+

0;
}

printf(\n)

)

程序运行后的输出结果是

A)ABCDEF?

B)AbCdEf?

C)aBcDeF?

D)abcdef

(24)设有定义:doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据

的正确语句是

A)scanf (〃%f&x[6]);?

B)scanf (〃%lf",* (x+6));

C)scanf (〃%lf",p+6):?

D)scanf (〃%lf〃,p[6]);

(25)有以下程序(说明:字母AASCII码值是65)

^include

voidfun(char *s)

{whi.1 e(*s)

{if(*s%2) printf (〃%c〃,*s);

s++;

mainO

{char a[]=BYTE〃;

fun(a);

printf(\n)

}

程序运行后的输出结果是

A)BY?

B)BT?

C)YT?

D)YE

(26)有以下程序段

^include

mainO

while(getchar () !=\n);

以下叙述中正确的是

A)whe语句将无限循环

B) getchar()不可以出现在while语句的条件表达式中

0当执行此while语句时,只有按回车键程序才能继续执行

D)当执行此whe语句时,按任意键程序就能继续执行


(27)有以下程序

#include

main()

{int x=l,y=0;

if(!x)y++;

elseif (x=0)

if(x) y+=2;

elsey+=3;



程序运行后的输出结果是

A)3?

B)2?

C)1?

D)

0

若有定义语句:char s[3] [10], (*k) [3], *p;

,则以下赋值语句正确的是

(28)

A)p=s; ?

B)p=k; ?

0p=s[0];?

D)k=s;

(29)有以下程序

#include

voidfun(char *

0
{wh e(*

0
{if(*c>=‘ a' &&*c〈二'z')*c=*c-(' a' -' A');

c++;

mainO



{chars [81.

gets(s) ;?

include

main()

{chara[30], b[30];

scanf(〃%s,a);

gets(

B);

printf(/z%s\n%s\nz,a,

B);

}

程序运行时若输入:

howareyou? I am fine<回车〉则输出结果是

A)how areyou??

B)how

Iam fine are you? I am fine

C)how areyou? I am fine?

D)how are you?

(32)设有如下函数定义

intfun(intk)

{if (k<l) return 0;



elseif(k==l) return 1:

elsereturnfun(k~l)+1:

若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

A)2?

B)3?

04?

D)5

(33) 有以下程序

#include

intfun (int x, int y)

{if(x!=y) return ((x+y)/2);

elsereturn (x);

}

main()

{inta=4, b=5, c=6; printf (〃%d\rT,fun (2*a, fun (b,

0));

:程序运行后的输出结果是

A)3?

B)6?

C)8?

D)12

(34) 有以下程序

#include

intfun()

{static intxT;

x*=2;

returnx;

)

main()

{int i,s=l;

for(i=l;i<=3;i++) s*fun();printf(〃%d\n〃,s);

:程序运行后的输出结果是

A)0?

B)10?

C)30?

D)

(35)有以下程序

#include

ttdefineS(x)4*(x)*x+1 mainO

{intk=5,j=2;printf (〃%d\n〃,S(k+j));

A)197?

B)143?

C)33?

D)28

(36)

设有定 义: struct {char mark [12] ; int numl: double num2:}

t2;变量,

均已正确赋初值,则以下语句中错误的是

A)tl=t2;?

B)t2.numltl?numl;

C)t2. mark=tl?mark;?

D)t2.num2tl?num2;

(37) 有以下程序

#include

structord

{int x , y;}dt[2]= {l, 2, 3, 4}:

main()

structord *p=dt;

printf(z%d,"++(p->x)) jprintf Cz%d\nz,++ (p->y));

)

程序运行后的输出结果是

A)1, 2?

B)4, 1?

03, 4?

D)2,3

(38) 有以下程序

include?

structS

{inta, b;}data[2] = {10, 100, 20, 200};

main()

{struct Sp=data[l];

printf(〃%d\rT,++(p.a));

)

程序运行后的输出结果是

A)10?

B)11?

C)20?

D)21

(39) 有以下程序

#include

main()

{unsignedchar a=8, c;

c=a>>3;

0;


printf("%d\n〃,

0;

A)32?

B) 16?

C) 1?

D)0

(40)fp已定义,执行语句fpfopen(file〃,“w");后,以下针对文本文件file操作叙述的

选项中正确的是

A)写操作结束后可以从头开始读?

B)只能写不能读

0可以在原有内容后追加写?

D)可以随意读和写

二、填空题

(1)有序线性表能进行二分查找的前提是该线性表必须是【 11存储的。

(2)一棵二叉树的中序遍历结果为DBEAF,C前序遍历结果为ABDEC,F则后序遍历结果为

2]o

(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。

(4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。

(5)在关系A(S,SN,

D)和关系B(D,CN, NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。

(6)以下程序运行后的输出结果是【6]o

#include?



main()

{int a;

a=(int)((double)(3/2)+0.5+ (int)1.99*2) ; printf(〃%d\n〃,a);

(7)有以下程序

ttinclude?

mainO

{int x; scanf(〃%d&x):

if(x>15)printf (〃%d〃,x~5);

if(x>10)printf (〃%d〃,x);

if(x>5) printf ("%d\rT, x+5);

)

若程序运行时从键盘输入12V回车>,则输出结果为【7】。

(8)有以下程序(说明:字符0ASCII码值为48)

#include

main()

{chare 1, c2; scanf(〃%d&cl);

c2=cl+9;printf C%c%c\nz,cl, c2);

)

若程序运行时从键盘输入48<回车>,则输出结果为【8]o


有以下函数

voidprt(char ch, int n)

{int i:

for(i=l;i<=n;i++)

printf(i%6!=0?〃%c:〃%c\rT,ch);

执行调用语句prt('*',24);后,函数共输岀了【9】行*号。

(10) 以下程序运行后的输出结果是【10]o

#include

main()

{int x=10,y=20, t=0;

if(x==y)tx;xy;yt;

printf("%d %d\n,x,y);

)

(11) 己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素

全部向前移动一个位置。请填空。

voidfun(inta[N], int k)

{int i:

for(i=k;i}

(12) 有以下程序,请在【12]处填写正确语句,使程序可正常编译运行。

#include



12】;

main()

{double x, y, (*p)();

scanf(〃%lf%lf",&x, &y);

P=avg;

printf(〃%f\n,(*p)(x, y));

doubleavg(double a, double?

B)

{return((a+

B)/2);}

(13) 以下程序运行后的输出结果是【13#include?

main()

{int i, n[5] = {0};

for(i=l;i=4;i++)

{n[i]=n[i-l]*2+l;printf(〃%(T,n[i]); }

printf("\n)

)

(14) 以下程序运行后的输出结果是【14

#include?

ttinclude?

#include?

main()

{char *p;int i;

p=(char*)malloc(sizeof(char)*20);

strcpy(p,"welcome");

for(i=6;i>=0;i--)putchar (* (p+i));

printf("\n)free(p);

}

(15) 以下程序运行后的输出结果是【15

ttinclude

main(){ FILE *fp;int x[6] = {l,2, 3, 4, 5, 6}, ifpfopen("test?dat〃,〃wb");

fwrite(x,sizeof(int), 3, fp);

rewind(fp);

fread(x,sizeof (int),3,fp);

for(i=0;i<6;i++)printf (%dx[i]);printf (\rT);

fclose(fp);

}

参?

一、选择题:

I-5 ABDDB 6-10 ACDCB

II- 15ADAAA 16-20 ADCAD



21-25BDBCD 26-30 CDCCC

31-35BBBDB 36-40 CDDCB

二、填空题:


1]

有序

[2]

DEBFCA3】单元

4]

主键

[5]

D [6]

3

7]

1217

[8]

09 [ 9] 4


10

20 0

[

LI] i-1

1




12] double avg (double,double):

doubleavg(double a, double B);

1313715 14emo clew15 123456

Copyright © 2019- xgro.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务