版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年四川省巴中市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
2.以下说法错误的是()。
A.C语言中的常量是指在程序运行过程中经常被用到的变量
B.C语言中的常量是指在程序运行过程中其值不能被改变的量
C.C语言中的常量可以用一个符号名来代表
D.C语言中的常量可以用宏来定义
3.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
4.运算符________的优先级最高。
A.[]B.+=C.?:D.++
5.对于关键字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用直接选择大值开始排序时,第一趟扫描结果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
7.
8.一个算法的语句执行次数为(2n2+2nlog2n+4n-7),则其时间复杂度为()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
9.以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:#include<stdio.h>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[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\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,
10.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
11.[0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
12.以下选项中合法的C语言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
13.
14.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发过程中的技术问题
15.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
16.以下叙述中错误的是______。A.C程序必须由—个或—个以上的函数组成
B.函数调用可以作为—个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
17.
18.在银行业务中,实体客户和实体银行之间的联系是()。
A.—对一B.—对多C.多对一D.多对多
19.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
20.以下选项中,合法的一组C语苦数值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
二、2.填空题(20题)21.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后的输出结果是【】。
22.以下程序运行后的输出结果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
23.下列程序的功能是计算1~100的整数的累加和。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=i;
i++;
}
printf("sum=%d\n",【】);
}
24.x、y、x均为int型变量,描述“x、y和z中至少有两个为正数”的表达式是______。
25.下面程序的输出结果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
26.用高级语言编写的程序称为【】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
27.Fibonacci数列中的头两个数是1和1,从第3个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
28.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
31.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
则程序运行后的输出结果是【】。
32.以下程序中,for循环体执行的次数是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
33.以下程序运行后的输出结果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
34.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
35.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
36.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
37.下面程序的运行结果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
38.设有以下定义:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下图所示链表结构,
请写出删除点y的赋值语句【】。
39.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
40.下列程序的运行结果为【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
三、1.选择题(20题)41.若要显示或打印汉字将用到汉字编码中的()
A.输入码B.字型码C.机内码D.交换码
42.若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])
43.设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
44.以下4个选项中,不能看作一条语句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
45.在以下术语中,与数据的逻辑结构无关的是______。
A.线性结构B.链式结构C.树型结构D.网状结构
46.有下列二叉树,对此二叉树前序遍历的结果为()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
47.有以下程序main(){inti,s=1;for(i=1;<50;i++)if(!(i%5)&&!(i%3))s=+i;printf("%d\n",s);}程序的输出结果是
A.409B.277C.1D.91
48.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
49.在数据库设计的4个阶段;为关系模式选择存取方法应该在
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
50.软件生命周期中花费时间最多的阶段是()
A.详细设计B.软件编码C.软件测试D.软件维护
51.有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){return(*f2)(x)-(*f1)(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序运行后的输出结果是()
A.-4B.1C.4D.8
52.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
54.下面的关键字中,不能够从循环体中跳到循环体外的是______。
A.gotoB.breakC.returnD.continue
55.下列表达式中,可以正确表示x≤0或x)1的关系是()。
A.(x>=1)||(x<=0)
B.x>l||x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
56.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序运行后的输出结果是()。
A.0B.1C.-1D.NULL没定义,出错
57.若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}printf("%d,%d",b,a);}则程序运行后的输出结果是()。
A.10,4B.7,3C.10,3D.11,3
58.以下叙述中错误的是
A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
59.下列属于C语言语句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
60.运行以下程序后,如果从键盘上输入china#<回车>,贝愉出结果为_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
四、选择题(20题)61.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A.外模式B.内模式C.概念模式D.逻辑模式
62.
63.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}输出结果是()。A.28B.27C.42D.4l
64.
65.
对两个数组a和b进行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
则下列叙述正确的是()。
A.数组m与数组n完全相同
B.数组m与数组n长度相同
C.数组m比数组n长1
D.数组m与数组n中都存放字符串
66.下列语句组中,正确的是()。
A.char*s;s=”Olympic”;
B.chars[7];s=”Olympic”;
C.char*s;s={¨Olympic”};
D.chars[7];s={"Olympic”};
67.
68.设有定义:
69.
70.
71.下面描述中,不属于软件危机表现的是()A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高
72.有以下程序:
程序运行后的输出结果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
73.若有定义语句:doublea,*P=&a;以下叙述中错误的是()。
A.定义语句中的*号是-个间址运算符
B.定义语句中的木号是-个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,P=&a把变量a的地址作为初值赋给指针变量P
74.
有以下计算公式
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
75.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之问的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
76.在C语言程序中可用做用户标识符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
77.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
该程序段实现的功能是()。
A.删除尾结点B.尾结点成为首结点C.删除首结点D.首结点成为尾结点
78.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。
A.存储媒体B.表现媒体C.传输媒体D.感觉媒体
79.
80.
五、程序改错题(1题)81.下列给定程序、中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把s中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是实现B=A+AT,即将矩阵A加上A的转置,结果存放在矩阵B中。计算结果在main()函数中输出。举例如下。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; system(“CLS”); fun(a,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%7d”,t[i][j]); printf(“\n”); }}
参考答案
1.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。
2.AC语言中的常量是指在程序运行过程中其值不能被改变的量,它可以用宏来定义,用一个符号名来代表。选项A错误,选项B、C、D正确。本题答案为A选项。
3.C本题考查逻辑与(&&)和逻辑或(||)运算符的使用。x值在[1,10]之间,C语言中可以写成x值在[100,11O]之间,C语言表达式应写成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)&&(x<=110)。
4.A
5.C
6.A
7.C
8.A
9.C解析:在main函数中调用sort函数时,实参&aa[3]把数组元素aa[3]的首地址传给形参数组a,使aa[3]与a[0]相对应。sort函数将从aa[3]开始的连续5个数进行了从大到小的排序,其他数组元素不变。
10.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。
11.D
12.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;选项D为实型常量中的指数形式,但指数形式e(E)之前必须是数字,之后必须为整数。故本题答案为B选项。
13.C
14.CC。【解析】软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。
15.D
16.D解析:在调用函数时,给形参分配存储单元,并将实参对应的值传递绐形参,调用结束后,形参单元彼释放,实参单元仍保留并维持原值。因此,在执行—个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值,也就是说形参的值是不传回绐对应的实参的。
17.C
18.D一个客户可以在多家银行办理业务,一家银行也有多个客户办理业务,因此,实体客户和实体银行之间的联系是多对多。本题选择D选项。
19.B解析:本题考查带参数的宏的定义及相关运算:S=m+n+m+n*k=1+2+1+2*3=10。
20.B
21.1212解析:本题中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
22.45994599解析:本题是一个陷阱题,以书写格式来考查考生对if语句的理解.if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=a;,执行a=c;c=t;后,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面三条语句都被执行,这三条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。
23.0;sum<=100;sum
24.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:题目要求“x、y和z中至少有两个为正数”,即x、y和x这3个数中必须有两个是正数,且这3个数中的哪两个数都有可能是正数,所以它们之间是或的关系。
25.gaga解析:考查了用字符指针处理字符串的方法。用字符指针处理字符串,首先要使指针指向这个字符串,即题中的ptr1=a和ptr2=b,然后就是通过指针的移动可以引用到字符串中的每一个字符。题中的*(ptr1+k)是使指针ptr1向后移动k个位置,然后取出指向的字符。
26.源程序源程序解析:用高级语言编写的程序称为源程序。源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,是一种二进制代码程序),然后执行目标程序。
27.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用来保存前两个数之和,并作为第三个数,计算后把第二个数(f2)赋给f1,第三个数(f)赋给f2,再执行for循环。
28.封装性封装性解析:对象具有下列5个基本特点:①标识惟一性;②分类性:③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。
29.fopenfopen解析:函数fopen的原型为FILE*fopen(char*filename,char*mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为intfseek(FILE*fp,longoffset,intbase),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准,offset为位移量的位置;函数ftell的原型为longftell(FILE*fp),功能为返回fp所指向的文件中当前的读写位置;函数fclose的原型为intfclose(FILE*fp),功能为关闭fp所指的文件,释放文件缓冲区。
30.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
31.11解析:因为x=4,y=3,所以表达式x<y的值为假(0),又因为z=2,所以0<z的值为真(1),故最终输出的结果为1。
32.44解析:本题考查宏定义。预编译时,首先将M的宏定义带入K,得到N+1+1*N+1/2;再将N的宏定义带人,得到2+1+1*2+1/2=3+2+0=5,所以循环4次。
33.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。
34.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
35.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
36.p!=NULLcount++(*p).next
37.s=30s=30解析:分析循环条件“m=1,m<=4”,所以循环4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。
38.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要删除结点y,只需让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。
39.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。
40.maxvalueis34
41.B
42.C
43.A解析:选项A为异或运算符,如果参加运算的两个位相同,结果为0,否则为1。显然选项A中参加运算c1和c2相同,故其值位0;选项B为位与运算,如果参加运算的两位都为1,则结果为1,否则结果为0,选项B中参加运算的c1和c2都为真,所以结果为1;选项C为取反运算,用来对一个二进制取反,显然c2取反后不为0,选项D为异或运算,参加运算的两位只要有一个为1,那么运算结果为1,显然参加运算的c1和c2都不为0,故运算结果不为0。
44.D解析:C语言的语句都用“;”结束。如果只有一个分号,称为“空语句”。用一对花括号把若干语句括起来构成一个语句组,称为“复合语句”,在语法上视为一条语句。因此选项A是一条语句。选项B是逗号表达式加分号构成的语句。选项C是一条if语句,该语句的if子句是一条空语句。选项D中“if(b==0)m=1;n=2;”是两个表达式语句。所以,4个选项中选项D符合题意。
45.B
46.B解析:对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左,右子树。
47.D解析:本题是计算50之内的自然数相加之和,题中if语句括号中的条件表达式!(i%5)&&!(i%3)表明只有能同时被5和3整除的数才符合相加的条件,1~49之间满足这个条件的只有,15、30和45,因为s的初始值为1,所以s=1+15+30+45=91。
48.C
\n题中整型指针变量P存放的是变量C的地址。所以本题答案为C。
\n
49.D解析:需求分析阶段是分析用户的需求,显然不属于这个阶段,由此可以排除选项A。概念设计是将需求分析得到的用户需求抽象为信息结构及概念模型的过程,涉及不到数据的存取。逻辑设计是在概念设计的基础上将E—R图转换成数据库管理系统的逻辑数据模型表示的逻辑模式,也不涉及存取问题。
50.D解析:软件生命周期分为软件定义、软件开发及软件运行维护3个所段。本题中,详细设计、软什编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性.降低维护的代价。
51.C
52.D解析:题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(fp)的作用是将文件指针重定位到文件开头,所以应该选择D。
53.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。
54.B解析:在C语言中,可以用break语句和continue语句跳出本层循环和结束本次循环。goto语句可跳出多层循环,如果在函数的循环体内使用return语句,就会直接结束循环返回函数值。
55.A解析:题中要求x的取值是小于等于0或者大于等于1,这说明表达式是或的关系,所以在写成C语言表达式应是逻辑或的关系,逻辑或运算符是“||”。
56.A解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。
57.A解析:本题中for循环循环10次。如果b>=9结束循环。如果b能被3整除结束本次循坏。都不成立b加1。for循环执行过程为:当a=1,b=1时,b%3=1,b=b+3=1+3=4,进入下一次循环:当a=2,b=4时,b%3=1,b=b+3=4+3=7,进入下一次循环;当a=3,b=7时,b%3=1,b=b+3=7+3=10,进入下一次循环;当a=4,b=10时,因b>=9成立,执行“break;”退出循环。
58.D解析:在C语言中,凡是以“#”开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的.当然也在程序执行之前执行,因此选项D是错误的。
59.C解析:在C语言中,一个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。
60.C解析:执行完一个case后面的语句后,流程控制移到下一个case继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
61.B数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。
62.A
63.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。
64.C
65.C
\n在m数组中赋值的是字符串,其长度为7,末尾有结束符\0,故字节数为8,而n数组中赋的是字符,其长度为7,故C选项正确。
\n
66.A字符型指针变量可以用选项A的赋值方法:char$s;s=”Olympic”,选项C的写法:char$s。s={¨Olympic”};是错误的。字符数组可以在定义的时候初始化:chars[]={¨Olympic”};?或者chars[]=”Olympic”,都是正确的。但是不可以在定义字符数组后,对数组名赋值。(数组名是常量,代表数组首地址)所以选项8和选项D都是错误的。对于本例,选项B、D中字符数组s的大小至少为8,才能存放下字符串。(字符串的末尾都有结束标识‘、0’)。
67.D
68.A选项B)、D)中if语句后都是一条复合语句,选项c)中if语句后都是一条语句。选项A)之后有3条语句,所以答案选择A)。
69.C
70.B
71.A软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择A。
72.A本题重点考察函数的调用,首先要了解字母对应的ASCIl码。例如A为65,a为97。即字母+1劂可得到下一个字母。-其次是函数形参和实参的问题,运行过程如下:在fun(&b,a)中,}c=.a-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);输出b,B,因为指针c指向地址的值为b,此时b=}C=.b.;豳数返回执行ptud(。%C,%c、n”,b,8);输出b,A,因此A选项正确。
73.A在变量定义doublea,*P:&a;中,}号是一个指针运算符,而非间址运算符,所以A错误。
74.B
\n选项A、C、D分别用一个ifelse语句、两个if语句和条件表达式表达了计算公式的含义。
\n
75.C对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
76.Bc语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线,不能使用关键字和数字,A中void,C中if,D中D0,都属于关键字。
77.D本题考查链表的操作,本题中首先是s指向了它的下个结点,题目中说明了s总是指向链表的第一个结点,然后while循环找到链表的最后一个元素,然后最后一个元素指向了之前链表的头结点,之前头结点指向了空结点,所以本题实现的功能是使首结点成为尾结点。选项D正确。
78.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。
79.C
80.C
81.错误:t[i]=s[s1];
正确:t[i]=s[i];
【解析】函数proc()首先要实现将数组s中的元素顺序放在数组t中,即数组t中下标为i的元素在数组S中下标也为i,因此“t[i]=s[s1];”应改为“t[i]=s[i];”。
82.voidfun(inta[3][3],intb[3][3]){ inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/}行列数相等的二维数组的转置就是行列互换。即转置后的第i行第j列正好对应原矩阵的第j行第i列。本题使用两层循环实现矩阵的转置,并将计算结果存入矩阵b中,外层循环控制矩阵的行下标,内层循环控制矩阵的列下标。2021年四川省巴中市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
2.以下说法错误的是()。
A.C语言中的常量是指在程序运行过程中经常被用到的变量
B.C语言中的常量是指在程序运行过程中其值不能被改变的量
C.C语言中的常量可以用一个符号名来代表
D.C语言中的常量可以用宏来定义
3.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
4.运算符________的优先级最高。
A.[]B.+=C.?:D.++
5.对于关键字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用直接选择大值开始排序时,第一趟扫描结果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
7.
8.一个算法的语句执行次数为(2n2+2nlog2n+4n-7),则其时间复杂度为()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
9.以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:#include<stdio.h>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[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\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,
10.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
11.[0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
12.以下选项中合法的C语言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
13.
14.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发过程中的技术问题
15.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
16.以下叙述中错误的是______。A.C程序必须由—个或—个以上的函数组成
B.函数调用可以作为—个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
17.
18.在银行业务中,实体客户和实体银行之间的联系是()。
A.—对一B.—对多C.多对一D.多对多
19.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
20.以下选项中,合法的一组C语苦数值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
二、2.填空题(20题)21.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后的输出结果是【】。
22.以下程序运行后的输出结果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
23.下列程序的功能是计算1~100的整数的累加和。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=i;
i++;
}
printf("sum=%d\n",【】);
}
24.x、y、x均为int型变量,描述“x、y和z中至少有两个为正数”的表达式是______。
25.下面程序的输出结果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
26.用高级语言编写的程序称为【】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
27.Fibonacci数列中的头两个数是1和1,从第3个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
28.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
31.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
则程序运行后的输出结果是【】。
32.以下程序中,for循环体执行的次数是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
33.以下程序运行后的输出结果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
34.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
35.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
36.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
37.下面程序的运行结果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
38.设有以下定义:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下图所示链表结构,
请写出删除点y的赋值语句【】。
39.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
40.下列程序的运行结果为【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
三、1.选择题(20题)41.若要显示或打印汉字将用到汉字编码中的()
A.输入码B.字型码C.机内码D.交换码
42.若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])
43.设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
44.以下4个选项中,不能看作一条语句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
45.在以下术语中,与数据的逻辑结构无关的是______。
A.线性结构B.链式结构C.树型结构D.网状结构
46.有下列二叉树,对此二叉树前序遍历的结果为()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
47.有以下程序main(){inti,s=1;for(i=1;<50;i++)if(!(i%5)&&!(i%3))s=+i;printf("%d\n",s);}程序的输出结果是
A.409B.277C.1D.91
48.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
49.在数据库设计的4个阶段;为关系模式选择存取方法应该在
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
50.软件生命周期中花费时间最多的阶段是()
A.详细设计B.软件编码C.软件测试D.软件维护
51.有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){return(*f2)(x)-(*f1)(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序运行后的输出结果是()
A.-4B.1C.4D.8
52.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
54.下面的关键字中,不能够从循环体中跳到循环体外的是______。
A.gotoB.breakC.returnD.continue
55.下列表达式中,可以正确表示x≤0或x)1的关系是()。
A.(x>=1)||(x<=0)
B.x>l||x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
56.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序运行后的输出结果是()。
A.0B.1C.-1D.NULL没定义,出错
57.若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}printf("%d,%d",b,a);}则程序运行后的输出结果是()。
A.10,4B.7,3C.10,3D.11,3
58.以下叙述中错误的是
A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
59.下列属于C语言语句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
60.运行以下程序后,如果从键盘上输入china#<回车>,贝愉出结果为_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
四、选择题(20题)61.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A.外模式B.内模式C.概念模式D.逻辑模式
62.
63.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}输出结果是()。A.28B.27C.42D.4l
64.
65.
对两个数组a和b进行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
则下列叙述正确的是()。
A.数组m与数组n完全相同
B.数组m与数组n长度相同
C.数组m比数组n长1
D.数组m与数组n中都存放字符串
66.下列语句组中,正确的是()。
A.char*s;s=”Olympic”;
B.chars[7];s=”Olympic”;
C.char*s;s={¨Olympic”};
D.chars[7];s={"Olympic”};
67.
68.设有定义:
69.
70.
71.下面描述中,不属于软件危机表现的是()A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高
72.有以下程序:
程序运行后的输出结果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
73.若有定义语句:doublea,*P=&a;以下叙述中错误的是()。
A.定义语句中的*号是-个间址运算符
B.定义语句中的木号是-个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,P=&a把变量a的地址作为初值赋给指针变量P
74.
有以下计算公式
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
75.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之问的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
76.在C语言程序中可用做用户标识符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
77.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
该程序段实现的功能是()。
A.删除尾结点B.尾结点成为首结点C.删除首结点D.首结点成为尾结点
78.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。
A.存储媒体B.表现媒体C.传输媒体D.感觉媒体
79.
80.
五、程序改错题(1题)81.下列给定程序、中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把s中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是实现B=A+AT,即将矩阵A加上A的转置,结果存放在矩阵B中。计算结果在main()函数中输出。举例如下。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; system(“CLS”); fun(a,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%7d”,t[i][j]); printf(“\n”); }}
参考答案
1.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。
2.AC语言中的常量是指在程序运行过程中其值不能被改变的量,它可以用宏来定义,用一个符号名来代表。选项A错误,选项B、C、D正确。本题答案为A选项。
3.C本题考查逻辑与(&&)和逻辑或(||)运算符的使用。x值在[1,10]之间,C语言中可以写成x值在[100,11O]之间,C语言表达式应写成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)&&(x<=110)。
4.A
5.C
6.A
7.C
8.A
9.C解析:在main函数中调用sort函数时,实参&aa[3]把数组元素aa[3]的首地址传给形参数组a,使aa[3]与a[0]相对应。sort函数将从aa[3]开始的连续5个数进行了从大到小的排序,其他数组元素不变。
10.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。
11.D
12.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019版广西师范版 高中体育与健康 必修 10~12年级下篇 《第一章 健康行为的养成》大单元整体教学设计2020课标
- 《课电机正反转》课件
- 《级ACCESS数据库》课件
- 主题活动吃火锅真暖和
- 三年级数学五千以内加减混合两步运算题竞赛考核练习题
- 妇女节主题班队活动
- 危重患者突发事件应急处理
- 知觉的整体性微电影分库周欣然
- 住院病案首页数据质量评分表
- 医疗废物培训
- G344项目临建工程施工方案-12号定稿
- 小学数学人教四年级上册(2022年新编)平行四边形和梯形认识平行四边形
- 少先队主题班会工作汇报模板009号课件
- 电气设备常见故障分析
- 人教版七年级数学上册 《实际问题与一元一次方程》教学课件(第1课时)
- 造纸和纸制品公司安全风险分级管控清单
- 双重预防体系培训考试卷(含答案)
- 共工怒触不周山-完整版PPT
- 多元统计分析习题及解答
- 国家开放大学电大公共行政学形考任务1-3答案(全)
- 首末件检查记录表
评论
0/150
提交评论