2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

2021年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){ints[12]=(1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(“%d”,c[i]);printf(“\n”);}程序的运行结果是()。

A.2344B.4332C.1234D.1123

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

A.C语言程序在运行过程中的所有计算都以二进制方式进行

B.C语言程序在运行过程中的所有计算都以十进制方式进行

C.所有C语言程序都需要编译、链接无误后才能运行

D.C语言程序中字符变量存放的是字符的ASCII值

3.

4.在Windows环境下,单击当前窗口中的按钮“”,其功能是A.将当前应用程序转为后台运行

B.退出Windows后再关机

C.终止当前应用程序的运行

D.退出Windows后重新启动计算机

5.二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8][5]的起始地址与当A按列先存储时的元素()的起始地址相同。设每个字符占一个字节。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

6.数据流图用于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。

A.控制流B.加工C.数据存储D.源和潭

7.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}编译连接后生成可执行文件tt.exe。若运行时输入以下命令行tt12345678程序运行后的输出结果是A.12B.12345C.12345678D.136

8.有以下程序:

程序运行后的输出结果是()。A.4B.2C.3D.1

9.已知intt=0;while(t=1){…}则以下叙述正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对

10.若已包括头文件且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

11.在E-R图中,用来表示实体的图形是______。A.矩形B.椭圆形C.菱形D.三角形

12.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

执行该程序后,x的值为()。A.A.trueB.falseC.0D.113.下列程序段中完全正确的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

14.对n个元素的有序表A[1..n]进行顺序查找,其成功查找的平均查找长度(即在查找表中找到指定关键码的元素时,所进行比较的表中元素个数的期望值)为()

A.nB.(n+1)/2C.log2nD.n^2

15.

16.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。

A.1和5B.2和4C.4和2D.5和1

17.对于下述说明,不能使变量p->b的值增1的表达式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

18.广义表((a))的表尾是()。

A.aB.(a)C.((a))D.()

19.下列可用于C语言用户标识符的一组是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

20.以下是一个对数组A(含有n个数值元素)进行排序的算法伪代码,请问它的平均时间复杂度是多少()

A.O(n)B.O(n^2)C.O(1)D.O(log(n))

二、2.填空题(20题)21.在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是【】函数。

22.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。

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

#inelude<stdio.h>

#include<strins.h>

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);

}

24.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

25.若有如下定义,则该数组的第一维大小为【】。

intb[][4]={1,2,3,4,5,6,7,8,9}

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

27.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。

28.已知函数isaplha(ch)的功能是判断变量ch是否是字母,若是,则该数值为1,否则为0。下面程序执行后的输出结果是()。

#include<ctype.h>

#include<string.h>

voidfun(chars[])

{inti,j;

for(i=0,j=0;s[i];i++)

s[j]='\0';

}

main()

{charss[80]="goodmorning";

fun(ss);

printf("%s",ss);

}

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

#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(,)>0)d=b;

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

printf("%1d%s\n",d.sno,p->name);

}

30.下面程序的运行结果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}

31.以下程序段用于构成一个简单的单向链表。请填空。

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

32.软件是程序、数据和【】的集合。

33.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

34.下面的if语句与y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,请补充完整。

if(______)

if(______)y=2*x-1;

elsey=x;

elsey=3*x-11;

35.多媒体计算机所用的CD-ROM是【】。

36.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

37.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。

38.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于【】的联系。

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

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

}

40.数据流图的类型有【】和事务型。

三、1.选择题(20题)41.设有定义:Structcomplex{intreal,unreal;}data1={1,8},data2;则以下赋值语句中错误的是()。

A.data2={data1.rea1,data1.unrea1};

B.data2=(2,6);

C.data2.rea1=data1->rea1;

D.data2->rea1=data1.unrea1;

42.下列程序的输出结果是______。#include<stdio.h>main(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j);}

A.1,6,3,1,3B.1,6,3,2,3C.1,6,3,6,3D.1,7,3,2,3

43.若有以下说明,则能打印出“Yu”的语句是______。structsamp{charname[10];intnumber;}kk[3]={{"WarBin",1},{"LiYu",2},{"LuHui",3}};structsamp*str[3];str[0]=&kk[0];str[1]=&kk[1];str[2]=&kk[2];

A.printf("%s\n",str[1].name[2]);

B.printf("%s\n",str[1]->name+2);

C.printf("%s\n",str[2].name[2]);

D.printf("%s\n",str[2]->name+2);

44.下列程序的输出结果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

45.以下程序的输出结果是______。main(){inta=3;printf("%d\n",(a+=a-=a*A));}

A.-6B.1C.2D.-12

46.字符串"\\\"ABCDEF\"\\"的长度是()。

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

47.

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

48.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构

49.若变量已正确定义,有以下程序段

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!=a)c=b;

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

其输出结果是

A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7

50.树是结点的集合,它的根结点数目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

51.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(strl,c);printf("%s\n",strl);}程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAMefAbAD.Abcddfefdbd

52.若有下列定义(设int类型变量占2个字节):inti=8;则下列语句:printf("i=%08d",i);输出的结果是()。

A.i=8,B.i=00000008,C.i=08,D.8

53.在位运算中,操作数每左移两位,其结果相当于()。

A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4

54.因特网(习惯上称国际互联网)的英文名是()

A.InternetB.IntranetC.NCFCD.ISDN

55.以下选项中非法的表达式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

56.以下叙述中错误的是A.gets函数用于从终端读入字符串

B.getchar函数用于从磁盘文件读入字符

C.fputs函数用于把字符串输出到文件

D.fwrite函数用于以二进制形式输出数据到文件

57.下面程序段的执行结果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}

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

58.若有以下程序#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序输出结果是

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

59.下列字符数组初始化语句中,不正确的是()。

A.charc[]='goodmorning';

B.charc[20]=“goodmorning";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmorning"};

60.以下程序的输出结果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}

A.10192B.9876C.10990D.101091

四、选择题(20题)61.

若输入“abcdef”“abdef”,下述程序的输出结果为()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

62.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

63.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。

A.0B.1C.2D.不知道a的值,不能确定

64.

65.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

66.

67.有以下程序:

#include<stdiO.h>

main()

{FILE*fp;

intk,n,i,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);

fclose(fp);

fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);

fclose(fp);

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

}

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

A.1,2

B.3,4

C.5,6

D.123,456

68.有以下程序:

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

A.2,4B.1,2C.1,4D.2.3

69.

70.阅读下面程序,则执行后的结果是()。

A.tomeetme

B.tmem

C.oete

D.tome

71.下列关于二叉树的叙述中,正确的是()。

A.叶子结点总是比度为2的结点少一个

B.叶子结点总是比度为2的结点多一个

C.叶子结点数是度为2的结点数的两倍

D.度为2的结点数是度为1的结点数的两倍

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

A.无穷性B.可行性C.确定性D.有穷性

73.

74.

75.有以下程序:

#include<stdio.h>

main()

{inta[]={10,20,30,40},*p=a,j;

for(i=0;i<=3;i++){a[i]=*P;p++;}

printf("oAd\n",a[2]);

}

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

A.30

B.40

C.10

D.20

76.设有说明double(*p1)[N];其中标识符p1是()。

A.N个指向double型变量的指针。

B.指向N个double型变量的函数指针。

C.一个指向由N个double型元素组成的一维数组的指针。

D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

77.

78.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之问的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

79.

80.下列选项中,能够满足“若字符串sl等于字符串s2,则执行sT”要求的是()。

A.

B.

C.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

例如,输入opdye,则应输出deopy。

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

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

试题程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

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

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}六、程序设计题(1题)82.使用VC++2010打开考生文件夹夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是删除一维数组中所有相同的元素,使之只剩一个。数组中的元素已按由小到大的顺序排列,函数返回删除后数组中元素的个数。例如,若一维数组中的元素是2223445666677899101010删除后,数组中的元素应该是2345678910注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN80intfun(inta[],intn){}voidmain(){ inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(“Theoriginaldata:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(n%3d”,a[i]); n=fun(a,n); printf(“\n\nThedataafterdeleted:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(“%3d”,a[i]); printf(“\n\n”);}

参考答案

1.B在“for(i=0;i<12;i++)c[s[i]]++”中,数组元素s[i]的值作为数组c的下标。当退出循环时,数组c的4个元素的值分别为4、3、3、2。故本题答案为B选项。

2.BC语言程序在运行过程中的所有计算都以二进制方式进行,所以B选项错误。故本题答案为B选项。

3.A

4.C解析:在Windows环境下,单击当前窗口中的按钮“x”,其功能是终止当前应用程序的运行,关闭当前窗口。

5.A

6.A解析:数据流图包括四个方面,即加工(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体),不包括选项中的控制流。

7.D解析:运行时输入该命令后,参数argc的值为4,字符串数组argv[1]、argv[2]、argv[3]分别为“12”、“345”、“678”,然后取这3个参数的第一个字符,将其转化成原来的数字并组合成一个新的三位数。

8.D条件表达式形式:表达式1?表达式2:表达式3。当表达式1的值为非零值时,整个表达式的值是表达式2的值;当表达式1的值为零值时,整个表达式的值是表达式3的值。题干中的表达式是嵌套的条件表达式w﹤x?w:z﹤y?z:x,等价于w﹤x?w:(z﹤y?z:x)。由于w取值为4,x取值为3,所以w﹤x的值为零值,整个表达式的值为z﹤y?z:x,z取值为1,y取值为2,所以z﹤y的值为非零值,整个表达式的值为z的值1。本题答案为D选项。

9.B解析:t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。

10.C数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1="ABCDE"的方法是错误的。

11.A解析:在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。

12.D在C语言中,当表达式成立时用l表示,不成立时用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故选择D选项。

13.CA选项中,没有对指针进行初始化,属于无效指针,并且在“scanf(“%d”,&p);”中无须再进行取地址操作;B选项中,没有对指针进行初始化,属于无效指针;D选项中,语句“*p=&k;”书写错误,应为“P=&k;”。故本题答案为C选项。

14.B

15.B

16.B

17.D解析:p->b应作为一个整体看待,++p->b和p->b++都使变量b增1,++(p++)->b先使b增1,再使p后移,D中表达式的含义是使p+1所指结构体变量中的成员b的值增1。

18.D

19.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

20.B

21.rewind或fseekrewind或fseek解析:本题考查文件的定位。在对文件进行操作的过程中,若要求文件的位置指针回到文件的开头,可以调用rewind函数或fseek函数来完成。其中,rewind函数的作用是将位置指针重新返回文件的开头;而fseek函数也可以实现文件指针的定位。

22.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。

23.k-1k-1解析:第一处应该是定义的某个变量,读程序可知,变量k没有定义,所以此处应填入k。字符串的倒序,就是将首尾对应的字符(数组元素)两两交换。可用两个游标变量i和j分别代表前端元素的下标和后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下标是它的长度减1,所以在第二处应填入-1。

24.log2n

25.3

26.14

27.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。

28.goodmorninggoodmorning解析:子函数fun(chars[])的作用是将字符数组s中除去字母以外的所有其他字符都去掉,然后将字母仍按原来的顺序存在数组s中。在主函数中调用fun(ss),是将“goodmorning”中所有的非字母去掉,在这里就是去掉空格,然后输出ss。

29.2002shangxian2002shangxian解析:\'B\'的ASCII值是66。本题中指针变量p指向d,执行第一个if语句时,条件成立,d=b;执行第二个if语句时,条件不成立,故d=b,所以d.sno=2002,p->name'Shangxian'。

30.abcdelkjihgfabcdelkjihgf解析:本题先给字符型数组s的12个元素赋值a到1的12个字母,函数sub(shar*a,intt1,intt2)的功能是将数组a的从第t1+1个元素到t2+1个元素进行逆置,在主函数中调用sub(s,5,SIZE-1)函数,是将数组s的第6个元素到第12个元素进行逆置,其他元素位置不变。

31.structSTRU*

32.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

33.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

34.x<10x>=1

35.只读光盘只读光盘

36.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。

37.DEBFCA

38.一对多一对多解析:实体之间的联系可归结为一对一、一对多与多对多的联系。如一个学校有许多教师,一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于一对多的联系。

39.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空。输出语句不在for循环体内,所以在循环执行完毕后才输出s的值。s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

40.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

41.B

42.B

43.B解析:str是指针数组,每个元素存放的是指向结构体类型数据的地址,每个元素可看作是一个指针变量,通过结构体指针变量引用结构体变量各成员的形式有两种:一是(*指针变量名).成员名;二是指针变量名->成员名。本题可以是'(*str[1]).name+2'或'str[1]->name+2'。

44.B解析:第1次执行for循环,p[1][0]=p[1][0]-1=3:第2次执行for循环,p[1][1]=p[1][1]-1=4:第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

45.D解析:赋值运算符的结合方向是自右至左,所以表达式a+=a-=a*a先运算最右边的a*a得9,再运算a=a-9,即a=3-9,所以此时a的值由3变成了-6,最后运算a=a-+(-6),即a=(-6)+(-6)=-12。

46.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。

47.A解析:

48.C数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构(物理结构)及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。

49.B解析:两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量c的值等于3,变量b的值没能变化,程序输出的结果为3,5,3。所以正确答案为B)。

50.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。

①有且仅有一个特定的称为根的结点。

②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。

因此,本题的正确答案有且只有一个。

51.B解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

52.B解析:本题考查printf函数的格式。“%08”格式符中的“0”表示在指定数据输出宽度的同时,在数据前面的多余空格处加“0”;“8”表示指定数据的输出宽度为8位。

53.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。

54.A

55.D解析:选项A)在C语言中是一个合法的关系表达式,但它并不代表数学式o<=x<100。计算0<=x<100时,从左到右结合,先计算0<=x,其结果只能是0或1,然后再比较0<100或1<100。根据运算符的优先级,选项B)先判断j==0是否成立,其结果只能是0或1,然后再将0或1赋给i。选项C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。

56.B其中B选项的getchar函数用于从终端读入字符。故本题答案为B选项。

57.B解析:本题的for循环省略了第一个表达式,即for没有任何初始化动作;第二个表达式x的意思是只要x非0,则循环继续;第三个表达式让x在每次循环结束时减1。x初始为10,然后进入循环体,判断x是否能被3整除,不能整除则执行continue;语句进入下一次循环,能整除则输出x。故最终输出的结果为从10递减到1之中能被3整除的数9、6和3。所以正确答案是B。

58.D解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

59.A

60.D解析:第1次循环,i=0,x=10,y=10,先输出x=10,y=10,再执行x--使得x变为9,其次再执行y=++i(i加1后参与赋值)使得y变为1:第2次循环,i=1,x=9,y=1,先输出x=9,y=1,再执行x--使得x变为8,其次再执行y=++i(i加1后参与赋值)使得y变为2。x=8,不满足x>8,循环结束。

61.D

\n本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

\n

62.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,

温馨提示

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

评论

0/150

提交评论