全国计算机等级考试二级c语言历年真题及解析(3)

2019-03-16 21:53

成才教育内部资料 0791-6290062 版权所有 翻印必究

C)FOR,--abc,Case D)2a,Do,Sizeof

(13)以下选项中,不能作为合法常量的是 A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

(14)在C语言中,运算对象必须是整型数的运算符是 A)% B)\\ C)%和\\ D)**

(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是

A)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;

(16)有以下程序段 char ch; int k; ch=′a′; k=12;

printf(\ printf(\

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A)因变量类型与格式描述符的类型不匹配输出无定值

B)输出项与格式描述符个数不符,输出为零值或不定值

C)a,97,12k=12 D)a,97,k=12

(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是 A)kk>=′A′&& kk<=′Z′ B)!(kk>=′A′||kk<=′Z′)

C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isalpha(kk)&&(kk<91)

(18)当变量c的值不为2、4、6时,值也为\真\的表达式是

A)(c==2)||(c==4)||(c==6)

B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)

11

(19)若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是 A)(exp==0) B)(exp!=0)

C)(exp==1) D)(exp!=1)

(20)以下不正确的定义语句是

A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9};

C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\\x10′, ′xa′, ′\\x8′};

(21)下列程序执行后的输出结果是 main()

{ int a[3][3], *p,i; p=&a[0][0];

for(i=1; i<9; i++)p[i]=i+1; printf(\ A)3

B)6 C)9 D)随机数

(22)设有以下程序段 int x=0,s=0;

while(!x!=0)s+=++x; printf(\ 则

A)运行程序段后输出0 B)运行程序段后输出1

C)程序段中的控制表达式是非法的 D)程序段执行无限次

(23)(23)下面程序段的运行结果是 char *s=\ s+=2;printf(\

A)cde B)字符′c′

C)字符′c′的地址 D)无确定的输出结果

(24)阅读下列程序,则执行后的结果为 #include \ main()

{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf(\ A)3e,6 B)62,5

成才教育内部资料 0791-6290062 版权所有 翻印必究

C)56,5 D)3E,6

(25)下面判断正确的是

A)char *a=\等价于 char *a;*a=\

B)char str[5]={\等价于char str[]={\ C)char *s=\等价于 char *s;s=\

D)char c[4]=\等价于char c[4]=d[4]=\

(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是 A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1]

(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是

A)gets(&s[0]); B)scanf(\

C)gets(s); D)scanf(\

(28)有以下程序 #include #define N 5 #define M N+1 #define f(x) (x*M) main()

{ int i1,i2; i1=f(2); i2=f(1+1);

printf(\}

程序的运行结果是 A)12 12 B)11 7 C)11 11 D)12 7

(29)若有以下说明和定义 union dt

{ int a; char b; double c;}data; 以下叙述中错误的是

A)data的每个成员起始地址都相同

B)变量data所占内存字节数与成员c所占字节数相等 C)程序段:data.a=5;printf(\输出结果为5.000000

12

D)data可以作为函数的实参

(30)有以下程序 #include main()

{FILE *fp;int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(\

fprintf(fp,\ fprintf(fp,\ fclose(fp);

fp=fopen(\

fscanf(fp,\fclose(fp); }

程序运行后的输出结果是 A)1 2 B)1 4 C)123 4 D)123 456

(31)若已定义

int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 则对a数组元素不正确的引用是 A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]

(32)有以下程序 #include

void fun(int ?*s,int n1,int n2)

{ int i,j,t; i=n1; j=n2;

while(i

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9);

for(k=0;k

程序的运行结果是 A)0987654321 B)4321098765 C)5678901234 D)0987651234

(33)阅读下列程序,当运行函数时,输入asd af aa z67,则

成才教育内部资料 0791-6290062 版权所有 翻印必究

输出为

#include #include #include int fun (char *str) { int i,j=0;

for(i=0;str[i]!=′ \\0′;i++) if(str[i]!=′ ′)str[j++]=str[i]; str[j]= ′\\0′; }

main() {

char str[81]; int n;

printf(\ gets(str); puts(str); fun(str);

printf(\}

A)asdafaaz67

B)asd af aa z67 C)asd D)z67

(34)有以下程序 int fun(int n)

{if(n==1)return 1; else

return(n+fun(n-1)); }

main() {int x;

scanf(\ }

执行程序时,给变量x输入10,程序的输出结果是 A)55 B)54 C)65 D)45

(35)下面程序段中,输出*的个数是 char *s=\

for(;*s!='\\0';s++)printf(\ A)9 B)5 C)6 D)7

(36)C语言结构体类型变量在程序运行期间

A)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元

B)所有的成员一直驻留在内存中 C)只有最开始的成员驻留在内存中 D)部分成员驻留在内存中

(37)已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是

A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件

C)一个指针,指向要读入数据的存放地址 D)一个存储区,存放要读的数据项

(38)设有以下语句 char x=3,y=6,z; z=x^y<<2;

则z的二进制值是 A)00010100 B)00011011 C)00011100 D)00011000

(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是

A)auto和register B)extern和register C)auto和static D)static和register

(40)设有定义语句int (?*f)(int);,则以下叙述正确的是 A)f是基类型为int的指针变量

B)f是指向函数的指针变量,该函数具有一个int类型的形参

C)f是指向int类型一维数组的指针变量

D)f是函数名,该函数的返回值是基类型为int类型的地址

二、填空题

请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

(1)测试用例包括输入值集和 【1】 值集。

(2)在树形结构中,树根结点没有 【2】 。

(3)数据结构分为逻辑结构与存储结构,线性链表属于 13

成才教育内部资料 0791-6290062 版权所有 翻印必究

【3】 。

(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体\项目主管\与实体\项目\的联系属于 【4】 的联系。

(5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

(6)阅读下面程序段,则执行后输出的结果是 【6】 。 #include \ main()

{ char fun(char,int); char a=′A′; int b=13; a=fun(a,b); putchar(a);}

char fun(char a,int b) { char k; k=a+b; return k;}

(7)函数fun的返回值是 【7】 fun(char *a,char *b) { int num=0,n=0;

while(*(a+num)!='\\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;} return num; }

(8)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是:

2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 请填空。

#include #define N 80

int fun(int a[], int n) { int i,j=1;

for(i=1;i

if(a[j-1] 【8】 a[i]) a[j++]=a[i]; 【9】 ; }

main()

14

{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;

printf(\

for(i=0; i

printf(\

for(i=0; i

(9)以下程序的运行结果是 【10】 。 #include main()

{ int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++; break; case 1: b++; break; }

case 2:a++; b++; break; case 3:a++; b++; }

printf(\ }

(10)以下程序的输出结果是 【11】 。 fun (int x,int y,int z) { z =x*x+y*y;} main ()

{ int a=31; fun (6,3,a)

printf (\ }

(11)函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s

My_cmp(char*s,char*t) { while (*s == *t)

{ if (*s == ′ \\0)return0; ++s; ++t;

} return 【12】 ; }

(12)以下程序的输出结果是 【13】 。 void reverse(int a[],int n) { int i,t;

for(i=0;i

成才教育内部资料 0791-6290062 版权所有 翻印必究

{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;} }

main()

{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8);

for(i=6;i<10;i++)s+=b[i]; printf(\ }

(13)以下说明语句中, 【14】 是结构体类型名。 typedef struct { int n;

char ch[8]; } PER;

(14)以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include main()

{FILE ?*fp; char ch;

fp=fopen( 【15】 ); ch=fgetc(fp);

while(!feof(fp)) { putchar(ch); ch=fgetc(fp); } putchar('\\n');fclose(fp); }

一、选择题 (1)C

【解析】 程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。 (2)C

【解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。 (3)C

【解析】 模块之间的耦合程度反映了模块的独立性,

15

也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。 (4)D

【解析】 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。 (5)C

【解析】 算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。 (6)B

【解析】 堆排序的比较次数为nlog2n;直接插入排序的比较次数为n(n-1)/2;快速排序的比较次数为nlog2n。当数据表A中每个元素 (7)B

【解析】 栈操作原则上\后进先出\栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈,所以出栈时一定是先出D,再出C,最后出A。 (8)A

【解析】 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。 (9)A

【解析】 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。

(10)C

【解析】 \选课SC\表是 \学生S\表和 \课程C\表的映射表,主键是两个表主键的组合。

(11)D

【解析】 在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何


全国计算机等级考试二级c语言历年真题及解析(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新概念第一册全册练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: