




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年吉林省辽源市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.拥有PC机并以拨号方式接入网络的用户需要配置()
A.CD-ROMB.ModemC.电话机D.鼠标
2.下列叙述中正确的是()。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n
D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n
3.下列程序的输出结果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
4.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序运行后的输出结果是()。
A.7,7B.5,3C.8,8D.3,5
5.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
6.程序调试的任务是()。
A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误
7.算法的时间复杂度是指______。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数
8.下列变量声明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
9.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
10.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
11.对以下四个序列用直接插入排序方法由小到大进行排序时,元素比较次数最少的是()
A.89,27,35,78,41,15
B.27,35,41,16,89,70
C.15,27,46,40,64,85
D.90,80,45,38,30,25
12.C语言中逻辑表达式的值为()
A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'
13.软件开发模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
14.以下编码方法中,()属于熵编码。
A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码
15.结构化程序设计方法的3种基本控制结构中不包括
A.循环结构B.递归结构C.顺序结构D.选择结构
16.实体联系模型中实体与实体之间的联系不可能是
A.一对一B.多对多C.一对多D.对零
17.
18.表达式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
19.运算符________的优先级最高。
A.[]B.+=C.?:D.++
20.对于函数声明“voidfun(intarray[4],int*ptr);”,以下叙述中正确的是()。
A.array、ptr都是指针变量
B.调用fun函数时,实参的值将逐一复制给array
C.调用fun函数时,array按值传送,ptr按地址传送
D.array是数组,ptr是指针,它们的性质不同
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
22.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
23.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
24.以下程序的输出结果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
25.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
26.下面invert函数的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
voidinvert(charstr[])
{inti,j,【】;
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
27.在面向对象的程序设计方法中,类的实例称为______。
28.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是______。
structnode
{chardata;
structnode*next;}a,b
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
29.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
majn()
{FILE*fp;charch;
fp=fopen(______);
ch=fgetc(fp);
whle(!feof(fp)){putchar(ch);ch=f8etc(fp);}
putchar('\n');fclose(fp);
}
30.以下程序的运行结果是______。
structNode}
intx;
charch;
};
fun(structNode*sn)
}statick=1;
sn->x=20;
Sn->ch='a'+k++;
}
main()
{inti;
staticstructNodest=}10,'a'};
for(i=0;i<2;i++)
fun(&st);
printf("%d,%c\n",st.x,st.ch);
}
31.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=______;______=a[N-1][i];}
}
32.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
33.阅读下列程序,则程序的输出结果为【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
34.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。
35.数据库的设计通常可以分为4个步骤:需求分析、概念设计、【】和物理设计。
36.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。
37.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)后,结果是______。
38.函数sstrcmp的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)。请填空。
#include<stdio.h>
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==【】)
{s++;t++;}
return【】;
}
39.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
40.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
三、1.选择题(20题)41.若在某函数内部有定义:inta[3][4];则数组a中各元素()。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
42.以下程序的输出结果是______。#includemain(){char*p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}
A.AfgdEFGB.AbfhdC.AfghdD.Afgd
43.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
44.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
45.若有定义:char*x="abcdefghi";,以下选项中正确运用了strcpy函数的是()。
A.chary[10];strcpy(y,x[4]);
B.chary[10];strcpy(++y,&x[1]);
C.chary[10],*s;strcpy(s=y+5,x);
D.chary[10],*s;strcpy(s=y+1,x+1);
46.以下选项中可作为C语言合法常量的是()。
A.-80B.-80C.-80.0D.-80.0e
47.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
48.设有以下语句charx=3,y=6,z;z=x^y<<2;则z的二进制值是
A.10100B.11011C.11100D.11000
49.以下4组用户定义标识符中,全部合法的一组是
A._mainencludesin
B.If_maxturbo
C.txtREAL3COM
D.intk_2_001
50.在C语言程序中()
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可嵌套
51.以下不合法的用户标识符是______。A.j2KEYB.DoubleC.4dD._8_
52.下列程序的输出结果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
53.已知函数fread的调用形式为fread(buffer,size,count,fp);其中buffer代表的是()。
A.存放读入数据项的存储区
B.一个指向所读文件的文件指针
C.一个指针,是指向输入数据存放在内存中的起始地址
D.一个整型变量,代表要读入的数据项总数
54.下面语句的输出结果,是______。printh("%d\n",strlen("\t\"\065\xff\n"));
A.14B.8C.5D.输出项不合法,无正常输出
55.执行语句printf("%u\n",+12345)的输出结果是()。
A.12345B.0C.-1D.非定值
56.若有定义intb[8],*p=b;则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
57.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
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)
58.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
59.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是()
A.顺序内聚B.偶然内聚C.时间内聚D.逻辑内聚
60.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
四、选择题(20题)61.有以下程序:
voidf(int*x,int*y)
{int*t;
t=x;x=y;y=t;*x=*y;
}
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,
62.
63.
有以下程序:
#include<stdio.1l>
voidWriteStr(char*fn.char*str)
{FILE*fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}
main
{WriteStr("tl.dat","start");
WriteStr("t1.dat","end");)
程序运行后,文件t1.dat中的内容是()。
A.startB.endC.startendD.endrt
64.
65.
66.URI的全称是()。A.标准资源描述符B.标准资源标识符C.通用资源描述符D.统一资源标识符
67.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
68.表达式“~0x11”的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFF1
69.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序运行后的输出结果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
70.有如下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);
}
该程序的输出结果是
71.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
72.
73.
74.有以下程序:
#include<stdioh>
voidmain()
{
charc1,c2,c3,c4,c5,c6;
c5=getchar();c6=getchar();
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始),则输出结果是()。
123<回车>
45678<回车>
A.3B.1C.3D.3456
122345
75.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
76.有以下程序:
程序运行后的输出结果是()。
A.61B.70C.63D.71
77.
78.
79.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
80.有以下程序:
程序运行后的输出结果是()。
A.10B.16C.6D.12
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有小写字母c。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为
13233343
14243444
15253545
则一维数组中的内容应该是132333431424344415253545。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
voidproc(int(*s)[103,int*b,int*n,intrain.intnn)
{}
voidmain
{
intarr[10][10]={{33,33,33,33),{44,44,44,44},
{55,55,55,55}),i,j;
inta[l00]={o),n=o;
printf("Thematrix:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",arr[i][j]):
printf("\n");
}
proc(arr,a,&n,3,4):
printf("TheAarray:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]):
printf("\n\n");
}
参考答案
1.B
2.C\n\tC。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
3.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b成立,执行下列的复合语句,得c=a*b=20,b、a的值不变。
4.D是按位异或运算,其功能是参与运算的两个数,按位异或,如果两个相应位相同,结果为0,否则为1。接位异或运算满足如下规则:①满足交换律;②一个数与0异或的结果仍是原数;③一个数与1异或的结果是原数按位取反。所以题干中,“y^x^y”等价于等价于“y^y^x”,等价于“0^x”,等价于x,即“z1=x”;“x^y^x”等价于“x^x^y”,等价于“0^y”,等价于y,即“z2=y”,输出结果为:3,5。故本题答案为D选项。
5.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。
6.D程序调试的任务是诊断和改正程序中的错误。
7.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。
8.A本题需了解3个知识点:①标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;②do是C语言的一个关键字,不能再用做变量名和函数名;③c语言规定指数形式的实型数量e或E后面的指数必须是整数。
9.D程序中S1和S2都是宏定义。S1(a+b)宏展开后的表达式为4*a+b+4*(a+b),即4*1+2+4*(1+2),结果为18;S2(a,b)宏展开后的表达式为4*(a)*(b)+b*a,即4*(1)*(2)+2*1,结果为10;S1(3)宏展开后的表达式为4*3+4*(3),结果为24;32(3+a,b+3)宏展开后的表达式为4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,结果为92。最终输出:18,34,92。故本题答案为D选项。
10.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
11.C
12.A
13.C解析:软件开发模型包括瀑布模型、快速原型法模型和螺旋模型。
14.A
15.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。
16.D解析:实体联系模型中实体与实体之间的联系有一对一(1:1),一对多戌多对一(1:m或m:1),多对多(m:n)其中一对一是最常用的关系。
17.B
18.D解析:+=、-=、=等符号优先级相同结合性是由右至左,所以选D。
19.A
20.A声明函数fun“voidfun(intarray[4],int*ptr);”,第1个参数虽然是数组类型,但是会退化为指针,并且形参数组的个数没有用;第2个参数是指针。两个形参都是指针,传递的都是地址,可知选项B、C、D错误。故本题答案为A选项。
21.1111解析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(P->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[0].x)输出。
22.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函数时,必须在程序的开头出现包含头文件#include'stdio.h'的命令行。putchar的函数调用形式为:putchar(字符变量或字符常量);getchar函数的调用形式为:变量=getchar();getchar后的一对圆括号内没有参数,但这一对圆括号不可少。
23.“filea.dat”“r”“filea.dat”,“r”解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。
24.SO
25.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。
26.k-1k\r\n-1解析:本题通过定义一中间值k,实现字符串str内容的交换。
27.对象对象解析:在面向对象的程序设计方法中,类是具有相同的属性或方法的对象的抽象,对象是类的实例。
28.B
29.
30.20c。20,c。解析:函数fun的功能是给结构体指针变量所指的结构体变量的各成员赋值,主函数两次调用函数fun,第一次调用,实参st两个成员的值是20和字符b,调用结束时,静态局部变量k没有释放,值为2:第二次调用,实参st两个成员的值是20和字符c,调用结束时,静态局部变量k没有释放,值为3;因此,输出结果是20和c。
31.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:因为数组a[N][N]的第0行表示为a[0][n](n=0~3),而数组b[N][N]的最后一列表示为b[n][N-1)(n=0~3),所以前一空应该填a[0][i]。又因为数组a[N][N]的最后一行表示为a[N-1)][n](n=0~3),而数组b[N][N]的第0列表示为b[n][0](n=0~3),所以后一空应该填b[i][0]。
32.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
33.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。
34.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。\'\\t\'是转义字符,代表横向跳若干格;\'\\'\'是转义字符,代表双引号:\'\\023\'也只代表一个字符,而不管转义字符后面有几个符;\'\\xAB\'是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。题中语句中的字符串有5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
35.逻辑设计逻辑设计解析:数据库设计的4个阶段为:需求分析、概念设计、逻辑设计和物理设计。
36.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前疗遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。
37.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。
38.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函数sstrcmp()有两个字符型指针变量,用来指向两个字符串。比较两个字符串的大小方法是:从第一个字符开始依次向后比较,若对应的字符相等则接着比较下一个字符,一直到两个字符串中对应字符不等,或者有一个为\\0,此时字符的ASCII码大的字符串就大。故循环条件是*s和*t不为\\0,且*s和*t相同,第一处应填“*t”或其他等价形式。根据题意可知第二处应填*s-*t或其等价形式。
39.*t*t解析:程序中,(a+n)代表字符串s最后一个字符后的,'\\0',根据题意,'\\0'所在位置应该赋值为字符串t的第一个字符,字符中t的其他字符根据循环,依次赋值到,所指字符串的尾部,所以[14]应填:*t。
40.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录—个单词是否结束。第18空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=0,否则判断前—个字符是否是空格,如果是则说明这个字符是—个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应填flag=0或*(s-1)='';最后—个空格需填写的是返回的单词的个数,即num。
41.C解析:在函数内部定义的存储类型为auto的变量或数组,如果没有进行初始化,就不能得到确定值。
42.D
43.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。
44.B解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。
45.D解析:字符串复制函数strcpy调用形式为:“strcpy(s1,s2)”,其功能为把s2所指字符串的内容复制到s1所指空间,函数返回s1的值,即目的串的首地址。为保证复制的合法性,s1必须指向一个足够容纳s2串的存储空间。
46.A
47.C解析:strlen(s)返回s字符串中字符的个数,若s是个数组,则返回数组元素的个数。
48.B解析:本题考查两个位运算符。按位异或运算符“”’是双目运算符,其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异或时,结果为1。左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0,并且“<<”运算符的优先级于“^”。
49.A解析:标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列;选项C中3COM不是由字母或下划线开头;选项D中int为C语言中的关键字;选项A中全部为合法的标识符。
50.B
51.C解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第—个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到“见名知意”,且不允许使用关键字作标识符。
52.D解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf('%1f',p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%1e)。否则,数据不能正确输入。所以选项D)为正确答案。
53.C解析:数据块读取函数调用形式:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数:“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
54.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制熟或在“\\”后跟字母x及1~2位十六进制数,以此来代表—个特定的字符。
55.A解析:“%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。
56.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。
57.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。
58.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第二个if语句,先判断条件,发现b<0条件不成立,则执行与其配对的else语句,c+=1,得c=5。
59.BB)【解析】内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列:
偶然内聚——模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。
逻辑内聚——这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。
时间内聚——这种模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。
过程内聚——如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
通信内聚——这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。
顺序内聚——如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。
功能内聚——如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。
60.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。
61.C循环的条件是p>q,而p指向的是数组的首地址,q指向的是数组的最后一个元素,因此p<q,不满足条件,不执行循环,所以结果不变。
62.A
63.B
\n用'w'方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一次的内容,B选项正确。\n
64.D
65.C
66.D
67.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
68.A本题主要考查按位求反运算:十六进制整型常量的形式是以数字Ox开头的十六进制字符串;位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。
69.B\nFun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。
\n
70.D本题考查指向字符串指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值“BCD”并换行。依次执行循环语句。
71.B解析:如果一个非空的数据结构满足以下两个条件:(l)有且只有一个根结点;(2)每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。有一个根结点的数据结构不一定是线性结构,如二叉树,B项说法正确。循环链表和双向链表都属于线性链表。故C、D项错误。
72.D
73.D
74.A严格按照格式进行输入和输出,当我们输入123时,题目会将1赋给c5,2赋给c6,3赋给c1,回车符赋给c2…….
75.D本题考查逻辑运算符的使用。当“&&”的两个运算对象都是逻辑1时,表达式返回值才是1;“||”的两个运算对象至少有一个是逻辑1时,表达式返回值也是1,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。
76.Bsizeof是返回字符串在内存中所占用的
77.D
78.A
79.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
80.D第一个for循环作用是对数组8赋初值,从0~9,第二个缸循环是计算数组前4项的a[i]+i的和。0+0,1+1,2+2,3+3,经计算的结果为l2,因此答案为D选项。
81.82.\r\n\tvoidproc(int(*s)[10],int*b,int*n,intmm,intnn)
{
inti,j,k=0;
for(i=0;i<mm;i++)//i是表示其行的下标
for(j=0;j<nn;j++)//j是表示其列的下标
b[k++]=s[i][j];//把其放到b的一维数组中
*n=k;//把b数组的长度通过形参n传回到主函数中
}
【解析】要将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,可以通过首先行循环,然后列循环取出二维数组中的每一个元素,并将其放入一维数组中。最后,将一维数组的长度通过形参返回到主函数当中。</y&&!z||1>2021-2022年吉林省辽源市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.拥有PC机并以拨号方式接入网络的用户需要配置()
A.CD-ROMB.ModemC.电话机D.鼠标
2.下列叙述中正确的是()。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n
D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n
3.下列程序的输出结果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
4.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序运行后的输出结果是()。
A.7,7B.5,3C.8,8D.3,5
5.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
6.程序调试的任务是()。
A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误
7.算法的时间复杂度是指______。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数
8.下列变量声明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
9.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
10.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
11.对以下四个序列用直接插入排序方法由小到大进行排序时,元素比较次数最少的是()
A.89,27,35,78,41,15
B.27,35,41,16,89,70
C.15,27,46,40,64,85
D.90,80,45,38,30,25
12.C语言中逻辑表达式的值为()
A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'
13.软件开发模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
14.以下编码方法中,()属于熵编码。
A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码
15.结构化程序设计方法的3种基本控制结构中不包括
A.循环结构B.递归结构C.顺序结构D.选择结构
16.实体联系模型中实体与实体之间的联系不可能是
A.一对一B.多对多C.一对多D.对零
17.
18.表达式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
19.运算符________的优先级最高。
A.[]B.+=C.?:D.++
20.对于函数声明“voidfun(intarray[4],int*ptr);”,以下叙述中正确的是()。
A.array、ptr都是指针变量
B.调用fun函数时,实参的值将逐一复制给array
C.调用fun函数时,array按值传送,ptr按地址传送
D.array是数组,ptr是指针,它们的性质不同
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
22.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。
23.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
24.以下程序的输出结果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
25.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
26.下面invert函数的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
voidinvert(charstr[])
{inti,j,【】;
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
27.在面向对象的程序设计方法中,类的实例称为______。
28.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是______。
structnode
{chardata;
structnode*next;}a,b
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
29.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
majn()
{FILE*fp;charch;
fp=fopen(______);
ch=fgetc(fp);
whle(!feof(fp)){putchar(ch);ch=f8etc(fp);}
putchar('\n');fclose(fp);
}
30.以下程序的运行结果是______。
structNode}
intx;
charch;
};
fun(structNode*sn)
}statick=1;
sn->x=20;
Sn->ch='a'+k++;
}
main()
{inti;
staticstructNodest=}10,'a'};
for(i=0;i<2;i++)
fun(&st);
printf("%d,%c\n",st.x,st.ch);
}
31.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=______;______=a[N-1][i];}
}
32.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
33.阅读下列程序,则程序的输出结果为【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
34.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。
35.数据库的设计通常可以分为4个步骤:需求分析、概念设计、【】和物理设计。
36.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。
37.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)后,结果是______。
38.函数sstrcmp的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)。请填空。
#include<stdio.h>
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==【】)
{s++;t++;}
return【】;
}
39.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
40.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
三、1.选择题(20题)41.若在某函数内部有定义:inta[3][4];则数组a中各元素()。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
42.以下程序的输出结果是______。#includemain(){char*p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}
A.AfgdEFGB.AbfhdC.AfghdD.Afgd
43.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
44.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
45.若有定义:char*x="abcdefghi";,以下选项中正确运用了strcpy函数的是()。
A.chary[10];strcpy(y,x[4]);
B.chary[10];strcpy(++y,&x[1]);
C.chary[10],*s;strcpy(s=y+5,x);
D.chary[10],*s;strcpy(s=y+1,x+1);
46.以下选项中可作为C语言合法常量的是()。
A.-80B.-80C.-80.0D.-80.0e
47.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
48.设有以下语句charx=3,y=6,z;z=x^y<<2;则z的二进制值是
A.10100B.11011C.11100D.11000
49.以下4组用户定义标识符中,全部合法的一组是
A._mainencludesin
B.If_maxturbo
C.txtREAL3COM
D.intk_2_001
50.在C语言程序中()
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可嵌套
51.以下不合法的用户标识符是______。A.j2KEYB.DoubleC.4dD._8_
52.下列程序的输出结果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
53.已知函数fread的调用形式为fread(buffer,size,count,fp);其中buffer代表的是()。
A.存放读入数据项的存储区
B.一个指向所读文件的文件指针
C.一个指针,是指向输入数据存放在内存中的起始地址
D.一个整型变量,代表要读入的数据项总数
54.下面语句的输出结果,是______。printh("%d\n",strlen("\t\"\065\xff\n"));
A.14B.8C.5D.输出项不合法,无正常输出
55.执行语句printf("%u\n",+12345)的输出结果是()。
A.12345B.0C.-1D.非定值
56.若有定义intb[8],*p=b;则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
57.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
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)
58.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
59.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是()
A.顺序内聚B.偶然内聚C.时间内聚D.逻辑内聚
60.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
四、选择题(20题)61.有以下程序:
voidf(int*x,int*y)
{int*t;
t=x;x=y;y=t;*x=*y;
}
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,
62.
63.
有以下程序:
#include<stdio.1l>
voidWriteStr(char*fn.char*str)
{FILE*fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}
main
{WriteStr("tl.dat","start");
WriteStr("t1.dat","end");)
程序运行后,文件t1.dat中的内容是()。
A.startB.endC.startendD.endrt
64.
65.
66.URI的全称是()。A.标准资源描述符B.标准资源标识符C.通用资源描述符D.统一资源标识符
67.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
68.表达式“~0x11”的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFF1
69.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序运行后的输出结果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
70.有如下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);
}
该程序的输出结果是
71.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
72.
73.
74.有以下程序:
#include<stdioh>
voidmain()
{
charc1,c2,c3,c4,c5,c6;
c5=getchar();c6=getchar();
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始),则输出结果是()。
12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考美术课题研究申报书
- 动画项目合同范例
- 台湾房屋抵押合同范本
- led器材租赁合同范本
- 食品化学试题库(含答案)
- 原木订制采购合同范本
- 业务经理工作计划
- 上半年公司领导总结
- 单位外包电梯合同范本
- 四级(中级)眼镜验光员考试
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 2024年黑龙江职业学院单招职业技能测试题库及答案解析
- 大班-数学-分礼物-课件(互动版)
- 2024年山东力明科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2023年新改版教科版四年级下册科学练习题(一课一练+单元+期中+期末)
- 中国着名的塔课件
- 邢台市区土地级别及基准地价表
- 李小建《经济地理学》(电子版)
- 中央空调安装施工组织设计方案(水、多联机)
- 2022年最新苏教版五年级下册科学全册教案
- 咖啡树的修剪方法和技术_种植技巧
评论
0/150
提交评论