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

下载本文档

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

文档简介

2022-2023年江苏省扬州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.已知A=10,B=20,下类表达式正确的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

2.已知有如下结构体:structsk{inta;floatb;}data,*p;若有P=&data,则对data的成员a引用正确的是()。A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

3.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

4.有以下程序:

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

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

5.表示关系a≤b≤c的C语言表达式为()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

6.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

7.以下正确的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.下面是有关C语言字符数组的描述,其中错误的是()。

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

9.

10.下列程序段的时间复杂度为()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

11.以下能正确定义一维数组的选项是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

12.

13.以下选项中合法的c语言常量是()。

A.,C—STR’B.2014.1C.”\l.0D.2EK

14.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

15.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

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).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

16.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。

A.wbB.wb+C.rb+D.rb

17.链表不具有的特点是()。

A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比

18.

19.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。

A.O(1)B.O(log2n)C.O(n)D.O(n2)

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

二、2.填空题(20题)21.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

22.若有语句:

inti=-19,j=i%4;

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

则输出结果是【】。

23.若变量n中的值为24,则print函数共输出【】行,最后一行有【】个数。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))

printf("\n");

}

printf("\n");

}

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

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;

}

25.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

28.已知存储结构如下所示,请填空。

datanext

structlink{chardata;

【】;

}node;

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

30.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

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

31.需求分析的最终结果是产生【】。

32.下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。

structstu

{intx;

【】

【】next;}

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

#include<stdio.h>

main()

inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

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

pfintf("%d\n",s);

34.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

35.下列程序的输出结果是16.00,请填空:

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

36.软件工程的出现是由于【】。

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

38.下面的程序可列指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

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

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】。

三、1.选择题(20题)41.SQL语言又称为______。

A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言

42.下面程序的输出结果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

43.以下程序输出的结果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

44.下列程序是用来判断数组中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

如果输入如下整数:876675896101301401980431451777

则输出结果为

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

45.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

46.有以下程序:structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042);c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044);*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043);f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}执行后输出结果是()。

A.20412044B.20412043C.20422044D.20422043

47.以下选项中合法的实型常数是

A.5E2.0B.E-3C.2.00E+00D.1.3E

48.在下列叙述中,正确的一条是______。

A.如果形参发生改变,不会改变主调函数的实参值

B.在C语言中,函数可以递归调用或递归定义

C.数组名作函数参数时,也采用“值传送”方式

D.预处理时,宏名用字符串代替,并检查语法正确与否

49.设有说明:inta=1,b=0;,则执行以下语句的输出结果是______。switch(a){case1:switch(b){case0:printf("**0**\n");break;case1:printf("**1*\n");break;}case2:printf("**2**\n");break;}

A.**0**B.**0****2**C.**0****1****2**D.switch语句中存在语法错误

50.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是______。

A.AbB.aaC.AaD.Bb

51.

对两个数组a和b进行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

则下列叙述正确的是()。

A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串

52.算法的空间复杂度是指

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

53.有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序运行后的输出结果是()。

A.-1B.65535C.32767D.-32768

54.若变量a是int类型,并执行了语句:a='A'+1.6;则正确的叙述是

A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCII值加上1。

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

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

56.若有以下定义和语句,则输出结果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.输出abcdB.输出aC.输出abcd口口口口口D.编译不通过

57.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

58.下面能正确进行字符串赋值操作的语句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

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

D.char*s;scanf("%s",s):

59.在C程序中,可将整型数以二进制形式存放到文件中的函数是______。

A.fprint函数B.fread函数C.fwrite函数D.fputc函数

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

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

四、选择题(20题)61.读出以下语句的输出结果是()。

intx=10,y=10;

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

A.1010B.99C.910D.109

62.设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

63.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

64.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

65.下列能正确进行字符串赋值的是()。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);

66.设有以下函数:

A.

B.

C.

D.

67.

68.

69.

70.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

71.有下列程序:、

fun(intX,inty){return(x+y);)

main()

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

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

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

72.

73.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

74.

75.关系模型允许定义三类数据约束,下列不属于数据约束的是()。A.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束

76.软件设计中衡量模块独立性的度量标准是()。

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

77.在软件开发中,需求分析阶段产生的主要文档是()。

A.软件需求规格说明书B.数据库说明书C.集成测试计划D.概要设计说明书

78.有三个关系R、S和T如下:

其中关系T由关系R和s通过某种操作得到,该操作为()。

A.选择B.投影C.交D.井

79.有以下程序:

程序的运行结果是()。

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

80.若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为()。

A.两个语句都是将变量a的值赋予变量P

B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

C.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

D.两个语句都是使P指向变量a

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:判断字符ch是否与sir所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:比较2个字符串的长度(不得调用C语言中求字符串长度的函数),函数返回较长的字符串。若2个字符串长度相等,则返回第1个字符串。例如,若输入jiangxi<;Enter>;beijing<;Enter>;则函数返回jiangxi。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.B本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。

3.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

4.Astatic静态变量只在声明时初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五层init=24,val=5,因此结果为l,2,6,24,120。故答案为A选项。

5.A解析:本题考查逻辑与运算符&&。在C语言中使用运算符“&&”连接两个表达式,也可以表示逻辑与运算符。在C语言中不允许出现a<=b<=c这种格式。

6.B

7.B题目中的选项都以转义字符“\\”开头,“\\ddd”表示3位八进制数代表的一个ASCII字符,“\\xhh”表示2位十六进制数代表的一个ASCII字符。选项A中“089”是不合法的八进制数,错误;选项C、D中“\\0X”或“\\0x”不合法,错误;选项B表示八进制数012代表的ASCII字符,正确。本题答案为B选项。

8.D\n用来存放字符量的数组称为字符数组。字符数组也可以是二维或多维数组,对一个字符数组,如果不作初始化赋值,则必须说明数组长度,还可用printf函数和scarlf函数一次性输出/输入一个字符数组中的字符串,而不必使用循环语句逐个地输入/输出每个字符。通常用一个字符数组来存放一个字符串。所以D选项不正确。

\n

9.D

10.D

11.B解析:选项A定义数组时省略了长度,而C语言中规定,只有在定义并同时进行初始化时,数组的长度才可以省略,数组的长度为初始化时候的成员个数,故选项A错误;在C语言中规定,数组的长度必须是一个整数或整型常量表达式,故选项C不正确:定义时数组的长度不能使用变量表示,故选项D不正确,所以,4个选项中选项B符合题意。

12.B

13.B所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。

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

15.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。

16.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。

17.BB选项的特点是顺序存储结构的特点,即数组的特点。

18.B

19.C

20.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。

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

22.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。

23.54

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

25.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

26.2002Shangxian2002Shangxian解析:本题考核的知识点是结构体类型的定义、赋初值以及字符串的比较。本题中首先定义一个结构体类型STU,镇结构体由一个长度为10的字符型数组、一个long型变量和一个float型变量组成。接着在主函数中用STU定义了4个结构体变量a、b、c、d,并且给a、b、c赋初值,然后定义?一个结构体指针p,并让它指向变量d。然后让将变量a的值赋给变量d,接着通过两个if语句比较结构体变量a、b、c的成员name大小。第一个订语句将结构体变量和结构体变量中较小的那个赋值给结构体变量d,第二个if语句将结构体变量和结构体变量较大的那个赋给结构体变量d。比较通过函数strcmp实现。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。程序中第一个if语句strcmp(,)>0为真,故将b的值赋给d;第二个if语句strcmp()>0为假,故不执行后面的语句,最后d的值为b的值,因此输出d.sn0和p->name的值为2002Shangxian

27.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

28.strucklink*nextstrucklink*next解析:结构体变量构成链表要求结构体中必须有一个指向该结构体变量自身的指针用来指明链表的下一个结点。注意:结构体变量的定义及其成员变量的引用。

29.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

30.-4-4解析:if-else构造了一种二路分支选择,是一种最基本的选择结构,if(条件)S1(if分结构)elseS2(else分结构),它的工作过程是:先对条件表达式进行判断,若为真(成立,值为非零),就执行if分结构(S1);否则(不成立,值为0),就执行else分结构(S2)。本题中,n=O,可以判断(!n)为真,执行“x=x-1=2-1=1;m=1”,可以判断(m)为真,执行“x=x-2=1-2=-1;”进而可以判断(x)为真,执行x=x-3=-1-3=-4。所以,最后输出为-4。

31.需求规格说明书需求规格说明书解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。

32.floaty;structstu*floaty;\r\nstructstu*解析:float定义变量y为实型变量。要求变量next是指向自身结构体的指针,因此变量next应该是结构体stu的指针型变量。

33.3030解析:当i=0时,s=0+a[0][0]+a[0][2]=10;i=1时,s=10+a[1][1]+a[1][1]=18;i=2时,s=18+a[2][2]+a[2][0]=30。

34.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;

②str[i]代表字符串str中的第i+1个字符;

③整形变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

36.软件危机的出现软件危机的出现

37.1212解析:本题的第—个for循环用于绐数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。

38.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下一个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+l]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。

39.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整数x的绝对值大于5,则x大于5或x小于5,用C语言表示即为:x>5||x<-5或者x<-5||x>5。故本题答案为;x>5||x<-5或者x<-5||x>5。

40.44解析:在主函数中调用函数f,函数f有三个参数,形参f1与f2分别是两个指向函数的指针。在f中执行f2(x)-f1(x),实际上是执行了fb(2)-fa(2),故执行i=(fa,fb,2)后i的值为23-22=4。

41.CC。【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言4个部分。

42.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串中的第一个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。

43.C解析:printf函数中不同类型的数据用不同的格式字符,其中%d是按整型数据的实际长度输出十进制整数。变量a=65535以%d格式输出时溢出输出值为该数的补码值,即-1:%u用来输出unsigned型数据,无符号整型变量的数值范围为0~65535,所以变量a=65535以%u格式输出的值为65535。

44.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

45.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。

46.A解析:本题中首先定义了一个结构体类型STU,它由一个字符数组和一个整形变量hum组成。然后定义两个函数f1和f2。其中f1是值传递的,f2是地址传递的。主函数中定义两个结构体变量a和b并分别赋初值,接着调用函数f1(a),由于函数n是值传递,故执行该函数后并没有改变a的值,再接着调用函数f2(&b),由于该函数是地址传递,执行该函数后将使变量b的值为{'SunDan',2044},故函数最后输出a.num和b.num的值为2041和2044。所以,4个选项中选项A符合题意。

47.C解析:在C语言中,实数有两种表示形式:十进制数形式与指数形式。

1)一般形式的实数:小数形式的实数由整数部分、小数点和小数部分组成(必须要有小数点)。

2)指数形式的小数:指数形式的实数由尾数部分、e(E)和指数部分组成(字母e或E的前后必须要有数字,且其后面的指数必须为整数)。选项A中,5E2.0中E后面的2.0不是整数;选项B中,E前面没有数字;选项D中,E后面没有数字。

48.A

49.B解析:本题是switch-case语句的嵌套使用,外层switch语句的第一个分支(嵌套switch语句)执行完后,没有break;语句,将继续执行第二个分支。

50.A解析:本题中函数fun的形参是指针变量,因此实参与形参之间是地址传递,即形参的改变可以影响实参。main函数中p1指向c1,p2指向c2,函数调用语句fun(p1,p2)的功能是将p2所指存储单元的内容的值加1,即将c2的值加1得c2='b',故printf函数的输出结果为Ab。

51.C解析:本题考查字符数组和字符串赋值给数组的一些区别。语句“charm[]='1234567';”定义了一个字符型数组并进行了初始化,C语言规定,在字符串的末尾自动加上串结束标记\'\\0\',因此数组m的长度是8;而数组n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记\'\\0\',因此数组n的长度是7。

52.D解析:算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行旱灾程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。

53.B解析:不同类型的对象进行混合运算时,需要进行数据的类型转换,其转换方向为int→unsigned→long→double。本题程序中的变量b为int型,需要转换为unsigned型。int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以整型数-1在内存中表示为16个1,最高位的1表示符号为负,将它转换为unsigned类型,即将原符号位的1看成数值,所以得到16个数值1,即65535。

54.D解析:在C语言中规定允许不同类型的量进行运算,但在运算时需转换成高级的类型进行运算。在表达式中有字符型和实型参加运算时,统一转换为实型再运算,当运算结果存入变量时再转换为该变量的类型。

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

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

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

56.D

57.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整

个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩

下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合

成一个新的有序表。

注意:各种排序方法实现过程及实现机制。

58.C

59.C

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

61.D

62.C本题考查的是if语句。if是c语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A)和B)是在表达式后跟了一条空语句,选项D)是在表达式后跟了一组空语句,选项C)中x一一是表达式而不是语句,所以在编译时会出现错误信息,在X一一后面加上”;”号就对了。

63.A赋值表达式左边必须是一个变量,而选项B)、c)中赋值号左边都是表达式,选项D)进行强制类型转换时,应写为(double)x/10。

64.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的开始,SEEK_CUR代表的是文件当前位置。

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

66.A函数指针的定义形式是:数据类型标识符(*指针变量名)。void(*pf)定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

67.D

68.D

69.D

70.A

\n函数fun的作用是将指针a指向指针b的内容,然后将该内容加1。执行语句“fun(p1,p2);”后,pl和p2指向的地址并未改变,只是将p2指向的存储单元的值增加l。所以,答案是A。

\n

71.C\n函数fun(intx,inty)的功能是返回x+Y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a++,b++,a+b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。

\n

72.D

73.BA项错误,可行性分析阶段产生可行性分析报告。C项错误,概要设计说明书是总体设计阶段产生的文档。D项错误,集成测试计划是在概要设计阶段编写的文档。B项正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。

74.C

75.C数据约束是用来确保数据的准确性和一致性的。常见的四种数据约束如下:

(1)实体完整性约束:规定表的每一行在表中是唯一的实体。

(2)域完整性约束:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。

(3)参照完整性约束:是指两个表的主关键字和外关键字的数据应一致,保证了表之间数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。

(4)用户定义的完整性约束:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。

在上述四种数据约束中,不属于关系模型定义的三种数据约束的是域完整性约束。

76.C耦合性与内聚性是模块独立与否的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内蒙、低耦合,即减弱模块之间的耦合性而提高模块内的内聚性,这样有利于提高模块的独立性。

77.A软件需求规格说明书是需求分析阶段最后的成果,它是作为需求分析的一部分而制定的可交付文档。概要设计说明书、数据库说明书、集成测试计划都是概要设计阶段需要编写的文档。

78.D关系T中包含了关系R与s中的所有元组,所以进行的是并的运算。

79.B该题目考查函数参数传递以及if条件语句。当变量b为0时,将a的值返回给主调函数,因此a进行两次自减l后,将其值返回并输出。

80.C“P”是指针变量,指向一个地址:“*P”为P指针所指向地址的内容“&”是取变量地址。

81.

【解析】形参的个数和类型由调用该函数的实参的个数和类型决定,由main()函数中调用的函数proc()可知,“voidproc(charstr,charch)”应改为“voidproc(char*str,charch)”;将字符串中的每一个字符与给定字符相比较,当字符串结束或者字符串中有与给定字符相同的字符时结束。如果到字符串的最后一个字符仍没找到与给定字符相同的字符,将给定字符插在字符串的最后,因此,“if(*str==ch)”应改为“if(*str==ˊ\0ˊ)”;最后还要为字符串添加一个结束符,因此“str[1]=ˊ0ˊ;”应改为“str[1]=ˊ\0ˊ”。

82.

【解析】题目中要求不能用C语言中提供的求字符串长度的函数,可以通过移动字符串指针来计算字符串的长度。定义2个变量分别存放2个字符串的长度,最后比较2个字符串的长度,返回相对较长的那一个字符串。

2022-2023年江苏省扬州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.已知A=10,B=20,下类表达式正确的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

2.已知有如下结构体:structsk{inta;floatb;}data,*p;若有P=&data,则对data的成员a引用正确的是()。A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

3.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

4.有以下程序:

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

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

5.表示关系a≤b≤c的C语言表达式为()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

6.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

7.以下正确的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.下面是有关C语言字符数组的描述,其中错误的是()。

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

9.

10.下列程序段的时间复杂度为()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

11.以下能正确定义一维数组的选项是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

12.

13.以下选项中合法的c语言常量是()。

A.,C—STR’B.2014.1C.”\l.0D.2EK

14.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

15.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

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).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

16.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。

A.wbB.wb+C.rb+D.rb

17.链表不具有的特点是()。

A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比

18.

19.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。

A.O(1)B.O(log2n)C.O(n)D.O(n2)

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

二、2.填空题(20题)21.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

22.若有语句:

inti=-19,j=i%4;

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

则输出结果是【】。

23.若变量n中的值为24,则print函数共输出【】行,最后一行有【】个数。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))

printf("\n");

}

printf("\n");

}

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

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;

}

25.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

28.已知存储结构如下所示,请填空。

datanext

structlink{chardata;

【】;

}node;

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

30.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

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

31.需求分析的最终结果是产生【】。

32.下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。

structstu

{intx;

【】

【】next;}

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

#include<stdio.h>

main()

inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

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

pfintf("%d\n",s);

34.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

35.下列程序的输出结果是16.00,请填空:

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

36.软件工程的出现是由于【】。

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

38.下面的程序可列指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

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

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】。

三、1.选择题(20题)41.SQL语言又称为______。

A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言

42.下面程序的输出结果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

43.以下程序输出的结果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

44.下列程序是用来判断数组中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

如果输入如下整数:876675896101301401980431451777

则输出结果为

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

45.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

46.有以下程序:structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042);c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044);*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043);f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}执行后输出结果是()。

A.20412044B.20412043C.20422044D.20422043

47.以下选项中合法的实型常数是

A.5E2.0B.E-3C.2.00E+00D.1.3E

48.在下列叙述中,正确的一条是______。

A.如果形参发生改变,不会改变主调函数的实参值

B.在C语言中,函数可以递归调用或递归定义

C.数组名作函数参数时,也采用“值传送”方式

D.预处理时,宏名用字符串代替,并检查语法正确与否

49.设有说明:inta=1,b=0;,则执行以下语句的输出结果是______。switch(a){case1:switch(b){case0:printf("**0**\n");break;case1:printf("**1*\n");break;}case2:printf("**2**\n");break;}

A.**0**B.**0****2**C.**0****1****2**D.switch语句中存在语法错误

50.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是______。

A.AbB.aaC.AaD.Bb

51.

对两个数组a和b进行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

则下列叙述正确的是()。

A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串

52.算法的空间复杂度是指

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

53.有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序运行后的输出结果是()。

A.-1B.65535C.32767D.-32768

54.若变量a是int类型,并执行了语句:a='A'+1.6;则正确的叙述是

A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCII值加上1。

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

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

56.若有以下定义和语句,则输出结果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.输出abcdB.输出aC.输出abcd口口口口口D.编译不通过

57.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

58.下面能正确进行字符串赋值操作的语句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

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

D.char*s;scanf("%s",s):

59.在C程序中,可将整型数以二进制形式存放到文件中的函数是______。

A.fprint函数B.fread函数C.fwrite函数D.fputc函数

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

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

四、选择题(20题)61.读出以下语句的输出结果是()。

intx=10,y=10;

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

A.1010B.99C.910D.109

62.设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

63.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

64.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

65.下列能正确进行字符串赋值的是()。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);

66.设有以下函数:

A.

B.

C.

D.

67.

68.

69.

70.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

71.有

温馨提示

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

评论

0/150

提交评论