2021-2022年山西省朔州市全国计算机等级考试C语言程序设计_第1页
2021-2022年山西省朔州市全国计算机等级考试C语言程序设计_第2页
2021-2022年山西省朔州市全国计算机等级考试C语言程序设计_第3页
2021-2022年山西省朔州市全国计算机等级考试C语言程序设计_第4页
2021-2022年山西省朔州市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年山西省朔州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.A.p="";

B.p="0";

C.p=0;

D.p="";

2.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

3.有下列程序:程序执行后的输出结果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

4.有以下程序:

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

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

5.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。

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

6.

7.阅读以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("请输人2个数:");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}该程序在编译时产生错误,其出错原因是()。A.定义语句出错,case是关键字,不能用做用户自定义标识符

B.定义语句出错,printF不能用做用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

8.若有定义:floatx=1.5;inta=1.b=3.c=2;则正确的switch语句是()。A.

B.

C.

D.

9.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

10.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

11.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,按列优先存放时,元素A5,4的地址为()。

A.1256B.1264C.1272D.1280

12.若有定义int?x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

13.定义结构体数组:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的输出结果为()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

14.有下列程序:程序执行后的输出结果是()。

A.654321

B.65432

C.65453452

D.654534521

15.以下叙述中错误的是______。A.C程序中的#include和#define行均不是C语句

B.除逗号运算符外,赋值运算符的优先级最低

C.C程序中,j++;是赋值语句

D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算

16.下面的哪个保留字不能作为函数的返回类型()。

A.voidB.intC.newD.long

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

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

18.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的运行结果是()

A.zB.0C.元素ch[5]的地址D.字符y的地址

19.在关系代数运算中,有5种基本运算,它们是()。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)

B.并(∪)、差(-)、交(∩)、投影(π)和选择(σ)

C.并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)

D.并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)

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

二、2.填空题(20题)21.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

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

24.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

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

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

27.对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。

28.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf("%d%d%dln",a,b,c);

}

执行后输出结果为______。

29.[]的任务是诊断和改正程序中的错误。

30.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

31.一个模块直接调用的其他模块的模块个数称为______。

32.以下程序的运行结果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

33.下列程序能将字符串s1中的所有与字符串str1相同的子串替换成字符串sb2,并将替换后的新串存于字符数组s2中。

#include<stdio.h>

voidreplace(s1,s2,str1,str2)

char*s1,*s2,*str1,*str2;

{char*t0,*t1,*t2,*x,*y;

x=s1;y=s2;

while(【】)

{

for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);

if(*t1!='\0')*s2++=【】;

else

{for(t1=str2;*t1!='\0';)*s2++=【】;

【】;

}

}

*s2='\0';

}

main()

{staticchars1[]="abcdefababcdabab.",s2125];

replace(s1,s2,"abc","XYZ");

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

}

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

main()

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

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

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

}

35.在索引查找或分块查找中,首先查找【】,然后再查找相应的【】,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之和。

36.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

37.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

38.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf(“%d”,______);

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

39.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【】。

40.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"

三、1.选择题(20题)41.以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p])______;return(p);}在下划线处应填入的是

A.i=pB.a[p]=a[i]C.p=jD.p=i

42.设有以下语句:charstr1[]="string",str2[8],*str3,*str4="str4="string";则______不是对库函数的正确调用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2."HELLO2");

C.strcpy(str3."HELLO3");

D.strcpy(str4."HELLO4");

43.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

44.C语言提供的合法关键字是()

A.switchB.cherC.caseD.default

45.以下程序的输出结果是main(){charc='z';printf("%c",c-25);}

A.aB.ZC.z-25D.y

46.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是

A.data的每个成员起始地址都相同

B.变量data所占内存字节数与成员c所占字节数相等

C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000

D.data可以作为函数的实参

47.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

48.设有定义:floata=2,b=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是

A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)

49.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|b);}

A.66B.98C.bD.B

50.有以下程序:main(){charstr[][10]={"China","Beijing"),*P=str;printf("%s\n",p+10);}程序运行后的输出结果是______。

A.ChinaB.BeijingC.ngD.ing

51.以下程序段的输出结果是inta=1234;printf(“%2d\n”;A);

A.12B.34C.1234D.提示出错、无结果

52.若有以下程序段:structst{intn;int*m:};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&B)};main(){structst*p;p=s;}则以下表达式中值为5的是()。

A.(*p).mB.*(p+1)->mC.*(p++)->nD.(p++)(*m)

53.以下不能正确定义二维数组的选项是A.inta[2][2]={{1},{2}};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4}};

54.下面程序的输出结果是()。voidprty(int*x){printf("%din",++*x);}main(){inta=25;prty(&a);}

A.23B.24C.25D.26

55.有以下程序段#include<stdio.h>main(){chars[4][10];inti;scanf("%s%s",s[0],s[1]);gets(s[2])gets(s[3]);for(i=0;i<4;i++)puts(s[i]);}输入数据如下,aaaabbbb<CR>(此处<CR>代表回车符)ccccdddd<CR>输出结果是()

A.aaaabbbbccccdddd

B.aaaabbbbccccdddd

C.aaaabbbbccccddddeeee

D.aaaabbbbccccdddd

56.执行语句for(i=1;i++<4;);后变量i的值是______。

A.3B.4C.5D.不定

57.下面程序的输出结果是()main(){inty=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}

A.741B.852C.963D.875421

58.有以下程序:#include<stdio.h>main(){intc=35;printf("%d\n",e&c);}程序运行后输出结果是()。

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

59.在C语言程序中,下列说法正确的是()。

A.函数的定义和函数的调用均可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义可以嵌套,但函数的调用不可以嵌套

D.函数的定义和函数的调用均不可以嵌套

60.以下叙述中不正确的是

A.C语言中的文本文件以ASCII码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

四、选择题(20题)61.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

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

A.概要设计

B.详细设计

C.可行性分析

D.需求分析

63.

64.

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

66.

67.

68.

69.对于一个正常运行的C程序,以下叙述中正确的是()。

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

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

C.程序的执行总是从main函数开始、

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

70.

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

#include<stdio.h>

main

{chara[]={a,b,C,d,e,f,\0).

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d",i,j);

}

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

71.有以下程序:

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

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

72.以下程序段中,与语句:k=a>;b?(b>;c?1:O):0;功能相同的是()。

73.

74.有以下程序:

程序的运行结果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,1,

D.0,1,2,3,4,5,6,7,8,9,

75.

76.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=++rn;m=ixy;returnm;

}

main

{intj=l,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j.m);printf(”%d\n”,k);

}

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

A.5.5B.5,11C.11,11D.11,5

77.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树

78.

79.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

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

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

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

}

要输出45,则在下画线处应填入的选项是

A.p->next->aB.++p->a

C.(*p).a++D.p++->a

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

A.30B.10C.0D.64

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当str所指字符串中所指的内容为abcdabcdef9,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为alldalldefg。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写函数fun,其功能是:找出一维整型数组元素中最大的值所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值。index存放最大值所在元素的下标。

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

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

试题程序:

参考答案

1.C在C语言中null等价于数字0。

2.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。

3.B程序定义数组a和b,其中a使用小写字母和数字构成的字符串完成初始化。第1个for循环将数组a中所有的非小写字母字符(数字字符)自左向右存放到b数组中;第2个for循环将数组a中所有的非数字字符(小写字母)自左向右存放到b的后续单元中,在所有字符后添加空字符,输出b,此时b的值为:123456789964abbcdefghijk。本题答案为B选项。

4.B第一次执行外循环i的值为1,满足条件,判断第一次内循环,j的值为3,不满足条件,跳出内循环。第二次执行外循环i的值为2,同理也不满足内循环条件,跳出内循环。第三次执行外循环i的值为3,此时进入内循环判断条件时,条件成立,执行m=m%j,m的值为1,跳出内循环,跳出外循环打印m的值。

5.A"\0"表示空字符,strlen函数求得的是不包括字符串结束符\0的长度。故选A。

6.C

7.A本题中定义了整形变量case,但case是关键字,关键字不能用做标识符。单精度printF不是关键字,因为标识符区分大小写。所以A不正确。

8.AB)选项中switch(n[nx);语句中不应该有最后的分号。switch(expr1),中的exp1不能用浮点类型或Iong类型,也不能为一个字符串,所以C)错误。case后面常量表达式的类型必须与switch后面表达式的类型一致,所以D)错误。

9.A

10.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

11.A

12.A条件表达式:x=表达式1:表达式2:表达式3的含义是:先求解表达式1.若为非0(真),则求解表达式2.将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3.将表达式3的值赋给x。在本题中与表达式1:(x-y)等价的是(x-y<0|x-y>0)。

13.A本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的hum成员,x[i].num[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i].num,x[1].name[2]的值;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3次循环,i=3,输出X[3].hum,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。

14.C程序首先定义整型变量a和b,a的初值为123456。接着通过while循环,判断a的值是否为0,若不为0,则执行循环体。每次循环将a当前值的个位数字(a%10)赋给b,a自身除以10。再通过switch语句判断b的值执行对应分支语句。所以对应a的每个个位数,b的取值为6,5,4,3,2,1。当b取值为6时,执行default,输出6,接着继续执行case1,通过break退出switch。执行下一次循环,当b取值为5时,执行case5输出5。执行下一次循环,当b取值为4时,执行case4输出4,继续执行case5输出5。接着执行下一次循环,当b取值为3时,执行case3输出3,执行case4输出4,执行case5输出5;当b取值为2时,执行case2输出2,通过break退出switch;当b取值为1时,执行break,此时a的取值为0,循环终止。综上,程序输出结果为:65453452。本题答案为C选项。

15.D解析:“%”是求余运算符,其两侧的数值只能为整型,所以它不能用于实型的运算,故选项D错误。

16.C

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

18.A语句“pc=ch;”使得指针变量pc指向字符数组ch的首地址,即指向字符‘u’。而“pc+5”指向的是指针向后移动5位所指的字符,即指向字符‘z’,所以输出的“*(pc+5)”的值为‘z’。故本题答案为A选项。

19.D解析:关系代数运算的基本运算符有4类:集合运算符、专门的关系运算符、算术运算符和逻辑运算符。并、差、笛卡儿积、投影、选择是5种基本的运算,其他运算可以通过基本的运算导出。

20.D本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

21.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

22.3123,1,2解析:分析程序,第一个if句,a=1,b=2,控制条件a<b成立,则交换a、b的值,此时a=2,b=1。第二个if语句,a=2,c=3,控制条件a<c成立,则交换a、c的值,此时a=3,c=2。

23.软件开发

24.逻辑独立性逻辑独立性解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两个含义。注意:在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点。

25.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

26.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。

27.n/2n/2解析:删除—个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2:所以总体平均移动元素个数为n/2。

28.503503解析:此处需注意的是:如果if后面的条件为真,只执行其后的一条语句或一条复合语句,如果if后面的条件为假,只执行else后面的一条语句或一条复合语句。先判断表达式“a<b”为假,不执行“t=a”,但执行“a=b;b=t;”,s的值为3,b的值为0。在判断表达式“a<c”,值为真,所以执行后面的3条语句“t=a;a=c;c=t”,结果a的值为5,c的值为3,所以最后输出的结果为5、0和3。

29.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。

30.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

31.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

32.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。

33.*s1!='\0'或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)*s1!='\\0'或*s1\r\n*t0=*t1\r\n*s1++\r\n*t1++\r\ns1=t0或s1=s1+strlen(str1)

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

35.索引表块索引表\r\n块

36.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

37.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[i+1]值相加后的值赋予数组b中元素b[i]小即可实现将一个数组的前项和后项之和存入另一数组。

38.k*kk*k解析:本题考查的知识点是scarf()函数和printf()函数的用法。scanf()函数有两个参数,第一个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第;个空位于printf()函数的第二个参数处,所以应该填*K。

39.rewind()或fseek()rewind()或fseek()

40.SET单价=单价*1.05SET单价=单价*1.05解析:更新表中元组的值,使用UPDATE命令,一次可以更新表中的一个或多个属性值。UPDATE短语之后指定更新数据所属的表,将新的属性值或表达式赋值给对应的属性名(SET单价=单价*1.05),并置于SET短语之后。要求对人民邮电出版社的图书涨5%,需要用WHERE短语对元组进行限制,即对符合条件的元组进行更新。

41.D解析:该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前的设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p即将比较过的最小的元素下标保留在p中,作为下面判断的标准。

42.C解析:C语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项C中的字符串指针str3没有指向具体有效的存储单元,故是错误的调用。

43.D解析:在C语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%60”是以8进制无符号形式输出整数(不输出前导符o);“%x”是以16进制无符号形式输出整数(不输出前导符Ox)。

44.C

45.A解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。所以本题答案是A)。

46.D解析:选项A),共用体的每个成员的起始地址都相同;选项B),共用体变量所占的内存长度等于最长的成员的长度;选项C)因为每个成员的起始地址相同,所以整型数5以浮点型输出时为5.000000;选项D)C语言规定,不能把共用体变量作为函数的参数。

47.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。

由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。

结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。

48.B解析:选项B中由于1和2都是整型,其1/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。

49.C解析:位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为1。最后以字符型输出,98对应的字符“b”。

50.B解析:本题中p+10表示字符串'Beijing'的地址,故正确答案为B。

51.C解析:printf()函数的输出格式,当整数的值超过格式要求输出范围时,原样输出。本题中要求输出两个有效数字,而实际上a有4个有效数字,故原样输出,输出1234。

52.B

53.D解析:选项A)定义的数组按行各数组元素分别是:1,0,2,0;选项B)定义的数组按行各数组元素分别是:1,2,3,4;选项C)定义的数组按行各数组元素分别是:1,0,2,3;因为定义数组时,第一维的长度可以不指定,第二维的长度必须指定,所以选项D)错。

54.D解析:执行prty(&a);将变量a的地址传递给形参。x是指针型变量,值为变量a的地址,*x就是取存储单元的值即25,输出*x加1后的值26。

55.A

56.C解析:for语句中的表达式可以部分或全部省略,但两个“;”不能省略,若3个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当i的值为5的时候,循环终止。

57.B

58.C解析:按位与运算符“&”的运算规则是:如果两个相应的二进制位都为1,则该位的结果为1,否则为0。因为本题中相与的两个数相同,即对应位的二进制数相等,所以结果为其值本身。

59.B解析:本题考查函数调用的基本概念。因为函数的结果是个未知量,而函数定义时不能使用未知量,所以函数定义不可以嵌套,但函数的调用可以嵌套。

60.D解析:在C语言中文本文件是以ASCII码形式存放的,每个字符占一个字节。由于数据在计算机中是以二进制形式存放的,因此二进制文件中的数据可以直接读出,而不需要像文本文件那样把ASCII码转换成二进制,因此速度较快。在文本文件叶,,数据以ASCII码形式存放,用户很难判定一个数据到底占几个字节,所以不适合使用随机读写方式。数据以二进制形式存放,占有的字节数是固定的,所以可以进行随机读写,当然也可以顺序读写。故D选项为所选。

61.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

62.D注:即第一个阶段

63.D

64.B

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

66.C

67.A

68.C

69.C任何一个C语言程序的执行都是从主函数main开始,至主函数main结束。故本题答案为C选项。

70.B

\n本题要注意sizeof和strlen的区别,sizeof函数的功能是返回字符串所占的字节数,strlen函数的功能是返回字符串长度,\0是一个转义符,它占存储空间,但不计入串的长度。

\n

71.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选项正确。

72.B条件表达式的含义是,如果表达式1成立,结果为表达式2的值,如果不成立为表达式3的值。所以题干中k的值这样取值:如果a>b且b>c,k值结果为1,如果a>b,且b<c则值为0。如果a<b,k值为0。也就是只要a>b与b>c中只要有一个条件不成立,k的值就为0,所以选择B选项。

73.B

74.A在c语言中函数参数的传递是”传值”的,即形参和实参是两个没有关系的变量,函数fun虽然看似交换了参数值,但是只交换了形参的值,其结果不会传递给实参,因此数组c没有变化。主函数中给数组c元素赋值l,2,…,9,0。第一个for循环语句中调用fun函数,该函数功能是交换变量的数值,注意循环变量i的增量。第二个for循环语句将数组c中元素的值进行输出。

75.D

76.B

\n变量m和i声明为局部静态变量,因此第1次调用fun函数后,局部静态变量m和i的值为5和3,第l次调用结束时,它们的值不变,第2次调用时,m和i的初始值分别为5和3,在执行“i+=m+1”后,i的值为9,因此,最终m的值为11。

77.B栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为B)。

78.A

79.A在本题中,程序首先定义了一个结构体,结构体中有两个成员变量,一个是整型,另一个是指向该结构体的指针。然后程序定义了一无返回值的函数set,该函数带有三个参数,第一个是结构体指针变量k,第二个是整型变量i,第三个是整型指针变量b。在函数体中,首先定义了两个整型变量,然后执行for循环,从循环变量的初始值及循环结束条件我们可以知道,循环执行的次数与形参变量i有关,从循环体中我们可以看出,该循环是将结构体数组中的前一个结构体的指针成员指向后一个结构体的首地址,并用数组b中的值给结构体的成员变量a赋值。

在主函数中,定义了一个大小为5的结构体数组k和一个结构体指针p,然后定义了一个数组d,并给数组d进行了初始化操作,然后调用函数set,实参分别为结构体数组k、5和数组d,结合上面我们对set函数的分析可以知道,此时执行set的for循环,可以是结构体数组中各结构体变量的指针成员next指向下一个结构体变量,并将该结构体变量的成员a赋值为数组d的与之位置相对应的值,如结构体数组中第一个结构体变量的a被赋值为数组d中的第一个元素值,即23。那么函数调用后,结构体数组各元素的成员a的值分别为23、34、45、56、67。

函数调用后,运行p=k+1;语句,该语句的作用是使结构体指针变量p执行结构体数组k的第二个元素,然后执行输出语句,本题要填的空就在输出语句中,根据题目要求,要输出一个45的值,当然,用数组d输出这么一个结果很简单,为d[2],但选项中并没有这项,而是需要我们从结构体数组中输出这个值,从上面的分析我们知道,该值对应结构体数组第三个元素的成员,而当前的p执行第二个元素,从四个选项来分析,只有A选项能完成输出45的任务。

B选项中的++p->a由于运算符优先级问题,首先运行p->a,输出的是34,然后加1,即输出35。

C选项中的(*p).a++等于((*p).a)++,这样的结果是34++,最后的输出结果是34。

D选项中的p++->a等价于(p++)->a,显然是输出第二个结构体的a成员值,即34。

80.D本题目中静态局部变量x,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次循环s的值为2;第二次循环中,返回的x的值为4,因此s的值为8;第三次循环,返回的x的值为8,因此s的值为64。

81.(1)错误:intproc(char*str,char*t1,char*t2,char*w)

正确:voidproc(char*str,char*t1.char*t2,char*w)

(2)错误:while(r)

正确:while(*r)

(3)错误:r++

正确:r++;

【解析】由主函数中proc()函数的调用以及proc()函数的定义,可知该函数没有返回值,因此把proc()前的“int”改为“void”;由proc()函数可知,变量r指向的是字符串t1地址,while循环要判断的是字符串tl是否结束,因此,“while(r)”应改为“while(*r)”;C语言中,每一条语句都以分号结束,因此。“r++”后要加上分号。

82.

【解析】本题考查的是for循环和指针变量。通过for循环实现对数组的遍历,形参iilax和d都是指针型变量,所以引用它们指向的变量时要进行指针运算。先有*max=a[0],在遍历中如果遇到比max大的元素,则将a[i]赋值给max,下标i赋值给*d。循环语句用来遍历数组元素,然后通过条件语句比较数组元素找到最大值。

2021-2022年山西省朔州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.A.p="";

B.p="0";

C.p=0;

D.p="";

2.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

3.有下列程序:程序执行后的输出结果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

4.有以下程序:

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

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

5.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。

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

6.

7.阅读以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("请输人2个数:");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}该程序在编译时产生错误,其出错原因是()。A.定义语句出错,case是关键字,不能用做用户自定义标识符

B.定义语句出错,printF不能用做用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

8.若有定义:floatx=1.5;inta=1.b=3.c=2;则正确的switch语句是()。A.

B.

C.

D.

9.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

10.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

11.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,按列优先存放时,元素A5,4的地址为()。

A.1256B.1264C.1272D.1280

12.若有定义int?x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

13.定义结构体数组:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的输出结果为()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

14.有下列程序:程序执行后的输出结果是()。

A.654321

B.65432

C.65453452

D.654534521

15.以下叙述中错误的是______。A.C程序中的#include和#define行均不是C语句

B.除逗号运算符外,赋值运算符的优先级最低

C.C程序中,j++;是赋值语句

D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算

16.下面的哪个保留字不能作为函数的返回类型()。

A.voidB.intC.newD.long

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

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

18.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的运行结果是()

A.zB.0C.元素ch[5]的地址D.字符y的地址

19.在关系代数运算中,有5种基本运算,它们是()。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)

B.并(∪)、差(-)、交(∩)、投影(π)和选择(σ)

C.并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)

D.并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)

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

二、2.填空题(20题)21.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

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

24.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

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

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

27.对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。

28.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf("%d%d%dln",a,b,c);

}

执行后输出结果为______。

29.[]的任务是诊断和改正程序中的错误。

30.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

31.一个模块直接调用的其他模块的模块个数称为______。

32.以下程序的运行结果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

33.下列程序能将字符串s1中的所有与字符串str1相同的子串替换成字符串sb2,并将替换后的新串存于字符数组s2中。

#include<stdio.h>

voidreplace(s1,s2,str1,str2)

char*s1,*s2,*str1,*str2;

{char*t0,*t1,*t2,*x,*y;

x=s1;y=s2;

while(【】)

{

for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);

if(*t1!='\0')*s2++=【】;

else

{for(t1=str2;*t1!='\0';)*s2++=【】;

【】;

}

}

*s2='\0';

}

main()

{staticchars1[]="abcdefababcdabab.",s2125];

replace(s1,s2,"abc","XYZ");

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

}

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

main()

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

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

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

}

35.在索引查找或分块查找中,首先查找【】,然后再查找相应的【】,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之和。

36.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

37.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

38.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf(“%d”,______);

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

39.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【】。

40.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"

三、1.选择题(20题)41.以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p])______;return(p);}在下划线处应填入的是

A.i=pB.a[p]=a[i]C.p=jD.p=i

42.设有以下语句:charstr1[]="string",str2[8],*str3,*str4="str4="string";则______不是对库函数的正确调用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2."HELLO2");

C.strcpy(str3."HELLO3");

D.strcpy(str4."HELLO4");

43.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

44.C语言提供的合法关键字是()

A.switchB.cherC.caseD.default

45.以下程序的输出结果是main(){charc='z';printf("%c",c-25);}

A.aB.ZC.z-25D.y

46.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是

A.data的每个成员起始地址都相同

B.变量data所占内存字节数与成员c所占字节数相等

C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000

D.data可以作为函数的实参

47.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

48.设有定义:floata=2,b=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是

A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)

49.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|b);}

A.66B.98C.bD.B

50.有以下程序:main(){charstr[][10]={"China","Beijing"),*P=str;printf("%s\n",p+10);}程序运行后的输出结果是______。

A.ChinaB.BeijingC.ngD.ing

51.以下程序段的输出结果是inta=1234;printf(“%2d\n”;A);

A.12B.34C.1234D.提示出错、无结果

52.若有以下程序段:structst{intn;int*m:};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&B)};main(){structst*p;p=s;}则以下表达式中值为5的是()。

A.(*p).mB.*(p+1)->mC.*(p++)->nD.(p++)(*m)

53.以下不能正确定义二维数组的选项是A.inta[2][2]={{1},{2}};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4}};

54.下面程序的输出结果是()。voidprty(int*x){printf("%din",++*x);}main(){inta=25;prty(&a);}

A.23B.24C.25D.26

55.有以下程序段#include<stdio.h>main(){chars[4][10];inti;scanf("%s%s",s[0],s[1]);gets(s[2])gets(s[3]);for(i=0;i<4;i++)puts(s[i]);}输入数据如下,aaaabbbb<CR>(此处<CR>代表回车符)ccccdddd<CR>输出结果是()

A.aaaabbbbccccdddd

B.aaaabbbbccccdddd

C.aaaabbbbccccddddeeee

D.aaaabbbbccccdddd

56.执行语句for(i=1;i++<4;);后变量i的值是______。

A.3B.4C.5D.不定

57.下面程序的输出结果是()main(){inty=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}

A.741B.852C.963D.875421

58.有以下程序:#include<stdio.h>main(){intc=35;printf("%d\n",e&c);}程序运行后输出结果是()。

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

59.在C语言程序中,下列说法正确的是()。

A.函数的定义和函数的调用均可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义可以嵌套,但函数的调用不可以嵌套

D.函数的定义和函数的调用均不可以嵌套

60.以下叙述中不正确的是

A.C语言中的文本文件以ASCII码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

四、选择题(20题)61.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

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

A.概要设计

B.详细设计

C.可行性分析

D.需求分析

63.

64.

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

66.

67.

68.

69.对于一个正常运行的C程序,以下叙述中正确的是()。

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

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

C.程序的执行总是从main函数开始、

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

70.

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

#include<stdio.h>

main

{chara[]={a,b,C,d,e,f,\0).

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d",i,j);

}

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

71.有以下程序:

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

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

72.以下程序段中,与语句:k=a>;b?(b>;c?1:O):0;功能相同的是()。

73.

74.有以下程序:

程序的运行结果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,1,

D.0,1,2,3,4,5,6,7,8,9,

75.

76.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=++rn;m=ixy;returnm;

}

main

{intj=l,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j.m);printf(”%d\n”,k);

}

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

A.5.5B.5,11C.11,11D.11,5

77.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树

78.

79.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

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

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

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

}

要输出45,则在下画线处应填入的选项是

A.p->next->aB.++p->a

C.(*p).a++D.p++->a

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

A.30B.10C.0D.64

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当str所指字符串中所指的内容为abcdabcdef9,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为alldalldefg。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

温馨提示

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

评论

0/150

提交评论