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

下载本文档

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

文档简介

2021年四川省泸州市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合

2.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序运行后的输出结果是A.A.0B.1C.2D.3

3.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

4.有以下程序: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

5.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。

A.运行后报错B.66C.611D.510

6.若有以下说明:chars1[]={"tree"},s2[]={"flower"};,则以下对数组元素或数组的输出语句中,正确的是()。

A.printf("%s%s",s1[5],s2[7]);

B.printf("%c%c",s1,s2);

C.puts(s1);puts(s2);

D.puts(s1,s2);

7.

8.若有以下定义和语句:chars[10]="abcd!",*s2="\nl23\\";Drintf("%d%d\n",strlen(sl),strlen(s2));则输出结果是()。A.55B.105C.107D.58

9.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

10.下面程序段的输出结果是______。char*s="abcde";s+=2;printf("%d",s);

A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果

11.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

12.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

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

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

14.字符(char)型数据在微内存中的存储形式是______。

A.反码B.补码C.EBCDIC码D.ASCII码

15.下列程序段输出的字符串长度为()。printf("\\aaa\'ccc\bddd\'");

A.11B.12C.13D.17

16.

17.若有运算符:>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()。

A.*=<<>%sizeof

B.<<*=>%sizeof

C.%=><<sizeof%

D.*=><<%sizeof

18.软件测试的目的是()。

A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误

19.具有20个结点的二叉树,其深度最多为_______。

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

20.以下符号中不能作为标识符的是()。

A._256B.r32C.intD.e231

二、2.填空题(20题)21.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

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

22.下面程序中函数creat用于建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。将程序补充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

23.下面的程序用来统计文件中字符的个数。请填空。

#include<stdio.h>

main()

{FILE*fP;

longnum=0;

if((fp=fopen("fname.dat","r"))==NULL)

{printf("Can'topenfile!\n");sxit(0);}

while【】

{fgetc(fp);num++;}

printr("num=%d\n",num);

fclose(fp);

}

24.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是【】。

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

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

#include<stdio,h>

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+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

28.下面程序的功能:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanquage",t;

inti,j,k;

k=strlen(A);

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

for(j=i+2;j<k;j+=2)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(A);

printf("\n");

}

29.下列程序运行后的输出结果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

运行程序,输入HOWAREYOU。

30.面向对象的模型中,最基本的概念是对象和______。

31.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

32.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

33.若线性表的长度经常发生变化,那么该线性表应采用的存储结构是【】。

34.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能构成三角形*/

elseprintf("NO\n");/*abc不能构成三角形*/

}

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

#include<stdio.h>

#defineMAX_COUNT4

voidfun()

main()

{intcount;

for(count=1;count<=MAX_COUNT;coun++)fun();

}

voidfun()

{staicinti;

i+=2;

printf(”%d,i);

}

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

main()

{unsignedinta;

【】;

scanf("%O",&a);

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

}

unsignedintgetbits(value)

unsignedintvalue;

{unstgnedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

37.函数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;

}

38.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

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

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

40.以下程序把从终端读入的20个整数以二进制方式写到一个名为d.dat的新文件中,请填空。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

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

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

三、1.选择题(20题)41.若有如下说明,则______的叙述是正确的。structst{inta;intb[2];}a;

A.结构体变量a与结构体成员a同名,定义是非法的

B.程序只在执行到该定义时才为结构体st分配存储单元

C.程序运行时为结构体st分配6个字节存储单元

D.类型名structst可以通过extern关键字提前引用(即引用在前,说明在后)

42.下面程序的运行结果是#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=S;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&aa[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bC";delch(item);printf("\

A.abcB.34C.a34D.a34bc

43.有以下程序:#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是()。

A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B.由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3

C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3

D.由于p和q数组中都没有字符串结束符,故长度都不能确定

44.有以下程序:#include<stdio.h>inta=2;intf(int*a){return(*a)++;}main(){ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s)}执行后的输出结果是()。

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

45.设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是A.c1^c2B.c1&c2C.~c2D.c1|c2

46.下面程序的输出是________。main(){intx=3,y=6,a=0;while(x++!=(y=|)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,A);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

47.在数据处理中,其处理的最小单位是()。

A.数据B.数据项C.数据结构D.数据元素

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

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

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

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

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

49.若有如下程序;main(){intm=-i;printf("%d,%u,%o,%X",m,m,m,m);}则程序运行后的输出结果是()。

A.-1,65535,177777,ffff

B.-1,-1,177777,fffe

C.-1,1,177777,ffff

D.-1,65535,177776,fffe

50.如果进栈序列为A,B,C,D,则可能的出栈序列是()

A.C,A,D,BB.B,D,C,AC.C,D,A,BD.任意顺序

51.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

52.下列程序的输出结果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*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=p[i][j]-'0';printf("%d",s);}}

A.6357B.6135C.1357D.691357

53.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示a[1]地址的表达式是()。

A.p+1B.a+1C.a++D.#NAME?

54.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

55.若有下列说明语句int(*p)();则标识符p代表的是()

A.一个用于指向函数的指针变量,函数返回值的类型为int型

B.一个带回值类型为整型的函数名

C.一个用于指向整型数据的指针变量

D.一个带回值类型为指针类型的函数名

56.C语言中while和do-while循环的主要区别是

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件更严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

57.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()。A.调用语句B.命令C.口令D.消息

58.下述程序段的输出结果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);

A.11,10B.11,11C.10,10D.10,11

59.下列程序的输出结果是______。intfun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%d\n",c,d);}

A.50,30B.30,50C.80,-20D.80,20

60.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束

B.程序的执行总是从程序的第一个函数开始,在main函数结束

C.程序的执行总是从main函数开始,在程序的最后一个函数中结束

D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束

四、选择题(20题)61.设x=015,则x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000

62.

63.

64.

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

A.用typedef可以增加新类型

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

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

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

66.

67.C语言中,合法的字符型常数是_________。

A.‘A’B.“A”C.65D.A

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

A.每个C语言程序文件中都必须要有一个main(.函数

B.在c语言程序中main(.函数的位置是固定的

C.c语言程序中所有函数之间都可以相互调用,与函数所在位置无关

D.在c语言程序的函数中不能定义另一个函数

69.两个或两个以上模块之间联系的紧密程度称为()。

A.耦合性B.内聚性C.复杂性D.数据传输特性

70.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。

structnode

{hardata;

structnode*next;)*P,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

C.q-:>next=r->next;r->next=q;p->next=r;

D.q-:>next=q;p->next=r;q->next=r->next;

71.以下函数按每行8个输出数组中的数据:

下划线处应填入的语句是()。

A.

B.

C.

D.

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

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

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

73.

74.

75.有以下程序:

76.

77.

78.

能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)

B.(x>=1)

C.

D.(x<2=10)

E.

F.(x>=100)

G.

H.(x<=1l0)

I.(gt;=1)&&(x<=10)

J.

K.(gt;=100)&&(x<=110)

79.以下程序的输出结果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

80.若有如下说明和定义

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

则sizeof(structtest)的值是

A.12B.16

C.14D.9

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算n!。例如,若输人:6,则输出:6!=720.000000。

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

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

试题程序:

六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:将str所指字符串中ASCⅡ值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若str所指字符串中的内容为aBcdef9789,其中字符8的ASCⅡ码值为偶数……字符8的ASCⅡ码值为偶数……都应当删除,其他依此类推。最后t所指的数组中的内容应是ace979。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。

2.C解析:本题考察运算符和选择语句,执行到if语句时,--a为0,所以不会执行后面的语句,但是会执行elseif后面的语句,所以执行后,b=2,选项C)正确。

3.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。

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

5.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

6.C

7.A

8.A\\n和\\\\分别为转义字符,各占据一个字符的位置。

9.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。

10.C解析:语句s+=2;使指针指向字符'c',此时s中保存的便是字符'c'的地址。

11.D解析:本题考查指向字符串指针的运算方法。执行p=s+1后,指针变量p就指向字符串中的第二个字符“B”,然后输出字符串“BCD”并换行;下面继续执行循环语句,指针变量p指向下一个字符“C”,输出字符串“CD”,最后一次循环,p指向字符“D”,输出字符串“D”。

12.D

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

14.D解析:将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。

15.C解析:转义字符有1个\\\\、2个\\'、1个\\b,普通字符有3个a、3个c、3个d,共13个字符。

16.C

17.D解析:本题主要考查算术运算的优先级。顺序如下:

[*]

注:*=、>、<<、%、sizeof的优先级依次递增。

18.D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D)。

19.D

20.C

21.zyzXyzzyzXyz解析:本题考查字符型指针变量的应用。程序中字符指针变量ps指向字符串'xyz',while循环语句的作用使ps指向字符串结尾,for循环的执行过程如下。

第一次循环:ps指向字符串'z',输出z。

第二次循环:ps指向字符串'yz',输出yz。

第三次循环:ps指向字符串'xyz',输出xyz。

22.(structlist*)(structlist*)return(h)

23.(!feof(fp))或feof(fp):=0(!feof(fp))或feof(fp):=0

24.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整数x的绝对值大于5,则x大于5或x小于-5,用C语言表示即为:x>5||x<-5或者abs(x)>5。

25.77解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&a,4,2)调用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括号里的判断为假,递归结束,执行其后的*a+=k;语句此时x=x+k=0+4=4,回退到上一层调用函数sub(&x,4,2)中,执行后面的语句,x=x+k=4+2=6,再回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。

26.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。

27.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。

28.a[j]<a[i]a[j]<a[i]解析:本题考查排序算法,题目中通过双循环嵌套来实现,外层循环跳出待排序的元素,内层循环具体实现a[i]到a[k-2]之间偶数下标元素的排序,每次将最小的放在a[i]中。所以空中填a[j]<a[i]。

29.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回了'\\0\\,s数组也就确定了,后面的输入就不再读入数组s中。

30.类类

31.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。

32.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

33.链式存储结构链式存储结构

34.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的条件是两边之和大于第三边。要用'&&'指令连接三个条件,表示三个条件都要满足。

35.2468(若字符间有空格扣1分)2468(若字符间有空格扣1分)

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

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

38.概念(或概念级)概念(或概念级)

39.AB

40."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中写数据,所以要打开文件bi.dat。fp是指向文件bi.dat的指针,是将数据写入fp指向的文件中去。

41.D解析:结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是a.a,变量a处于不同的“层次”上,系统完全能够分情。st是—个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。

42.B

43.A解析:在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。

44.C解析:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{inta=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义inta=2;使a成为全局变量,main函数中第二个s+=f(&a);语句中的a就是这个全局变量。

45.A解析:四种位操作,只有第c1^c2的结果返回都为0的二进制数,即为零。

46.D解析:注意的是X++中x值的引用时,这里应当是先引用,后自加,具体执行过程如下:

第一次while循环:条件为真,执行a=a+1=1此时,x的值已为4,判断y<x不成立,继续执行循环;第二次while循环:条件为假,此时x的值已为5,退出while循环,执行printf。

47.BB)【解析】数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。

48.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。

49.A解析:-1为带符号的整型数,在内存中的存放形式为1111111111111111。按带爷号的整型格式输出仍为-1;按无带符号的整数输出为65535(将1111111111111111转换为十进制数);按八进制数输出为177777(将1111111111111111转换为八进制数,方法为由低位到高位,每三位一组,用一个八进制数代替);按八进制数输出为ffff(将1111111111111111转换为十六进制数,方法为由低位到高位,每四位一组,用一个十六进制数代替)。

50.B【解析】栈的操作原则为后进先出。选项B)中出栈顺序可按“A进,8进,8出,C进,D进,D出,C出.A出”实现。

51.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

52.C解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]='1234',p[1]='5678',通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-\'0\'这条语句是将所要输出的字符转换成相应的十进制数。

53.C解析:本题考查数组地址的表示。选项C)中,数组名所表示的数组地址不能被重新赋值。

54.A本题考查的知识点是转义字符。题目中的关键是八进制101的十进制是多少.八进制的101转换为十进制为65,也就是字符A的ASCII。

55.A

56.A解析:while是先判断条件再执行语句;do-while则是先执行依次语句再判断条件从而决定是否继续再执行循环体中的语句,这正是二者主要区别。注意:3种循环结构的比较。

57.D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。

58.A

59.C

60.A解析:一

温馨提示

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

评论

0/150

提交评论