2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年云南省丽江市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.若有定义“inta,b;”,通过语句“scanf(“%d;%d,”&a,&b)能把整数3赋给变量a、5赋给变量b的输入数据是()。

A.35B.3,5C.3;5D.35

3.以下是if语句的基本形式:

if(表达式.语句

其中“表达式”()。

A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式

4.程序中若有如下说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下选项中对函数Fun的正确调用语句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

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

A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式

B.实型变量中允许存放整型数

C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变

D.在C程序中,求余算符“%”两边的类型相同时才能进行运算

6.下述程序执行的输出结果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

7.若有如下定义,则__________是对数组元素的正确的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

8.数据结构若采用链式存储结构,要求内存中可用存储单元的地址()。

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以

9.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序运行后的输出结果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

10.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑

11.一棵完全二叉树中根结点的编号为1,而且23号结点有左孩子但没有右孩子,则完全二叉树总共有____个结点。

A.24B.45C.46D.47

12.程序运行后的输出结果是()。A.0304.B.2050C.3344D.3040

13.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式

14.一个C语言程序总是从()开始执行。

A.书写顺序的第一函数B.书写顺序的第一条执行语句C.主函数main()D.不确定

15.以下非法的赋值语句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

16.数据结构中,与所使用的计算机无关的是数据的()结构。

A.存储B.物理C.逻辑D.物理和存储

17.一个n条边的连通无向图,其顶点的个数至多为()。

A.n-1B.nC.n+1D.nlogn

18.

19.下列叙述中错误的是()。

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便调用一次返回多个函数值

C.用户定义的函数中若没有return语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

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

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

二、2.填空题(20题)21.一个模块直接调用的其他模块的模块个数称为______。

22.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

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

24.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【】。

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

26.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,指定字符1,则输出3。请填空。

#include<stdio.h)

#deftneM81

intfun(char*ss,charc)

{inti=0;

for(;【】;ss++)

if(*ss==c)i++;

returni;

}

main()

{chara[M],ch;

printf("\nPleaseenterastring:");gets(a);

printf("\nPleaseenterachar:");ch=getchar();

printf("\nThenumberofthecharis:%d\n",fun(a,ch));

}

27.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

28.下列程序的运行结果为【】。

main()

{inti;

chara[]="Ilovechina!",b[20],*p1,*p2;

p1=a;

p2=b;

while(*p1)

{*p2=*p1;

p1++;

p2++;

}

*p2='\0';

printf("stringbis:%s\n",b);

}

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

30.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

31.已定义charch="$";inti=1,j;执行j=!ch&&i++以后,i的值为()。

32.将以下程序写成三目运算表达式是【】。

if(a>b)max=a;

elsemax=b;

33.【】是数据库设计的核心。

34.下面程序的功能是实现变量x、y内容交换,请填空。

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

printf("%d,%d",x,y);}

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

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

36.在关系数据库中把数据表示成二维表,每一个二维表称为【】。

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

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

38.在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。

39.以下程序的定义语句中,x[1]的初值是(),程序运行后输出的内容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}

40.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【】负责数据的模式定义与数据的物理存取构建。

三、1.选择题(20题)41.若有一些定义和语句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

42.C语言中下列叙述正确的是_______。

A.不能使用do...while语句构成的循环

B.do...while语句构成的循环,必须用break语句才能退出

C.do...while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do...while语句构成的循环,当while语句中的表达式值为零时结束循环

43.没有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<10)inta[10]={1,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

44.设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举类型Fortran的值为()

A.4B.7C.102D.103

45.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合

46.若要求从键盘读入含有窄格字符的字符串,应使用函数()。

A.getc()B.gets()C.getchar()D.scanf()

47.在C语言程序中()

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

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

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

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

48.下列工具中,属于需求分析常用工具的是()。

A.PFDB.PADC.N-SD.DFD

49.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf(“%d”,aa[i]);pfintf(“\n”);}程序运行后的输出结果是

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

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

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

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

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

51.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

52.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是

A.8,6B.8,3C.6,4D.7,4

53.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}

A.5B.4C.6D.不确定

54.uniondt{inta;charb;doublec;}data;以下叙述中错误的是()。

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

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

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

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

55.可以在C语言中用做用户标识符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

56.有以下程序:main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);.printf("%d\n",s);}执行后输出的结果是()。

A.16B.12C.28D.21

57.有以下语句:intb;charc[10];,则正确的输入语句是______。

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

58.设intx=7,则~x的值是()。

A.-8B.-7C.-1D.1

59.下列程序的输出结果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}

A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环

60.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

四、选择题(20题)61.有如下程序段

int*p,a=10,b=1;

p=&a;a=*p+b;

执行该程序段后,a的值为

A.12B.10C.11D.编译出错

62.

63.

64.

65.

66.

67.

68.(41)在下列选项中,哪个不是一个算法一般应该具有的基本特征()

A.确定性

B.可行性

C.无穷性

D.拥有足够的情报

69.在Internet中,域名服务器的主要功能是实现()的转换。

A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问

70.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745

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

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

72.

73.若有以下程序段:

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

A.16B.8C.4D.2

74.

75.

76.已知大写字母A的ASCIl码的值是65,小写字母a的ASCIl码的值是97,以下不能将变量。中的大写字母转换为对应小写字母的语句是()。

A.

B.

C.

D.

77.

78.若有定义:doublea=22;inti=0,k=18;,则不符合c语言规定的赋值语句是()。A.i=a%ll;B.i=(a+k)《=(i+k);C.a=a++,i++;D.i=!a;

79.如下程序的输出结果是()。

A.69825B.63825C.6385D.693825

80.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。A.A.s1的内容更新为abcdefghiB.s1的内容更新为defghi\0

C.s1的内容更新勾defghiabc\0

D.s1的内容更新为abcdefghi\0

五、程序改错题(1题)81.下列给定程序中函数fun的功能是。用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1、1、2、3、5、8、l3、21、……

例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

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

参考答案

1.D

2.C输入数据的格式必须与scanf的格式控制字符串完全匹配。函数中非格式字符需要原样输入,所以输入时必须在3和5之间输入“;”。故本题答案为C选项。

3.D解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)

4.A解析:题中将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。

5.D选项A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项8中,整型变量中只能存放整型数,但实型变量中能存放实型数,也能存放整型数;选项C,表达式a=b的意思是把变量b的值赋给变量a,从而覆盖a中原来值;选项D,要求取余运算符"%"两边的类型均为整型。

6.Astrcpy实现的功能是复制,该操作把are复制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you复制到a[l]中,故输出a为“are&you”。

7.D

8.D

9.D自增运算符是将运算对象的值增1,它有前缀形式“++a”和后缀形式“b++”。其中“++a”表示首先将a的值自增1,然后表达式“++a”的值就是自增后a的值;而“b++”表示首先将b的值作为表达式的值,然后再将b的值自增1。本题中,a的初值为10,b的初值为11,则表达式“++a==b++”,等价于“11==11”,条件为真,所以输出“T”。if语句执行完后,a的值为11,b的值为12,输出“a=11,b=12”。故本题答案为D选项。

10.A

11.C

12.D[解析]第一次循环沩0.i%2为0.执行switch(a[0]%62)中的case0语句后内容即a[0]++,a[0]的值变成3;第二次循环的值为1.i%62为1.执行case1:a[]=0;所以a[1]的值变成0;第三次循环的值为2.i%62为0.执行switch([2]%62)中的case1语句后的内容a[2]--,a[2]的值变成4;第四次循环的值为3.i%2为1.执行case1:ai]=0;所以a[3]的值变成0.

13.D解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。

14.C

15.C解析:本题考查的知识点是赋值语句的基本知识。在表达式的运算中,双目赋值运算符的格式为“变量二表达式”,单目运算符一般形式为“运算符表达式”或“表达式运算符”。常量和表达式是不能被赋值的。选项A为复合表达式,首先计算(i=2,++i)的值,然后赋值给n,故选项A正确;选项B为简单自加运算,故选项B正确;选项C在表达式++(i+1);中,(i+1)不是变量,该表达式的值为常量,而在++运算中,其运算对象必须为变量,故选项C错误;选项D中为复合赋值表达式,正确.所以应当选择C。

16.C解析:数据结构是指数据以及他们之间的相互联系。其中数据的逻辑结构是指数据元素之间的逻辑关系,它与所使用的计算机无关:数据的物理结构,又称存储结构,是指数据结构在计算机中的表示,它包括数据元素的表示和元素的表示,其中数据元素之间的关系在计算机中有顺序存储结构和链式存储结构两种。因此C是正确答案。

17.C

18.C

19.B函数的值只能通过return语句返回主调函数。函数中允许有多个return语句,但每次只能调用一个return语句,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为void。故本题答案为B选项。

20.A

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

22.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

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

24.正确性正确性解析:本题考查软件工程中需求规格说明书的评审。衡量需求规格说明书好坏的标准按重要性次序排列为:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。因此,划线处应填入“正确性”。

25.一对多一对多解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主管,“项目主管”这个实体与“项目”这个实体的管理关系属于一对多。

26.*ss!='\0'*ss!='\\0'解析:从字符串ss中找出某字符的方法是:从字符串ss的第一个字符开始,依次进行比较,若ss串的当前字符等于字符c,则i++;若ss串的当前字符和字符c不同,则继续对ss串的下一个字符进行比较。本程序采用循环逐一比较的方式,找出某字符在字符串中出现的次数。汀语句的作用是判断某字符与字符串中的当前字符是否相同。

27.k-1k\r\n-1解析:程序山使用了整型变量i、j、k,使用前应先声明,因此第1个空应填变量k。i和j作为下标的值,i被赋初值为0,j应为下标的最大值,下标的最大值为数组的长度减1。

28.stringbis:Ilovechina!

29.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。

30.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组st1l和str2,并且给str2赋初值“abcdefgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1.在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。

31.11解析:用“&&”连接两个表达式时,若第1个表达式的值为“假”,则运算结果与第2个表达式无关,此时第2个表达式将不再进行计算。本题中第1个表达式“j=!ch”值为0,所以第2个表达式i++将不再进行计算,i的值为1。

32.max=(a>b)?a:b;max=(a>b)?a:b;解析:本题考查三目运算符的用法,条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3所以,我们可以写成(a,b)?a:b,它是一个“条件表达式”。执行顺序是:如果(a>b)条件为真,则条件表达式取值a,否则取值b。注意:逗号表达式的执行原理。

33.数据模型数据模型

34.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

35.2222解析:在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]...b[9]的值相加,结果为22。

36.关系或一个关系关系或一个关系解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。

37.2424解析:本题关键是while循环。

当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;

当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;

当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。

38.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本题考查软件工程的测试。测试一般有两种方法:黑盒测试和白盒测试。黑盒测试不考虑程序的内部逻辑结构和处理过程,只着眼于程序的外部特性。用黑盒测试来发现程序中的错误,必须用所有可能的输入数据来检查程序能否都能产生正确的输出。白盒测试是在了解程序内部结构和处理过程的基础上,对程序的所有路径进行测试,检查路径是否都能按预定要求正确工作。因此,划线处应填入“白盒(箱)”或“WhiteBox”。

39.2246822468解析:p为指向数组的指针变量,数组x[1]为数组x[]的第二个元素,值为2;进入for循环i=0时,p[0]=&x[1]…直到循环完毕,指针分别指向数组x[]中的第2、4、6、8个元素,所以第二个空白处应填2468。

40.数据定义语言数据定义语言解析:在数据库管理系统提供的数据定义语言,数据操纵语言和数据控制语言中,数据定义语言负责数据的模式定义与数据的物理存取构建,数据操纵语言负责数据的操纵,包括查询及增、删、改等操作,数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、恢复等功能。

41.A解析:本题考核的知识点是指针变量的使用与空指针(NULL)基本概念.本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将NULL赋值给q。由整形变量指针的定义可知,可以给整型指针指向的变量赋一个常数值(表达式),故选项C和选项D是正确的;可以给指针变量赋一个同种类型的指针变量(或地址值),故选项B也是正确的;选项A错误,因为q不指向任何变量,给一个空指针指向的单元赋值是错误的。所以,A选项为所选。

42.D解析:选项A是错误的,C语言支持do…while语句;选项B是错误的,do…while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。

43.D解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

44.C

45.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。

46.B解析:scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf()函数不能输入空格;getchar()函数用于输入字符,其调用形式为:ch=getchar(),getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets()函数的调用形式为:gets(str_adr),其中str_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。ge

47.B

48.D解析:在需求分析阶段,根据可行性研究阶段提交的文档,特别是从数据流图(DFD)出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。这个阶段中常用的工具是数据流图(DFD)。

49.C解析:本题中首先定义一个长度为10的一个整型数组,并初始化为“l,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()函数是对具有n个元素的a数组进行从大到小排序。由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3]的地址,即把aa[3]的地址传给了形参数组名a,函数也就是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。

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

51.A解析:凡是表达式都有一个值,即运算结果。k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。所以选项A中表达式的值与其他三个表达式不同。

52.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。

53.C

54.C

55.B解析:C语言规定,标识符只能由字母、数字和下

温馨提示

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

评论

0/150

提交评论