2022-2023年吉林省白山市全国计算机等级考试C语言程序设计_第1页
2022-2023年吉林省白山市全国计算机等级考试C语言程序设计_第2页
2022-2023年吉林省白山市全国计算机等级考试C语言程序设计_第3页
2022-2023年吉林省白山市全国计算机等级考试C语言程序设计_第4页
2022-2023年吉林省白山市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年吉林省白山市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.不带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

2.有以下程序:

若运行时输入:246<;回车>;,则输出结果为()。

A.204B.200C.240D.246

3.

4.fscanf函数的正确调用形式是()

A.fscanf(fp,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,fp);

C.fscanf(格式字符串,文件指针,输出表列),

D.fscanf(文件指针,格式字符串,输入表列);

5.第

3

已知:intc[3][4];则对数组元素引用正确的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表达都错误

6.设有100个元素,用折半查找法进行查找时,最大比较次数是_____。

A.25B.50C.10D.7

7.

8.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231

9.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

10.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。

A.定义语句中的“*”是一个间址运算符

B.定义语句中的“*”是一个说明符

C.定义语句中的“p”只能存放double类型变量的地址

D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p

11.

12.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

13.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

14.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

15.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

16.

17.

18.一个算法应当具有5个特性,以下叙述中正确的是()。

A.有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出

B.有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出

C.有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出

D.有穷性、确定性、复杂性、有零个或多个输入、必须要有多个输出

19.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

20.一个函数返回值的类型是由()决定的。

A.return语句中表达式的类型B.定义函数时指定的函数类型C.在调用函数时临时指定D.调用函数的主调函数的类型

二、2.填空题(20题)21.软件开发环境是全面支持软件开发全过程的【】集合。

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

main()

{

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

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

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

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

}

23.在面向对象方法中,属性与操作相似的一组对象称为【】。

24.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______给出了数据库物理存储结构与物理存取方法。

25.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。

26.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

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

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

27.在关系运算中,【】运算是在给定关系的某些域上进行的运算。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

29.在结构化分析使用的数据流图中,使()解释其中的图形元素。

30.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。

31.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

32.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

33.下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=")flag=0;

elseif【】{flag=1;num++}

}

return【】;}

34.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。

35.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入【】。

36.以下程序的输出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

37.设有以下定义的语句:

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

则*(*(P+2)+1)值为【】。

38.阅读下面程序,则执行后的输出结果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

39.设有宏定义:

#defineWIDTH80

#defineLENGTHWIDTH+40

则执行赋值语句“v=LENGTH*20;"(v为int型变量)后,v的值是【】。

40.若有以下程序:

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

执行后的输出结果是【】。

三、1.选择题(20题)41.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。

A.68B.0C.字符'D'的地址D.不确定的值

42.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。

A.1B.2C.8D.4

43.以下程序的输出结果是main(){inta=0,i;for(i=1;i<5i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",A);}

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

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

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

45.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构

46.下列叙述中,不属于软件需求规格说明书的作用的是()

A.便于用户,开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

47.组成计算机网络的最大好处是()

A.进行通话联系B.资源共享C.发送电子邮件D.能使用更多软件

48.在下列关于二叉树的叙述中,正确的一条是______。

A.度为2的树称为二叉树B.二叉树的度肯定是2C.二叉树中所有结点的度都是2D.具有3个结点的二叉树有5种形态

49.以下程序运行后的输出结果是_______。intd=1;fun(intp)printf(%d",d);returnd;}main(){inta=3;printf("%\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

50.以下正确的函数声明语句是______。

A.intfun(inta,B);

B.floatfun(inta,int

C.doublefun();

D.intfun(chara[][]);

51.下列程序段中,不能正确赋值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

52.下面程序在屏幕上的输出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

53.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.没有任何输出

54.已知二叉树BT的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______.

A.cedbaB.acbedC.decabD.deabc

55.下列程序的输出结果是()。#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

56.下面程序的功能是输出以下形式的金字塔图案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下划线处应填入的是()。

A.iB.2*1-1C.2*i+1D.i+2

57.有以下程序______。#defineP3voidF(intx){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是______。

A.192B.29C.25D.编译出错

58.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是

A.28B.22C.16D.4

59.下面程序的输出结果是()main(){inti,j;i=16;j=(i++)+i;printf("%d",j);i=15;printf("%d%d",++i,i);}

A.321615B.3315,15C.3415,16D.341615

60.有以下程序:#include<stdio.h>main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);}程序运行后的输出结果是()。

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

四、选择题(20题)61.有以下程序:

执行后输出结果是()。

A.58B.56C.45D.24

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

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

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

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

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

63.以下不合法的字符常量是()。

A.

B.

C.

D.

64.(12)下列叙述中正确的是______。

A.线性表是线性结构

B.栈与队列是非线性结构

C.线性链表是非线性结构

D.二叉树是线性结构

65.

66.以下对二维数组a进行正确初始化的是()

A.inta[2][3]={{1,2},{3,4},{5,6}};

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

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

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

67.

68.面下程序段的运行结果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符’C’的地址D.字符’C’

69.

70.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

71.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

72.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

73.

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

A)C程序中的#include和#define行均是C语句,只是语法不同

B)除赋值运算符外,逗号运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算

75.若有下的定义:"intt[3][2];",能正确表示t数组元素地址的表达式是()。

A.&t[3][2]

B.t[3]

C.t[l]

D.t[2][2]

76.有以下程序程序运行后的输出结果是()。

A.21B.11C.20D.10

77.

78.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

79.

80.有以下程序:

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

A.0B.4C.6D.7

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

六、程序设计题(1题)82.请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度

不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为:

ABCD

BCDEFG

CDEFGHI

则合并后的字符串内容应该是ABCDBCDEFGCDEFGHl。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<conio.h>

#defineM3

#defineN20

voidproc(chararr[M][N],char*b)

{

}

voidmain

{

charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;

chararr[100]={"##################"};

printf(”Thestrin9:kn”);

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

puts(str[i]);

printf("\n");

proc(str,arr);

printf("TheAstring:\n");

printf("%S",arr);

printf("\n\n");

}

参考答案

1.A

2.A本题中输入的3个数据2,4,6分别赋值给了x[0[0],x[1][0],x[2][0]。x[o][1]仍为初始时的0,所以打印输出时的结果为A选项。

3.C

4.D

5.C

6.D

7.A

8.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。

9.D

10.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。

11.C

12.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。

13.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

14.C

15.C

16.D

17.D

18.B算法是指为解决某个特定问题而采取的确定且有限的步骤,一个算法应当具有5个特征:有穷性、确定性、可行性、有雩个或多个输入、有一个或多个输出。本题答案为B选项。

19.C

20.B

21.软件工具软件工具

22.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系个表达式(*ptr+y)<x)?(ptr+y):x的值,再赋绐变量z,当y=O时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(pry)=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。

23.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。

24.内模式内模式解析:内模式又称为物理模式,它给出?数据库物理存储结构与物理存取方法。

25.—对多—对多解析:实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个教师只归属于一个学生,则实体集学校与实体集学生之间的联系属于一对多的联系。

26.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

27.投影投影解析:在关系运算中,投影运算是在给定关系的某些域上进行的运算。

28.010111212010111212解析:本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。

29.数据字典数据字典解析:数据字典的作用是对数据流图中出现的披命名的图形元素进行确切解释。通常数据字典包含的信心有名称、别名、何处使用/如何使用、内容描述、补充信息等。

30.!knahT!knahT解析:此程序是一道次序颠倒题,即输入'Thank!',则输出'!knahT'。

31.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

32.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整形数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,即应该填a[i]或*(a+i)。

33.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束。第13空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空恪,如果是则使得flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是—个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第14空应填flag=0或*(s-1);最后一个空格需填写的是返回的单词的个数,即num。

34.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

35.i=0j=20i=0,j=20解析:scanf()函数的使用,该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以说本题中应该原样输入i=,j=,后面分别给变量0和20,所以说空格处应该填入i=0,j=20。

36.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe

37.6060解析:p是指向整型数组的指针变量,p=a使得p指向数组a的第1行。p+2是数组a第3行的地址,*(p+2)是数组a第3行{50,60},其实*(p+2)为数组a第3行的首地址,*(p+2)+1为数组a第3行第2个元素的地址,那么*(*(P+2)+1)就是数组a第3行第2个元素,即60。

38.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。

39.880

40.99解析:f(3,4)=(4-3)×3=3,f(3,5)=(5-3)×3=6,所以d=f(f(3,4),f(3,5))=f(3,6)=(6-3)×3=9。

41.B解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“\\0”,故指向字符数组的指针p的*(p+4)的值为“\\0”。由于“\\0”的编码值就是0,所以本题输出为0。

42.C

\n在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准c中),若int类型数据占2个字节,则float类型数据占4个字节,double类型数据占8个字节。

\n

43.A解析:本题考核的知识点是for语句与switch语句地综合运用。switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行该case分支的语句。如果在该语句的后面没有break语句,则按顺序继续执行下一个case分支,直到遇到break语句或switch多分支语句结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行.在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i==1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束.所以,4个选项中A为所选。

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

45.C数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构(物理结构)及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。

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

47.B

48.D

49.C解析:静态局部变量在编译时赋韧值,即只赋初值一次,在程序运行时它已有初值。以后每次调用时不再重新赋韧值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用—次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值井返回主函数。

50.C解析:函数声明语句必须以分号结束,形参要分别说明,若二维数组作为函数的形参,则第二维的大小不能缺省。

51.C解析:本题考查了字符的输入函数getchar和利用scanf函数输入一个字符。用scanf输入字符时,格式说明字符应该为%c。本题选项C)因为指针p没有赋初值,所以是一个不定值,不能直接将getchar读入的字符赋给指针p所指向的字符,所以选项C错误。

52.BC语言中允许使用一种特殊形式的字符常量,就是以一个“\\”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:\\n,换行;\\t,水平制表;\\b,退格;\\r,回车。

53.D解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。

54.A解析:由二叉树后序遍历序列和中序遍历序列可以唯一确定一棵二叉树。二叉树BT的后序遍历序列为dabec,故BT的根结点为c(后序遍历序列的最后一个结点为树的根结点):而BT的中序遍历序列是debac,即遍历序列中最后一个结点为根结点,说明BT的右子树为空。由BT的后序遍历序列和中序遍历序列可知BT左子树的后序遍历序列和中序遍历序列分别为dabe和deba,因此BT左子树的根结点是e。再由中序遍历序列可知其左子树为d,右子树为ba。因此BT的前序遍历序列为cedba。

55.B解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

56.B解析:通过观察可知图形共4行,主函数中通过一个for循环4次,输出4行。第1行输出3个空格和1个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第4行输出7个“*”,主函数中通过第2个循环控制每行的输出空格数,第3个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第1行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1,所以,4个选项中选项B符合题意。

57.D解析:定义函数F(x)为void型,即没有返回值,而函数体中又有return语句,编译时会出错。

58.A解析:本题考核的知识点是宏定义的简单应用。本题中首先将所有的宏替换掉,则表达式为i=4+4*4+4/2+2*2+2,故最后输出的i的值为28。所以,4个选项中选项A符合题意。

59.A

60.C解析:本题考查循环和continue语句,continue语句的功能是结束本次循环。n从0开始循环,判断n%3!=0是否成立,如果成立,结束本次循环,继续下一次for循环;否则执行k--,并继续下一次for循环,直至循环结束。在程序中,当n取1,2时,不执行k--,当n取3时,执行k--,k变为3,循环结束,输出k,n的值分别为3,3。

61.Da[2]%2即14%2=0,此时跳出while循环,因此j=11+13=24。

62.Dc语言的可执行程序是由一系列机器指令组成的。用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离c语言集成开发环境。故答案为D)。

63.B在c语言中,用单引号扩起来的一个字符表示字符常量,转义字符由反斜扛”\”+特定字符组成。选项B)表示是8进制数码,出现8属于非法字符,所以正确答案是选项B)

64.A

65.A

66.B

67.A

68.B本题主要考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志’\\0’的地址,因而*(p+3)的值为0。

69.C

70.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

71.C解析:结构化程序设计是指将待开发的软件系统划分为若干个相互独立的模块,与具体的语句结构无关。Goto语句的滥用会导致程序的可读性降低。三种基本结构构成的程序依然可以解决大规模的问题,只是不利于复用。

72.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。

73.B

74.C#define行为非C语句,所以没有“;”号,%的运算对象只能为整型,逗号运算符的优先级最低。

75.C\n数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项c中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。

\n

76.A声明data是结构S的数组。初始化时data[0].a=10;data[0].b:104);data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[11.b;执行语句prinff(”%dkn”,++(p.A));打印输出时p.a先增l再打印。即p.a=data[1].a=20,先增1等于21,因此程序运行结果是21。

77.D

78.C注:数据项不可再分割

79.A

80.D本题考查的是switch语句。在switch语句中,表达式的值与某一个(!ase后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式

的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。所以在本题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行”case3:n+=k;”得n=3,然后执行default;当k=2时,执行”case2:case3:n+=k;”得n=5,然后执行default;当k=1时,执行”casel:n+=k;case2:case3:n+=k;”使得n加两次k,得到n=7。

81.

(1)b[k]=+p;

(2)b[k]=“;k++;

【考点分析】

本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据类型,还可以是指针类型。它的作用是将一个变量的址传送到另一个函数中。

【解题思路】

(1)JllN中p是指针型变量作函数参数,因此给b[k]赋值时出现错误0

(2)题目要求赋值3个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。

【解题宝典】

C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*’’符号表示“指向”,例如,pointer代表指针变量,而*pointer是pointer所指向的变量。

82.voidproc(chararr[M][N],char*b)

\n{

\ninti,j,k=0;

\nfor(i=0;i<M;i++)//i表示其行下标

\nfor(j=0;arr[i][j]!=\0;j++)//由于每行的个数不等,因此用a[i][j]!=\0来作为循环结束

\n的条件

\nb[k++]=arr[i][j];//把二维数组中的元素放到b的一维数组中,

\nb[k]=\0;//最后把b赋\0作为字符串结束的标志

\n)

\n【解析】字符串数组中每一行都是一个一个完整的字符串,其结束标志为\0。因此通过字符串的结束标志来判断每一个字符串是否结束,将字符串数组中的所有字符串均赋值新的一维数组b来完成字符串的合并。

\n2022-2023年吉林省白山市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.不带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

2.有以下程序:

若运行时输入:246<;回车>;,则输出结果为()。

A.204B.200C.240D.246

3.

4.fscanf函数的正确调用形式是()

A.fscanf(fp,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,fp);

C.fscanf(格式字符串,文件指针,输出表列),

D.fscanf(文件指针,格式字符串,输入表列);

5.第

3

已知:intc[3][4];则对数组元素引用正确的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表达都错误

6.设有100个元素,用折半查找法进行查找时,最大比较次数是_____。

A.25B.50C.10D.7

7.

8.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231

9.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

10.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。

A.定义语句中的“*”是一个间址运算符

B.定义语句中的“*”是一个说明符

C.定义语句中的“p”只能存放double类型变量的地址

D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p

11.

12.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

13.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

14.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

15.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

16.

17.

18.一个算法应当具有5个特性,以下叙述中正确的是()。

A.有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出

B.有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出

C.有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出

D.有穷性、确定性、复杂性、有零个或多个输入、必须要有多个输出

19.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

20.一个函数返回值的类型是由()决定的。

A.return语句中表达式的类型B.定义函数时指定的函数类型C.在调用函数时临时指定D.调用函数的主调函数的类型

二、2.填空题(20题)21.软件开发环境是全面支持软件开发全过程的【】集合。

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

main()

{

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

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

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

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

}

23.在面向对象方法中,属性与操作相似的一组对象称为【】。

24.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______给出了数据库物理存储结构与物理存取方法。

25.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。

26.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

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

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

27.在关系运算中,【】运算是在给定关系的某些域上进行的运算。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

29.在结构化分析使用的数据流图中,使()解释其中的图形元素。

30.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。

31.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

32.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

33.下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=")flag=0;

elseif【】{flag=1;num++}

}

return【】;}

34.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。

35.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入【】。

36.以下程序的输出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

37.设有以下定义的语句:

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

则*(*(P+2)+1)值为【】。

38.阅读下面程序,则执行后的输出结果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

39.设有宏定义:

#defineWIDTH80

#defineLENGTHWIDTH+40

则执行赋值语句“v=LENGTH*20;"(v为int型变量)后,v的值是【】。

40.若有以下程序:

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

执行后的输出结果是【】。

三、1.选择题(20题)41.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。

A.68B.0C.字符'D'的地址D.不确定的值

42.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。

A.1B.2C.8D.4

43.以下程序的输出结果是main(){inta=0,i;for(i=1;i<5i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",A);}

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

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

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

45.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构

46.下列叙述中,不属于软件需求规格说明书的作用的是()

A.便于用户,开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

47.组成计算机网络的最大好处是()

A.进行通话联系B.资源共享C.发送电子邮件D.能使用更多软件

48.在下列关于二叉树的叙述中,正确的一条是______。

A.度为2的树称为二叉树B.二叉树的度肯定是2C.二叉树中所有结点的度都是2D.具有3个结点的二叉树有5种形态

49.以下程序运行后的输出结果是_______。intd=1;fun(intp)printf(%d",d);returnd;}main(){inta=3;printf("%\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

50.以下正确的函数声明语句是______。

A.intfun(inta,B);

B.floatfun(inta,int

C.doublefun();

D.intfun(chara[][]);

51.下列程序段中,不能正确赋值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

52.下面程序在屏幕上的输出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

53.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.没有任何输出

54.已知二叉树BT的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______.

A.cedbaB.acbedC.decabD.deabc

55.下列程序的输出结果是()。#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

56.下面程序的功能是输出以下形式的金字塔图案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下划线处应填入的是()。

A.iB.2*1-1C.2*i+1D.i+2

57.有以下程序______。#defineP3voidF(intx){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是______。

A.192B.29C.25D.编译出错

58.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是

A.28B.22C.16D.4

59.下面程序的输出结果是()main(){inti,j;i=16;j=(i++)+i;printf("%d",j);i=15;printf("%d%d",++i,i);}

A.321615B.3315,15C.3415,16D.341615

60.有以下程序:#include<stdio.h>main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);}程序运行后的输出结果是()。

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

四、选择题(20题)61.有以下程序:

执行后输出结果是()。

A.58B.56C.45D.24

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

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

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

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

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

63.以下不合法的字符常量是()。

A.

B.

C.

D.

64.(12)下列叙述中正确的是______。

A.线性表是线性结构

B.栈与队列是非线性结构

C.线性链表是非线性结构

D.二叉树是线性结构

65.

66.以下对二维数组a进行正确初始化的是()

A.inta[2][3]={{1,2},{3,4},{5,6}};

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

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

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

67.

68.面下程序段的运行结果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符’C’的地址D.字符’C’

69.

70.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

71.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

72.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

73.

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

A)C程序中的#include和#define行均是C语句,只是语法不同

B)除赋值运算符外,逗号运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算

75.若有下的定义:"intt[3][2];",能正确表示t数组元素地址的表达式是()。

A.&t[3][2]

B.t[3]

C.t[l]

D.t[2][2]

76.有以下程序程序运行后的输出结果是()。

A.21B.11C.20D.10

77.

78.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

79.

80.有以下程序:

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

A.0B.4C.6D.7

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

六、程序设计题(1题)82.请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度

不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为:

ABCD

BCDEFG

CDEFGHI

则合并后的字符串内容应该是ABCDBCDEFGCDEFGHl。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<conio.h>

#defineM3

#defineN20

voidproc(chararr[M][N],char*b)

{

}

voidmain

{

charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;

chararr[100]={"##################"};

printf(”Thestrin9:kn”);

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

puts(str[i]);

printf("\n");

proc(str,arr);

printf("TheAstring:\n");

printf("%S",arr);

printf("\n\n");

}

参考答案

1.A

2.A本题中输入的3个数据2,4,6分别赋值给了x[0[0],x[1][0],x[2][0]。x[o][1]仍为初始时的0,所以打印输出时的结果为A选项。

3.C

4.D

5.C

6.D

7.A

8.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。

9.D

10.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。

11.C

12.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。

13.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

14.C

15.C

16.D

17.D

18.B算法是指为解决某个特定问题而采取的确定且有限的步骤,一个算法应当具有5个特征:有穷性、确定性、可行性、有雩个或多个输入、有一个或多个输出。本题答案为B选项。

19.C

20.B

21.软件工具软件工具

22.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系个表达式(*ptr+y)<x)?(ptr+y):x的值,再赋绐变量z,当y=O时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(pry)=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。

23.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。

24.内模式内模式解析:内模式又称为物理模式,它给出?数据库物理存储结构与物理存取方法。

25.—对多—对多解析:实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个教师只归属于一个学生,则实体集学校与实体集学生之间的联系属于一对多的联系。

26.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

27.投影投影解析:在关系运算中,投影运算是在给定关系的某些域上进行的运算。

28.010111212010111212解析:本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。

29.数据字典数据字典解析:数据字典的作用是对数据流图中出现的披命名的图形元素进行确切解释。通常数据字典包含的信心有名称、别名、何处使用/如何使用、内容描述、补充信息等。

30.!knahT!knahT解析:此程序是一道次序颠倒题,即输入'Thank!',则输出'!knahT'。

31.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表

温馨提示

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

评论

0/150

提交评论