2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022-2023年湖南省邵阳市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?

A.3B.4C.5D.6

3.当很频繁的对序列中部进行插入和删除操作时,应该选择使用的容器是()

A.vectorB.listC.dequeD.stack

4.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

5.

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

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

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

C.一个指针;指向要读入数据的存放地址

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

7.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

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

}

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

8.

9.

10.A[N][N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

11.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

12.若需要利用形参直接访问实参,则应把形参变量说明为____参数。

A.指针B.引用C.值D.变量

13.CPU能够直接访问的存储器是

A.软盘B.硬盘C.RAMD.CD-ROM

14.设"char**s;",以下正确的表达式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

15.语句int(*ptr)的含义是()。A.A.ptr是一个返回值为int的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

16.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen(“data,dat”,“w+”);for(i=0;i<6;i++)fprintf(fp,“%d\n”,a[5-i]);rewind(fp);for(i=0;i<6;i++){fscanf(fp,“%d”,&k);printf(“%d,”,k);}fclose(fp);}程序运行后的输出结果是()。

A.6,5,4,3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,1,D.6,6,6,6,6,6,

17.下列合法的声明语句是()。

A.intabc=50;

B.doubleint=3+5e2.5;

C.longdo=1L;

D.float3asd=3e一3;

18.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数

19.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

20.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

二、2.填空题(20题)21.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

22.求任意一个数(用16位二进制码表示)的补码。

main()

{unsignedinta;

【】;

scanf("%O",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{unstgnedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

23.下列程序的输出结果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

24.数据库系统中实现各种数据管理功能的核心软件称为【】。

25.下列程序的运行结果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

26.下列程序的输出结果是【】。

main()

{

inta=1,b=2;

a=a+b;b=a-b;a=a-b;

prrintf("%d,%d\n",a,b);

}

27.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

28.以下程序的输出结果是【】。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

29.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

30.以下程序运行后的输出结果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

31.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

32.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。

33.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【】。

34.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

35.有以下程序片段,请问执行后的输出结果是【】。

intn=10;

while(n>7)

{printf("%d",n--);

}

36.Windows的空口分为两类,一类是应用程序窗口,另一类是【】窗口。

37.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

38.以下函数将b字符串连接到a字符串的后面,并返回a中新字符串的长度。

strcen(charaC),charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;)

return(num);

}

39.以下程序段的输出结果是【】。

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

}

40.以下程序运行后的输出结果是【】。

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

三、1.选择题(20题)41.当a的值为0时,在下列选项中能正确将a的值赋给变量x、y的是()。

A.(x=a)&&(y=a)B.x=a=yC.(y=a)||(x=a)D.a=x=y

42.程序中对fun()函数有如下说明void*fun();此说明的含义是______。

A.fun函数无返回值

B.fun函数的返回值可以是任意的数据类型

C.fun函数的返回值是无值型的指针类型

D.指针fun指向一个函数,该函数无返回值

43.字符串"\\\"ABCDEF\"\\"的长度是()。

A.15B.10C.7D.8

44.以下叙述中正确的是()。

A.C语言的源程序不必通过编译就可以直接运行

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C.C语言程序经编译形成的二进制代码可以直接运行

D.C语言中的函数不可以单独进行编译

45.以下程序的输出结果是______。main()inta=3;printf("%d\n",(a+=a=a=a*a);}

A.-6B.1C.2D.-12

46.在下面关于指针的说法中,错误的一条是()

A.变量的指针就是变量的地址

B.可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量

C.一个指针变量只能指向同一个类型的变量

D.指针变量中只能存放地址(指针)

47.sizeof(float)是()。

A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式

48.下面的程序main(){intx=3,y=0,z=0;if(x=y+z)printf("***");elseprintf("####");}_______。

A.有语法错误不能通过编译B.输出****C.可以通过编译,但是不能通过连接,因而不能运行D.输出####

49.执行以下程序段后,m的值为______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));

A.15B.14C.13D.12

50.以下程序的输出结果是

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

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

A.31B.13C.10D.20

51.以下不能正确定义二维数组的选项是

A.inta[2][2]={{1},{2)};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4)};

52.下列程序的输出结果是()。#include<stdio.h>main(){inta=O,i;for(i=1;i<5;i++){swich(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}}printf("%d",a);}

A.19B.18C.6D.8

53.算法的时间复杂度是指______。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数

54.根据C语言的语法规则,下列字符串中哪些是关键字或保留字()

A.automateB.readerC.staticD.input

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

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

56.设x,y均是int类型变量,则以下不正确的函数调用为______。

A.getchar();

B.putchar('\108');

C.scanf("%d%*2d%d",&x,&y);

D.putchar('\'');

57.若有以下说明和定义:fun(int*c){}main(){int(*a)()=fun,*b(),w[10],c;……}在做必要的赋值之后,对fun函数的正确调用语句是______。

A.a=a(w);B.(*a)(&c);C.b=*b(w);D.fun(b);

58.以下叙述中正确的是A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

59.以下程序的输出结果是

#include<stdio.h>

structst

{intx;int*y;}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};

main()

{p=aa;

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

A.10B.11C.51D.60

60.以下程序的输出结果是main(){inta=5,b=4,c=6,d;printf((“%d\n”,d=a>b?)(a>c?a:c):(b));}

A.5B.4C.6D.不确定

四、选择题(20题)61.有以下程序,其中%u表示按无符号整数输出:

main

{

unsignedintx=0xFFFF;/*x的初值为十六进制数*/

printf("%u\n",x);

}

程序运行后的输出结果是()。

A.-1B.65535C.32767D.0xFFFF

62.

定义下列结构体(联合)数组:

structst

{charname[15];

intage;

}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);

执行语句printf("%d,%C",a[2].age,*(a[3].name+2))的输出结果为()。

A.15,AB.16,HC.16,AD.17,H

63.以下叙述中错误的是()。A.可以通过typedef增加新的类型

B.可以用typedef已存在的类型用一个新的名字来代表

C.用pypedef义新的类型名后,原有类型名仍有效

D.用pypedef以为各种类型起别名,但不能为变量起别名

64.如图所示,两个关系R1和R2:

则由关系R1和R2得到关系R3的操作是()。

A.笛卡尔积B.连接C.交D.除

65.若变量已正确定义并赋值,下面符合C语言要求的表达式是

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

66.

67.下列字符数组初始化语句中,不正确的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

68.下列程序中c的二进制值是()。chara=2,b=4,c;c=a^b>>2;A.00000011B.00010100C.00011100D.00011000

69.下列选项中,能够满足“只要字符串sl等于字符串s2,则执行sT”要求的是()。程序执行后的输出结果是()。

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

70.有以下程序:

程序运行后的输出结果是()。.

A.3,3B.1,1C.2,3D.1,2

71.

程序运行后的输出结果是()。

A.ABCDE\0FG\OUKB.ABCDUKC.UKD.EFGUK

72.有如下程序段

#include"stdio.h"

voidfun(int*a,int*b,int*c,int*d,int*e)

{inti,j,k,m;

for(i=0;i<*a;i++)

for(j=0;j<*b;j++)

for(k=0;k<*c;k++)

for(m=0;m<*d;m++)

++*e;

}

main()

{inta=10,b=10,c=10,d=10,e=0;

fun(&a,&b,&c,&d,&e);

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

则程序段的输出结果是

A.10000B.1000

C.100D.0

73.

下列程序的输出结果是()。

#include<stdio.h>

main

{structst

{inty,x,z;

};

union

{longi;

intj;

chark;

}un;

printf("%d,%d\n",sizeof(structst),sizeof(un))

}

A.6,2B.6,4C.8,4D.8,6

74.

75.(69)单个用户使用的数据视图的描述称为()

A.外模式

B.概念模式

C.内模式

D.存储模式

76.下列可用于C语言用户标识符的一组是

A.void,define,WORDB.a3_b3,_123,Car

C.For,-abc,CaseD.2a,DO,sizeof

77.对于算法的每一步,指令必须是可执行的。算法的()要求算法在有限步骤之后能够达到预期的目的。

A.可行性B.有穷性C.正确性D.确定性

78.

79.

(19)关系表中的每一横行称为一个()

A.元组

B.字段

C.属性

D.码

80.有以下程序

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是l5。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给m如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.A

3.B

4.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。

5.A

\r\n

6.C解析:这是一道考查fread函数的题。buf是一个指针,fread是读入数据的存放地址;fwrite是输出数据的地址(以上指的是起始地址)。

7.A解析:本题中,首先创建开辟一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同的变量。分别给a、b、C所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量的值,即3,3,3。所以选A。

8.A

9.A

10.B

11.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

12.A

13.C解析:CPU读取和写人数据都是通过内存来完成的。

14.B

15.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。

16.A函数fopen(“data.dat”,“w+”)中的“w+”表示打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则建立该文件。“rewind(fp);”使文件fp的位置指针指向文件开始。函数“fprintf(fp,“%d\\n”,a[5-i]);”将a[i]输出到fp指向的文件中。函数“fscanf(fp,“%d”,&k);”将fp读入变量k中。第1个for循环将数组中元素倒着输入fp指向的文件中。rewind则指向文件开始,因此输出的是数组a的倒叙:6,5,4,3,2,1,。故本题答案为A选项。

17.A标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。

18.DD。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模。09函数fin),算法的时间复杂度也因此记做T(n)=O(f(n))。因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeComplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。

19.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

20.A函数“strlen(char*s)”;计算字符串s的长度,不包括‘\\0’在内。p指向数组的第2个元素,因此“Strien(P)=10”,并输出“one*Dream!”。故本题答案为A选项。

21.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。

22.unsignedintgetbits()value&0100000z=~value+1unsignedintgetbits()\r\nvalue&0100000\r\nz=~value+1

23.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

24.数据库管理系统数据库管理系统(DBMS)

25.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

26.212,1解析:本题中,执行a=a+b时,a=1,b=2,a=1+2=3,b=a-b时,a=3,b=2,b=3-2=1;a=a-b时,a=3,b=1,a=3-1=2;因此,本题的输出是2,1

27.软件工程学软件工程学

28.3131解析:在函数调用时,形参值和改变,不会改变实参的值。

29.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;

②str[i]代表字符串str中的第i+1个字符;

③整形变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

30.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*

31.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

32.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。

33.rewind()或fseek()rewind()或fseek()

34.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

35.1098

36.文档文档

37.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

38.\0n++

39.2828解析:a*=16+(b++)-(++c)等价于a=a*(16+(b++)-(++c)),b++的值为3;++c的值为5,请注意前缀++和后缀++的用法。

40.1515解析:程序通过递归调用实现求数组aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

41.C解析:选项A先执行x=a,x的值为0,不再执行y=a,因此y未被赋值。选项B是将y的值赋给a和x,而未能实现将a的值赋给变量x、y。选项C先执行y=a,将a的值赋给y;再执行x=a,将a的值赋给x。选项D同B。所以选项C符合题意。

42.C解析:C语言中函数的定义分为有参函数的定义和无参函数的定义。无参函数的定义形式为:

类型标识符函数名()

{说明部分

语句

}

有参函数的定义有两种形式:

类型标识符函数名(形式参数列表)

形式参数说明

{说明部分

语句

}

类型标识符函数名(类型名形参1,类型名形参2,…)

{说明部分

语句

}

其中函数名为用户定义的C语言的合法标识符,其前面的类型标识符用来说明函数值的类型,可以是C允许的任何类型,如int、char、float、double和指针类型等。当函数值为整型时类型标识符可以省略,如果函数没有返回值,类型标识符可以是void型。当函数的形参多于一个时,各个形参之间用逗号分隔。

43.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。

44.B

45.D解析:赋值运算符的结合方向是自右至左,所以表达式a+=a-=a*a先运算最右边的a*a得9,再运算a=a-9,即a=3-9,所以此时a的值由3变成了-6,最后运算a=a+(-6),即a=(-6)+(-6)=-12。

46.B

47.D解析:sizeof(float)是c语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。

48.D解析:本题的考查点是运算符在表达式中的处理原则。本题中把y+z的值赋给x,由于y和z都等于0,所以x的值也为0,表达式值为false,输出####。if语句中if后面的表达式—般为逻辑或关系表达式,但也可以是任意的数值类型。

49.A

50.A解析:本题考查用于多分支选择的switch语句,其一般形式为:

switch(表达式)

{

case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

default:语句n+1;

}

其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。

51.D解析:本题考核的知识点是二维数组的定义和初始化。在定义中如果对所有元素赋初值,其第1维的长度可以省略,故选项B正确;二维数组初始化也可以只对每行或前若干个行的前若干个元素赋初值,故选项A和选项C正确;在二维数组定义时不能省略第二维的长度,故选项D错误。所以,4个选项中选项D符合题意。

52.A解析:本题考查switch语句。当i=1时,执行case1,因为没有遇到break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2时,执行case2,因为没有遇到break语句,所以依次柱下运行,a=a+2=7,a=a+3=10:当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。

53.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。

54.C

55.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。

56.B解析:八进制中的基本数为0~7,不可能出现8。

57.B

58.B解析:若在函数中定义与全局变量名字相同的局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存布,故选项B正确;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。

59.C解析:考查结构体成员数据的引用方法。通过指针来引用结构体成员的方法是(指针变量)->结构体成员名。

60.C解析:在C语言中问号表达式(如:a>c?a:c;)的计算规则为:如果a>c为真,那么表达式的值为a的值;否则表达式的值为c的值。本题中的printf()函数中的输出表达式,首先计算括号内的条件表达式,它的值为6(a>c?a:C中a>c即5>6为假故该表达式的值为c的值即为6),然后再计算外面表达式(等价于a>b?6:B)的值,同理可得该表达式的值为6,将值6赋值给d,因此最后输出该表达式的值为6。

61.B解析:整型常量有十进制、八进制和十六进制3种表示:十进制整数以正号(+)或负号(-)开头,由首位非0的一串十进制数字组成,正负号也可省略,表示正整数;八进制整数以数字0开头,后面接着干个八进制数字(0~7):十六进制整数以数字。和字母x(大、小写均可)开头,后面接若干个十六进制数字(数字0~9和字母A~F,大、小写均可)。故本题是以无符号整数形式输出一个十六进制整数FFFF,将其转换为十进制就是65535,故本题应该选择B。

62.C

\n本题考查结构体数组。a[2].age为结构体aEZ]的age成员,即a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“2”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2)是取指针所指向地址的内容。

\n

63.A

64.B连接运算也称0连接,是对两个关系进行运算,其意义是从两个关系的笛卡尔积中选择满足给定属性间一定条件的那些元组。本题关系R3为关系R1中B属性和关系R2中D属性相等连接而成。

65.B本题考查C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论