2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年广东省江门市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

2.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba

3.若有定义“inta,b,c;”,想通过语句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分别赋给变量a、b、c,则正确的键盘输入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

4.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

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

D.scanf("%x%o%6.2f",&x,&y,&z);

5.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是

A.a^bB.a|bC.a&bD.a<<4

6.能在O(1)时间内访问线性表的第i个元素的结构是()

A.顺序表B.单链表C.单向循环链表D.双向链表

7.能正确表示x>=3或者x<1的关系表达式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

8.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

9.有以下程序:#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}程序运行后的输出结果是()。A.2B.4C.6D.8

10.在一个C语言源程序文件中所定义的全局变量,其作用域为()。

A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围

11.设有以下语句:inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A.6B.7C.8D.9

12.若有以下语句:typedefstructS{intg;charh;}T;以下叙述中正确的是()。A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

13.运行下列程序,若从键盘输入字符“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

14.以下对于C语言的描述中,正确的是:()

A.C语言调用函数时,值传递方式只能将实参的值传给形参,形参的值不能传递给实参

B.C语言中函数既可以嵌套定义,也可以递归调用

C.函数必须有返回值

D.C程序中有调用关系的所有函数必须放在同一源程序文件中

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

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

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

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

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

16.以下程序的输出结果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.输出值不定

17.允许对队列进行的操作有()。

A.对队列中的元素排序B.取出最近进队的元素C.在队头元素之前插入元素D.删除队头元素

18.队列的“先进先出”特性是指()。

A.最早插入队列中的元素总是最后被删除

B.当同时进行插入、删除操作时,总是插入操作优先

C.每当有删除操作时,总是要先做一次插入操作

D.每次从队列中删除的总是最早插入的元素

19.

20.以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)()。

A.print[("%c\n",a-32);

B.print[("%d\n",A);

C.printf("%c\n",65);

D.printf("%c\n",B-1);

二、2.填空题(20题)21.下列程序段的运行结果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

22.以下程序的输出结果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}

23.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

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

main()

{unsigneda=0112,x;

x=a>>3;

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

}

25.度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为______。

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

#include<stdio.h>

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

27.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

28.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

29.设一棵二叉树的中序遍历结果为ABCDEFG,前序遍历结果为DBACFEG,则后序遍历结果为【】。

30.下列的for语句的循环次数为______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

31.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。

32.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。

33.下面程序的功能是从键盘输入一行字符,统计有多少个单词,单词间用空格分隔。补充所缺语句。

#include<stdio.h>

main()

{charss[80],c1,c2='';

inti=0,num=0;

gets(s);

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

{c1=s[i];

if(i==0)c2='';

elsec2=s[i-1];

if(【】)num++;

i++;

}

printf("Thereare%dwords,\n",num);

}

34.数据结构包括数据的逻辑结构、数据的【】以及列数据的操作运算。

35.与结构化需求分析方法相对应的是【】方法。

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

main()

{inti=010,j=10;

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

37.数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。

38.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

clrscr();

fun(a,10,&k);

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

39.【】是数据库设计的核心。

40.以下程序的输出结果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}

三、1.选择题(20题)41.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是______。

A.EOFB.-1C.非零值D.NULL

42.下列4组选项中,均不是C语言关键字的选项是______。

A.definesumtype

B.getccharprintf

C.includescanfcase

D.whilegopow

43.以下循环体的执行次数是______。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i)}

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

44.设有以下语句()structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0]则表达式()的值是6。

A.p++->nB.p->n++C.(*P).n++D.++p->n

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

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

46.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.没有错B.第1行有错C.第6行有错D.第7行有错

47.下列程序的运行结果为

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

48.能正确表示C语言的字符常量的是______。

A.'\0x41'B.AC.'\0'D.\0

49.以下选项中合法的字符常量是()。

A.“B”B.‘\O1O’C.68D.D

50.设intx=1,y=1;表达式(!x||y--)的值是()。

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

51.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A.159B.147C.357D.369

52.有以下程序main(){chara[]="abcdefg",b[10]="abedefg";pfintf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是

A.77B.88C.810D.1010

53.下面程序输出的结果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}

A.159B.753C.357D.591

54.变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

55.设只是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.RX×SC.R∩SD.R∪S

56.以下叙述中错误的是A.计算机不能直接执行用C语言编写的源程序

B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D.后缀为.obj和.exe的二进制文件都可以直接运行

57.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的()

A.连接码B.关系码C.外码D.候选码

58.如下程序的输出结果是

#include<stdio.h>

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

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

A.69825B.63825C.6385D.693825

59.设计软件结构是在软件生命周期的()。

A.软件定义期B.软件开发期C.软件维护期D.以上3个都不是

60.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的输出结果是()。

A.12B.123C.1234D.1

四、选择题(20题)61.

62.以下关于typedef的叙述错误的是()。

A.用typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代表

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

63.

64.

65.

66.有以下程序:

#include<stdio.h>

voidexch(intt[])

{t[0]=t[s];}

main()

{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;

while(i<=4){exch(&x[i]);i++;}

for(i=0;i<5;i++)printf("%dl"x[i]);

printf("\n");

}

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

A.246810

B.13579

C.12345

D.678910

67.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是()。

A.\bB.\tC.\vD.\f

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

A.32B.24C.5D.40

69.有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是()。A.A.235B.0235C.02356D.2356

70.若k是int类型变量,且有以下for语句:

for(k=-1;k<O;k++)printf("****\n");

下面关于语句执行情况的叙述中正确的是()。、

A.循环体执行一次

B.循环体执行两次

C.循环体一次也不执行

D.构成无限循环‘

71.下列叙述中正确的是()。

A.数据的逻辑结构与存储结构是一一对应的

B.算法的时间复杂度与空间复杂度一定相关

C.算法的效率只与问题的规模有关,而与数据的存储结构无关

D.算法的时间复杂度是指执行算法所需要的计算工作量

72.有以下程序:

#include<stdio.h>

main()

{inta=7;

while(a--);

print[("%d\n",a);

}

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

A.-l

B.0

C.1

D.7

73.

74.设有定义:

75.有以下程序

#include<stdio.h>

main()

{chara[3O],b[30];

scanf("%S",a);

gets(b);

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

}

程序运行时若输入:

howareyou?Iamfine<回车>

则输出结果是()。

A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

76.当变量c的值不为2、4、6时,值为“真”的表达式是()。

77.有以下程序

78.下列函数的功能是()。

A.将a所指字符串赋给b所指空间

B.使指针b指向a所指字符串

C.将a所指字符串和b所指字符串进行比较

D.检查a和b所指字符串中是否有’\0

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(),该函数的功能是将数组下三角元素中的值全部置成0。如a数组中的值为注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N]){}voidmain(){ inta[N][N],i,j; system(“CLS”); printf(“****Thearray****\n”); for(i=0;i<n;i++)<p=""></n;i++)<>/*产生一个随机的5×5矩阵*/ { for(j=0;j<=""p=""> { a[i][j]=rand()%10; printf(“%4d”,a[i][j]); } printf(“\n”); } fun(a); printf(“TheResult\n”); for(i=0;i<n;i++)<p=""></n;i++)<> { for(j=0;j<=""p=""> printf(“%4d”,a[i][j]); printf(“\n”); }}

参考答案

1.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。

2.C本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。

3.B题干中,格式输入函数scanf的格式控制字符串中,第1个%d与第2个%d之间有一个逗号。所以输入的第1个整数和第2个整数之间必须要有一个逗号,选项C、D错误;输入的第2个整数和第3个整数之间需要间隔符,可以使用<Tab>键、<Enter>键、空格符。故本题答案为B选项。

4.BB项的格式应该为scanf("%1d*%d%1f",&x,&y,&z);

5.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。

6.A

7.C

8.BC语言中,char型变量的值是其对应字符的ASCII值,可以做比较运算。由于小写字母的ASCII值按字母表的顺序连续递增,因此判断char型变量c是不是小写字母时,判断c的ASCII值是否在’a’和’z’之间,即(c>=’a’)&&(c<=’z’)。本题答案为B选项。

9.D本题考查运算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。

10.D

\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。

\n

11.D本题考查两个知识点,按位异或左移把b左移2位化成二进制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故选择D。

12.B解析:语句typedefstructS{intg;charh;}T的作用是用T作为struetS{intg;charh;)的简写,所以选B。

13.C

\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。

14.A

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

16.A当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故选择A选项。

17.D

18.D

19.A

20.B在C语言中%d表示输出整型数值,所以答案为B。

21.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

22.3691236912解析:本题考查最基本的for循环。for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3,即每次a的值增加3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。

23.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。

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

25.4545解析:对于长度为N的线性表,在最坏情况下(即线性表中元素现在的顺序与目标顺序正好相反),冒泡排序需要经过N/2遍的从前往后的扫描和N/2遍的从后往前的扫描,需要的比较次数为N(N-1)/2。

26.132132解析:在程序中,i从9开始循环,当i=9时,执行case0后的语句m++;n++;此时m=1,n=1,然后执行break,跳出循环;当i=10时,执行detault后的语句k++;n++;此时k=1,n=2;当i=11时,再执行default后的语句,k=2,n=3。此时,m=1,n=3,k=2。输出结果为132。

27.-1*sn-1*sn解析:根据公式可知,第一处应填-1;由于计算结果要通过形参指针sn传回,所以第二处应填*sn。

28.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

29.ACBEGFDACBEGFD解析:①确定根节点。在前序遍历中,首先防问根结点,因此可以确定前序序列DBACFEG中的第一个结点D为二叉树的根结点。

②划分左子树和右子树。在中序遍历中,访问根结点的次序为居中,首先访问访问左子树上的结点,最后访问右子树上的结点,可知,在中序序列ABCDEFG中,以根结点D为分界线,子序列ABC在左子树中,子序列EFG在右子树中。如下图所示。

③确定左子树的结构。对于左子树ABC,位于前序序列最前面的一个结点为了树的根结点,根据前序遍历结果,B为该了树的根结点,中序序列中位于该根结点前面的结点构成左子树上的结点子序列,位于该根结点后面的结点构成右子树上的结点子序列,所以A为该左子树的左结点,C为右结点。现在可确定左子树结构如下:

④确定右子树的结构。同理,可知右子树的结构。

本二叉树恢复的结果如图所示。

根据后序遍历的原则,该二叉树后序遍历的结果为ACBEGFD。

30.66解析:分析程序可知,每循环一次,x的值加1,然后检测循环控制条件(y!=19)&&(x<7),因y的值不变,故满足x<7时循环6次。

31.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

32.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。

33.c1!==''&&c2==''

34.存储结构存储结构解析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

35.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

36.8108,10解析:以0开头的是八进制数,输出时将其转换成十进制数。

37.数据存储数据存储

38.for(i=0;i<t;i++)0for(i=0;i<t;i++)\r\n0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。

39.数据模型数据模型

40.1515解析:在函数fun(intx)中定义了局部静态整形变量t,并初始化为0。这个函数的返回值为t+x。所以在主函数的for循环中,5次连续调用fun(i),实现了从1到5连续数字的相加运算。因而最后结果等于15。

41.C

42.A解析:本题各选项中的关键字只有三个:char,case,while。

43.C解析:第一次循环时1<=j+1=1+1=2值为真,执行完循环后i=i+2=0+2-2,j=j-1=1-1=0,循环条件为假,循环结束,所以循环体仅执行一次。

44.D

45.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

46.B解析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第1行文件包含命令是错误的。

47.A解析:本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。

48.C解析:单引号中,大写或小写字母(只限一个)代表不同的字符常量,不能用双引号:单引号中,一个反斜线后跟一个指定的字符,表示一个特定的ASCⅡ字符,且反斜线后的八进制数可不用。开头,其后的十六进制数只能以小写的x开头。

49.B解析:选项A中是字符串的表示方法,选项B是一个转义字符,选项C是整型常量,选项D不是常量的表示方法。

50.B

51.C解析:题中通过二维数组的行、列下标来定位元素的位置从而实现元素的引用。注意:二维数组和数组元素的址。

52.C解析:本题小定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdefg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8。定义时b的长度定义为10,故b的长度为10,因此最后通过函数sizeof()求得的数组a和数组b的长度分别为8和10。

53.B解析:本题用循环的方法考查对数组概念的掌握。首先,当i=0时,数组中的位置是a[2][0]=7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为了的选项只有B)。本题执行第2次循环时,i的值为1,则printf函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

54.D解析:指针变量是通过指向变量地址来指定变量值的。这里只要取m的地址赋给p,即可实现使p为指向m的指针变量。

55.B解析:关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元S只能做笛卡尔积运算。

56.D解析:一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj),目标程序不可以直接运行,它要和库函数或其它目标程序连接成可执行文件(后缀名为.exe)后方可运行。故本题答案为D)。

57.DD)【解析】在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。

58.C解析:考查通过指针引用字符串数组中的元素。通过行指针p来实现数组元素的引用。用格式说明符%s进行整串输入与输出。

59.BB。【解析】设计软件结构,是在软件概要设计阶段进行的,而概要设计属于软件开发期。

60.C解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。

61.A

62.A解析:本题考查的重点是typedef的理解运用。C语言允许通过typedef为数据类型定义新名字,但是,它并非是生成新的数据类型,因此选项A是错误的。

63.B

64.C

65.D

66.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。

67.C本题考查C语言转义字符的含义。我们归类了常用的转义字符及其含义,如下,根据这些不难选出正确答案

转义字符的意义:\n回车换行、\t横向跳到下一制表位置、\v竖向跳格、\b退格、\r回车、\f走纸换页、\\反斜线符、“\”\′单引号符、\\ddd1~3位八进制数所代表的字符、\xhh1~2位十六进制数所代表的字符。

68.A本题考查了自增运算符。自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量

温馨提示

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

评论

0/150

提交评论