版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年四川省自贡市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的运行结果是()。
A.321B.12300C.1D.123
2.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
3.
4.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
5.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
6.
7.下列说法正确的是()。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
8.对n个数进行排序,哪种算法,其时间复杂度在最坏和最好都是O(nlogn)()
A.快速排序B.希尔排序C.堆排序D.选择排序
9.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()。
A.(rear-front+m)%m
B.rear-front+1
C.(front-rear+m)%m
D.(rear-front)%m
10.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。
A.定义语句中的“*”是一个间址运算符
B.定义语句中的“*”是一个说明符
C.定义语句中的“p”只能存放double类型变量的地址
D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p
11.
12.下列关于效率的说法不正确的是()
A.效率是一个性能要求,其目标应该在需求分析时给出
B.提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C.效率主要指处理机时间和存储器容量两个方面
D.程序的效率与程序的简单性无关
13.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1
14.已知广义表的表头为A,表尾为(B,C),则此广义表为________
A.(A,(B,C))B.(A,B,C)C.(A,B,C)D.((A,B,C))
15.若有定义“a[]={1,2,3,4,5,6,7,8,9,10};”,则“a[a[5]-a[7]/a[1]]”的值是()。
A.2B.4C.3D.10
16.有一个100×90的稀疏矩阵,非0元素有10,设每个整型数占2个字节,则用三元组表示该矩阵时,所需的字节数是()。
A.20B.66C.18000D.33
17.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
18.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,数组A的最后一个元素A6,7的存储地址为()。
A.1024B.1440C.1448D.1432
19.下面程序的运行结果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!='\0';i++)
{if(a[i]>='0'&&a[i]<='9')
{s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}A.A.1B.2C.3D.4
20.在多媒体计算机系统中,不能用以存储多媒体信息的是A.光缆B.软盘C.硬盘D.光盘
二、2.填空题(20题)21.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序
#include"stdio.h"
main()
{charb[17]={"0123456789ABCDEF"};
intc[50],d,i=0,base=16;
longn;
scanf("%1d",&n);
do{c[i]=n%base;i++;n=【】;}
while(n!=0);
for(--i;i>=0;--i)
{d=【】;printf("%c",b[d]);}
printf("H\n");}
22.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
23.当运行以下程序时,输入abed,程序的输出结果是:【】。
insert(charstr[])
{inti
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",sB);insert(str);
}
24.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getehar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后的输出结果是【】。
25.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
26.以下程序的输出结果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
27.以下程序运行后的输出结果是【】。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%d\n",a,b,c);
}
28.四条语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
29.以下程序的运行结果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
30.以下程序的功能是进行位运算main(){unsignedchara,b;a=7^3;b=~4&3;pfintf("%d%d\n",a,b);}程序运行后的输出结果是
31.有以下程序:
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:1234<回车>,程序的输出结果是【】。
32.用树型结构表示实体类型及实体间联系的数据模型称为【】。
33.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"
34.以下程序运行后的输出结果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
35.下面程序的运行结果是:【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
36.要使以下程序段输出10个整数,请填入一个整数;
for(i=0;i<=【】;printf("%d\n",i+=2));
37.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL).
#include<stdio.h>
structlist{intdatd;structlist*next;};
【】creatlist()
{structlist*p,*q,*ph;
inta;
ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;
printf("Inputanintegernumber,enter-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{
p=(structlist*)malloc(sizeof(structlist));
p->data=a;
q->next=p;
【】=p;
scanf("%d",&a);
}
p->next='\0';
return(ph);
}
main()
{
structlisthead;
head=creatlist();
}
38.以下程序运行后的输出结果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
39.以下程序的输出结果是______。
main()
{char*p-"abcdefgh",*r;
long*q;
q=(long*)p;
q++;
r=[char*)q;
printf("%s\n",r);
}
40.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
三、1.选择题(20题)41.在宏定义#definePI3.14159中,用宏名PI代替一个()
A.单精度数B.双精度数C.常量D.字符串
42.以下程序输出正确的是_______amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)mallox(100)amovep)p,a,3);printf("%d%d\n",p[2],p[5]);free(p)}
A.56B.25C.34D.程序错误
43.假定一棵二叉树的结点数为18个,则它的最小高度为______。
A.4B.5C.6D.18
44.有以下函数定义:voidfun(intn,doublex){......}若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
45.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
46.下列程序的输出结果是()main(){inti,j,m=0,n=0;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%d\n",n);}
A.4B.2C.1D.0
47.设有定义语句int(*f)(int);,则以下叙述正确的是()。
A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是基类型为int类型的地址
48.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合
49.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构
50.若要打开A盘中user子目录下名为aaa.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.fopen("A:\user\aaa.txt","r")
B.fopen("A:\\user\\aaa.txt","r=")
C.fopen("A:\user\aaa.txt","rb")
D.fopen("A:\\user\\aaa.txt","w")
51.在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。
A.int**q;B.int(*q)0;C.int*q;D.int*q();
52.下列叙述中,正确的是
A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B.用E-R图只能表示实体集之间一对一的联系
C.用E-R图只能表示实体集之间一对多的联系
D.用E-R图表示的概念数据模型只能转换为关系数据模型
53.要求以下程序的功能是计算main(){intn;floats;S=1.0;for(n=10;n>1;n--)s=S+1/n;printf("%6.4f\n",S);}程序运行后输出结果错误,导致错误结果的程序行是
A.s=1.0;B.for(n=10;n>1;n--)C.s=s+1/n;D.prind("%6.4f\n",s);
54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<0B.!aC.a=0D.a
55.下列说法正确的是()。
A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D.在对C程序进行编译时,可以发现注释行中的拼写错误
56.以下的for循环______。for(x=0,y=0;(y!=123)||(x<4);x++)
A.是无限循环B.循环次数不定C.执行4次D.执行3次
57.下列设备不是输出设备的是______。
A.显示器B.打印机C.绘图仪D.扫描仪
58.若—个外部变量的定义形式为staticintx;,那么,其中static的作用应该是______。
A.将变量存储在静态存储区B.使变量x可以由系统自动初始化C.使x只能在本文件内引用D.使x的值可以永久保留
59.
(3)
A.p->nextB.pC.sD.s>next
60.在下列关于二叉树的叙述中,正确的一项是
A.在二叉树中,任何一个结点的度都是2
B.二叉树的度为2
C.在二叉树中至少有一个结点的度是2
D.一棵二叉树的度可以小于2
四、选择题(20题)61.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
62.
程序运行后的输出结果是()。A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
63.有以下程序:
程序运行后的输出结果是()。
A.3B.4C.5D.6
64.利用fseek函数可实现的操作是()。
A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确
65.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图
66.数据库管理系统是()。
A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统
67.设以下变量均为int类型,表达式的值不为7的是A.(x=y=6,x+y,x+1)
B.(x=6,x+1,y=6,x+y)
C.(x=y=6,x+y,y+1)
D.(y=6,y+1,x=y,x+1)
68.有以下程序
69.
70.有以下程序:
#include<stdio.h>
main()
{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是()。
A.1B.3C.4D.0
71.有以下程序:
#include<stdio.h>
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i+j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是()。
A.m=6
B.m=2
C.m=4
D.m=3
72.
73.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。A.可以是任意合法的数值B.必须是整数值C.必须是正数D.必须是逻辑值
74.
75.下列变量声明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
76.有以下程序
77.
有下列程序段:
intn,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
为使此程序段不陷入循环,从键盘输入的数据应该是()。
A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
78.
79.面向对象方法中,不属于对象基本特点的是()。
A.标识唯一性B.分类性C.封装性D.一致性
80.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。π/4≈1-1/3+1/5-1/7+…例如,程序运行后,输入0.0001,则程序输出3.1414。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.输出1—100之间不能被12整除的数。
参考答案
1.D程序首先将数组a中的元素1、2、3分别写入了d1.dat文件中,再将d1.dat文件中的数据“123”整体写到变量n的空间中,所以输出的数据为123。故本题答案为D选项。
2.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。
3.C
4.B
5.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。
6.C
7.D在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
8.C
9.A
10.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。
11.A
12.D
13.D解析:本题考查循环和指针做函数参数,程序的功能是将a[0]和a[7]对换,a[1]和a[6]对换,a[2]和a[5]对换,a[3]和a[4]对换,最后输出。
14.B
15.C题干中,数组a包含10个元素。其中a[5]为6,a[7]为8,a[1]为2,所以表达式“a[a[5]-a[7]/a[1]]”等价于“a[6-8/2]”,等价于a[2],即3。故本题答案为C选项。
16.B
17.A
18.B
19.D本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。
20.A解析:光缆是传输多媒体信息的通道,不能用以存储多媒体信息。
21.n/base或n/16c[i]n/base或n/16\r\nc[i]解析:字符串的综合运用。
22.d1.dat"rb"d1.dat,'rb'解析:打开文件的函数为fopen('文件名','mode'),其中'mode'表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只读方式打开。'w'表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。'a'为追加方式打开。若文件存在时,将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。'r+'打开一个已存在文件用于更新(可读可写)。\'w+'创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。'a+'打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填'd1.dat','rb'。
23.a*b*c*da*b*c*d,解析:在insert()函数,因为题目要求输入的字符串为abed,所以执行完“i=strlen(str);”后,i中存放的是字符串abcd的长度值4。所以接F来的while循环会循环4次,每次让i减1,故4次循环中i的值依次为4、3、2、1。每次循环会执行两条语句str[2*i]=str[i];str[2*i-1]='*',当i=4时为:str[8]=str[4];str[7=='*';。执行结果是将字符串abed末尾的结束符'\\0'复制到其下标值2倍的位置,并在其前1位插入—个'*'哼符。接下来i=3,执行str[6]=str[3];str[5]='*'。执行后会将字符串abcd最后一个字符,d复制到其下标值2倍的位置,并在其前1位插入一个'*'字符。依次类推,直到i=1,执行str[2]=str[1];str[1]='*',将字符tb,往后移动了1位,并在原位置插入'*'字符。所以,循环结束后,字符串str会变为a*b*c*d*。这就是程序的输出结果。
24.1212解析:程序中的ch1与ch2为字符型变量,输入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'将字符1,转换为数值1,同理,n2为1*10+2=12。程序执行后输出十进制整数12。
25.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
26.2468
27.1020010200解析:本题考查算术运算符,关系运算符和逻辑运算符的使用和优先级关系。程序中,a=10,b=20,c=(10%20<1)||(10/20>1)=(10<1)||(0>1)=0||0=0。
28.x+=1;x+=1;解析:题面中的四条语句的作用是使x的值加1,在C中有多种方法可以对变量进行加1操作,这里可以利用C的复合赋值运算符+=实现,本题答案为x+=1;。
29.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。
30.A
31.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。
32.层次模型用树型结构表示实体类型及实体间联系的数据模型称为层次模型,用有向图结构表示实体类型及实体间联系的数据模型称为网状模型,用二维表格结构表示实体及其联系的数据模型称为关系模型。
33.SET单价=单价*1.05SET单价=单价*1.05解析:更新表中元组的值,使用UPDATE命令,一次可以更新表中的一个或多个属性值。UPDATE短语之后指定更新数据所属的表,将新的属性值或表达式赋值给对应的属性名(SET单价=单价*1.05),并置于SET短语之后。要求对人民邮电出版社的图书涨5%,需要用WHERE短语对元组进行限制,即对符合条件的元组进行更新。
34.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880
35.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依然是原来的值。
36.18或1918或19
37.structlist*q
38.09182736450918273645解析:题目中为for循环定义了两个字符型循环变量c1和c2,循环开始时分别初始化为字符‘0’和‘9’,然后每次循环结束给c1增1、c2减l,循环条件为c1<c2,即让c1的值依次为‘0’、‘1’、‘2’…,c2的值依次为‘9’、‘8’、‘7’…,直到两个数相遇时结束循环。又因为该循环的循环体每次按字符形式输出c1和c2的值。所以最终的输出结果为:0918273645。
39.efghefgh解析:本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”把P的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址,最后输出r指向的字符串,是“efgh”。
40.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1;②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。
41.D解析:程序中用#define定义后,PI代表一串字符。
42.A解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别:a[0][0]=1,a[0][1]=3,a[0][1]=3,a[0][2]=5,a[1][2]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参P,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。
43.B
44.C解析:函数调用的一般形式为:函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选C。
45.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。
46.C
47.B本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。
48.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。
49.C数据结构与算法:数据结构的基本概念[评析]逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。线性结构和非线性结构是根据数据元素之间关系的不同特性加以分类的,即是从逻辑上加以分类的。
50.B解析:选项A和C在字符串中用到特殊字符'\\',该字符在字符串中用作转义字符的开始,所以不能单独使用,若要在字符串常量显示该字符可使用转义字符'\\\\',故选项A和C不正确。选项D中fopen()函数的第二个参数w表示以只写的方式打开文件,不符合题意,故应该选择B。
51.B解析:本题考查的是指针函数。指针函数定义的基本格式:类型说明符(*函数名)()。其中,类型说明符表示返回的指针值指向的数据类型。
52.A解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。
53.C解析:程序中由于n为整型,所以1/n的结果始终为0,故程序最后输出的结果为0,其结果错误,原因为在表达式1/n中1和n均为整型,所以应该将1改为1.0,这样表达式1.0/n的值不为0,为该数学表达式的值,因此我们可以知道导致程序运行后输出结果错误的行为s=s+1/n;,所以,4个选项中选项C符合题意。
54.D
55.C解析:本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②C语言的标识符是由字母、数字、下划线组成的,可以是大写字母,而且标识符区分字母的大小写;③C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释行中的错误。
56.A解析:本题考查for循环的结束条件。注意虽然x的值在增加,但y的值不增加,表达式(y!=123)||(x<4)的值永远是1,所以会成为无限循环。
57.D解析:扫描仪属于输入设备。
58.C解析:事实上,无论有无static修饰,外部变量都具有A、B和C三科特性。作为—种修饰,static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。
59.B解析:主函数中,定义了一个结构体型指针变量head,然后将函数CreatList()的返回值赋给指针变量head,从这里可知函数CreatList()的返回值为structnode*类型,所以第48处的空格处应该填structnode*,故48题选项C正确;在函数CreatList()中首先定义三个结构体型指针变量b,p和q。然后调用malloc()函数分配了一个结点空间,并让指针h指向它,开始指针p、q和h都指向它,然后调用一个while循环语句,当到达字符串数组s的末尾结束循环,在每次循环中,分配一个结点空间,并让p指向它,然后让该结点的data域的值等于字符串指针s所指的值,故49处的空格处应填*s,因此第49题的正确的答案为选项A;接下来让指针q所指结点的指针城指向结点p,然后让指针q指向该指针的所指结点的下一个结点即p,所以第50个空格处应该填p,因此第50题应该选择B。所以48题4个选项中选项C符合题意:第49题4个选项中选项A符合题意;第50题4个选项中选项B符合题意。
60.D解析:本题考查了二叉树的基本概念。在二叉树中,叶子节点的度是1;当该二叉树为空树时,根节点的度为零;为非空树时,根节点的度为2。
61.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
62.B本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。
63.B&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山市迁安市2025-2026学年第二学期三年级语文期末考试卷(部编版含答案)
- 开封市鼓楼区2025-2026学年第二学期二年级语文期末考试卷部编版含答案
- 呼伦贝尔市海拉尔市2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 白城市大安市2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 稀土材料生产工安全文化评优考核试卷含答案
- 液晶显示器件阵列制造工成果转化知识考核试卷含答案
- 乳品评鉴师岗前跨领域知识考核试卷含答案
- 苯乙烯装置操作工复测评优考核试卷含答案
- 昌吉回族自治州吉木萨尔县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 赣州市信丰县2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 人音版音乐四年级下册《第七课 回声》大单元整体教学设计2022课标
- 梦幻西游手游账号交易协议书
- 2024年水溶性肥项目申请报告范稿
- 水库调度规程
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- MOOC 物理与艺术-南京航空航天大学 中国大学慕课答案
- 哥尼斯堡七桥问题与一笔画课件
- 景观照明设施养护投标方案(技术方案)
- 全国计算机等级考试一级教程-计算机系统
- 企业经营战略 第6章-稳定型战略和紧缩型战略
- 海南大学硕士研究生入学考试复试政治审查表
评论
0/150
提交评论