2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()。

A.nB.2n-1C.2nD.n-1

3.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。

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

4.二进制数1110111.11转换成十进制数是()。

A.119.375B.119.75C.119.125D.119.3

5.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

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

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

7.若变量已正确定义,有以下程序段“i=0;do{printf(“%d,”,i);}while(i++);printf(“%d\n”,i);”,程序段的运行结果是()。A.0,1B.0,0C.1,1D.程序进入无限循环

8.下列结构体的定义语句中错误的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

9.该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()A.intn,*p=NULL;

B.*p=&n;.

C.scanf("%d",&p)

D.printf("%d\n",p);

10.已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()。

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.以述说法都不对

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

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

12.已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为()。

A.1B.3C.3.0D.3.5

13.

14.下列关于栈叙述正确的是A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.上述三种说法都不对

15.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。

A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next

16.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

17.

18.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序运行后的输出结果是()。

A.76654321B.12345667C.67564321D.654321

19.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同

B.变量demo中各成员的地址相同

C.变量demo和各成员的地址相同

D.若给demo.d1赋99后,demo.d2中的值是99.0

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

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

二、2.填空题(20题)21.以下程序运行后,若输入:3,abcde<回车>,则输出结果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

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

abcl23edf456gh,执行程序后输出: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);

}

24.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

25.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

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

word_num(str)

charstr[];

{inti,num=0,word=0;

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

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

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

27.能把计算机处理好的结果转换成为文本、图形、图像或声音等形式并输送出来的设备称为【】设备。

28.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

29.在最坏情况下,冒泡排序的时间复杂度为【】。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

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

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

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

}

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

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

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

33.下面程序用来输出结构体变量a所占存储单元的字节数,请填空。

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

34.算法的复杂度主要包括空间复杂度和______复杂度。

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

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

inti;

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

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

printf"\n");

}

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

main()

{intp=30;

printf{"%d\n",(p/3>0?p/10:p%3)};

}

37.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotade(inta[][N],intb[][N])

{intI,j;

for(I=0;I<N;I++)

{b[I][N-1]=【】;【】=a[N-1][I];}}

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

main()

{

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

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

switch(i/10)

{

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

case10:n++;;break;

default:k++;n++;

}

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

}

39.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。

40.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。

三、1.选择题(20题)41.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是

A.scant("%d",pa);

B.scant("%d",a);

C.scanf("%d",&pa);

D.scanf("%d",*pa);

42.下述语句中,在字符串sl和s2相等时显示“theyareEqual”的是()。

A.if(*s1==*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)Puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual”);

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

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

44.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j]<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};inti;f(p,5);printf(“%d\n”,strlen(P[0]));}程序运行后的输出结果是

A.6B.4C.5D.3

45.下面程序的运行结果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}

A.3B.10C.13D.14

46.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。

A.auto和register

B.extern和register

C.auto和static

D.static和register

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

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

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

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

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

48.打开一个已经存在的非空文本文件,若文件名为stu,则正确的打开语句为()

A.FILE*fp;fp=fopen("stu.txt","r")

B.FILE*fp;fp=fopen(stu.txt,r)

C.FILE*fp;fP=fopen("stu,txt","wb")

D.FILE*fp;fp=fopen("stu.txt",wb)

49.若有定义:floatx=1.5;inta=1,b=3,c=2;,则正确的switch语句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

50.有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,P中的值为789,则正确的输入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

51.下列选项中不合法的+六进制数是()。

A.OxffB.OXllC.OxlgD.OXabc

52.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

53.与十进制数96等值的二进制是()

A.1100000B.10010110C.1100001D.1100011

54.若有以下定义和语句,则输出的结果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");

A.2,MB.3,EC.2,ED.输出结果不确定

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

#include<stdio.h>

main()

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1:

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.18C.6D.8

56.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)

A.10□X□20□Y<回车>

B.10□X20□Y<回车>

C.10□X<回车>20□Y<回车>

D.10X<回车>20Y<回车>

57.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

58.计算机网络最突出的优点是()

A.运算速度快B.存储容量大C.共享资源D.精度高

59.已有定义:chara[]="xyz",b[]:{'x','y','z'};以下叙述中正确的是()。

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对

60.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序执行后的输出结果是()。

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

四、选择题(20题)61.下列描述中不正确的是()。

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

62.

执行下列程序后,输出的结果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

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

63.下列判断正确的是()。A.A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

64.

65.

66.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

67.

68.以下关于字符串的叙述中正确的是()。

69.有以下程序:

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

A.-2,3,B.-1,-2,C.-2,-3,D.-2,1

70.

71.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

72.以下定义数组的语句中错误的是()。

73.

有下列程序:

#include<stdio.h>

main

{intx=0;

inty=0;

while(x<7&&++v)

{y--;

x++;}

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

}

程序的输出结果是()。

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

74.

75.

下面程序的功能是输出以下形式的金字塔图案:main

{inti,j;*

for(i=l;i<-4;i++)***

{for(j=1;j<=4-i;j++)printf("");

*****

for(j=1;j<=____;j++)printf("

*");*******

printf("\n");

}

}

在下划线处应填入的是()。

A.iB.2*i一1C.n=2*i+1D.i+2

76.

77.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

A.一对一B.一对多C.多对多D.多对一

78.

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

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

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

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

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为l3579。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

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

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

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

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

试题程序:

参考答案

1.C

2.B

3.BSEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。

4.B

5.Da=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。

6.C

7.A第1次首先执行循环体,输出i的值为0,然后判断while的条件“i++”,因为“i++”是后缀自增运算,先使用后自增,所以判断时条件为假,跳出循环,但是仍执行了i的自增操作,i的值为1,在接下来的printf语句中进行输出。故本题答案为A选项。

8.AA选项错误,在定义结构体语句后少了分号。故本题答案为A选项。

9.A[解析]选项B)的正确写法应为p=&n;选项C)的正确写法应为scanf("%d",p);选项D)的正确写法应为printf("%d\\n",*p)。

10.C解析:对字符型一维数组在定义时初始化,既可以使用初始化列表,也可以使用字符串常量。不过由于字符串常量会自动在结尾添加\'\\0\',字符做结束标志,所以用字符串常量的初始化列表项个数是字符串的长度加1。因此题目中的chara[]='xyz';等价于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a数组长度大于b数组长度,应该选C。

11.C

12.D

13.D

14.A解析:在栈中,允许插人与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。故本题选A。

15.A

16.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

17.A

18.C程序中变量a的初值为123456,while循环的终止条件是a为0。循环开始将a的最后一位数字赋给b,a除以10后(丢弃最后一位)重新赋给a。在循环过程中,变量a和b的取值分别为:124566、123455、12344、1233、122、11。循环体中,执行switch(b)语句,当b的数值不等于1、2、3、4时,首先执行default语句,输出b并将b自增1,再执行case1、case2语句,输出自增后的b值;当b的数值等于1、2、3、4时,只执行case语句,输出b的值。综上,当b为6、5时,分别输出67、56;当b为4、3、2、1时,分别输出4、3、2、1。最终程序输出结果为67564321。故本题答案为C选项。

19.D解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而\u3000int类型在TurboC\u30002.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。

20.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。

21.cdeabcdeab解析:程序中的move函数的作用是保存输入数组中的最后一个元素,然后从最后一个数组元素开始,依次向后移动一个位置,再把保存的最后一个元素置于首位,循环次数由n控制。输入3,abcde<回车>后主函数开始执行,其中n=3,s[50]={'abcde'},z=5。第一次循环,i=1时,调用move(s,5)函数,temp=str[4]语句把数组中最后一个元素\'e\'保存在temp中,然后i从4开始循环,将str[3](字符\'d\')赋给str[4],str[2](字符\'c\')赋给str[3],……,循环结束时str所指字符串为'aabcd',再将保存在temp中的\'e\'置于首位,字符串变为'eabcd';i=2时,调用move函数,字符串为'deabc';i=3时,调用move函数,字符串为'cdeab'。最后输出结果为'cdeab'。

22.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。

23.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符数组的初始化,字符串的输入和输出的应用。C语言没有字符串变量,字符串不是存放在一个变量中而是存放在一个字符型数组中,因此为了存放字符串,常常在程序中定义字符型数组;字符串存放在字符数组中,但字符数组与字符串可以不等长,C语言规定以“\\0”字符作为字符串结束标志。

本题中,chars[80],d[80];定义了两个字符型数组,可以放入80个字符。gets函数是c语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的ASCII码值是否在48('0'的ASCII代码)与57('9'的ASCII代码)之间,或者直接与'0','9'进行比较,如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即'0'的出现)。将“'\\0'”字符作为字符串d结束标志,最后调用puts函数输出d。所以在空格处应填入比较语句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。

24.解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

25.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

26.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或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累加得到字符串中的单词个数。

27.输出输出

28.输出结果输出结果解析:注意:测试的基本方法和步骤。

29.

解析:冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过遍的从前往后的扫描和遍的从后往前的扫描,需要的比较次数为。

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

31.gaegae解析:本题考查字符指针变量与字符数组。for循环语句共循环8次:

①当k=0时,*(Pl+0)='L',*(p2+0)='P',L!=P,没有输出。

②当k=1时,*(p1+1)='a',*(p2+1)='r',a!=r,没有输出。

③当k=2时,*(p1+2)='n',*(p2+2)='o',n!=o,没有输出。

④当k=3时,*(P1+3)='g',*(p2+3)='g',g==g,所以输出g。

⑤当k=4时,*(p1+4)='u',*(P2+4)='r',u!=r,没有输出。

⑥当k=5时,*(p1+5)='a',*(p2+5)='a',a==a,所以输出a。

⑦当k=6时,*(p1+6)='g',*(p2+6)='m',g!=m,没有输出。

⑧当k=7时,*(p1+7)='e',*(p2+7)='e',e==e,输出e。

⑨当k=8时结束循环,输出结果为:gae。

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

33.dd解析:d被定义为一个结构体类型变量,求结构体变量a所占存储单元的字节数即sizeof(d)。

34.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。

35.24682,4,6,8解析:子函数fun()的功能是将数组a中的元素都自加一遍,然后仍然将结果存在原数组中,其实就是将数组a的每个元素都变为原来的2倍,然后输出。在主程序中首先通过intfun()定义了子函数fun(),然后再调用fun()。

36.33解析:本题考核的知识点是条件运算符的运用。三目运算表达式的规则为如果“?”前面表达式的值为真,则取“:”前的表达式的值,否则,取“:”后面表达式的值。又由于条件运算符的结合方向是自右向左的,所以在本试题中,先计算表达式中p%3,该值为0,在计算表达式P/10其值为3,最后计算表达式p/3该值为10.所以此表达式等价于“10?3:0”,显然取“:”前的僵为3,所以最后输出的值为3。

37.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,\ue008b[I][0]=a[N-1][I]实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组中的第0列。

38.132132解析:本题考核的知识点是for循环与switch语句的综合运用。主函数中用了一个for循环,for循环里嵌套了一个switch语句,for循环了三次,当i=9时,i/10=0,执行switch语句中case0分支,m和n的值各加1,变为1和1,然后遇到breake语句,退出switch语句;当i=10,i/10=1,执行switch语句中default分支,使k和n的值各加1,变为1和1,退出switch语句:当i=11时,i/10=1,执行switch语句中default分支,k和n的值各加1变,为2和3,退出switch语句,循环结束。故该空格处应该填132。

39.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。

40.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。

41.A解析:scanf()函数的功能是进行输入数据,它是按格式参数的要求从终端上把数据传送到地址参数所指定的内存空间中,C语言允许程序员间接地使用内存地址,这个地址是通过对变量名“求地址”运算得到的,求地址的运算符是&,得到的地址是一种符号地址。本题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义pa是一个存放a的地址的变量。选项B中应该将a改为&a;选项C应该将&pa改为pa,因为pa已经表示存放a的地址;选项D中*pa表示的是指针pa所指向存储空间的变量的值,而不是一个地址。

42.B解析:字符串比较不能用两个等号(==)来进行比较,应使用stremp(s1,s2)函数来比较。strcmp(s1,s2)函数的功能是:当字符串s1和s2相等时,返回值为0,因此,当表达式!strcmp(s1,s2)==1时,条件成立,执行后面的语句,输出theyareEqua1。

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

44.C解析:函数stremp(字符串1,字符串2)作用是将“字符串1”和“字符串2”进行比较,如果“字符串1”>“字符串2”,返回一个大于0的整数值;如果“字符串1”<“字符串2”,返回一个小于0的整数值;如果“字符串1”=“字符串2”,返回0。函数strepy(字符串数组名,字符串,[整型表达式]),整型表达式的作用是将“字符串”的前“整型表达式”个字符存入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入“字符数组”中。函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为P[0],在输出语句输出的P[0]指向的字符串长度是5。

45.C解析:本题考查移位运算和按位或运算,注意按位或运算时只要对应的二进制位中有一个为1,结果为1;若都为0,结果为00

46.A解析:在C语言中,动态存储区域中存放的变量在使用时才分配内存空间,函数调用时返回的地址和自动类局部变量等存放在动态存储区域中。auto变量和register变量都属于自动类局部变量,因此选项A正确。static说明的变量为静态变量,静态变量在内存的静态存储中占据着永久的存储单元,直至程序运行结束。extern说明的变量为外部变量,属于全局变量,全局变量在整个程序运行期间都占用内存空间。

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

48.A

49.C解析:C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。

50.A解析:scanf()函数中格式控制字符串是为了输入数据用的,无论其中有什么字符,在输入数据时,按照一一对应的位置原样输入这些字符。

51.C解析:+六进制是以“0x”或“0X”开头的字符串,字符串中只能含有0~9这10个数字和a、b、c、d、s、f这6个字母。

52.D解析:题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(fp)的作用是将文件指针重定位到文件开头,所以应该选择D。

53.A

54.B

55.A解析:本题考查switch语句。当i=1时,执行case1,因为没有遇到break语句,所以依次往下运行,a=a+2=2,a=a+3=5当i=2时,执行case2,因为没有遇到break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。

56.D解析:本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空格会作为字符赋值给变量c1,而不会被解释成分隔符。

57.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。

\n

58.C

59.C解析:数组长度是指数组占内存空间的大小,即字节数,它与sfflen函数所求的长度不同。对于chara[]='xyz',系统自动为其增加一个串结束符,\'\\0\',所以a数组的长度为4;对于b[]={\'x\',\'y\',\'z\'},系统不会为其增加串结束符\'\\0\',因此数组长度为3,故a数组长度大于b数组长度。

60.B解析:数组名str作为函数参数将实参数组的起始地址传给形参数组p,当形参数组发生变化时主函数中的实参数组中的值也随之发生变化。调用fun函数执行for循环语句后,n为2,返回给main函数输出。

61.C

62.D

\n本题主要考查带参数的宏定义,过程如下:由于定义为define(x)x*x没有括号优先级,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

\n

63.Da=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。

64.A

65.B

66.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。

67.B

68.A空格是一种字符,所以空串肯定比空格打头的字符串小。

69.Afun()函数使用了静态变量,静态变量只在声明时初始化一次。首先实参的数值是一12,if判断后输出负号,并将n=12,计算k+=n%10一k+=2—2,因此输出2,后将数值除以10,结果为1,递归调用fun()函数,第二次调用fun(),此时n=1,k=2,计算k+=n%10-÷k+=1——*3,因此打印3。故最后打印结果为一2,3,。故答案为A选项。

70.D

71.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。

\n

72.AA)选项中定义的数组为2行4列,而赋值时赋成了3行,因此出错。

73.A

\n本题考查while循环。在while循环中,y自加每次循环都加l,在循环体内y--每次减1,所以总的y值不变,当x自加到7时,不满足循环条件,循环结束。

\n

74.B

75.B

\n对于第i行,程序先输出4-i个空格,然后输出2×i-1个'*',所以答案是B。

\n

76.C

77.C因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

78.B

79.A\n数据库按数据模型分为层次型数据库、网状型数据库、关系型数据库,数据模型即数据之间的联系方式,因此正确选项为A)。

\n

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

81.(1)错误:intproc(10ngS,long*t)

正确:voidproc(10ngs,long*t)

(2)错误:s=s%0100;

正确:s=s/100;

【解析】由主函数中的函数调用可知,函数proc()没有返回值,因此,“intproc(longs,long*t)”应改为“voidproc(longs,long*t)”。题目要求是把奇数位上的数找出构成

一个新的数组,因此把“s=s%100;”改为“s=s/100;”。

82.

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

2021-2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()。

A.nB.2n-1C.2nD.n-1

3.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。

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

4.二进制数1110111.11转换成十进制数是()。

A.119.375B.119.75C.119.125D.119.3

5.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

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

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

7.若变量已正确定义,有以下程序段“i=0;do{printf(“%d,”,i);}while(i++);printf(“%d\n”,i);”,程序段的运行结果是()。A.0,1B.0,0C.1,1D.程序进入无限循环

8.下列结构体的定义语句中错误的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

9.该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()A.intn,*p=NULL;

B.*p=&n;.

C.scanf("%d",&p)

D.printf("%d\n",p);

10.已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()。

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.以述说法都不对

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

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

12.已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为()。

A.1B.3C.3.0D.3.5

13.

14.下列关于栈叙述正确的是A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.上述三种说法都不对

15.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。

A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next

16.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

17.

18.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序运行后的输出结果是()。

A.76654321B.12345667C.67564321D.654321

19.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同

B.变量demo中各成员的地址相同

C.变量demo和各成员的地址相同

D.若给demo.d1赋99后,demo.d2中的值是99.0

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

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

二、2.填空题(20题)21.以下程序运行后,若输入:3,abcde<回车>,则输出结果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

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

abcl23edf456gh,执行程序后输出: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);

}

24.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

25.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

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

word_num(str)

charstr[];

{inti,num=0,word=0;

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

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

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

27.能把计算机处理好的结果转换成为文本、图形、图像或声音等形式并输送出来的设备称为【】设备。

28.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

29.在最坏情况下,冒泡排序的时间复杂度为【】。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

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

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

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

}

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

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

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

33.下面程序用来输出结构体变量a所占存储单元的字节数,请填空。

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

34.算法的复杂度主要包括空间复杂度和______复杂度。

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

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

inti;

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

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

printf"\n");

}

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

main()

{intp=30;

printf{"%d\n",(p/3>0?p/10:p%3)};

}

37.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotade(inta[][N],intb[][N])

{intI,j;

for(I=0;I<N;I++)

{b[I][N-1]=【】;【】=a[N-1][I];}}

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

main()

{

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

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

switch(i/10)

{

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

case10:n++;;break;

default:k++;n++;

}

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

}

39.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。

40.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。

三、1.选择题(20题)41.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是

A.scant("%d",pa);

B.scant("%d",a);

C.scanf("%d",&pa);

D.scanf("%d",*pa);

42.下述语句中,在字符串sl和s2相等时显示“theyareEqual”的是()。

A.if(*s1==*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)Puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual”);

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

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

44.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j]<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};inti;f(p,5);printf(“%d\n”,strlen(P[0]));}程序运行后的输出结果是

A.6B.4C.5D.3

45.下面程序的运行结果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}

A.3B.10C.13D.14

46.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。

A.auto和register

B.extern和register

C.auto和static

D.static和register

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

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

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

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

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

48.打开一个已经存在的非空文本文件,若文件名为stu,则正确的打开语句为()

A.FILE*fp;fp=fopen("stu.txt","r")

B.FILE*fp;fp=fopen(stu.txt,r)

C.FILE*fp;fP=fopen("stu,txt","wb")

D.FILE*fp;fp=fopen("stu.txt",wb)

49.若有定义:floatx=1.5;inta=1,b=3,c=2;,则正确的switch语句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

50.有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,P中的值为789,则正确的输入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

51.下列选项中不合法的+六进制数是()。

A.OxffB.OXllC.OxlgD.OXabc

52.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

53.与十进制数96等值的二进制是()

A.1100000B.10010110C.1100001D.1100011

54.若有以下定义和语句,则输出的结果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");

A.2,MB.3,EC.2,ED.输出结果不确定

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

#include<stdio.h>

main()

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1:

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.18C.6D.8

56.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)

A.10□X□20□Y<回车>

B.10□X20□Y<回车>

C.10□X<回车>20□Y<回车>

D.10X<回车>20Y<回车>

57.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

58.计算机网络最突出的优点是()

A.运算速度快B.存储容量大C.共享资源D.精度高

59.已有定义:chara[]="xyz",b[]:{'x','y','z'};以下叙述中正确的是()。

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对

60.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序执行后的输出结果是()。

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

四、选择题(20题)61.下列描述中不正确的是()。

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

62.

执行下列程序后,输出的结果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

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

63.下列判断正确的是()。A.A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s

温馨提示

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

评论

0/150

提交评论