2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

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

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

3.下列方法中,属于白盒法设计测试用例的方法的是()。

A.错误推测B.因果图C.基本路径测试D.边界值分析

4.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

5.有以下程序:

程序的运行结果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

7.有以下程序#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?

8.下列关于栈的描述中错误的是()。

A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针

9.红黑树中已经有n个数据,寻找某个key是否存在的时间复杂度为()

A.o(logn)B.o(n)C.o(n二次方)D.o(1)

10.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符

11.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

12.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。

A.SunDan20044580

B.Penghua20045537

C.LiSiGUO20042580

D.SunDan20041703

13.有以下程序:

执行后的结果是()。A.7B.3C.2D.0

14.以下叙述中正确的是

A.语句inta[8]={0};是合法的

B.语句inta[]={0};是不合法的,遗漏了数组的大小

C.语句chara[2]={"A","BII};是合法的,定义了一个包含两个字符的数组

D.语句chara[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符

15.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.设n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。

A.1B.12C.60D.15

17.以下说法正确的是()。

A.函数可以返回另一个函数的整个函数体

B.函数返回值只能是基本数据类型的数值或指针

C.函数返回值可以是一个指向函数的指针

D.函数返回值可以是一个数组,同时返回多个值

18.以下选项中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

19.在关系数据库中,用来表示实体间联系的是()。

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

20.计算机算法指的是()。

A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法

二、2.填空题(20题)21.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

22.以下程序运行后的输出结果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

23.软件工程研究的内容主要包括:【】技术和软件工程管理。

24.算法执行过程中所需要的基本运算次数称为算法的______。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

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

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

31.在面向对象方法中,类的实例称为______。

32.以下函数用来在w数组中插入x,w数组中的数已按由小到大的顺序存放,n为数组中存放的数的个数。插入后数组中的个数仍然有序。请填空,使之完整。

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

33.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:

fp=fopen(【】);。

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

35.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。

36.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是【】。

#include<string.h>

main()

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

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

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

}

37.函数pi的功能是根据以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

请在下面的函数中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

38.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

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

三、1.选择题(20题)41.下列程序的运行结果为

#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

42.以下4个选项中,不能被看作是一条语句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

43.设有定义:intk=1,m=2;noatf=7;则下列选项中错误的表达式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.设有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为()。

A.'\0'B.'0'C.不确定的值D.'0'的地址

45.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

46.一个完整的C语言程序包含一个或多个函数,其中唯一不可缺少的函数是()。

A.库函数B.scanf函数C.main主函数D.printf函数

47.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

48.C语言规定,函数返回值的类型是由()

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

49.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.有以下程序:#include<stdio.h>main()inti;for(i=0;i<3;i++)switch(i)case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);程序运行后的输出结果是()。

A.22111B.21021C.122D.12

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的输出结果是()。

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

52.若有语句:char*line[5];,以下叙述中正确的是

A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的。号称为间址运算符

D.定义line是一个指向字符型函数的指针

53.C语言结构体类型变量在程序执行期间,()。

A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中

54.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

55.假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是______。

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

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

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

56.索引属于()。

A.模式B.内模式C.外模式D.概念模式

57.设有以下说明语句:typedefstruet{intn;charch[8];}PER;则下面叙述中正确的是()。

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

58.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

59.下列是合法的用户自定义标识符的是()。

A._w1B.3_xyC.intD.LINE-3

60.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序运行后的输出结果是

A.b,bB.b,cC.a,bD.a,c

四、选择题(20题)61.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,

B.数据库技术的根本目标是要解决数据的共享问题

C.数据库设计是指在已有数据库管理系统的基础上建立数据库

D.数据库系统需要操作系统的支持

62.

63.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

64.

65.有以下程序:

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

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

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

{inta=4,b=5,c=6;

printf("%d/n",fun(2*a,fun(b,c)));

}

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

A.3

B.6

C.8

D.12

67.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

68.

69.下列C语言用户标识符中,不属于合法标识符的是

A.ad_intB.bb_7C._dd7D.int

70.计算机的内存储器比外存器()

A.价格便宜B.存储容量大C.读写速度快D.读写速度慢

71.

72.请阅读以下程序:

上面程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

73.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.将磁盘文件的内容显示在屏幕上

B.将两个磁盘文件合为一个

C.将一个磁盘文件复制到另一个磁盘文件中

D.将两个磁盘文件合并后送屏幕

74.

75.在下列结论中,只有一个是错误的,它是()。

A.C语言允许函数的递归调用

B.C语言中的continue语句,可以通过改变程序的结构而省略

C.有些递归程序是不能用非递归算法实现的

D.C语言中不允许在函数中再定义函数

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

77.(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()

A.概要设计

B.详细设计

C.可行性分析

D.需求分析

78.有以下程序:

执行程序时,给变量X输入10,程序的输出结果是()。

A.54B.55C.65D.45

79.有以下程序:

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

80.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:从字符串str中,删除所有大写字母F。

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

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

试题程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序设计题(1题)82.…请编写函数。fun能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数据为l23,则输出结果为:输入的数字是3位。注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所缩写的若干语句。试题程序:

参考答案

1.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。

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

3.CC)【解析】白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。

4.C在main函数中调用了f函数使形参s指向数组a。执行“S[1]+=6”;语句,则“a[1]=8;”执行“*s=7;”语句,则“a[0]=7”;执行“s+=2;”语句,则s指向数组的第3个元素并返回s。调用后,函数返回值赋给指针P,则*P=3,因此输出的结果为7,8,3。故本题答案为C选项。

5.C函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。所以正确答案为c)。

6.D

7.B此题主要考查scanf函数和gets函数的区别。答案为B。

8.B

\n栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆作用,栈可以采用顺序存储,也可以采用链式存储。

\n

9.A

10.B

11.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。

12.B解析:f函数用了显式传地址的方式,因此主函数中的s值发生了变化。

13.C调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);

调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);调用函数fun(3)时,由于X的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);调用函数fun(1)时,由于x的值为1,执行语句“return(3);”,函数的返回值为3。

因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。

14.AB选项中,如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数;C选项中,chara[2]={"","B"};不合法,应为chara[2]={′A′,′B′};;D选项中,字符数组只能在定义的时候可以用字符串常量来初始化,但不能够先定义字符数组,然后再用字符串常量进行赋值。因此A选项正确。

15.C

16.A

17.C函数的返回值是通过return语句返回的,返回值是一个表达式,不限于基本数据类型或指针,也可以是结构体类型等,但不能是数组,选项A、B、D错误;函数的返回值可以是一个指向函数的指针,选项C正确。故本题答案为C选项。

18.DA选项中整型常量应表示为1200,数字中不能包含逗号。B选项中E后面的指数必须为整数。C选项中转义字符以“\\”开始,若要表示字符“\\”,应写为“\\\\”。故本题答案为D选项。

19.D单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。

20.C

21.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

22.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*

23.软件开发

24.时间复杂度时间复杂度解析:算法在执行过程中所执行的基本运算的次数,也就是执行算法所需要的计算工作量,称为算法的时间复杂度。

25.7979解析:因为在调用子函数时进行的是数值传递,调用于函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

26.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

27.2424解析:本题考查函数的循环调用。p=x*func(x-1),当x=4时,不满足if语句的条件,p=4*func(3),x=3也不满足条件,则func(3)=3*func(2),func(2)=2*func(1),x=1满足条件return(1),则输出结果为4*3*2*1=24。

28.89218921

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

30.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。

31.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

32.++pw[i-1]

33.d1.dat"rb"d1.dat,'rb'解析:打开文件的函数为fopen('文件名','mode'),其中'mode'表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只读方式打开。'w'表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。'a'为追加方式打开。若文件存在时,将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。'r+'打开一个已存在文件用于更新(可读可写)。\'w+'创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。'a+'打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填'd1.dat','rb'。

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

35.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。

36.HowdoesheHowdoeshe解析:本题的关键在于表达式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。

37.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由题面中提供的计算pi的公式可知;在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将1转化为浮点数或采用1.0/(i*i)的形式。故本题应填1.0/(i*i)或其等效形式。

38.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

39.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

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

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

42.D解析:选项D中有两条语句。

43.C解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项B),先计算k什的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。

44.A解析:本题涉及字符数组和指针两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上'\\0',所以题中数组str有11个元素;②ptr指向数组str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

45.CC。【解析】数据结构是相互之间存在一种或多种特定关系的数据元素的集合。”关系”描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。

46.C解析:一个完整的C程序有且仅有一个主函数(main()函数),主函数可以调用其他各种函数,但其他函数不能调用主函数,C程序从主函数开始执行,并在主函数中结束整个程序的运行。故选项C正确。

47.D解析:本题中fun函数实现丁字符串函数str-eat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。

48.D

49.D解析:考查printf函数的相关知识。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和C)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,所以正确答案为B)。输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。

50.C解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

51.A解析:本题考查while循环.y的值在while循环的控制表达式中加1,在循环体内减1,所以总的y值不变,且控制条件++y永远非零。当x加到7时不满足循环条件,结束循环。

52.A解析:C语言中[]比:优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。

53.A解析:C语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。

54.C数据结构与算法:数据结构的基本概念[评析]逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。线性结构和非线性结构是根据数据元素之间关系的不同特性加以分类的,即是从逻辑上加以分类的。

55.B解析:选项A的错误在于,先已经把q结点给释放,无法再进行余下语句了:选项C和D的错误在于因为有了q=(*q).next做了赋值,则free(q)释放了原来q后面的一个结点。

56.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

57.B解析:本题通过typedef在定义一个结构体类型的同时,把它白定义成类型名PER,故PER是结构体类型名。所以,4个选项中B为所选。

58.B解析:第一次执行while语句时,z=3>0,然后执行z--得z=2,执行++x得x=1<5,条件成立,执行y=y-1=5

-1=4;第二次执行while语句时,z=2>0,然后执行z--得z=1,执行++x得x=2<5,条件成立,执行y=y-1=4-1=3;第三次执行while语句时,z=1>0,然后执行z--得x=0,执行++x得x=3<5,条件成立,执行y=y-1=3-1=2;第四次执行while语句时因z=0,z<0条件不成立,同时执行c--得z=-1。即执行完while循环后x=3、y=2、z=-1。

59.A解析:C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)中的int是C语言的关键字。

60.A解析:程序中的第一个输出语句输出表达式++a的值,该++a是在使用a之前,先使a的值加1,即为a加1为字符b,此时a的值为b,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a++的值,a++是在使用a之后(此时a的值为b,所以赋给b的值为B),使a的值加一因此第二个输出的值也为b.所以,4个选项中选项A符合题意。

61.A解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。

数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。

数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。

数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。

62.D\r\n

63.B在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。

程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。

64.B

65.Cstrcpy:字符串拷贝函数;strlen:求字符串长度函数(注意:不包含字符串结束标识符‘、0’);strcat:字符串连接函数。执行完语句strcat(P,r);后,P数组中存储的元素为a,b,c,d,a,b,C,d,8;执行语句strcpy(P+strlen(q),q);得到的结果是将q所指向的字符串拷贝至P+strlen(q)开始的存储位置,因为strlen的值为3,即从P+3开始存储q中的元素。所以执行完strcpy(P+str|en(q),q)语句后,字符数组P[20]的存储元素为a,b,c,a,b,o;所以strlen(P)的结果为6。因此C选项正确。

66.B\n此题考查的是函数fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

\n

67.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。

68.D

69.DC语言的标识符主要用来表示常量、变量、函数和类型等的名字,只起到标识作用。标识符由数字、下画线或英文字母构成,可以分为三类:保留字、预定义标识符和用户定义标识符。保留字是指每一个标识符都有其特定的含义,不允许用户把它们当做变量名使用,如if、int、for等。预定义标识符也是一类具有特殊含义的标识符,它们被用做库函数名和预编译命令,如define、include等。用户定义标识符是用户根据自己的需要定义的一类标识符,用于标识变量、符号常量、用户定义函数、类型名和文件指针等。这类标识符主要由英文字母、数字和下画线构成,但开头字符一定是字母或下画线。

题目中选项A、B、C都是合法的用户自定义标识符,选项D为保留字,不属于用户标识符。

70.C

71.C

72.A考查switch语句的使用。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为人口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

73.C本题主要考查文件的操作。在本题的程序中,首先定义了两个文件指针fp1和fp2,然后用指针fp1指向一个以读方式打开的文件file1,用指针fp2指向一个以写方式打开的文件file1,接着执行while循环,循环的结束条件是(!feof(fp1))为假,即feof(fp1)为真,表示对文件fp1的操作读取到结束符,因此,循环结束的条件是对文件file1的读取结束,循环体语句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函数,C语言提供这两个函数对文本文件进行字符的读写操作。fgetc(fp1)函数的作用是从输入流fp1的当前位置返回一个字符,并将文件指针指示器移到下一个字符处;fputc(ch,fp2)函数的作用是将字符ch的值写入所指定的流文件的当前位置处,并将文件指针后移一位。

根据上面的分析,可以知道循环结束后,即将指针fp1指向的文件复制到指针fp2指向的文件中,然后关闭两个操作的文件。因此,本题程序的作用是将一个磁盘文件复制到另一个磁盘文件中,本题正确答案选C。

74.C

75.CC语言不仅可以递归调用,还可以对自己进行递归调用,但是,不允许在函数中再次定义函数,c语言中的coutinue语句,可以通过改变其结构来实现。

76.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小,因此选项D也是正确的。所以,4个选项中选项C符合题意。

77.D注:即第一个阶段

78.B本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为l+2+3+4+5+6+7+8+9+10=55.

79.A外循环第一次i的值为1,内循环第一次j的初值为l,打印1*1=1;内循环第二次j的值为2,打印1$2=2;内循环第三次J的值为3,打印1}3=3,打印回车换行,退出内循环。外循环第二次i的值为2,内循环第一次j的初值为2,打印2*2=4;内循环第二次j的值为3,打印2。3=6,打印回车换行,退出内循环。外循环第三次i的值为3,内循环第一次j的初值为3,打印3*3=9,打印回车换行,退出内循环。

80.C

81.(1)错误:for(i=j=0;str[i]!=0;i++)

\n正确:for(i=j=0;str[i]!=\0;i++)

\n(2)错误:str[j]=str[i];

\n正确:str[i++]=str[i];

\n【解析】根据题目中的要求,从字符串str中删除所有大写字母F,需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0;str[i]!=0;i++)”应改为“for(i=J=0;str[i]!=0;i++)”;将每一个不是F的字符放入原来的字符串中,形成新的字符串,因此,“str[j]=str[i];”应改为“str[j++]=str[i];”。

\n

82.

【考点分析】主要考察考生对循环跳出的条件的理解,以及理解取数字位数的方法。【解题思路】通过对指定的多位数每次除以10,去掉最后一位,直到为0结束,使用临时变量来统计一个多位数的位数。2021年安徽省淮北市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

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

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

3.下列方法中,属于白盒法设计测试用例的方法的是()。

A.错误推测B.因果图C.基本路径测试D.边界值分析

4.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

5.有以下程序:

程序的运行结果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

7.有以下程序#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?

8.下列关于栈的描述中错误的是()。

A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针

9.红黑树中已经有n个数据,寻找某个key是否存在的时间复杂度为()

A.o(logn)B.o(n)C.o(n二次方)D.o(1)

10.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符

11.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

12.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。

A.SunDan20044580

B.Penghua20045537

C.LiSiGUO20042580

D.SunDan20041703

13.有以下程序:

执行后的结果是()。A.7B.3C.2D.0

14.以下叙述中正确的是

A.语句inta[8]={0};是合法的

B.语句inta[]={0};是不合法的,遗漏了数组的大小

C.语句chara[2]={"A","BII};是合法的,定义了一个包含两个字符的数组

D.语句chara[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符

15.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.设n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。

A.1B.12C.60D.15

17.以下说法正确的是()。

A.函数可以返回另一个函数的整个函数体

B.函数返回值只能是基本数据类型的数值或指针

C.函数返回值可以是一个指向函数的指针

D.函数返回值可以是一个数组,同时返回多个值

18.以下选项中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

19.在关系数据库中,用来表示实体间联系的是()。

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

20.计算机算法指的是()。

A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法

二、2.填空题(20题)21.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

22.以下程序运行后的输出结果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

23.软件工程研究的内容主要包括:【】技术和软件工程管理。

24.算法执行过程中所需要的基本运算次数称为算法的______。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

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

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

31.在面向对象方法中,类的实例称为______。

32.以下函数用来在w数组中插入x,w数组中的数已按由小到大的顺序存放,n为数组中存放的数的个数。插入后数组中的个数仍然有序。请填空,使之完整。

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

33.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:

fp=fopen(【】);。

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

35.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。

36.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是【】。

#include<string.h>

main()

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

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

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

}

37.函数pi的功能是根据以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

请在下面的函数中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

38.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

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

三、1.选择题(20题)41.下列程序的运行结果为

#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

42.以下4个选项中,不能被看作是一条语句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

43.设有定义:intk=1,m=2;noatf=7;则下列选项中错误的表达式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.设有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为()。

A.'\0'B.'0'C.不确定的值D.'0'的地址

45.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

46.一个完整的C语言程序包含一个或多个函数,其中唯一不可缺少的函数是()。

A.库函数B.scanf函数C.main主函数D.printf函数

47.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

48.C语言规定,函数返回值的类型是由()

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

49.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.有以下程序:#include<stdio.h>main()inti;for(i=0;i<3;i++)switch(i)case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);程序运行后的输出结果是()。

A.22111B.21021C.122D.12

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的输出结果是()。

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

52.若有语句:char*line[5];,以下叙述中正确的是

A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的。号称为间址运算符

D.定义line是一个指向字符型函数的指针

53.C语言结构体类型变量在程序执行期间,()。

A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中

54.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

55.假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是______。

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

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

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

56.索引属于()。

A.模式B.内模式C.外模式D.概念模式

57.设有以下说明语句:typedefstruet{intn;charch[8];}PER;则下面叙述中正确的是()。

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

58.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

59.下列是合法的用户自定义标识符的是()。

A._w1B.3_xyC.intD.LINE-3

60.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序运行后的输出结果是

A.b,bB.b,cC.a,bD.a,c

四、选择题(20题)61.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,

B.数据库技术的根本目标是要解决数据的共享问题

C.数据库设计是指在已有数据库管理系统的基础上建立数据库

D.数据库系统需要操作系统的支持

62.

63.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

64.

65.有以下程序:

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

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

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

{inta=4,b=5,c=6;

printf("%d/n",fun(2*a,fun(b,c)));

}

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

A.3

B.6

C.8

D.12

67.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

68.

69.下列C语言用户标识符中,不属于合法标识符的是

A.ad_intB.bb_7C._dd7D.int

70.计算机的内存储器比外存器()

A.价格便宜B.存储容量大C.读写速度快D.读写速度慢

71.

72.请阅读以下程序:

上面程序

温馨提示

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

最新文档

评论

0/150

提交评论