2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021年陕西省宝鸡市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有三个关系R,S和T如下:

其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并

2.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()

A.每个元素都有一个直接前件和直接后件

B.线性表中至少要有一个元素

C.表中诸元素的排列顺序必须是由小到大或由大到小

D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件

3.若有定义“inta=0,b=1,c=1;”,关于逻辑表达式“a++||b++&&c++”中各个部分的执行顺序,以下说法正确的是()。

A.先执行“b++”,再执行“c++”,最后执行“a++”

B.先执行“a++”,再执行“b++”,最后执行“c++”

C.先执行“c++”,再执行“b++”,最后执行“a++”

D.先执行“b++”,再执行“a++”,最后执行“c++”

4.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。A.5,5B.5,11C.11,11D.11,5

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

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

6.以下选项中不属于c语言的类型的是()。

A.unsignedlongint

B.longshort

C.unsignedint

D.signedshortint

7.

8.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是()。

A.当前结点的所在地址B.后继结点的所在地址C.空指针域D.空闲域

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

A.结构体变量中的成员可以是简单变量、数组或指针变量

B.不同结构体的成员名不能相同

C.结构体定义时,其成员的数据类型可以是本结构体类型

D.结构体定义时,类型不同的成员项之间可以用逗号隔开

10.程序运行后的输出结果是()。#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.1.1.3B.2.2.3C.1.2.3D.3.3.3

11.C语言中逻辑表达式的值为()

A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'

12.设线性链表中结点的结构为(data,next)。若想删除结点p的直接后继,则应执行下列()操作。

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

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

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

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

13.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);为使此程序段不陷入循环,从键盘输入的数据应该是()。A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

14.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

15.如有inta=11;则表达式(a++*1/3)的值是()。

A.0B.3C.4D.12

16.若有以下程序

则程序的输出结果是

A.China!B.toChina!C.meyoutoChina!D.youtoChina!

17.假定已建立以下链表结构,且指针p和q已指向如图所示的结点:

则以下选项中司将q所指结点从链表中删除并释放该结点的语句组是______。A.(*p).next=(*q).next;free(p);

B.p=q->next;free(q);

C.p=q;free(q);

D.p->next=q->next;free(q);

18.在C语言中,退格符是

A.\nB.\tC.\fD.\b

19.微型计算机的运算器、控制器及内存储器组合在一起,称之为()

A.ALUB.CPUC.MPUD.主机

20.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

二、2.填空题(20题)21.以下程序的功能是从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。请填空。

main()

{charstr[81],*sptr;

inti;

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

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]=【】;

sptr=str1

while(*sptr)putchar(*sptr【】);

}

22.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

23.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

24.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

25.若已知a=10,b=20,则表达式!a<b的值为【】。

26.若有以下函数定义,函数返回值的类型是【】。

fun(doubleA)

{returna*a*a;}

27.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和______。

28.注释说明了程序的功能,它分为【】注释和功能性注释。

29.以下程序的运行结果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

30.诊断和改正程序中错误的工作通常称为【】。

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

32.下面程序的输出是【】。

main()

{enumern{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

33.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。

FILE*myf;longf1;

myf=【】("test.t","rb");

fseek(myf,0,SEEKEND);

f1=ftell(myf);

fclose(myf);

printf("%d\n",f1)

34.若有程序

main()

{inti,j;

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

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

}

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

35.软件设计模块化的目的是______。

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

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

38.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

39.若有如下程序:

main()

{intx=20;

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

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

}

则程序运行后的输出结果是【】。

40.算法的复杂度主要包括时间复杂度和______复杂度。

三、1.选择题(20题)41.

有以下程序:

main

{intk=5;

while(--k)printf("%d",k-=3);

printf("\n");

}

执行后的输出结果是()。

A.1B.2C.4D.死循环

42.已知inta=6;则执行a+=a-=a*a;语句后,a的值为()。

A.36B.0C.-24D.-60

43.下面程序的输出结果为______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

44.

有以下程序:

main

{intx=102,y=012;

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

}

执行后输出结果是()。

A.10,01B.02,12C.102,10D.02,10

45.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

46.有以下定义#include<stdio.h>chara[10],*b=a;不能给数组a输入字符串的语句是()A.gets(a)B.gets(a[0])C.gets(&a[0]);D.gets(b);

47.以下定义语句中正确的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

48.当运行以下程序时,从键盘输入AhaMA(空格)Aha

#include

main()

{chars[80],c='a';

inti=0;

scanf("%s",s);

while(s[i]!='\n')

{if(s[i]==c)s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;}

puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

49.阅读如下程序段#include"stdio.h"main(){intx,a,b;scanf("%d",&x);a=b=x;for(;x!=0;){if(x<b)b=x;if(x>a)a=x;scanf("%d",&x);}printf("a=%d,b=%d\n",a,b);}

输入后输出结果是

A.a=7569,b=789B.a=5,b=365C.a=7,b=789D.a=7569,b=5

50.下列不属于算法特性的是

A.确定性B.可行性C.有输出D.无穷性

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

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

52.在标准C语言中,下列程序的输出结果为______。main(){printf("%e",123.456);}

A.123.456B.123.4560C.1.23456e2D.1.234560e+002

53.在关系数据库中,用来表示实体之间联系的是

A.树形结构B.网状结构C.线性表D.二维表

54.若已定义:inta=25,b=14,c=19;执行以下三目运算符(?:)所构成的语句:a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);输出结果是()。

A.***a=25,b=13,c=19

B.***a=26,b=14,c=19

C.###a=25,b=13,c=19

D.###a=26,b=14,c=19

55.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

56.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务

57.循环链表的主要优点是______。

A.不再需要头指针了

B.己知某个结点的位置后,能够容易找到它的直接前驱

C.在进行插入、删除运算时,能更好地保证链表不断开

D.从表中任一结点出发都能扫描到整个链表

58.下列选项中不属于结构化程序设计方法的是()。

A.自顶向下B.逐步求精C.模块化D.可复用

59.下面语句的输出结果是______。printf("/od\n",strlen("\t\"\065\xff\n"))

A.14B.8C.5D.输出项不合法,无正常输出

60.结构化程序设计主要强调的是______。

A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性

四、选择题(20题)61.下列关于栈叙述正确的是()。A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先能被胍除

62.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

63.有定义语句:“int*p[4];”,以下选项中与此语句等价的是()。

A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];

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

#include<stdio.h>

#definePT5.5

#defineS(x)PT*x*X

main

{inta=1,b=2:

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

}

A.49.5B.9.5C.22.0D.45.0

65.以下关于C语言的叙述中,不正确的是

A.C语言中的注释可以夹在变量名或关键字的中间

B.C语言中使用变量必须是先定义后使用

C.C语言表达式运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

66.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.log2nB.n2C.nD.n+1

67.

68.下列程序的运行结果是()。

A.6B.7C.8D.9

69.

70.

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

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是-种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

72.以下程序的输出结果是()。

#definef(x)x*x

main

{inta=6,b=2,c;

c=f(a)/f(b);

printf(“%d\n”,c);

}

A.9B.6C.36D.18

73.有以下程序:

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

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

74.有以下程序:

#include<stdiO.h>

main()

{FILE*fp;

intk,n,i,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);

fclose(fp);

fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);

fclose(fp);

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

}

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

A.1,2

B.3,4

C.5,6

D.123,456

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

A.可以给指针变量赋一个整数作为地址值

B.函数可以返回地址值

C.改变函数形参的值,不会改变对应实参的值

D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、

76.有以下程序:

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

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

77.若已定义inta=25,b=14,c=19;以下三目运算符(?:)所构成的语句执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19

C.###a=25,b=13,c=19D.###a=26,b=14,c=19

78.在面向对象方法中,不属于“对象”基本特点的是A.一致性B.分类性C.多态性D.标识唯一性

79.有以下程序:

程序的运行结果是()。

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

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是计算并输出h以内的素数之和。h由主函数传给proc()函数。若h的值为80,则函数的值为791。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是将a中的十位数和个位数依次放在变量c的百位和个位上,b中的十位数和个位数依次放在变量c的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

参考答案

1.D

2.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。

3.BC语言中运算符有优先级和结合性。自增、自减运算符的优先级高于逻辑运算符,逻辑运算符中逻辑与“&&”的优先级比逻辑或“||”高,逻辑运算符的结合性自左向右。所以题干中表达式等价于“(a++)||((b++)&&(c++))”。运算顺序为:首先执行“a++”,再执行“b++”,最后执行“C++”。故本题答案为B选项。

4.B子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第l次调用主函数后,局部静态变量m和i的值为5和3,第l次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

5.C

6.Bc语言中整型变量分为4种,基本型int,短整型shortint,长整型longint和无符号型(unsignedint、un-signedshort、unsignedlong)。因此B)选项不属于c语言的类型。

7.A

8.B

9.A结构体变量中的成员可以是简单变量、数组、指针变量或者结构体变量,选项A正确;不同结构体成员名可以相同,选项B错误;结构体定义时,其成员的数据类型不能是本结构体类型,选项C错误;结构体定义时,类型不同的成员项之间使用分号隔开,选项D错误。本题答案为A选项。

10.D

11.A

12.A

13.D本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t=t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。

14.B

15.B

16.D该程序首先定义*a和b[],并进行初始化。主函数中通过外层for循环语句,遍历字符数组b[],并且将符合if条件语句的字符赋给数组p;for内层循环语句,遍历字符数组a[]。再将符合if条件语句的结果输出。因此D选项正确。

17.D解析:本题题面要求删除q所指结点并释放该结点,而选项A中虽然是删除了q所指鲒点,但并未释放q这个结点,而释放的是p结点,所以选项A错误;选项B是将q的下一结点的地址赋值给指针变量p,这意味着p原来的成员变量内容被q的下一结点的成员变量内容所代替,即原p结点也被删除了,所以选项B错误;选项C相当于将q的所有成员变量内容代替了p的所有成员变量内容,即p结点被删除,所以错误;选项D是将q的下—结点的地址赋值给p的成员next\u3000(成员next用于存放一结点的地址),使得p的next成员不再指向q,而是指向q的下一结点,相当于删除了q这个结点,同叫用free函数正确释放了q这一结点,所以选项D正确。

18.D解析:在C++语言中退格符表示为\\b退格。注意:其他转义字符的意义:\\n表示回车换行,\\t表示横向跳到下一制表位置,\\v表示竖向跳格,\\r表示回车,\\f表示走纸换页,\\\\表示反斜线符,\\a表示鸣铃,\\ddd1~3位表示八进制数所代表的字符,\\xhh1~2位表示十六进制数所代表的字符。

19.D

20.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。

21.\0'++

22.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

23.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

24.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:

p(double*)malloc(sizeof(double));

25.11解析:计算表达式!a<b,先计算!a,因a的值为10,!a的值为0,而关系表达式0<20为真,所以表达式!a<b的值为1。

26.int类型int类型

27.事务分析设计事务分析设计解析:典型的数据流图有两种,即变换型和事务型。按照这两种类型把设计方法分为两类,即变换分析设计和事务分析设计。

28.序言性序言性解析:注释一般分为序言性注释和功能性注释。

29.k=5k=5解析:本题主要考查了函数的递归调用方法。g=0或g=1或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。

30.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

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

32.DDBBCCDDBBCC解析:c语言对枚举的定义规定定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。

33.fopenfopen解析:函数fopen的原型为FILE*fopen(char*filename,char*mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为intfseek(FILE*fp,longoffset,intbase),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准,offset为位移量的位置;函数ftell的原型为longftell(FILE*fp),功能为返回fp所指向的文件中当前的读写位置;函数fclose的原型为intfclose(FILE*fp),功能为关闭fp所指的文件,释放文件缓冲区。

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

35.降低复杂性降低复杂性

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

37.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。

38.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。

39.1515解析:本题首先定义了一个变量x并初始化为20。然后第一个if语句判断x是否>10,结果为真,则执行后面的输出语句,输出结果是赋值表达式X-=5的值,所以输出15,同时x的值也变成15。第二个if语句再判断x是否>15时条件为假,结束程序。所以程序运行后的输出结果是15。

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

41.A解析:因为在while循环的循环条件中,一运算符是前缀形式,所以表达式—k的值是k自减之后的值。程序开始时,将k的值初始化为5,然后进入while循环,因为—k的值为4(非零),所以执行循环体输出k-=3的值1,此时k的值也变为1。第2次执行循环条件,—k的值为0,所以循环结束。因此最后输出的结果是1,故应该选择A。

42.D解析:此题考查的是赋值表达式。执行语句“a+=a-=a*a;”时,首先执行a=a-a*a=-30,然后执行a=a+a=-60。

43.B解析:strcpy(str1,s1):作用是将字符串s1拷贝到字符数组str1中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,sir,strcat(p1,p2)函数的作用是将字符串数组p2接到字符串p1的后面,结果放在字符数组p1中,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。

44.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。

45.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

46.B解析:本题考核的知识点是函数gets()的应用。函数gets()的调用形式为gets(str_adr);str_adr是存放字符串的起始地址。可以是字符数组名、字符指针或字符数组元素的地址。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。换行符读入后,不作为字符串的内容。本题中定义一个长度为10的字符数组,和一个指针变量b,并且通过赋值让它指向数组a;选项A。选项B。选项C和选项D中只有选项B中gets函数的参数a[0]不能表示数组a的首地址,故选项B不正确。所以,4个选项中选项B符合题意。

47.C解析:选项A中定义两个变量a和b,并赋初值,C语言中可以同时定义多个变量,但变量之间必须用“,”隔开,显然,选项A中少了一个逗号“,”,故选项A不正确;选项B中定义变量时用了连续的赋值语句,这在定义变量是不正确的,故选项B不正确,选项D定义一个指针,然后定义了一个变量并让这个变量的初值为该指针变量,显然这这时的指针变量还没初始化就被赋值给变量,是不对的,故选项D不正确,所以,4个选项中选项C符合题意。

48.A解析:本题主要考查的知识点是大写字母比它对应的小写字母ASCII码值小32,并且字符可以看作整数进行算术运算等操作。

49.D解析:本题的功能是求出输入序列的最大值和最小值,并打印输出。

50.D解析:一个算法必须具有5个特性,即有穷性、确定性、可行性、有输入、有输出。其中有穷性是指算法必须总是在执行完有穷步之后结束,而且每步都在有穷时间内完成。

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

52.D

53.D解析:数据库中的关系模型是采用二维表来表示实体与实体之间的联系。

54.C解析:此题综合考查多种运算符的使用:首先计算表达式a<=25&&b--<=2&&c的值,很容易看出b--<=2的值为假,因此表达式为假;根据三目运算的特点,由于表达式为假,所以应该执行printf('###a=%d,b=%d,c=%d\\n',a,b,c);这时a的值依然为25,b的值经过b--运算后变为13,而c的值仍为19。

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

56.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。

57.D

58.D解析:20世纪70年代以来,提出了许多软件设计方法,主要有①逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;②自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;⑧模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是面向对象程序设计的一个优点。

59.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制数或在“\\”后跟字母x及1~2位十六进制数,以此来代表一个特定的字符。

60.B解析:采用结构化编程方法的好处主要在于:一是便于控制、降低程序的复杂性,因此便于编写程序。二是程序清晰易读,可理解性好。因此,结构化程序设计主要强调的是程序的易读性,而不是程序的规模、程序的执行效率和程序的可移植性。

61.A栈是先进后出的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除,所以本题答案为A)。

62.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。

63.D本题int*p[4]的作用是声明一个指针数组,每个元素都是int*型指针。

64.B本题考查函数调用,由于a+b没有被括起来,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故选择B。

65.CA选项指出“C语言中的注释可以夹在变量名或关键字的中间”,该选项是正确的。通常采用/*.....*/作为C语言里的注释符,注释符之间的内容是方便他人理解程序而写的,对编译和运行不起作用。注释可以在程序的任何位置。

B选项“C语言中使用变量必须是先定义后使用”,该选项是正确的。变量先定义后使用是编程语言的语法规则。这样可以让编译器首先知道该定义变量的类型,可以事先为该变量安排好存储空间,不至于最后编译失败。如果预先没有定义,编译器会因为不清楚该变量的类型而导致随意分配内存空间,这样可能导致空间分配过大了浪费或因为空间过小无法存储数据。

C选项“C语言表达式运算符两侧的运算数类型必须一致”,该选项是错误的。C语言允许整型、实型、字符型数据间进行混合运算。在运算时,不同类型的数据要先转换成同一类型,然后进行运算。

D选项“C语

温馨提示

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

评论

0/150

提交评论