2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年内蒙古自治区赤峰市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序的运行结果是()。A.2,3B.1,3C.1,4D.1,2

2.

3.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树的结点个数为n,森林F中第一棵树的结点的个数是()。

A.m-nB.m-n-1C.n+1D.不能确定

4.设”inta=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是()。

A.15B.26,15C.15,26D.26

5.第

3

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

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

6.C语言源程序的扩展名是()。

A..CB..exeC..objD..cp

7.以下不合法的用尸标识符是()。A.A.804zhangB._hhC.yy614D.If

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

A.程序就是软件

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

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

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

9.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序执行后输出结果是()。A.n=5B.n=2C.n=3D.n=4

10.树最适合用来表示()。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据

11.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间

12.以下选项中不合法的标识符是()。

A.&aB.FORC.printD._00

13.

14.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

15.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

16.

17.线性表的顺序存储结构是一种()。

A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构

18.在数据流图(DFD)中,带有名字的箭头表示

A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向

19.有以下程序:

程序的运行结果是()。

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

20.以下叙述中错误的是

A.在程序中凡是以“#”开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

二、2.填空题(20题)21.测试的目的是暴露错误,评价程序的可靠性;而______得目的是发现错误的位置并改正错误。

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

main()

{intx,a=1,b=2,c=3,d=4;

{intx,a=1,b=2,c=3,d=4;

x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;

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

}

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

main()

{intp=30;

printf{"%d\n",(p/3>0?p/10:p%3)};

}

24.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

25.下列程序的输出结果是______。

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x==1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(11));

}

26.以下程序是求矩阵a、b的和,结果存入矩阵c中,请填空。#include<stdio.h>main(){inta[4][4]={1,2,6,7},{0,4,2,-8},{1,4,5,2},{2,4,6,8}};intb[4][4]={{-4,0,7,9},{2,-7,7,4),{6,9,0,1),{8,8,6,5)};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=();for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",c[i][j]);}

27.性表的多种存储结构中,最简单的方法是【】。

28.下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。

structstu

{intx;

【】

【】next;}

29.下列程序的运行结果是【】。

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0||i%11==0)a[j++]=i;

*n=j;

}

main()

{intaa[M],n,k;

fun(10,aa,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");

}

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

31.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。

32.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

33.下面程序的运行结果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

35.设y为int型变量,请写出描述“y是偶数”的表达式______。

36.数据流图的类型有【】和事务型。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

38.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

39.已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由此文件指针fr指向文件,则程序的输出结果是______。

#include<stdio.h>main(){FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);}

40.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。

charch='B';

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

三、1.选择题(20题)41.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

42.表示关系x≥y≥z应使用C语言表达式()

A.(x>=y)&&(y>=z)

B.(x>y)AND(y>z)

C.x>=y>=z

D.(x>=y)&(y>=2)

43.已知x=3、y=2则表达式x*=y+8的值为()

A.3B.2C.30D.10

44.有以下程序:main(){unsignedchara,b,c;a=0x3;b=a|0x8;c=b<<1;printf("%d%d\n",b,C);}程序运行后的输出结果是()。

A.-1112B.-6-13C.1224D.1122

45.SQL语言又称为______。

A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言

46.下列程序的输出结果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);

A.1010B.1212C.1110D.1113

47.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

48.下面说明不正确的是()。

A.chara[10]="china";

B.chara[10],*p=a;p="chiua";

C.char*a;a="china";

D.chara[10],*p;p=a="china";

49.有以下函数定义:intfun(doublea,doubleB){returna*b;}若以下选项中所用变量都已正确定义并赋值,错误的函数调用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

50.有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已正确定义并赋值,错误的函数调用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

51.若有定义:intx=0,*p=&x;则语句printf("%d\n",*p);的输出结果是()。

A.随机值B.0C.x的地址D.p的地址

52.下列程序的执行结果是_____。main(){intx=23;do{printf("%d",x--);}while(!x);}

A.321B.23C.不输出任何内容D.陷入死循环

53.以下对结构体类型变量的定义中,不正确的是()

A.typedefstructaa{intn;floatm;}AA;AAtdl;

B.#defineAAstructaaAA{intn;floatm;}tdl;

C.struct{intn;floatm;}aa;structaatdl;

D.struct{intn;floatm,}tdl;

54.下列不正确的转义字符是()。

A.'\\'B.'t'C.'\n'D.'088'

55.请阅读以下程序:#include<stdio.h>#include<string.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main(){intk,a[5]={1,3,5,4,9};fun(A);for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的输出是()。

A.13579B.48579C.48549D.48999

56.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

57.下面四个选项中,均是不合法的用户标识符的选项是

A.AP_0doB.float1a0_AC.b-agotointD.123tempint

58.指出下面不正确的赋值语句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

59.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。

A.a==1B.++i;C.a=int(i);D.a=a++=5;

60.若程序有宏定义:#defineN100则以下叙述中正确的是______。

A.宏定义中定义了标识符N的值为整数100

B.在编译程序对C源程序进行预处理时用100替换标识符N

C.对C源程序进行编译时用100替换标识符N

D.在运行时用100替换标识符N

四、选择题(20题)61.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

62.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

63.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.可以是任意合法的表达式B.只能是整数0或非0整数C.可以是结构体类型的数据D.只能是整数0或1

64.

65.

66.有如下程序

#include"stdio.h"

fun(inta,intb)

{ints;

s=a*(b/4);

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

main()

{inta=16,b=10;

fun(a,b);

}

该程序的输出结果是

A.16B.32

C.40D.80

67.

68.

69.?下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a=2default:a+=3;}}printf("%d",a);}A.19B.18C.6D.8

70.有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是()。

A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x

71.下列数据模型中,具有坚实理论基础的是()。

A.层次模型B.网状模型C.关系模型D.以上3个都是

72.有以下程序段:

inti,n;

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

{n=rand()%5;

switch(n)

{casel:

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

case2:

case4:print?("%d\n",n);continue;

case():exit(0);

}

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

}

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

A.for循环语句固定执行8次

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.当产生的随机数n为0时结束程序运行

73.

74.

75.执行以下程序段后,T的值为

intT=’a’,x=12,y=5;

T=((x||y)&&(T>’A’));

A.1B.NULLC.-lD.0

76.设有如下关系表

T

则下列操作中,正确的是()。

A.T=RnS

B.T=RuS

C.T=R×S

D.TzR/S

77.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

78.以下程序执行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不确定D.0

79.下面程序的功能是输出以下形式的金字塔图案。

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*i-1C.2*i+1D.i+2

80.关系数据库管理系统能实现的专门关系运算包括()。

A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为abcdefabcdeabceabcdef,子字符串为cd,则应当输出3。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B在f(int*p,int*q)函数中,执行“p=p+1;”是将p所对应的地址加1,而“*q=*q+1;”是将q所指向n的地址所对应的值加1,所以m的值没有变,而n的值则变为3。故本题答案为B选项。

2.D

3.A

4.C

5.C

6.AC语言源程序的扩展名是.C,目标文件的扩展名是.obj,可执行文件的扩展名是.exe。故本题答案为A选项。

7.AC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。

8.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。

9.Dcontinue语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。

10.C树最适合用来表示元素之间具有分支层次关系的数据,故本题选C。

11.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

12.AC语言的标识符由字母、数字、下划线组成,且第1个字符必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的“FOR”可以作为标识符来用。A选项中含有非法字符“&”,所以其不合法。故本题答案为A选项。

13.C

14.A

15.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

16.D

17.A

18.D解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

19.D在程序中指针变量P初始指向a[3],执行P减1后,P指向a[2],语句y=*P的作用是把a[2]的值赋给变量y,所以输出为y=3。

20.D解析:在C语言中,凡是以“#”开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的.当然也在程序执行之前执行,因此选项D是错误的。

21.软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。\r\n\r\n

22.11解析:条件运算表达式:“表达式1?表达式2:表达式3”,但表达式1的值为非0时,此时表达式2的值就是整个条件表达式的值,反之为表示式3的值。解析易知结果为1。

23.33解析:本题考核的知识点是条件运算符的运用。三目运算表达式的规则为如果“?”前面表达式的值为真,则取“:”前的表达式的值,否则,取“:”后面表达式的值。又由于条件运算符的结合方向是自右向左的,所以在本试题中,先计算表达式中p%3,该值为0,在计算表达式P/10其值为3,最后计算表达式p/3该值为10.所以此表达式等价于“10?3:0”,显然取“:”前的僵为3,所以最后输出的值为3。

24.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

25.44解析:本题考查函数的递归调用.在主函数中第1次调用于函数是调用的fun(11),返回11-fun(9);第2次调用于函数是调用的fun(9),返回9-fun(7);第3次调用于函数是调用的fun(7),返回7-fun(5):第4次调用子函数是调用的fun(5),返回5-fun(3):第5次调用于函数是调用的fun(3),返回3-fun(1):第6次调用于函数是调用的fun(1),返回3。总的返回值是:11-(9-(7-(5-(3-3))))=4.

26.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:求两个矩阵的和只要将对应元素相加即可。

27.顺序存储顺序存储

28.floaty;structstu*floaty;\r\nstructstu*解析:float定义变量y为实型变量。要求变量next是指向自身结构体的指针,因此变量next应该是结构体stu的指针型变量。

29.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整数,a[j++]=i是将满足条件的数放到a数组中,变量j记录了满足条件的数据个数,main函数通过变量n得到此数据个数。如果m的值为50,即表达式fun(10,aa,&n)为fun(50,aa,&n)时,输出结果为:711142122283335424449

30.44解析:在主函数中,语句p=a;p++使用指针p指向数组a[1],所以输出结果为4。

31.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。

32.封装封装

33.x=11x=11解析:在对无符号数的右移是高位补0。

34.246246解析:本题考查静态(static)局部变量的使用。fun函数中的静态局部变量a所占用的存储单元在程序运行过程中始终不释放,即当下一次调用该函数时,该变量仍然保留上一次函数调用结束时已有的值,3次调用fun函数分别得到2,4,6。

35.(y%2)==0(y%2)==0解析:因符合偶数的条件是对2取余为0,所以要描述y是偶数的表达式是(y%2)==0。

36.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

37.因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。\r\n\r\n

38.I<na[I]I<n,a[I]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它们所指向的变量时,要对它们进行指针运算,即*号运算。

39.HellHell解析:该函数有3个参数,第三个参数是文件指针指向要读取数据的文件,第二个参数是一个整数(假设为n),表示从文件中读n-1个字符并在其后加一个'\\0',第一个参数为存放读取的字符串的内存区的起始地址,读取得数据保存在其中。可见本题的输出结果为:Hell。

40.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。

41.A解析:在本题中k=n++,为后缀运算。根据其运算规则,首先n先加一,但n++表达式的值依然n原来的值,即k的值没有改变。选项A中先给k赋值为n,然后n再加1,k值没有变化,所以这个表达式和本题中表达式等价:选项B中先n加1,然后将n加1后的值赋给k,k变化了比原来的值大1,所以这个表达式和本题中表达式不等价:选项C中先计算表达式左边的表达式++=N的值,执行++n后,左边的表达式的值为n的值加1,然后将n+1后的值赋给k,所以这个表达式和本题中的表达式不等价;选项D中表达式展开为k=k+(n+1),k的值发生了变化,所以这个表达式和本题中的表达式不等价。所以4个选项中A正确。

42.A

43.C

44.D解析:将a的值用二进制表示:00000011。a与Ox8(二进制表示为00001000)按位或,得到结果00001011赋值给b,b的值为11。再将b左移一位得到:00010110,赋值给c,c的值为22。所以最后输出的b,c的值为11,22。

45.CC。【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言4个部分。

46.D

47.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。

48.D解析:C语言中操作一个字符串常量的方法有:

①把字符串常量存放在一个字符数组之中。

②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。

当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成字符指针。

本题选项D)错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

49.C

50.C解析:本题考查函数调用时的参数传递。选项C)中第一个参数的表达式不正确,因此不能得到正确的结果。

51.B解析:本题考查的是指针的运用。语句intx=O,*p=&x;定义7一个int型变量x并初始化为0,同时还定义了一个int型指针p指向变量x。语句ptintf('%d\\n',*p);是按十进制整数格式输出指针p所指向的内容,即x的值0。故本题应该选择B。

52.B

53.C解析:定义结构体类型的变量有几种的方法如下:

①定义结构体类型的同时,定义结构体类型的变量,如下面的定义中在定义结构体类型aa的同时定义了该类型的变量tdl。上述B)项中将宏名AA用宏体structaa替换进去后,与该定义形式一样,因此是正确的。这一定义形式中,结构体类型名明是可以省略的,因此,D)项也是正确的。

structaa

{...

}tdl;

②先定义结构体类型,然后再定义结构体类型的变量,形式如下:

structaa

{

};

structaatdl;

这种定义形式也可演变为,先用类型定义语句typedef将该结构体类型定义成一个类型名AA,然后直接用该类型名AA去定义一个变量(这时不再需要使用关键字struct了)。这就是A)项的形式。

54.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符;'\\n'饭是换行转义字符;C语言中没有规定'088'为转义字符。

55.C

56.D解析:C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

57.C解析:C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项C)中goto和int是关键字,b-a中'-'不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。

58.B解析:本题考核的知识点是赋值语句的正确使用。C语言中赋值语句是由赋值表达式加“;”构成的.赋值表达式的形式为:变量:表达式;。选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句.只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。

59.B解析:C语言中的语句都以“;”结尾,因此选项A不是合法语句。强制类型转换运算符应为“(类型名)”,选项C中的int(i)不符合规定;如将int(i)看成函数调用也是不正确的,int是C语言的关键字,不能作为用户定义的标识符当函数名使用。赋值表达式的左侧应为变量名,而选项D中的a++=5不符合规定。

60.B解析:本题考查的重点是宏定义。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时,发现该标识符就都用该串替换,因此选项B是正确的。

61.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。

62.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。

\n

63.AC语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。

64.B

65.C

66.B题目给出的程序分为两个部分:主函数main和函数fun。main函数给出了整型变量a,b的初始值,并将整型变量a,b作为fun的实参。fun函数的功能是计算s的值并输出。对于整型变量,运算符“/”的作用是求出两个数除法所得商的整数部分。s=a*(b/4),a的初始值为16,b的初始值为10,b/4的结果为2,a*2得32。

67.D

68.D

69.A本题考查switchcase开关语句,default退出继续循环。当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时,没有case语句,则执行default,a=a+3=19,i=5不成立,循环结束。

70.B选项中如果x与Y的值相等那么取余时就会有除数为0的情况。C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。D)选项表达式本身就错误,不能给表达式赋值。所以,本题答案为B)。

71.C在数据库设计中,目前常用的数据模型主要有三种,分别是层次模型、网状模型和关系模型。

层次模型是数据库系统中最早出现的数据模型。我们通常把满足以下两个条件的数据模型称为层次模型。

(1)有且仅有一个结点无双亲,这个结点称为根结点。

(2)其他结点有且仅有一个双亲。

层次模型用树形结构来表示各实体与实体间的联系。实体是数据库中数据描述的对象,可以是一个人、一种商品等。在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间一对多的联系。记录就是描述实体的相关数据。

如果取消层次模型中的两个限制,即允许一个以上的结点无双亲,则每一个结点可以有多个父结点,便形成了网状。我们把网状表示实体之间联系的模型称为网状模型。

关系模型用表格形式表示实体类型及其实体间的联系。关系模型是目前最重要的一种模型,它是建立在严格的数学概念的基础上的,具有最坚实的

温馨提示

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

评论

0/150

提交评论