版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年江西省景德镇市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为________。
A.24B.48C.72D.53
3.下列程序的输出结果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
4.
5.数据结构中,与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储
6.设有关键码初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法对初始序列精细第一堂排序的结果。
A.直接插入排序B.二路归并排序C.快速排序D.基数排序
7.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
8.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
9.
10.考虑下图中的程序段,①号语句的输出结果是()。A.A.'a'B.'t'C.'c'D.'k'
11.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。A.单链表B.双链表C.单循环链表D.顺序表
12.在供应关系中,实体供应商和实体零件之间的联系是()。
A.多对多B.一对一C.多对一D.一对多
13.以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
14.表达式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
15.有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是A.123,abcB.abc,123C.1bc,a23D.321,cba
16.标准库函数fgets(str,n,fp)的功能是()。A.从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存
B.从fp所指的文件中读取长度为n的字符串存入指针str所指的内存
C.从fp所指的文件中读取n个字符串存入指针str所指的内存
D.从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存
17.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
18.下列函数的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的长度
B.比较两字符串的大小
C.将字符串s复制到字符串t中
D.将字符串s连接到字符串t后
19.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则插入s所指的结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
20.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
二、2.填空题(20题)21.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
22.对下列二叉树进行中序遍历的结果为【】。
23.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
24.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
25.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
26.以下程序将数组a的4个元素和数组b的6个元素写到名为letter.dat的二进制文件中,请填空。
#include<stdio.h>
main()
{FILE*fp;
chara[4]="1234",b[6]="abcdef";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
27.在C语言中,while和do…while循环的主要区别是______的循环至少被执行一次。
28.已有定义如下:
structnode
{intdata;
structnode*next;
}*p;
以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。
p=(structnode*)malloc(【】);
29.一个模块直接调用的其他模块的模块个数称为______。
30.以下程序的输出结果是【】。
#include<string.h>
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
31.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
32.软件生命周期包括8个阶段。为使各时期的任务更明确,又可以分为以下3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
33.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
34.若a是int型变量,则下列表达式的值为______。
(a=2*3,a*2),a+4
35.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
36.以下程序运行后的输出结果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
37.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
38.由25人围坐成圆圈,先由任意一人开始顺时针沿用1~25依次编号,然后从1号开始顺时针报数(1、2、3…),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
39.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
40.下面程序的运行结果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
三、1.选择题(20题)41.以下程序的输出结果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
42.以下程序输出的结果是_______。main(){inta=65535;printf("%d%u",a,A);}
A.-1-1B.6553565535C.-165535D.65535-1
43.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序运行后的输出结果是()。
A.1B.2C.3D.4
44.下面程序输出的结果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}
A.1234B.4321C.1324D.4231
45.下列程序的输出结果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}
A.有语法错,不能通过编译B.通过编译,但不能连接C.****D.####
46.有如下说明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
47.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A.trueB.falseC.0D.1
48.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
49.以下程序的输出结果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
50.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
51.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
52.运行以下程序后,如果从键盘上输入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
53.设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为______。
A.10101001B.10101000C.11111101D.1010101
54.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
55.以下程序的输出结果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
56.下列选项中正确的语句是()。
A.chars[8];s={"Beijng"};
B.char*s;s={"Beijng"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing';
57.下列说法正确的是()。
A.在C程序中,main()函数必须位于程序的最前面
B.在C程序中,一条语句只能写一行而不能写多行
C.C程序是以行为基本单位的
D.C语言本身没有输入输出语句
58.有以下程序:#include<stdlib.h>voidfun(int*s,int**d){**d=*(s+2);}main(){inta[]={1,2,3,4,5},*b;b=(int*)malloc(sizeof(int));fun(a,&B);printf("%d\n",*b+1);}程序的输出结果是()
A.2B.3C.4D.5
59.有以下程序:#include<stdio,h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[1];a[i]=a[j];a[j]=t;}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinff("%d,",aa[i]);prinff("\n");程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
60.下列叙述中,正确的一条是______。
A.语句int*pt中的*pt是指针变量名
B.运算符*和&都是取变量地址的运算符
C.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值
D.语句“int*p=a;”等价于“int*p;p=&a[0];”
四、选择题(20题)61.
62.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。
A.3B.4C.6D.7
63.
64.HTTP协议的消息有()两种类型。
A.发送消息和接收消息B.请求消息和响应消息C.消息头和消息体D.实体消息和控制消息
65.
66.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
67.
68.
69.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.将磁盘文件的内容显示在屏幕上
B.将两个磁盘文件合为一个
C.将一个磁盘文件复制到另一个磁盘文件中
D.将两个磁盘文件合并后送屏幕
70.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
71.
72.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
73.以下程序段完全正确的是()。
74.
75.
以下程序的输出结果是()。
voidfun(int*a,inti,inti)
{intt;
if(i<i)
{t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;fun(a,i,j);
}
}
main
{intK[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
76.有以下程序段:
为使程序段不陷入死循环,从键盘键入的数据应该是()。
A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
77.(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
78.在数据库设计中,将E—R图转换为关系模式的过程属于()。
A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段
79.
80.
五、程序改错题(1题)81.下列给定程序、中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把s中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.编写函数proc(),它的功能是求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。
例如,m为100时,函数值应为s=7.416198。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.A
2.D
3.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。
4.C
5.C解析:数据结构是指数据以及他们之间的相互联系。其中数据的逻辑结构是指数据元素之间的逻辑关系,它与所使用的计算机无关:数据的物理结构,又称存储结构,是指数据结构在计算机中的表示,它包括数据元素的表示和元素的表示,其中数据元素之间的关系在计算机中有顺序存储结构和链式存储结构两种。因此C是正确答案。
6.C
7.BC语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,不可以读入数据,选项B错误;可以将指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确。故本题答案为B选项。
8.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
9.B
10.D
11.D
12.A一家供应商可提供多种零件,一种零件也可被多家供应商提供。所以实体供应商和实体零件之间的联系是多对多。本题答案为A选项。
13.C
14.D解析:+=、-=、=等符号优先级相同结合性是由右至左,所以选D。
15.C解析:此题考核的知识点是指针变量值的交换。c语言中,字符串常量在内存中是以字符数组的形式进行存放的,因此字符指针x和y指向的是各字符串的首地址,也就是字符串第—个字符的地址,则*x与*y交换的是字符串的第—个字符,即字符“a”与“1”的交换,而字符串中其它字符保持不变,所以答案选C。
16.Afgets函数的功能是从fp所指文件中读入n-1个字符放入以str为起始地址的空间内,读取长度不超过n-1,读入结束后,自动在最后添加’\\0’,选项A正确。本题答案为A选项。
17.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。
18.B在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。
程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。
19.B
20.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
21.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
22.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。
23.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
24.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根据题目要求,在下划线位置应该填入一个能实现二进制读的使用文件方式的参数即可。所以,可以填'rb'或'r+b'或'rb+'。
25.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。
26.letter.dat6*sizeof(char)letter.dat\r\n6*sizeof(char)解析:本题主要考查函数fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size个字节输出到fp所指文件中。
27.do…whiledo…while解析:考查while和do…while循环的主要区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体;在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。
28.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是开辟一个长度为sizeof(struetnode)的内存区。(structnode*)的作用是使malloc返回的指针转换为指向structnode类型数据的指针。
29.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。
30.545\u3000\u30004解析:字符串处理函数strlen()返回的是字符数组的实际长度,不包括字符申结束标志‘\\\u30000’。而sizeof运算符则计算的是字符数组的总长度,包括串末尾的结束标志。
31.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
32.软件开发。软件开发。解析:通常,软件生命周期包括8个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试、运行维护。还分为3个时期,软件定义期:包括问题定义、可行性研究和需求分析3个阶段;软件开发期:包括系统设计、详细设计、编码和测试4个阶段;软件维护期:即运行维护阶段。
33.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中输入数据的形式是5.04,c=3。
34.1010解析:此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以追回值a+4=6+4=10。
35.224682,2468解析:在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2;当i=1时,p[1]=&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3时,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序输出的结果为2、4、6、8。
36.1010解析:表达式0<x<20,首先计算0<x,其值为1,再计算1<20,其值为1,输出1;表达式0<x&&x<20,0<x为1,x<20为0,再计算1&&0,其值为0,输出0。所以输出结果为10。
37.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。
38.0a[j]=0count<25
39.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
40.x=2y=1
41.D解析:赋值运算符的结合方向是自右至左,所以表达式a+=a=a*a先运算最右边的a*a得9,再运算a=a-9,即a=3-9,所以此时a的值由3变成了-6,最后运算a=a+(-6)=-12。
42.C解析:printf函数中不同类型的数据用不同的格式字符,其中%d是按整型数据的实际长度输出十进制整数。变量a=65535以%d格式输出时溢出输出值为该数的补码值,即-1:%u用来输出unsigned型数据,无符号整型变量的数值范围为0~65535,所以变量a=65535以%u格式输出的值为65535。
43.A解析:在switch语句中break语句的作用是退出分支语句,若没有break语句则一直向下执行。本题中首先计算switch后面括号里的表达式a%3,即15%3为0:执行case0:后面的语句“m++;”,m自加1,即m为1;遇到break语句;然后跳出switch语句,所以最后输出的m值为1。所以选项A正确。
44.B解析:本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。
45.C解析:if语句中的条件表达式是赋值表达式,a+b值为2,赋给x,x值非0,输出****。
46.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)来表示。
47.D解析:在C语言中,逻辑运算符有4个,它们分别是:!(逻辑非)、逻辑或)、&&(逻辑与)、^(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a&&b)&&(c<'B');中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<'B'是成立的,显然,该表达式的值为1。
48.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。
49.A解析:观察子函数fun()可知,它是实现—个数组首末元素位置互相依次交换。联系主函数,可以看出,是对字符串中的元素依次进行首末位置的对调。
50.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
51.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。
52.C解析:执行完一个case后面的语句后,流程控制移到下一个case继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
53.D解析:异或运算符(^)的运算规则是:参加运算的两个相应位同号,则结果为0(假);异号则为1(真)。取反运算符(-)的运算规则是:对一个二进制数按位取反,即将0变为1,1变为0。本题(-3)是对3(二进制形式为00000011)按位取反即11111100。表达式(2+x)(-3)的值就等价于(00000010+10100111)^11111100,结果为01010101。
54.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
55.D解析:strcpy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向数组中。首先定义了两个字符数组b1和b2,并用一个字符串给b1赋初值,然后定义了一个字符型指针变量pb,通过赋初值使它指向b1[3]。接着执行while循环,该循环执行了3次:第一次判断条件“--pb>=b1”,使pb的值为“b1+2”,执行“strcpy(b2,pb);”后,b2中的内容为“cdefg”;第二次判断条件“--pb>=b”,使pb的值为“b1+1”,执行“strcpy(b2,pb);”后b2的内容为“bcdefg”第三次判断条件“--pb>:b1”使pb的值为“b1”,执行“strcpy(b2,pb);”后b2的内容为“abcdefg”。最后输出b2数组中存放的字符串长度,显然是7。(这里还有一个关键点:就是每当执行一次while循环判断条件,就执行一次“--pb”,使得指针pb自减1,即前移一位)。
56.D解析:用字符串常量给数组赋值的形式有“chars[8]={'Beijng'};”或“chars[8]='Beijing'”,而没有选项A中的形式。选项C中的s是数组名为地址常量,不能被赋新值。选项D中s被定义为指针变量,s='Beijng'并不是把字符串的内容放入s中,而是把字符串在内存中的首地址赋值给s,故选项D正确,而选项B中的形式不存在。
57.D解析:本题涉及C语言最基本的4个知识点:①C语言程序是由函数构成的,C程序的基本单位是函数;②每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,但是main()函数可以放在程序中的任意位置;③C语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上;④C语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。
58.C
59.C解析:sort函数的功能是将给定的数由大到小排序。函数调用sort(aa+2,5);中的实参aa+2是aa[2]的地址,将其传给形参a[],使得形参中封a[0]的值为主函数中aa[2]的值,即3;实参5传给形参n,在sort函数中用于指定参加排序的5个数,从aa[2]到aa[6],所以本题输出的结果是:1,2,7,6,5,4,3,8,9,10,
60.D
61.D
62.D根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为l一1=0个,据此可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即深度为7,选择D)。
63.A
64.B
65.A
66.C在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。
67.B
68.D
69.C本题主要考查文件的操作。在本题的程序中,首先定义了两个文件指针fp1和fp2,然后用指针fp1指向一个以读方式打开的文件file1,用指针fp2指向一个以写方式打开的文件file1,接着执行while循环,循环的结束条件是(!feof(fp1))为假,即feof(fp1)为真,表示对文件fp1的操作读取到结束符,因此,循环结束的条件是对文件file1的读取结束,循环体语句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函数,C语言提供这两个函数对文本文件进行字符的读写操作。fgetc(fp1)函数的作用是从输入流fp1的当前位置返回一个字符,并将文件指针指示器移到下一个字符处;fputc(ch,fp2)函数的作用是将字符ch的值写入所指定的流文件的当前位置处,并将文件指针后移一位。
根据上面的分析,可以知道循环结束后,即将指针fp1指向的文件复制到指针fp2指向的文件中,然后关闭两个操作的文件。因此,本题程序的作用是将一个磁盘文件复制到另一个磁盘文件中,本题正确答案选C。
70.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。
71.A
72.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
73.AsCanfi垂i数参数列表,需要为指针,这个指针必须指向变量,所以答案选择A)。
74.C
75.C
\n本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。
\n
76.D此题目中变量s是迷惑考生的,变量t赋初值为1,由语句t=t-2;将使t得到的是负奇数。所以选项D)是正确答案。
77.D
78.BB.【解析】数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E-R图转换为关系模式。
79.B
80.B
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.
【解析】按照题目中要求求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,需要判断m以内的所有整数是否能同时被5与11整除,首先求出同时能被5与
11整除的所有自然数之和,然后再求和的平方根,最后返回到主函数当中。
2021年江西省景德镇市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为________。
A.24B.48C.72D.53
3.下列程序的输出结果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
4.
5.数据结构中,与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储
6.设有关键码初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法对初始序列精细第一堂排序的结果。
A.直接插入排序B.二路归并排序C.快速排序D.基数排序
7.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
8.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
9.
10.考虑下图中的程序段,①号语句的输出结果是()。A.A.'a'B.'t'C.'c'D.'k'
11.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。A.单链表B.双链表C.单循环链表D.顺序表
12.在供应关系中,实体供应商和实体零件之间的联系是()。
A.多对多B.一对一C.多对一D.一对多
13.以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
14.表达式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
15.有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是A.123,abcB.abc,123C.1bc,a23D.321,cba
16.标准库函数fgets(str,n,fp)的功能是()。A.从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存
B.从fp所指的文件中读取长度为n的字符串存入指针str所指的内存
C.从fp所指的文件中读取n个字符串存入指针str所指的内存
D.从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存
17.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
18.下列函数的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的长度
B.比较两字符串的大小
C.将字符串s复制到字符串t中
D.将字符串s连接到字符串t后
19.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则插入s所指的结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
20.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
二、2.填空题(20题)21.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
22.对下列二叉树进行中序遍历的结果为【】。
23.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
24.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
25.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
26.以下程序将数组a的4个元素和数组b的6个元素写到名为letter.dat的二进制文件中,请填空。
#include<stdio.h>
main()
{FILE*fp;
chara[4]="1234",b[6]="abcdef";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
27.在C语言中,while和do…while循环的主要区别是______的循环至少被执行一次。
28.已有定义如下:
structnode
{intdata;
structnode*next;
}*p;
以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。
p=(structnode*)malloc(【】);
29.一个模块直接调用的其他模块的模块个数称为______。
30.以下程序的输出结果是【】。
#include<string.h>
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
31.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
32.软件生命周期包括8个阶段。为使各时期的任务更明确,又可以分为以下3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
33.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
34.若a是int型变量,则下列表达式的值为______。
(a=2*3,a*2),a+4
35.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
36.以下程序运行后的输出结果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
37.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
38.由25人围坐成圆圈,先由任意一人开始顺时针沿用1~25依次编号,然后从1号开始顺时针报数(1、2、3…),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
39.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
40.下面程序的运行结果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
三、1.选择题(20题)41.以下程序的输出结果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
42.以下程序输出的结果是_______。main(){inta=65535;printf("%d%u",a,A);}
A.-1-1B.6553565535C.-165535D.65535-1
43.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序运行后的输出结果是()。
A.1B.2C.3D.4
44.下面程序输出的结果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}
A.1234B.4321C.1324D.4231
45.下列程序的输出结果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}
A.有语法错,不能通过编译B.通过编译,但不能连接C.****D.####
46.有如下说明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
47.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A.trueB.falseC.0D.1
48.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
49.以下程序的输出结果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
50.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
51.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
52.运行以下程序后,如果从键盘上输入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
53.设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为______。
A.10101001B.10101000C.11111101D.1010101
54.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
55.以下程序的输出结果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
56.下列选项中正确的语句是()。
A.chars[8];s={"Beijng"};
B.char*s;s={"Beijng"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing';
57.下列说法正确的是()。
A.在C程序中,main()函数必须位于程序的最前面
B.在C程序中,一条语句只能写一行而不能写多行
C.C程序是以行为基本单位的
D.C语言本身没有输入输出语句
58.有以下程序:#include<stdlib.h>voidfun(int*s,int**d){**d=*(s+2);}main(){inta[]={1,2,3,4,5},*b;b=(int*)malloc(sizeof(int));fun(a,&B);printf("%d\n",*b+1);}程序的输出结果是()
A.2B.3C.4D.5
59.有以下程序:#include<stdio,h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[1];a[i]=a[j];a[j]=t;}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinff("%d,",aa[i]);prinff("\n");程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
60.下列叙述中,正确的一条是______。
A.语句int*pt中的*pt是指针变量名
B.运算符*和&都是取变量地址的运算符
C.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值
D.语句“int*p=a;”等价于“int*p;p=&a[0];”
四、选择题(20题)61.
62.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。
A.3B.4C.6D.7
63.
64.HTTP协议的消息有()两种类型。
A.发送消息和接收消息B.请求消息和响应消息C.消息头和消息体D.实体消息和控制消息
65.
66.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
67.
68.
69.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.将磁盘文件的内容显示在屏幕上
B.将两个磁盘文件合为一个
C.将一个磁盘文件复制到另一个磁盘文件中
D.将两个磁盘文件合并后送屏幕
70.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
71.
72.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
73.以下程序段完全正确的是()。
74.
75.
以下程序的输出结果是()。
voidfun(int*a,inti,inti)
{intt;
if(i<i)
{t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;fun(a,i,j);
}
}
main
{intK[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
76.有以下程序段:
为使程序段不陷入死循环,从键盘键入的数据应该是()。
A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
77.(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
78.在数据库设计中,将E—R图转换为关系模式的过程属于()。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修工程师专业考试题及解析
- 充电式工具项目可行性分析报告范文(总投资23000万元)
- 深度解析(2026)《GBT 19209.1-2003拖拉机修理质量检验通则 第1部分轮式拖拉机》(2026年)深度解析
- 年产xxx实心胎项目可行性分析报告
- 独居老人的糖尿病居家安全管理
- 资深制药工程问题解析与高工经验
- 销售经理岗位能力测试题及高分技巧含答案
- 深度解析(2026)《GBT 18834-2002土壤质量 词汇》(2026年)深度解析
- 不锈钢过滤器建设项目可行性分析报告(总投资19000万元)
- PE吹膜机项目可行性分析报告范文
- 腰椎骨折课件教学课件
- 电动机正反转控制电路安装调试教案
- (完整)初二数学(上)期末易错题、难题培优复习精心整
- 高压断路器和隔离开关的原理与选择
- 新生儿护士述职报告
- 手机短视频拍摄与剪辑智慧树知到课后章节答案2023年下哈尔滨职业技术学院
- 统编版语文五年级上册按要求改写句子过关练习(含答案)
- 人教版美术-装饰画教学课件
- NY/T 455-2001胡椒
- GB/T 18710-2002风电场风能资源评估方法
- 《家庭、私有制和国家的起源》课件
评论
0/150
提交评论