2022年安徽省六安市全国计算机等级考试C语言程序设计_第1页
2022年安徽省六安市全国计算机等级考试C语言程序设计_第2页
2022年安徽省六安市全国计算机等级考试C语言程序设计_第3页
2022年安徽省六安市全国计算机等级考试C语言程序设计_第4页
2022年安徽省六安市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

2022年安徽省六安市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

2.fseek函数的正确调用形式是()。

A.fseek(文件指针,起始点,位移量)

B.fseek(文件指针,位移量,起始点)

C.fseek(位移量,起始点,文件指针)

D.fseek(起始点,位移量,文件指针)

3.若有定义“doublea;”,则正确的输入语句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

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

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

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

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

A.形参可以是常量、变量或表达式

B.实参可以是常量、变量或表达式

C.实参的类型应与形参的类型赋值兼容

D.实参的个数应与形参的个数一致

6.下列关于栈的叙述中,正确的是()。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对

7.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

8.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

9.

10.有以下程序(说明:字母A的ASCIl码值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序运行后的输出结果是()。A.BYB.BTC.YTD.YE

11.衡量显示器的主要技术指标是()

A.波特率B.分辨率C.主频D.显示速度

12.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。

A.500B.401C.503D.1404

13.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

14.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab

15.下列对于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

16.对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()

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

17.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序运行后的输出结果是()。

A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,

18.以下说法错误的是A.A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B.计算机只能处理由0和1的代码构成的二进制指令或数据

C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D.每一种高级语言都有它对应的编译程序

19.

20.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是()。

A.edcbaB.decbaC.dceabD.abcde

二、2.填空题(20题)21.若输入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);

}

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

voidfun()

{staticinta;

a+=2;

printf("%d",A);

}

main()

{intcc;

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

printf("\n");

}

23.阅读下列程序,则程序的输出结果为______。

#include"stdio.h"

struetty

{intdata;

charc;};

main()

{streettya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

25.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

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

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

main()

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

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

switch(i/10)

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

case1:n++;break;

default:k++;n++;

}

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

}

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

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

29.以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

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

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

31.与表达式a+=b等价的另一书写形式是______。

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

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

main()

{unsignedshorta=65536;intb;

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

}

34.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

36.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

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

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;

}

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}

39.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。

40.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

三、1.选择题(20题)41.设intx=10,y=3,z;,以下语句的输出结果是______。printf("%d\n",z=(x%y,x/y));

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

42.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作()。

A.软件投机B.软件危机C.软件工程D.软件产生

43.下面程序的输出结果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

44.判断字符型变量chr为小写字母的表达式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

D.(chr>='a')&&(chr<='z')

45.以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}

A.SUM=9B.SUM=12C.SUM=18D.SUM=28

46.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。

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

47.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,↓,则上面程序的输出络果是_______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

48.用十六进制的地址码给存储器的字节编址,其地址编号从0000到FFFF,则该存储器的容量为()

A.1MBB.256KBC.64KBD.640KB

49.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len-0;for(i=l;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出的结果是

A.14B.12C.8D.6

50.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表

51.下列程序的输出结果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}

A.3B.6C.8D.0

52.语句int(*ptr)()的含义是()。

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

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

C.a&&b

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

53.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

54.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

55.若有以下定义和语句:()ints[4][5](*ps)[5];ps=s;则对s数组元素的正确引用形式是

A.psq+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

56.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*P,*q,*r;P=&a;q=&b;r=f(p,q);print("%d,%d,%d\n",*P,*q,*r);}执行后的输出结果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

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

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

58.sizeof(float)是()。

A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式

59.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

60.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

四、选择题(20题)61.有以下程序:

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

A.1B.11C.6D.21

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

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

63.有以下程序:

执行后输出结果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

64.

65.设有二元关系R和三元关系s,下列运算合法的是()。

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

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

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

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

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

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

67.

68.若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767;

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

执行后的输出结果是

A.32767,32767B.32767,032767

C.32767,77777D.32767,077777

69.下列能正确进行字符串赋值的是()。A.A.chars[5]={”ABCI)E”);

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;printf("%S",s);

70.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.下划线C.数字字符D.连接符

71.

72.

73.数据库应用系统中的核心问题是()。

A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训

74.有以下程序:

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

A.0B.10C.20D.出错

75.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

76.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指-个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

77.

78.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

79.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

80.有以下程序:

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

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

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:计算整数n的阶乘。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中ASCII值为奇数的字符删除,将剩余字符形成的新字符串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,字符1的ASCII值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}

参考答案

1.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。

2.B解析:本题考查函数fseek的用法。fseek函数的调用形式为:

fseek(文件指针,位移量,起始点)

“起始点”用0,1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。

“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据,这样当文件长度大于64k时不致出现问题。ANSIC标准规定在数字末尾加一个字母L表示long型。

3.D本题考查seanf函数的调用形式:scanf(格式字符串,输入项地址表)。题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,所以选项D正确。

4.D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但对于满二叉树与完全二叉树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储,这样,不仅节省了存储空间,又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将二叉树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项C中的说法也是错误的。综上所述,选项A、B与C中的说法都是错误的。

5.A函数中,形参必须是变量,实参可以是常量、变量或表达式,选项A错误,选项B正确;实参的个数和类型要与形参一致,选项C、D正确。本题答案为A选项。

6.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。

7.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

8.C

9.B

10.Dfun函数的意思是当*s%2==0的时候就输出并且s自加l次,然后判断。所以可知只有第2和第4个位置上的才符合要求,所以答案为D。

11.B

12.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。

13.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。

14.C解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。

15.A解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。因此,本题的正确答案为A。

16.Cc)【解析】根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。

17.A程序首先以读二进制文件的方式打开文件d.dat;然后使用fwrite函数将数组a中6个元素写入d.dat中。并调用for循环将a[2]元素(值为3)6次写入d.dat文件中;接着使用rewind函数将文件指针fp移动到文件头;再使用fseek函数将fp从当前位置向后移动2个整数位置;最后使用fread函数从fp指向的位置向后读取6个整数。由此可知这6个整数分别是:3,4,5,6,3,3。故本题答案为A选项。

18.C本题主要考查我们对C语言一些基础知识的掌握情况。下面分别分析本题的四个选项。

由于高级程序设计语言具有可读写、可理解性好等特点,这就要求高级程序设计语言用接近人们习惯的自然语言和数学语言作为语言的表达形式,选项A的说法正确。

在计算机中,机器可以接受和处理的只能是由0和1组成的二进制代码,用高级语言编写的程序都需要经过编译和连接,使其转化为二进制代码才能被机器执行。因此,选项B的说法正确。

C语言源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。因此,选项C的说法不正确。

由于高级语言编写的程序都需要经过编译和连接,才能被计算机执行,因此,每一种高级语言都有它对应的编译程序,D选项的说法正确。

19.B

20.C

21.IHAVEATEST.

22.2468

23.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。

24.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。

25.1对多(或1:N)1对多(或1:N)

26.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));

27.130130解析:本题主函数中用了一个for循环,循环了3次:当i=9时,i/10=0,执行switch语句中case0分支,m和n的值各增1,变为1和1,然后遇到break语句,退出switch语句;当i=10和11时,i/10都等于1,执行switch语句中的case1分支,两次使n增1,变为3,退出switch语句。故该空格处应该填130。

28.GFEDCB。GFEDCB。解析:开始指针cp指向字符串结束标志,在循环中,cp依次向前移动,当打印出第二个字符后,cp指向第一个字符,循环判断条件不满足,退出循环,因此,只打印出第一个字符以后的字符的逆序列。

29.ii解析:外循环是递减的,方阵中的每个元素为(j-1)*4+i,因此空格处填i。

30.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe

31.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。

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

33.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。

34.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。

35.4040解析:本题中指针s1和s2都指向同一个内存中的地址。因此语句“*s2=20;”执行后,*\u3000s1=*s2=20。所以m最后的值为40。

36.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。

37.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。

38.本题主要考查for循环语句的使用以及静态局部变量的特点。

39.数据库系统数据库系统解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。

40.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

41.D

42.B解析:软件工程概念的出现源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。

43.C

44.B解析:程序段中定义x值为1,!x值为0,因此循环执行的条件永远成立,该循环是死循环。

45.B解析:本题考查带参数的宏定义及应用方法,这种宏不只是进行字符串的替换,还要进行参数的替换。

格式为:#define宏名(参数表)字符串

我们先看一个简单的带参数的宏定义:#defineX(A,B)A*B*B并且在程序中有语句:y=X(4,3);经过替换后变为y=4*3*3;这就是带参数的宏定义的使用方法。注意:宏是按原形替换,本题替换后为sun=1+2+3*2+3;。

46.B解析:本题x赋初值为3,当执行printf('%d',x-);时,由于X--的作用是先运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。

47.C解析:scanf()把用户从键盘录入的数字第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.0000000。

48.C

49.D解析:本题考核的知识点是带寥数的主函数的应用。主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串'ex',argv[1]指向参数字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”,argv[4]指向参数字符串“K44”。在main()函数中,for循环执行了2次,当i-1时,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len的住为6。所以,4个选项中选项D符合题意。

50.A\r\n二分法又叫折半(对分)查找法,只适合于顺序存储的有序表(是指线性表中的元素按值非递减排列)。二分法的基本思想是:设有序线性表的长度为n,被查元素为X,则二分查找的方法如下:

将X与线性表的中间项进行比较:若中间项的值等于x,则说明找到,查找结束;若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;若X大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找、这个过程-直进行到查找成功或于表长度为0,(说明线性表中没有这个元素为止)顺序存储的线性袁在计算机中-般用一个-维数组来表示,在数组中我们可以通过数组名和下标来对数组中的任意一个元素进行访问,而在链表(不管是有序还是无序)中,要对元素进行访问必须从表头结点开始,顺着链条一个一个结点进行搜索,因此选项A正确

51.B

52.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)的结果为真。

53.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。

54.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。

55.C

56.B解析:函数f是一个返回值为指针的函数,其功能是比较两个数中的最小值,并返回最小值的存储单元地址。main函数中定义了指针变量p和q,p=&a,q=&b,即*p=7,*q=8,调用函数{后r=p,所以*r=7,printf函数的输出结果为7,8,7。

57.D解析:在数据流图中,用标有名字的箭头来表示数据流。

58.D解析:sizeof(float)是c语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。

59.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。

60.B解析:对于do…while循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值“0,”,再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值“1”。

61.D本题考查位运算,以及按位或操作,将a左移一位相当于是将a乘以了4,所以a<<2等于20,二进制表示为00010100,与b按位或得到00010101,即21,所以选项D正确。

62.Ai=0,f(a)=2+1+4=7,i=1,f(a)=2+1+5=8,i=3,f(a)=2+1+5=9;(c为静态变量);

63.CP指向字符串”tuesday”,因此*(P+1)的值为n。s[0]=”monday”。

64.C

65.D本题给出的两个关系R与S的表结构是不同的(R是二元关系,S是三元关系),它们不能进行∩、∪、一运算。而两个不同结构的关系是可以进行笛卡儿积(×)运算的。

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

\n

67.C

68.A在程序段中,首先定义了两个整型变量m和n,然后将m初始化为32767,将n初始化为032767,题目告诉我们,n中的数值是一个八进制数,然后程序运行输出语句,从输出语句的输出格式“%d,%o\\n”可以看出一共输出两个数,第一个为十进制整数,第二个为八进制整数,从它的输出列表中可以看出第一个输出的是变量m,第二个输出的是变量n,那么将其与输出格式对应,我们可以知道输出的结果分别是输出变量m值的十进制形式和变量n的八进制形式。因此,最后输出的结果是32767,32767,这里需要注意,八进制数输出后并不带上它的标识符0。因此本题的答案选A。

69.C选项A、B的空间不够;字符串存储要有结束符'\0',且要占用一个空间,printf用来输出字符,不能输入字符串。

70.DC语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。

71.B

72.B

73.A数据库应用系统中的核心问题是数据库的设计。故答案为A选项。

74.CnlaIloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int。)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句·P=n,使得·p的值为10,并通过return返回此值,即a的值为l0。然后在主函数中输出a+ftm(10)=10+10=20。

75.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

76.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素问彼此结合

的紧密程度,所以c与D错误。

77.C

78.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正确。

79.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0.即变量y的值为0,d*Y的值也为0,故选C选项。

80.A在函数point函数调用时,系统自动为函数的形参P分配内存空间,并赋值为实参P的值。当执行语句P+=3;时,系统操作的是形参P的内存空间,更改形参P的内容,而实参指针变量P的值未受影响,即指针变量作为函数参

81.

82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍历整个数组*/ for(i=0;i<=""p="">/*如果元素的ASCII值为偶数*/ if(s[i]%2==0) {/*将元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要删除ASCII值为奇数的字符,也就是要保留ASCII值为偶数的字符,将ASCII值为偶数的字符保存到新字符串。所以本题的算法是对原字符串从头到尾进行扫描,找出ASCII值为偶数的字符并依次存入数组。2022年安徽省六安市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

2.fseek函数的正确调用形式是()。

A.fseek(文件指针,起始点,位移量)

B.fseek(文件指针,位移量,起始点)

C.fseek(位移量,起始点,文件指针)

D.fseek(起始点,位移量,文件指针)

3.若有定义“doublea;”,则正确的输入语句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

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

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

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

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

A.形参可以是常量、变量或表达式

B.实参可以是常量、变量或表达式

C.实参的类型应与形参的类型赋值兼容

D.实参的个数应与形参的个数一致

6.下列关于栈的叙述中,正确的是()。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对

7.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

8.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

9.

10.有以下程序(说明:字母A的ASCIl码值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序运行后的输出结果是()。A.BYB.BTC.YTD.YE

11.衡量显示器的主要技术指标是()

A.波特率B.分辨率C.主频D.显示速度

12.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。

A.500B.401C.503D.1404

13.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

14.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab

15.下列对于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

16.对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()

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

17.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序运行后的输出结果是()。

A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,

18.以下说法错误的是A.A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B.计算机只能处理由0和1的代码构成的二进制指令或数据

C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D.每一种高级语言都有它对应的编译程序

19.

20.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是()。

A.edcbaB.decbaC.dceabD.abcde

二、2.填空题(20题)21.若输入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);

}

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

voidfun()

{staticinta;

a+=2;

printf("%d",A);

}

main()

{intcc;

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

printf("\n");

}

23.阅读下列程序,则程序的输出结果为______。

#include"stdio.h"

struetty

{intdata;

charc;};

main()

{streettya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

25.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

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

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

main()

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

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

switch(i/10)

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

case1:n++;break;

default:k++;n++;

}

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

}

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

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

29.以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

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

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

31.与表达式a+=b等价的另一书写形式是______。

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

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

main()

{unsignedshorta=65536;intb;

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

}

34.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

36.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

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

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;

}

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}

39.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。

40.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

三、1.选择题(20题)41.设intx=10,y=3,z;,以下语句的输出结果是______。printf("%d\n",z=(x%y,x/y));

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

42.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作()。

A.软件投机B.软件危机C.软件工程D.软件产生

43.下面程序的输出结果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

44.判断字符型变量chr为小写字母的表达式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

D.(chr>='a')&&(chr<='z')

45.以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}

A.SUM=9B.SUM=12C.SUM=18D.SUM=28

46.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。

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

47.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,↓,则上面程序的输出络果是_______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

48.用十六进制的地址码给存储器的字节编址,其地址编号从0000到FFFF,则该存储器的容量为()

A.1MBB.256KBC.64KBD.640KB

49.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len-0;for(i=l;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出的结果是

A.14B.12C.8D.6

50.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表

51.下列程序的输出结果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}

A.3B.6C.8D.0

52.语句int(*ptr)()的含义是()。

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

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

C.a&&b

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

53.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

54.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

55.若有以下定义和语句:()ints[4][5](*ps)[5];ps=s;则对s数组元素的正确引用形式是

A.psq+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

56.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*P,*q,*r;P=&a;q=&b;r=f(p,q);print("%d,%d,%d\n",*P,*q,*r);}执行后的输出结果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

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

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

58.sizeof(float)是()。

A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式

59.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

60.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

四、选择题(20题)61.有以下程序:

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

A.1B.11C.6D.21

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

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

63.有以下程序:

执行后输出结果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

64.

65.设有二元关系R和三元关系s,下列运算合法的是()。

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

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

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

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

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

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

67.

68.若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767;

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

执行后的输出结果是

A.32767,32767B.32767,032767

C.32767,77777D.32767,0777

温馨提示

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

评论

0/150

提交评论