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

下载本文档

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

文档简介

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

一、单选题(20题)1.以下编码方法中,()属于熵编码。

A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码

2.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。

A.n-iB.n-i+1C.n-i-1D.i

3.设单链表中结点的结构为非空的循环单链表first的尾结点(由p所指向)满足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

4.下列程序的输出结果是()。

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

5.若有定义:Typedefint*T[10];T*a;则以下与上述定义中a类型完全相同的是()。

A.int*a[10];

B.int**a[10];

C.int*(*a)[10];

D.int*a[][10];

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

7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()

A.100B.40C.55D.80

8.在黑盒测试方法中,设计测试用例的主要根据是A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

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

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

10.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

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

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

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

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

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

12.有以下程序

#include<stdio.h>

structS

{inta,b;}data[2]={10,100,20,200};

main()

{struetSp=data[l];

printf(“%d\n”,++(P.a)):

}

程序运行后的输出结果是A.10B.11C.20D.21

13.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。程序运行后的输出结果是A.5670B.656667C.567D.ABC

14.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。

A.18,34,100B.24,34,92C.24,34,100D.18,34,92

15.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.不强调模拟现实世界中的算法而强调概念

16.

17.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序运行后的输出结果是()。A.197B.143C.33D.28

18.若以下选项中的变量已正确定义,则正确的赋值语句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

19.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()

20.在E-R图中,用来表示实体的图形是______。A.矩形B.椭圆形C.菱形D.三角形

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;}

i+=11;

a+=i;

}

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

}

22.有以下程序:

#include<string.h>

main(intargc,char*argv[])

{inti,len=0;

for(i=1;i<argc;i+=2)len+=strlen(argv[i]);

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

}

经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行:

exabcdefgh3k44

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

23.当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为()。

24.下列程序段的运行结果是______。

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

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

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

26.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

27.若输入12、3、2、5、7,则以下程序的运行结果为【】。

intmax,min;

voidmax_min_value();

main()

{inti,number[5];

printf("输入5个整数;\n");

for(i=0;i<5;i++)scanf("%d",&number[i]);

maxminvalue(number,5);

printf("max=%d,min=%d\n",max,min);

getch();

}

voidmax_min_value(array,n)

intarray[],n;

{int*p;

max=min=*array;

for(p=array+1;p<array+n;p++)

if(*p>max)max=*p;

elseif(*p<min)min=*p;

}

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

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

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

30.执行以下程序后,输出#号的个数是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

32.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

执行后输出结果是______。

33.已知函数isaplha(ch)的功能是判断变量ch是否是字母,若是,则该数值为1,否则为0。下面程序执行后的输出结果是()。

#include<ctype.h>

#include<string.h>

voidfun(chars[])

{inti,j;

for(i=0,j=0;s[i];i++)

s[j]='\0';

}

main()

{charss[80]="goodmorning";

fun(ss);

printf("%s",ss);

}

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

main()

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

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

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

}

35.若运行输入:3<回车>,则以下程序的输出结果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}

36.以下程序的输出结果是#include<stdio.h>structstiintx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&it[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}

37.阅读下面语句,则程序的执行结果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

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

38.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s<t时返回负值。请填空。

My_cmp(char*s,char*t)

{while(*s==*t)

{if(*s==′\0)return0;

++s;++t;

}return【】;

}

39.若输入Ihaveatest.#,则以下程序的运行结果为【】。

#include<stdio.h>

main()

{FILE*fp;

charstr[100],filename[10];

inti=0;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenthefile!\n");

exit(0);

}

getchar();

gets(str);

while(str[i]!='#')

{if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test","r");

fgets(str,strlen(str)+1,fp);

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

fclose(fp);

}

40.存储300个16×16点阵的汉字信息需要【】字节。

三、1.选择题(20题)41.下列程序的输出结果是()。

main()

{inta,b,d=25;

a:d/10%9;

b=a&&(-1);

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

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

42.算法的时间复杂度是指()。

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

43.设有定义:inta=2,b=3,c=4;,则下列选项中值为0的表达式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

44.以下叙述中正确的是______。A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

45.在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。

A.int**q;B.int(*q)();C.int*q;D.int*q();

46.下述程序的输出结果是()。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%1d\n",fun(3));}

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

47.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>,则输出结果为main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

48.支持数据库各种操作的软件系统叫做

A.数据库管理系统B.文件系统C.数据库系统D.操作系统

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

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=缸h;*p=getchar();

50.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出结果是______。

A.2B.3C.4D.编译时有错,无结果

51.以下程序的输出结果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

52.有以下程序:#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2]}STU;STUf(STUA){STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.namC);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",'f',95.0,92.0},d;d=f(C);pintf("%s,%c,%2.of.%2.of\n",,d.sex,d.score[0],&score[1]);}程序的运行结果是()。

A.Qian,f,95,92B.Qian,m,85,90C.Zhao,m,85,90D.Zhao,C95,92

53.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是()。

A.1313B.3234C.4234D.1234

54.请读程序:#includde<stdio.h>#include<string.>voidfun(char*s){chara[10];strcpy(a,"STRING");s=a;}main(){char*p;fun(p);print{("%s\n",p);}上面程序的输出结果(表示空格)()

A.STRINGB.STRINGC.STRINGD.不确定的值

55.下面程序的运行结果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}

A.正数B.负数C.零D.不确定的值

56.下列选项中不合法的十六进制数是()。

A.OxffB.OX11C.OxlgD.OXabc

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

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

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

59.下列叙述中正确的是_______。

A.线性表是线性结构B.栈与队列是非线性结构C.线性键表是非线性结构D.二叉树是线性结构

60.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

四、选择题(20题)61.下列关于信息系统的叙述中,错误的是()。

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

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

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

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

62.以下不正确的叙述是

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

D.从键盘输入数据时,对于整型变量,只能输入整型数值;对于实型变量,只能输入实型数值

63.分析以下程序的输出结果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

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

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

64.

65.若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是A.p=p->next;s->next=p;p->next=s;

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

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

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

66.

下述程序的输出结果是()。

#include<stdio.h>

voidmain

{intb[6]={2,4,6,8,10,12);

int*p=b,**q=&p;

printf("%d,",*(p++));

printf("%d,",**q);

}

A.4,4B.2,2C.4,5D.2,4

67.设有定义:,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。

68.有以下程序:

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

A.x=4B.X=8C.x=6D.x=12

69.

70.设有如下函数定义:

若执行调用语句“ll=fm(3);”,则函数tim总共被调用的次数是()。

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

71.在数据库设计中,将E—R图转换成关系数据模型的过程属于()。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

72.(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是()

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

73.以下不能正确定义二维数组的选项是()。

A.

B.

C.

D.

74.

75.

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

A.可以用关系运算符比较字符串的大小

B.空字符串不占用内存,其内存空间大小是0

C.两个连续的单引号是合法的字符常量

D.两个连续的双引号是合法的字符串常量

77.假定X和Y为double型,则表达式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

78.若有以下语句

79.有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。A.A.AfternoonB.fternoonC.MorningD.orning80.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。

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

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

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio。h>

#include<string.h>

voidproc(char*strl,char*str2,char*str){

inti,j;charch;

i=0;j=strleu(str2)-1;

//****found****

while(i>j)

{

ch=str2[i];str2[i]=str2[j];str2[j]=ch;

i++;j--;

}

while(*str1||*str2)

{

if(*str1){*str=*str1;str++;str1++;)

if(*str2){*str=*str2;str++;str2++;)

}

//****found****

*str=0:

}

voidmain

{

chars1[100],s2[100],t[200];

system("CLS");

printf("\nEnters1string:");

scanf("%s",sl);

printf("\nEnters2string:");

scanf("%s",s2);

proc(s1,s2,t);

printf("\nTheresultis:%s\n",t);

}六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。

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

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

试题程序:

参考答案

1.A

2.A

3.C

4.C本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[o]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。

5.B由题意可知,T是一个数组指针,即int*[],所以使用T*a定义,可知a属于int**[\n]类型。本题答案为B选项。

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

7.C

8.A【答案】:A

【知识点】:黑盒测试

【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。

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

10.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

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

12.D

13.C

14.D程序中S1和S2都是宏定义。S1(a+b)宏展开后的表达式为4*a+b+4*(a+b),即4*1+2+4*(1+2),结果为18;S2(a,b)宏展开后的表达式为4*(a)*(b)+b*a,即4*(1)*(2)+2*1,结果为10;S1(3)宏展开后的表达式为4*3+4*(3),结果为24;32(3+a,b+3)宏展开后的表达式为4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,结果为92。最终输出:18,34,92。故本题答案为D选项。

15.C\n面向对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。

\n

16.D

17.B此程序考查带参数的宏定义,S(k+j)展开后即4*(k+j)*k+j+1,所以结果为l43,答案为B。

18.C解析:赋值的一般形式为:变量名:表达式;,赋值的方向为由右向左,即将:右侧表达式的值赋给:左侧的变量,执行步骤是先计算再赋值。选项A中运算符%的运算对象必须为整数,而选项A中26.8不为整数,故选项A不正确;选项B将一个变量赋值给一个常量,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个常量,故选项D不正确;所以,4个选项中选项C符合题意。

19.C将两个字符串连接起来组成一个字符串,选用strcat函数来连接。

20.A解析:在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。

21.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,循环结束。

22.66解析:本题中命令行输入5个符号串,所以argc=5,argv[0]指向符号串'ex',argv[1]指向符号串'abcd',argv[2]指向符号串'efg',argv[3]指向符号串'h3',argv[4]指向符号串'k44',for循环的作用是计算strlen(argv[1]),strlen(argv[3])=4+2=6。

23.11解析:①“sizeof'、“%”、“>”、“<<”、“*=”,运算符的优先级顺序为:“*=”→“>”→“<<”→“%”→“sizeof”;②位运算的优先级顺序为:“~”→“<<”→“>>”→“&”→“^”。(b=2)>(c=4)不成立,逻辑为假,所以n=0;(a=3)!=(b=2)成立,逻辑为真,所以m=1。

24.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。

25.HelloHello解析:字符串中,数值0或符号'/0'表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。

26.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。

27.max=12min=2

28.无定值无定值解析:for(i=1;i<7;i++)决定了循环次数为6次,每次执行的操作是sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值。

29.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。

30.66解析:本题中i循环执行4次,当i=1时,j循环执行0次;当i=2时,j循环执行1次;当i=3时,j循环执行2次;当i=4时,j循环执行3次,所以输出#号的个数是0+1+2+3=6。

31.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。

在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

32.8484解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

33.goodmorninggoodmorning解析:子函数fun(chars[])的作用是将字符数组s中除去字母以外的所有其他字符都去掉,然后将字母仍按原来的顺序存在数组s中。在主函数中调用fun(ss),是将“goodmorning”中所有的非字母去掉,在这里就是去掉空格,然后输出ss。

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

35.b=3b=3解析:条件表达式的基本格式为:“表达式1?表达式2:表达式3”;其功能是:表达式1的值若非0,则计算表达式2的值,且为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。因为a=3,则a>=0成立,所以b=a=3。

36.C

37.101,0解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。

38.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入*s-*t,保证在s>t时,返回正值,当s<t时,返回负值。

39.IHAVEATEST.

40.800800解析:一个16x16点阵的字形码需要16x16/8=32字节的存储空间,所以300个汉字信息需要9600个字节。

41.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2;当逻辑运算符“&&”两边的值都是非零时,逻辑表达式的值才为真(即为1)。所以b=2&&(-1)=1。

42.D解析:算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。

43.A解析:在选项A)中,因为!a=0,所以关系表达式!a==1的值为0,又因为逻辑与运算符“&&”两边的表达式只要一个等于零,则整个表达式为零,所以选项A)正确。在选项B)中,关系表达式a<b为真,表达式(a<b)&&!c为假,而表达式(a<b)&&!c‖1为真,所以整个表达式的值为真。选项C)中,a&&b的结果为真。在选项D)中,a‖(b+b)&&(c-a)的结果为真。

44.D本题主要考查宏的一些基本概念。通常,预处理命令位于源文件的开头,但不一定必须位于开头,也可以写在函数与函数之间;由于预处理命令的末尾不加分号,不以分号来区分一条宏命令,所以,不能在一行上写多条预处理命令,只能写一条,否则,系统处理时就会把它当做一条命令处理;宏名一般习惯用大写字母表示,以便与变量名相区别,这只是习惯用法,并不是C语言中有这样的规定,宏的定义可用小写字母;C语言中,宏的替换是在程序编译时进行,不占用程序运行的时间,故本题答案为D。

45.B解析:本题考查的是指针函数。指针函数定义的基本格式为:类型说明符(*函数名)()。其中,类型说明符表示返回的指针值指向的数据类型。

46.A解析:本题的fun函数是一个递归函数,当参数n为1或2时返回2,否则返回n-fun(n-1)。递推下来就是n-fun(n-1)=>n-((n-1)-fun(n-2))=>n-(n-1)+((n-2)-fun(n-3))=>……直到fun()函数的参数等于1或2,故fun(3)=3-fun(2)=3-2=1。所以答案是A。

47.D解析:本题中,argc表示参数的个数,应为3,argv是一个指向字符串的指针数组,指针数组argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循环条件中,先进行自减运算,再执行相应的printf语句。

48.A解析:数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等操作。所以答案为A。

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

50.B解析:C语言规定else总是和离它最近的if语句配对。故第一个else和第一个if配对,第二个else和第二个if配对。首先计算第一个if后面的表达式“a>b>c”,表达式“a>b”是为1,表达式“1>c”为0,所以执行else后面的语句。先执行if后面的表达式,“c-1>d”为真,值为1。“1==1”为真,执行printf语句。

51.C解析:C语言中如果逻辑与运算符左边的表达式为假,右边的表达式就不再运算了,(++a<0)=(0<0)=0,所以逻辑与右边的表达式就不参与运算,没有改变b的值。因此输出b=1,a=0。

52.C解析:本题的f()函数中,首先定义了一个STU结构体变量b并初始化为{'Zhao',\'m\',85.0,90.0},然后分别通过strcpy()库函数、赋值语句和for循环,将b中所有成员分别赋给形参a的相应成员,最后返回a。所以,无论传递给函数fun()的参数是什么,结果返回的都会是函数中定义的STU结构体b的内容{'Zhao',\'m\',85.0,90.0}。故最终输出结果为:Zhao,m,85,90;应该选择C。

53.C解析:函数fun(int*x,inti)的功能是把数组元素x[i]的值加1赋给x[0]。所以在主函数中执行fun(a,2)后,数组元数a[0]的值等于4。然后在for循环语句中,输出数组a中的前4个元素的值,分别是4,2,3,4。

54.D

55.B解析:本题考查了用指针处理字符串的方法。用指针处理字符串,首先要使指针指向该字符串。例如本题中的s1='AbDeG'就是使字符指针指向了字符串'AbDeG',而指针s1+=2则是指针向后移动了两个字符的位置,指向了字符‘D’。strcmp则是字符串比较函数。

56.C解析:十六进制是以“0x”或“0X”开头的字符串,字符串中只能含有0~9这10个数字和a、b、c、d、e、f这6个字母。

57.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

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

59.A解析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

60.B解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a=0,则!a成立,执行下列的语句,x--,得x=11:第二个if语句,判断条件,发现c=o,则条件不成立,执行下列的else语句,得x=4。

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

62.D本题需要从四个选项中找出不正确的选项。在选项A中,逗号运算符的优先级最低是正确的,逗号运算符是所有运算符中优先级最低的运算符;在选项B中,由C语言对变量命名的规则可知,APH和aph是两个不同的变量,C语言是区分大小写的;在选项C中的说法也是正确的,只要a和b类型相同,在计算了赋值表达式a=b后,两者的值也相同,都是b的结果值;在选项D中,由于C语言提供数据类型的强制转换功能,因此,从键盘输入数据时,可以对实型变量输入整型数值。

63.A

64.B

65.A在选项A中,s的确已插到了链表的末尾,但它的next并没有为NULL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单向链表最后一个

温馨提示

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

评论

0/150

提交评论