计算机二级c语言题库及答案(计算机二级c语言题库及答案大题)

卡尔顿高习 2024-07-03 09:49 1

求2011年九月以及以前的计算机二级考试C语言试题及答案、以及考试内容分析和解题技巧。记住只要C的。

答案解析:带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化一次。

以下资料已发,请注意查收

计算机二级c语言题库及答案(计算机二级c语言题库及答案大题)计算机二级c语言题库及答案(计算机二级c语言题库及答案大题)


2010.3上机题库.zip (125.53K)

2010二级C语言南开100题.doc (93.50K)

2010年全国计算机等级考试+++++二级C语言考试大纲.doc (24.50K)

经典C语言程序设计20例.doc (65.50K)

[C语言编程一百道习题][chupeisi][PDF].pdf (551.98K)

09年南开100套题(C语言).doc (1.62M)

C语言超级经典400道题目.doc (187.50K)

计算机等级二级C语言程序设计100例.doc (168K)

01_2009年9月C语言及公共基础串讲资料.doc (243K)

02_2009年3月C语言笔试冲刺复习资料.doc (93K)

06 二级公共基础知识考点精讲.rar (101.98K)

08 二级公共基础知识习题(2009年3月).rar (31.84K)

01 二级公共基础120题详C)、AB解版.doc (233.50K)

03 二级公共基础辅导讲义.doc (805.50K)

04 二级公共基础考点解析.doc (260.50K)

05 二级公共基础试题及详解.doc (79.50K)

09 二级公共基础总结.doc (61.50K)

10 二级公共基础知识教程.doc (427K)

13 数据结构与算法.doc (67.50K)

13 数据结构与算法习题.doc (54K)

11 公共基础知识要点及历年真题.pdf (469.89K)

2010年九月二级C语言上机100题word版.doc (1.34M)

2010年03月二级C语言笔试.doc (149K)

2010.9二级C语言考试专用上机模拟系统.zip (54MB)

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

已发送B.iostream

2018年3月计算机二级考试C++练习题答案(2)

2018年3月计算机二级考试C++练习题答案(2)

单选题

1). 如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是( )。

A.e3、e1、e4、e2

B.e2、e4、e3、el1

C.e3、e4、e1、e2

D.#include 任意顺序

正确答案:B

答案解析:根据栈先进后出的特点可知el肯定是出栈的,因此正确答案为选项B。

2). 对于重载的运算符>>,它是一个( )

A.用于输入的友元函数

B.用02 二级公共基础09年3月冲刺复习资料.doc (92K)于输入的成员函数

C.用于输出的友元函数

D.用于输出的成员函数

正确答案:A

3). 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。

A.与虚基类下面的派生类个数有关

B.多次

C.两次

D.一次

正确答案:D

4). 简单的交换排序方法是( )

A.快速排序

B.选择排序

C.堆排序

D.冒泡排序

正确答案:D

5). NULL是指

A.0

B.空格

C.未知的值或无任何值

D.空字符串

正确答案:C

答案解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。

6). 用链表表示线性表的优点是( )

A.便于随机存取

B.花费的存储空间较顺序存储少

C.便于插入和删除作

D.数据元素的物理顺序与逻辑顺序相同

正确答案:C

7). 计算机能直接执行的程序是( )。

Int main(){A.源程序

B.目标程序

C.汇编程序

D.可执行程序

正确答案:D

答案解析:由高级语言编写的程序称为″源程序″;由二进制代码表示的程序称为″目标程序″;由汇编语言编写的程序称为″汇编程序″。对于计算机本身来说,它只能接收和处理由O到1的代码构成的二进制指令和数据。所以计算机能识别的程序是″目标程序″。而计算可以直接执行的程序是可执行程序,即后缀为.exe的程序。

8). 下列叙述中正确的是( )。

A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

正确答案:C

答案解析:在程序中注释部分对程序的运行结果不产生任何影响,增加了程序的易读性,它可以出现在任意位置,并且书写自由,一行内可以写多个语句,语句可以写在多行上;由于C语言编写的程序有很多的移植性,可以被多个程序文件引用。

9). C++语言本身没有定义IO作,但I/O作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O作分别由两个类istream和( )提供。

A.fstream

D.cin

正确答案:C

答案解析:本题考查的是C++标准库iostream提供的基本I/O类。istream提供了向流中插入数据的有关作;ostream提供了从流中提取数据的有关作。

10). 在E-R图中,用来表示实体联系的图形是( )

B.矩形

C.菱形

D.三角形

正确答案:C

答案解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。

11). 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是

A.黑箱测试法

B.白箱测试法

C.错误推测法

D.安装测试法

正确答案:A

答案解析:目的,让考生熟练掌握常用的测试方法及其概念。要点,黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。分析,白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试,故选项B)不正确;错误推测法只是黑箱测试所使用的一种具体的方法,故选项C)不正确;安装测试是测试层次中的一种,它属于高级测试,故选项D)不正确。考点,常用的黑箱测试方法及其定义,白箱测试用例的准则。

12). 以下C++语言中用于单行注释的是

A.//

B./

C./

D.|

正确答案:A

答案解析:目的,考查C++语言中的注释问题。要点,C++语言中的注释与C语言不同,C语言的注释符号只有/ /,而C++在此基础上又加上了//,此注释用于单行注释。考点,注释不影响程序的运行。

计算机二级c语言考什么

A.椭圆形

“二级计算机C语言”主要考察的是C语言的计算机编程能力,考核内容包括计算机语言与基础程序设计能力,要求参试者掌握一门计算机语言。下面我来分享一下的考计算机二级C语言时的备考经验。

24.

、计算机二级C语言试卷结构

选择题40分加上程序题60分,总共一百分。选择题是一题一分的,程序题60分其中包括:填空18分,改错18分,程序设计24分。

第二、重点复习

其实以大多数人经验来看,选择题的40分都是一些基础知识,基本背一下,理解一下就没{ char s[81];什么问题了。复习重点在于程序题,程序题我们应该大量的有重点地刷题。首先是针对历年考过的必考的程序题一定要刷一遍;然后就是自己不理解的题型也要多刷。

第三、模拟考试系统

我个人是用的是未来教育模拟考试系统,也是我个人比较的。这个系统里面题库是比较全的,然后你也可以通过这个考试系统模拟一下真实的考试上机环境。而且这个考试系统还附带视频解释,对于不理解的题目可以马上看视频解析巩固一下。

总结一下:计算机二级C语言主要考察的是C语言的计算机编程能力,考试内容包括计算机语言与基础程序设计能力,要求参试者掌握一门计算机语言。

c语言二级考试题及答案

void fun(char s)

2011年3月全国计算机等级考试二级笔试试卷

C语言程序设计

(考试时间90分钟,满分100分)

一、 选择题(1-10,21-40每题2分,11-20每题1分,共70分)

(1)下列关于栈叙述正确的是

A)栈顶元素能被删除

B)栈顶元素才能被删除

C)栈底元素永远不能被删除

D)以上三种说法都不对

(2)下列叙述中正确的是

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

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

C)循环链表是非线性结构

D)双向链表是非线性结构

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

A)3 B)4 C)6 D)7

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

A)软件集成测试 B)软件详细设计说明书

C)用户手册 D)软件需求规格说明书

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

A)顺序结构 B)GOTO跳转

C)选择(分支)结构 D)重复(循环)结构

(6)下面描述中错误的是

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

B)软件设计是将软件需求转换为软件表示的过程

C)数据结构与数据库设计是软件设计的任务之一

D)PAD图是软件详细设计的表示工具

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

A)数据定义语言

B)数据管理语言

C)数据纵语言

D)数据控制语言

(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是

A)1:1联系 B)1:m联系

C)m:1联系 D)m:n联系

(9)有三个关系R、S和T如下:

则由关系R和S得到关系T的作是

A)自然连接 B)交 C)除 D)并

A)-369 B)369 C)0.369 D)整数{1,2,3,4,5}

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

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

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

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

D)以上说法都不对

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

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

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

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

D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

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

A)1,234 B)'123'

C)123 D)"\x7G"

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

A).1e0 B)3.0e0.2

C)E9 D)9.12E

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

A)a=(b=4)=3; B)a=b=c+1;

C)a=(b=4)+c; D)a=1+(b=c=4);

(16)有以下程序段

char name[20];

int num;

scanf("name=%s num=%d",name;&num);

当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为

A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001

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

A)必须是逻辑值 B)必须是整数值

C)必须是正数 D)可以是任意合法的数值

(18)有以下程序

#include(34)有以下程序

{ int x=011;

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

A)12 B)11 C)10 D)9

(19)有以下程序

#include

{ int s;

scanf("%d",&s);

while(s>0)

{ switch(s)

{ case1:printf("%d",s+5);

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

case3:printf("%d",s+3);

default:printf("%d",s+1);break;

}scanf("%d",&s);

}}

运行时,若输入1 2 3 4 5 0<回车>,则输出结果是

A)6566456 B)66656 C)66666 D)6666656

(20)有以下程序段

int i,n;

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

{ n=rand()%5;

switch (n)

{ case 1:

case 3:printf("%d\n",n); break;

case 2:

case 4:printf("%d\n",n); continue;

case 0:exit(0);

}printf("%d\n",n);

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

A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环作

C)当产生的随机数n为1和2时不做任何作D)当产生的随机数n为0时结束程序运行

(21)有以下程序

#include

{ char s[]="012xy\08s34f4w2";

int i,n=0;

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

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

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

A)0 B)3 C)7 D)8

(22)若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++) printf("\n");

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

A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环

(23)有以下程序

#include

{ char b,c; int i;

b='a'; c='A';

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

{ if(i%2) putchar(i+b);

else putchar(i+c);

} 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)有以下程序(说明:字母A的ASCII码值是65)

#include

{ while(s)

{ if(s%2) printf("%c",s);

s++;

}}

{ char a[]="BYTE";

fun(a); printf("\n");

A) BY B) BT C) YT D) YE

(26)有以下程序段

#include

{ …

while( getchar()!='\n');

…}

以下叙述中正确的是

A)此while语句将无限循环

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

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

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

(27)有以下程序

#include

{ int x=1,y=0;

if(!x) y++;

else if(x==0)

if (x) y+=2;

else y+=3;

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

A)3 B)2 C)1 D) 0

(28)若有定义语句:chars[3][10],(k)[3],p;,则以下赋值语句正确的是

A)p=s; B)p=k; C)p=s[0]; D)k=s;

(29)有以下程序

#include

void fun(char c)

{ while(c)

{ if(c>='a'&&c<='z') c=c-('a'-'A');

c++;

}}

gets(s); fun(s); puts(s):

}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是

A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing

(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

#include

#define N 10

void fun(int x[N])

{ int i=0;

while(i<>

}在程序中下划线处应填入的是

A)x+i B)&x[i+1]C)x+(i++) D)&x[++i]

(31)有以下程序

#include

{ char a[30],b[30];

scanf("%s",a);

gets(b);

printf("%s\n %s\n",a,b);

}程序运行时若输入:

how are you? I am fine<回车>

则输出结果是

A)how are you? B)how I am fine are you? I am fine

C)how are you? I am fine D)row are you?

(32)设有如下函数定义

int fun(int k)

{ if (k<1) return 0;

else if(k==1) return 1;

else return fun(k-1)+1;

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

A)2 B)3 C)4 D)5

(33)有以下程序

#include

int fun (int x,int y)

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

else return (x);

}main()

{ int a=4,b=5,c=6;

printf("%d\n",fun(2a,fun(b,c)));

}程序运行后的输出结果是 A)3 B)6 C)8 D)12

#include

int fun()

{ static int x=1;

x=2;

return x;

}main()

{ int i,s=1;

for(i=1;i<=3;i++) s=fun();

printf("%d\n",s);

}程序运行后的输出结果是 A)0 B)10 C)30 D)64

(35)有以下程序

#include

#define S(x) 4(x)x+1

{ int k=5,j=2;

printf("%d\n",S(k+j));

}程序运行后的输出结果是 A)197 B)143 C)33 D)28

(36)设有定义:struct {charmark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;

(37)有以下程序

#include

struct ord

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

{struct ord p=dt;

printf("%d,",++(p->x));printf("%d\n",++(p->y));

}程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3

(38)有以下程序

#include

struct S

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

{ struct S p=data[1];

printf("%d\n",++(p.a));

}程序运行后的输出结果是 A)10 B)11 C)20 D)21

(39)有以下程序

#include

{ unsigned char a=8,c;

printf("%d\n",c);

}程序运行后的输出结果是 A)32 B)16 C)1 D)0

(40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file作叙述的选项中正确的是

A)写作结束后可以从头开始读 B)只能写不能读

C)可以在原有内容后追加写 D)可以随意读和写

二、填空题

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

(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。

(3)对软件设计的小单位(模块或程序单元)进行的C)、p+=9测试通常称为【3】 测试

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

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

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

#include

{ int a;

a=(int)((double)(3/2)+0.5+(int)1.992);

printf("%d\n",a);

}(7)有以下程序

#include

{ int x;

scanf("%d",&x);

if(x>15) printf("%d",x-5);

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

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

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

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

#include

{ char c1,c2;

scanf("%d",&c1);

c2=c1+9;

printf("%c%c\n",c1,c2);

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

(9)有以下函数

void prt(char ch,int n)

{ int i;

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

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

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

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

#include

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

if(x==y)t=x;x=y;y=t;

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

}(11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。

void fun(int a[N],int k)

{ int i;

for(i=k;i

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

#include

【12】 ;

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

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

p=g;

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

}double g(double a,double b)

{ return((a+b)/2);}

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

#include

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

for(i=1;i<=4;i++)

{ n[i]==n[i-1]2+1; printf("%d",n[i]); }

printf("\n");

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

#include

#include

#include

{ 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】。

#include

{ FILE fp; int x[6]={1,2,3,4,5,6},i;

fp=fopen("test.dat","wb");

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

rewind(fp);

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

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

printf("\n");

fclose(fp);

}2011年3月全国计算机等级考试二级笔试试卷

C语言程序设计答案

一.选择题1-5 ABDDB

6-10 ACDCB 11-15 ADBAA

16-20 ADCAD 21-25 BDBCD

26-30 CDCCC 31-35 BBBDB

36-40 CDDCB

二,填空题

1) 顺序 2) DEBFCA 3) 单元测试 4) 主键 5) D 6) 3 7) 1217

8) 09 9) 4 10) 20 0 11) i-1 12) double g(doublea,double b) 13) 13715

14) e(E)moclew 15) 123456

2010年9月全国计算机等级考试二级C笔试试卷答案

一、选择题

1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB

21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD

二、填空

1.1DCBA2345 2.n-1 3.25 4.结构化 5.物理设计 6.2008

7.15 8.非0 9. 1 4 13 40 10.i 11.2

12.a[row][col] 13.3 14.s 15.FILE

2006年3月全国计算机等级考试二级C语言笔试试题及答案

B)、ACBDFGE

为大家收集整理了《2006年3月全国计算机等级考试二级C语言笔试试题及答案》供大家参考,希望对大家有所帮助!!!

}执行这个程序屏幕上将显示输出______。

一、选择题(每小题2 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列选项中不符合良好程序设计风格的是______。

A)、源程序要文档化

B)、数据说明的次序要规范化

C)、避免滥用goto 语句

D)、模块设计要保证高耦合,高内聚

(2)从工程管理角度,软件设计一般分为两步完成,它们是______。

A)、概要设计与详细设计

B)、数据设计与接口设计

C)、软件结构设计与数据设计

D)、过程设计与数据设计

(3)下列选项中不属于软件生命周期开发阶段任务的是______。

A)、软件测试

B)、概要设计

C)、软件维护

D)、详细设计

(4)在数据库系统中,用户所见的数据模式为______。

A)、概念模式

B)、外模式

C)、内模式

D)、物理模式

(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。

A)、编码设计

B)、测试阶段

C)、运行阶段

D)、物理设计

(6)设有如下三个关系表下列作中正确的是

A)、T=R∩S

B)、T=R∪S

C)、T=R×S

D)、T=R/S

(7)下列叙述中正确的是

A)、一个算法的空间复杂度大,则其时间复杂度也必定大

B)、一个算法的空间复杂度大,则其时间复杂度必定小

C)、一个算法的时间复杂度大,则其空间复杂度必定小

D)、上述三种说法都不对

(8)在长为64 的有序线性表中进行顺序查找,坏情况下需要比较的次数为______。

A)、63

B)、64

C)、6

D)、7

(9)数据库技术的根本目标是要解决数据的______。

A)、存储问题

B)、共享问题

C)、安全问题

D)、保护问题

(10)对下列二叉树: 进行中序遍历的结果是______。

A)、ACBDFEG

C)、ABDCGEF

D)、FCADBEG

(11)下列有关内联函数的叙述中,正确的是______。

A)、内联函数在调用时发生控制转移

B)、内联函数必须通过关键字inline 来定义

C)、内联函数是通过编译器来实现的

D)、内联函数体的一条语句必须是rennin 语句

(12)下列情况中,不会调用拷贝构造函数的是______。

A)、用一个对象去初始化同一类的另一个新对象时

B)、将类的一个对象赋予该类的另一个对象时

C)、函数的形参是类的对象,调用函数进行形参和实参结合时

D)、函数的返回值是类的对象,函数执行返回调用时

(13)下列有关继承和派生的叙述中,正确的是______。

A)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员

B)、派生类的成员函数可以访问基类的所有成员

C)、基类对象可以赋值给派生类对象

D)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

(14)下列运算不能重载为友元函数的是______。

B)、+ - ++ --

C)、> >= <=

D)、+= -= = /=

(15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。

A)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

B)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的(29)有如下程序后的若干个参数,FC EA DBG则都可以省略

C)、对于虚拟型参数所对应的模板实参,若能够省略则必须省略

D)、对于常规参数所对应的模板实参,任何情况下都不能省略

(16)下列关于输入流类成员函数getline( )的描述中,错误的是______。

A)、该函数是用来读取键盘输入的字符串的

B)、该函数读取的字符串长度是受限制的

C)、该函数读取字符串时,遇到终止符便停止

D)、该函数读取字符串时,可以包含空格

(17)下列符号中,正确的C++标识符是______。

A)、enum

B)、2b

C)、foo-9

D)_32

(18)下列语句中,错误的是______。

A)、const int buffer=256;

B)、const doublepoint;

C)、int const buffer=256;

D)、doubleconst point;

(19)if 语句的语法格式可描述为

格式1:if(条件>)语句>

或格式2:if(条件>)语句1>else语句2>

关于上面的语法格式,下列表述中错误的是

A)、条件>部分可以是一个if 语句,例如if(if(a =0)?)?

B)、条件>部分可以是一个if 语句,例如if(?)if(?)?

C)、如果在条件>前加上逻辑非运算符!并交换语句1>和语句2>的位置,语句功能不变

D)、语句>部分可以是一个循环语句,例如if(?)while(?)?

(20)有如下说明

int a [10]={1,2,3,4,5,,6,7,8,9,10},p=a;

则数值为9 的表达式是______。

A)、p+9`

B)、(p+8)

D)、p+7

(21)或下面的函数调用

fun(a+b,3,max(n-1)b)

则fun 的实参个数是______。

A)、3

B)、4

C)、5

D)、6

(22)以下关键字不能用来声明类的访问权限的是______。

A)、public

B)、static

C)、protected

D)、private

(23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。

A)、公有成员

B)、公有成员和保护成员

C)、公有成员、保护成员和私有成员

D)、保护成员

(24)关于运算符重载,下列表述中正确的是______。

A)、C++已有的任何运算符都可以重载

B)、运算符函数的返回类型不能声明为基本数据类型

C)、在类型转换符函数的定义中不需要声明返回类型

D)、可以通过运算符重载来创建C++中原来没有的运算符

(25)关于关键字class 和typename,下列表述中正确的是______。

A)、程序中的typename 都可以替换为class

B)、程序中的class 都可以替换为typename

C)、在模板形参表中只能用typename 来声明参数的类型

D)、在模板形参表中只能用class 或typename 来声明参数的类型

(26)有如下程序

#include

#include

using namespace std;

int main(){

countreturn 0;

}若程序的输出是:

12.34534.567

则程序中下划线处遗漏的作符是______。

A)、setprecision(3)

B)、fixed

C)、setfill()

D)、stew(8)

(27)有如下程序

#include

#include

using namespace std;

class MyClass{

public:

MyClass(){cout<<’A”;}

MyClass(char c {cout<~MyClass(){sout<<’B”;}

};

MyClassp1,p2

p2=new MyClass(‘X’);

delete p2;

return 0;

}执行这个程序幕上将显示输出______。

A)、ABX

B)、ABXB

C)、AXB

D)、AXBB

(28)有如下程序

#include

using namespace std;

class Fun{

public;

static int i;

int value(){return i-1}

int value ()const{return i+1;}

};

int Fun;;i=2;

int main(){

int i=3;

const Fun fun2;

return 0;

}若程序的输出结果是:

123

则程序中下划线处遗漏的语句是______。

A)、cout<

B)、cout<

C)、cout<

D)、cout<

#include

using namespace std;

class Obj{

static int i;

public:

Obj(){i++;}

~Obj(){i--;}

static int getVal(){teturn i;}

};

int Obj::i=0;

void f (){Obj ob2;coutObj obl;

F();

Objob3=new Obj;coutDelete ob3;cout}

程序的输出结果是______。

A)、232

B)、231

D)、221

(30)有如下程序

#include

using namespace std;

class Base{

protected;

Base(char c){cout<};

class Derived; public Base{

public:

Derived(char c ){cout <};

int main(){

Derived d1(‘B’);

return 0;

A)、B

B)、BA

D)、BB

(31)有如下类定义:

class MyBase{

int k;

public;

MyBase(int n=0):k(n){}

int value()const{return k;}

};

class MyDerived; MyBase{

int j;

public;

MyDerived(int i): j(i){}

int getK()const {return k;}

int gutj()const{return j;}

};

编译时发现有一处语法错误,对这个错误准确的描述是

A)、函数getK 试图访问基类的私有成员变量K

B)、在类MyDerived 的定义中,基类名MyBase 前缺少关键字public、protected 或private

C)、类MyDerived 缺少一个无参的构造函数

D)、类MyDerived 的构造的数没有对基数数据成员K 进行初始化

(32)在一个派生类对象结束其生命周期时

A)、先调用派生类的析构函数后调用基类的析构函数

B)、先调用基类的析构函数后调用派生类的析构函数

C)、如果基数没有定义析构函数,则只调用派生类的析构函数

D)、如果派生类没有定义析构函数,则只调用基类的析构函数

(33)有如下的运算重载函数定义:

Double operator+(int i, int k){return double(i+k);}

但定义有错误,对这个错误的准确的描述是______。

A)、+只能作为成员函数重载,而这里的+是作为非成员函数重载的

B)、两个int 型参数的和应该是int 型,而这里将+的返回类型声明为double

C)、没有将运算符重载函数声明为某个类的友元

D)、C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符

(34)语句ofstreamf(“SALARY.DAT”,ios_base::app)的功能是建立流对象f,并试图打开文件SALARY.DAT 与f 关联,而且______。

A)、若文件存在,将其置为空文件;若文件不存在,打开失败

B)、若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件

C)、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败

D)、若文件存在,打开失败;若文件不存在,建立一个新文件

(35)有如下程序

#include

using namespace std;

class A{

public:

virtual Void funcl(){cout<< “A1”;}

void fune2(){cout<< “A2”;}

};

class B: public A{

public:

void func1(){cout<< “B1”;}

void func2(){cout<< “B2”;}

};

Ap=new B;

p->funcl();

p->func2();

retum0;

}运行程序,屏幕上将显示输出______。

A)、B1B2

B)、A1A2

C)、B1A2

D)、A1B2

二、填空题(每空2 分,共30 分)请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。

(1)下列软件系统结构图的宽度为 [1] 。

(2) [2] 的任务是诊断和改正程序中的错误。

(3)一个关系表的行为 [3] 。

(4)按“行进后出”原则组织数据的数据结构是 [4] 。

(5)数据结构分为线性结构和非线性结构,带链的队列属于 [5] 。

(6)若有定义语句:inta,b;,则变量b 的数据类型是 [6] 。

(7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a中元素为2,3,4,4。请将语句补充完整:

For(int i=0;i(8)已知递归函数f 的定义如下:

int f (int n)

{If(n<=1)return 1;//递归结束情况

(9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 [9] 。

#include

using namespace std;

class Foo{

public:

Foo(int X){cout <<’A”}

Foo(){}

};

int main()

Foo f[3],g(3);

return 0;

}(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。

#include

Using namespace atd;

Class Foo{

int value;

public:

Foo():value(0){}

Void setvalue(int value)

{ [10] =value; //给Foo 的数据成员value 赋值}void print(){cout<};

Int main()

{Foo f;

f.setvalue(42);

f.print();

retum0;

}(11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 [11] 。

#include

using namespace std;

class Base{

public:

Void print(){cout<< ‘B’;}};

class Derived: public Base{

public

void print(){cout<< ‘D’;}}

int main()

{Derivedpd=new Dreived);

Basepb=pd;

pb->print();

pd->print();

delete pd;

return 0;

}(12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承

private。已知有如下类定义:

class Base{

protected:

void fun(){}

};

Class Derived: Base{};

则Base 类中的成员函数fun(),在Derived 类中的访问权限是 [12] (注意:要求填写private、protected 或public 中的一项)。

(13)在MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。

[13] MyClass::operator=(const MyClass rhs)

{if(this=&rhs)returnthis;

value=rhs. value;

returnthis;

}(14)插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,InsertSort 类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分补充完整。

class InsertSort{

public:

InsertSort(inta0,int n0):a(a0),n(n0){}//参数组首地址,n 是数组元素个数

void sort()

{//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?a[n-1]

for (int i=1;iint j;

for( [14] j>0;--j){

a[j]=a[j-1];}

a[j]=t;}}

protected:

inta,n;//指针a 用于存放数组首地址,n 用于存放数组元素个数

};

(15)下列程序的输出结果是 [15]

#include

using namespace std;

class A{

int a

public:

A():a(9){}

virtual void print() const {cout<};

class B:public A{

char b;

public:

B(){b= ‘S’;}

void print()const{cout<};

void show(Aa&X){X,print()}

int main()

{ Ad1;p;

Bd2;

p=&d2;

d1,print();

d2,print();

p->print();

show(d1);

show(d2);

return 0;}

一、 选择题:

01—05 DACBD 06—10 CDBBA

11—15 ADDAD 16—20 CCBBC

21—25 DACBC 26—30 ABCDC

31—35 ADBAD 36—40 BBADC

41—45 CBBCD 46—50 BABDC

二、 填空题:

1、3

2、调试

3、元组

4、栈

5、线性

6、12346.0

7、10 11

8、1

9、 7 4

10、n=n/10

11、(x+8)

12、sin(x)

13、0

14、i%2==0

15、s--

16、s++

17、18

18、16 11

19、->data

20、”rb”

几道计算机2级c语言的试题,帮忙解答~!

B)键

简单解释几个

1、设int x=1,y=1,表达式(!x||--y)的值是?(我不明白!x的值是多少,!x不是非1的意思么?)

x的值没变,表达式中只是拿非1去运算,没改x的值,y减了1

2、sizeof(float)是什么?(我觉得是函数调用啊,答案说是另外一个,答案是否错误?) a、一种函数调用 b、一个整形表达式

sizeof不是函数,是宏,所以应该是表达式

不信你可以写成sizeof float 一样能用

3、-12345是实型常量么?应该不是吧?答案说是。。。

负整数

4、若a=1,b=2.则表达式!(x-a)||(y-b)&&0的值是?(我还是不会算!(x-a))

这种题,结果只能为0,x,y的值都不确定

5、下列字符串是标识符的是?A aa B a-class C int D line 16、

标识符是以下划线或字母开头的下划线字母数字的组合,并且不能是关键字,很好选了

若有定义int a=10.则表达式a+=a-=a=a的值是?我觉得是0,答案说是-1807、

若有条件表达式(exp)?a--:b++.则下列表达式中和表达式(exp)完全等价的是(exp ==1 看看书,人家说是成立时,就是为真)?我觉得是(exp!=0),答案说是(exp==0).

我觉得是这样。。但也不知道对不对Fun Funint i=1;1!你参考下吧1

1.1

2.就是把变量float 强制转换成sizeof型

3.这个我觉得也是整型

4.你的X和Y不知道是多少,所以不能给你回答

5.A aa B a-class C D line

16.(1)显示的答案是 0; 连续赋值 的规则 是从右到左~

(2)(exp)这个必须等于1 其结果就是做的a--

2009年上半年全国计算机等级考试二级C语言笔试试题及答案

7). 数据库设计包括两个方面的设计内容,它们是

一、选择题(每题2分,共计70分)

C.ostream

1.(1)下列叙述中正确的是

A)栈是先进先出的线性表

B)队列是"先进后出"的线性表

C)循环队列是非线性结构

D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构

2.

(2)支持子程序调用的数据结构是

A)栈

B)树

C)队列

D)二叉树

3.

(3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是

A)10

B)8

C)6

D)4

4.

(4)下列排序方法中,坏情况下比较次数少的是

A)冒泡排序

B)简单选择排序

C)直接插入排序

D)堆排序

(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列

属于应用软件的是

A)编译程序

B)作系统

C)教务管理系统

D)汇编程序

6.

(6)下面叙述中错误的是

A)软件测试的目的是发现错误并改正错误

B)对被调试程序进行"错误定位"是程序调试的必要步骤

C)程序调试也成为Debug

D)软件测试应严格执行测试,排除测试的随意性

7.

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

A)提高耦合性降低内聚性有利于提高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D)内聚性是指模块间互相连接的紧密程度

8.

(8)数据库应用系统中的核心问题是

A)数据库设计

B)数据库系统设计

C)数据库维护

D)数据库管理员培训

9.

(9)有两个关系R,S如下:

由关系R通过运算得到关系S,则所使用的运算为

A)选择

B)投影

C)插入

D)连接

10.

(10)将E-R图转换为关系模式时,实体和联系都可以表示为

A)属性

C)关系

D)域

11.(11)一下选项中合法的标识符是

A)1_1

B)1-1

C)_11

D)1_ _

12.

(12)若函数中有定义语句:int k;,则

A)系统将自动给k赋初值0

B)这是k中的值无定义

C)系统将自动给k赋初值-1

D)这时k中无任何值

13.

(13)一下选项中,能用作数据常量的是

A)o115

B)0118

C)1.5e1.5

D)115L

14.

(14)设有定义:int x=2;,一下表达式中,值不为6的是

A)x=x+1

B)X++,2x

C)x=(1+x)

D)2x,x+=2

15.

(15)程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是

A)123.141593

B)12 3.141593

C)12,3.141593

D)123.1415930

16.

(16)若有定义语句:double x,y,px,py;执行了px=&x;py=&y;之后,正确的输入语句是

A)scanf("%f%f",x,y);

B)scanf("%f%f" &x,&y);

C)scanf("%lf%le",px,py);

D)scanf("%lf%lf",x,y);

17.

(17)一下是if语句的基本形式:

if(表达式) 语句

其中"表达式"

A)必须是逻辑表达式

B)必须是关系表达式

C)必须是逻辑表达式或关系表达式

D)可以是任意合法的表达式

18.

(18)有以下程序

{ int x;

scanf("%d",&x);

if(x<=3) ; else

if(x!=10) printf("%d\n",x);

}程序运行时,输入的值在哪个范围才会有输出结果

A)不等于10的整数

B)大于3且不等于10的整数

C)大于3或等于10的整数

D)小于3的整数

19.

(19)有以下程序

{ int a=1,b=2,c=3,d=0;

if (a==1 && b++==2)

if (b!=2||c--!=3)

printf("%d,%d,%d\n",a,b,c);

else printf("%d,%d,%d\n",a,b,c);

else printf("%d,%d,%d\n",a,b,c);

}程序运行后输出结果是

A)1,2,3

B)1,3,2

C)1,3,3

D)3,2,1

20.

(20)一下程序段中的变量已正确定义

for(i=0;i<4;i++,j++)

for(k=1;k<3;k++); printf("");

程序段的输出结果是

A)

B)

C)

D)

21.(21)有以下程序

{ char s={"ABC"};

do

{ printf("%d",s%10);s++;

}while (s);

}注意:字母A的ASCII码值为65。程序运行后的输出结果是

A)5670

B)656667

C)567

D)ABC

22.

(22)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

A)n=0;while((ch=getchar())!=~\n~)n++;

B)n=0;while(getchar()!=~\n~)n++;

C)for(n=0;getchar()!=~\n~;n++);

D)n=0;for(ch=getchar();ch!=~\n~;n++);

23.

(23)有以下程序

{ int a1,a2; char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

printf("%d,%c,%d,%c",a1,c1,a2,c2);

}若通过键盘输入,使得a1的c=a>>3;值为12,a2的值为34,c1的值为字符a,c2的值为字符b,

程序输出结果是:12,a,34,b 则正确的输入格式是(以下_代表空格,代表回车)

A)12a34b

B)12_a_34_b

C)12,a,34,b

D)12_a34_b

(24)有以下程序

int f(int x,int y)

{ return ((y-x)x);}

{ int a=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

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

A)10

B)9

C)8

D)7

25.

(25)有以下程序

{ while(s)

{ if (s%2==0) printf("%c",s);

s++;

}}

{ char a[]={"good"};

fun(a); printf("\n");

}注意:字母a的ASCII码值为97,程序运行后的输出结果是

A)d

B)go

C)god

D)good

26.

(26)有以下程序

void fun(int a,int b)

{ int c;

c=a;a=b;b=c;

}main()

{ int x=3,y=5,p=&x,q=&y;

fun(p,q); printf("%d,%d,",p,q);

fun(&x,&y);printf("%d,%d\n",p,q);

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

A)3,5,5,3

B)3,5,3,5

C)5,3,3,5

D)5,3,5,3

27.

(27)有以下程序

void f(int p,int q);

{ int m=1,n=2,r=&m;

f(r,&n); printf("%d,%d",m,n);

}void f(int p,int q)

{p=p+1;q=q+1;}

程序运行后的输出结果是

A)1,3

B)2,3

C)1,4

D)1,2

28.

(28)以下函数按每行8个输出数组中的数据

void fun(int w,int n)

{ int i;

for(i=0;i

{ ____________

printf("%d ",w[i]);

}printf("\n");

}下划线出应填入的语句是

A)if(i/8==0) printf("\n");

B)if(i/8==0) continue;

C)if(i%8==0) printf("\n");

D)if(i%8==0) continue;

29.

(29)若有以下定义

int x[10],pt=x;

则对数组元素的正确引用是

A)&x[10]

B)(x+3)

C)(pt+10)

D)pt+3

30.

(30)设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格

的字符串正确读入的语句或语句组是

A)gets(s);

B)while((s[i++]=getchar())!=~\n~);s[i]=~\0~;

C)scanf("%s",s);

D)do{scanf("%c",&s[i]);}while(s[i++]!=~\n~);s[i]=~\0~;

31.

(31)有以下程序

{ char a[]={"abcd","ef","gh","ijk"};int i;

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

A)aegi

B)dfhk

C)dfhk

D)abcdefghijk

32.

(32)以下选项中正确的语句组是

A)char s[];s="BOOK!";

B)char s;s={"BOOK!"};

C)char s[10];s="BOOK!";

D)char s;s="BOOK!";

33.

(33)有以下程序

int fun(int x,int y)

{ if(x==y) return (x);

else return((x+y)/2);

}main()

{ int a=4,b=5,c=6;

printf("%d\n",fun(2a,fun(b,c)));

A)3

B)6

C)8

D)12

34.

(34)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是

A)auto

B)register

C)static

D)auto 或register

35.

(35)有以下程序

int b=2;

int fun(int k)

{ b=k+b;return (b);}

{ int a[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i<4;i++) {b=fun(&a[i])+b; printf("%d ",b);}

printf("\n");

A)10 12

B)8 10

C)10 28

D)10 16

36.

(36)有以下程序

#define PT 3.5 ;

#define S(x) PTxx ;

{ int a=1,b=2 ; printf("%4.1f\n",S(a+b));}

程序运行后的输出结果是

A)14.0

B)31.5

C)7.5

D)程序有错无输出结果

37.

(37) 有以下程序

struct ord

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

{ struct ord p=dt;

printf("%d,",++p->x); printf("%d\n",++p->y);

}程序的运行结果是

A)1,2

B)2,3

C)3,4

D)4,1

(38)设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,

则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是

A)判断m是否能被5或者7整除

B)判断m是否能被5和7整除

C)判断m被5或者7整除是否余1

D)判断m被5和7整除是否都余1

39.

(39)有以下程序

{ int a=5,b=1,t;

t=(a<<2)|b; printf("%d\n",t);

A)21

B)11

C)6

D)1

(40)有以下程序

{ FILE f;

f=fopen("filea.txt","w");

fprintf(f,"abc");

fclose(f);

}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt的内容为

A)helloabc

B)abclo

C)abc

D)abchello

2009年3月二级C语言程序设答案

选择题:

1-10: DACDC ABABC

11-20:CBDDA CDBCB

21-30:CDABA BACBC

31-40:ADBCC CBDAC

填空题:

(1)19

(2)白盒

(3)顺序结构

(4)数据库管理系统(DBMS)

(5)菱形

(6)4

(7)"x/y=%d"

(8)能

(9)s=0

(10)1AbCeDf2dF

(11)7777654321

(12)max(int a,int b)

(13)NULL

(14)1001,ChangRong,1098.0

(15)p=p—>next

计算机二级C语言题

A)、= ( ) [] ->

main 函数没有void是可以的,即无函数返回值 但是不是规范的做法

38.

程序的入口是main函数

如果在函数中对形参指向的地址空间的值改变

main 函数中调用了fun函数

传入的参数是指针

fun得到了指针,它功能就是将第二指针指向的值+1

所以所以返回main 函数时 c2中的值已经变成了b

指针只是一个地址 你想想 别人有一张纸条上写了一个地址 然后你抄了一份新的

你拿着你自己抄的地址找到的地方

与你拿着别人的纸条找到的地方

是不是一个地方?

c语言中的函数都是传递一个数值,这里传递了地址的数值,所以对于a的修改是会生效的。

运行的顺序是:a,b的值传入函数》b值赋给a(此时a的值将对应于储存c2的地址)》把地址内的东西+1。

所以c1不会改变,而c2会+1,这并不是函数返回造成的,而是由于修改了地址内的值。

输出Ab。

楼主,我按你的问题思路来哈!

为什么c2是'b'?

因为p2的地址没变,而被调函数将p1的地址换为了p2的,然后再使p2的值自增1,所以为‘b’.

形参的值不少不能给实参吗?

这里并没有返回值,它只是通过被调函数进行了地址运算和值的自增,所以根本无需返回值。

为什么调用函数算出的c2的值还要返回……?

这里请楼主注意哈!输出时主函数输出,并非被调函数输出,被调函数的功能只是地址运算和值的自增。

欢迎追问。

这里的形参是指针,指针的实际是地址,这里的意思是吧c2的地址作为形参付给被调用函数,被调用函数实际作的是c2地址里c2的值,那么c2地址里实际的值也就跟着改变了。看看谭浩强的C程序设计吧,比我讲的清楚多了。

2017年计算机二级C语言模拟题及答案(2)

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

大家做好准备迎接考试了吗?诚意整理“2017年计算机二级C语言模拟题40.及答案(2)”,欢迎广大考生前来学习。

2017年计算机二级C语言模拟题及答案(2)

1). 若变量已正确定义并赋值,以下符合C语言语法的表达式是

A.a:=b+1

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b

正确答案:B

答案解析:选项A中包含一个不合法的运算符":=";选项C应改为(int)18.5%3;选项D可理解为两个表达式:a+7=c+b和a=a+7,其中个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B,它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

2). 结构化程序设计的基本原则不包括( )

A.多元性

B.自顶向下

C.模块化

D.逐步求精

正确答案:A

答案解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

3). 下面选项中关于位运算的叙述正确的是( )

A.位运算符都需要两个作数

B.左移运else return nf(n-2);//递归}则函数调用语句f(5)的返回值是 [8] 。算的结果总是原作数据2倍

C.右移运算时,高位总是补0

D.位运算的对象只能是整型或字符型数据

正确答案:D

答案解析:位运算则是以位(bit)一级进行的运算,位运算符中除″~″以外,均为二元运算符,即要求两侧各有一个运算量,运算量只能是整型或字符型的数据,不能为实型数据。其中右移时,右端(低位)移出的二进制数舍弃,左端(高位)移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1。而左移运算在没有溢出的前提下每移动一位,相当于原数据的2倍。

4). 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )

A.-369

B.369

C.0.369

D.整数{1,2,3,4,5}

正确答案:B

答案解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A和选项C,选项D是整数,所以也排除。

5). 下列关于类、对象、属性和方法的叙述中,错误的是( )。

A.类是对一类具有相同的属性和方法对象的描述

B.属性用于描述对象的状态

C.方法用于表示对象的行为

D.基于同一个类产生的两个对象不可以分别设置自己的属性值

正确答案:D

答案解析:类是对一类具有相同的属性和方法对象的描述,属性用于描述对象的状态,方法用于表示对象的行为,基于同一个类产生的两个对象是可以分别设置自己的属性值。

6). 下列描述中正确的是( )

A.软件交付使用后还需要再进行维护

B.软件工具交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

正确答案:A

答案解析:通常将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。已交付的软件投入运行后,应在运行使用中不断地维护,根据新提出的需要进行必要而且可能的扩充和删改。

A.概念设计和逻辑设计

B.模式设计和内模式设计

C.内模式设计和物理设计

D.结构特性设计和行为特性设计

正确答案:A

答案解析:数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。

8). 以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)( )

A.printf (″%c

″, ′a′-32);

B.printf (″%d

″, ′A′);

C.printf (″%c

″, 65);

D.printf (″%c

″, ′B′-1);

正确答案:B

答案解析:在选项B的输出函数中,大写字符′A′以整型数据的形式输出。

9). 下列描述中正确的是( )

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的

正确答案:D

答案解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多因素。

10). 以下不合法的用户标识符是( )。

A.804zhang

B._ hh

C.yy614

D.If

正确答案:A

答案解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的个字符必须是字母或下划线。

版权声明:本文仅代表作者观点,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 e18875982367@163.com,本站将立刻删除

下一篇 :