版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
2.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的运行结果是()。
A.1B.41C.2D.331
3.设有定义:“inta=1,b=2,C=3;”,以下语句中执行效果与其他三个不同的是()。
A.if(a>b)c=a,a=b,b=C;
B.if(a>b){c=a,a=b,b=C;}
C.if(a>b)c=a;a=b;b=C;
D.if(a>b){c=a;a=b.b=C;)
4.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。
A.8B.3C.5D.9
5.高度为h的满二叉树的结点数是________个。
A.log2h+1B.2h+1C.2h-1D.2h-1
6.以下叙述中错误的是()。
A.将函数内的局部变量说明为static存储类是为了限制其他编译单位的引用
B.—个变量作用域的开始位置完全取决于变量定义语句的位置
C.全局变量可以在函数以外的任何部位进行定义
D.局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
7.插入和删除只能在一端进行线性表,称为()。
A.队列B.循环队列C.栈D.循环栈
8.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4B.a+8C.a+16D.a+32
9.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
10.以下叙述中错误的是(
)。A.函数形参的值也可以传回给对应的实参
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过r;mm语句返回
D.C程序必须由一个或一个以上的函数组成
11.
12.以下叙述中正确的是()。
A.宏替换不占用程序的运行时间
B.预处理命令行必须位于源文件的开头
C.在源文件的一行上可以有多条预处理命令
D.宏名必须用大写字母表示
13.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
14.以下说法正确的是()。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
15.
16.以下叙述正确的是
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
17.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子的编号为______。
A.98B.99C.50D.48
18.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
19.有如下定义#defineD2intx=5;floaty=3.83;charC='D';则下面选项中错误的是
A.x++;B.y++;C.c++;D.D++;
20.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L
二、2.填空题(20题)21.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda,请填空。
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=();
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(t==0)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",huiwen(str));
}
22.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
23.在软件生命周期中,【】阶段是花费最多、持续时间最长的阶段。
24.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。
请填空。
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a、b、c能构成三角形*/
elseprintf("NO\n");/*a、b、c不能构成三角形*/
}
25.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
26.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
执行后输出结果为______。
27.有以下程序
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
执行后输出结果是【】。
28.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
29.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
30.与十进制数101等值的二进制数为【】。
31.以下程序的运行结果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
32.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
33.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
34.下列程序的运行结果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
35.测试用例包括输入值集和【】值集。
36.数据库三级模式体系结构的划分,有利于保持数据库的【】。
37.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
ptintf("%d\n",D);
执行后输出结果是______。
38.软件结构是以【】为基础而组成的一种控制层次结构。
39.与结构化需求分析方法相对应的是【】方法。
40.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
三、1.选择题(20题)41.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是______。
A.12353514B.12353513C.12343514D.12343513
42.以下各组选项中,均能正确定义二维实型数组a的选项是()
A.floata[3][4];floata[][4];floata[3][]={{1},{0}};
B.floata(3,4);floata[3][4];floata[][]={{0},{0}};
C.floata[3][4]staticfloata[][4]={{0},{0}};
D.floata[3][4];floata[3][];
43.fwrite函数的一般调用形式是()
A.fwrite(buffer,count,fp,size);
B.fwrite(fp,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
44.下列程序的输出结果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}
A.sB.cC.fD.a
45.下列判断正确的是()。
A.chara="ABCD";等价于char*a;*a="ABCD";
B.charstr[10]=ABCD"};等价于charstr[10];str[]={"ABCD"};
C.char*s="ABCD";等价于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD";等价于charc[5]=d[5]="ABCD";
46.设有定义:intnl=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是()。
A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
47.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
48.有以下程序:voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序运行后的输出结果是()。
A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b
49.以下合法的字符型常量是
A.'\x13'B.'\081'C.'65'D.\n
50.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
51.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)&&(c1<=z)
C.('a'>=c1||('z'<=c1)
D.(c1>='a')&&(c1<='z')
52.在下列叙述中,正确的一条是______。
A.对while循环、do-while循环和for循环,可以用continue语句跳出循环
B.表达式1+2<<3和sizeof(3.8)的结果分别为24和8
C.函数fputc(c,stdout)与putchar(c)的结果相同
D.在有参函数中,定义函数中指定的形参变量在程序一开始执行时便分配内存单元
53.有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结粜是()。
A.741B.963C.852D.875421
54.下列说法正确的是()。
A.auto和register将声明的对象说明为自动存储类对象,这些对象可用在函数中或函数外
B.将变量其定义为static类型,则其初值默认为随机值
C.typedef说明符并不会为对象预留存留空间
D.如果一个对象被声明为register,则埘它应用一元运算符&,意征取得其存储的地址
55.若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
56.软盘处于写保护状态时,其中记录的信息______。
A.不可能丢失
B.不能被擦除,但能追加新的信息
C.不能通过写磁盘操作被更新
D.不能以常规方式擦除,但可以通过操作系统的格式化功能擦除
57.若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是()。
A.main()……x=fun(2,10);……}floatfun(inta,intb){……}
B.floatfun(inta,intb){……}main(){……x=fun(i,j);……}
C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}
D.main(){floatfun(intI,intj);……x=fun(i,j);……}floatfun(inta,intB){……}
58.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
59.数据库设计的根本目标是要解决()。
A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护
60.若有以下定义和语句;doubler=99,*p=7;*p=r;则以下正确的叙述是()
A.两处的*p含义相同,都说明给指针变量P赋值3
B.在“doubler=99,*p=7;*p=r;”中,把r的地址赋给了p所指的存储单元
C.语句“*p=r;”把变量r的值赋给指针变量p
D.语句“*p=r;”把变量r的值放回P中
四、选择题(20题)61.有以下定义语句,编译时会出现编译错误的是()。
A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:
62.有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是()。
A.自然连接B.差C.交D.并
63.有以下程序:
程序运行后的输出结果是()。
A.16B.1C.32D.0
64.以下关于typedef的叙述错误的是()。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代替
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
65.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下叙述中正确的是()。A.此while语句将无限循环
B.getchar()不可以出现在while语句的条件表达式中
C.当执行此while语句时,只有按回车键程序才能继续执行
D.当执行此while语句时,按任意键程序就能继续执行
66.若有定义语句:
67.
68.
69.结构化程序设计的主要特征是()。
A)封装和数据隐藏B)集成和重用
C)数据和处理数据的过程分离D)把数据和处理数据的过程看成一个整体
70.
71.在深度为7的满二叉树中,叶子结点的个数为______。A.32B.31C.64D.63
72.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
73.
74.
75.设有定义:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若变量均已正确赋初值,则以下语句中错误的是()。
A.t1=t2;
B.t2.num1=tl.numl;
C.t2.mark=tl.mark;
D.t2.num2=tl.num2;
76.若有“doublea;”,则正确的输入语句是()。A.A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a);
D.scanf("1e",&a);
77.以下选项中表示一个合法的常量是(说明:符号口表示空格)()。
A.9口9口9B.0XabC.123E0.2D.2.7e
78.
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序设计题(1题)82.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fIm的花括号中填入你编写的若干语句。
参考答案
1.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
2.Aelse总是与离它最近的if配对,所以当第1个if语句的判断条件不成立时,不再执行第2个if语句以及与第2个if语句配对的else语句,而是直接执行“x++”,输出1。故本题答案为A选项。
3.C本题判断结果。选项A中,如果(a>b),则执行“c=a,a=b,b=c”这个语句(注意分号的位置,如果条件成立,将会执行第一个分号前的语句),显然if不成立,则a,b,C原样输出。选项B和选项D是同理,而选项C因为条件不成立,则不执行第一条语句“c=a”,接着执行“a=b”,将b的值赋给a,a的值为2;“b=C”,b的值为3,C的值原样输出,结果为2,3,3。
4.D
5.C
6.A将函数内的局部变量说明为static存储类,第1次调用该函数时才对其初始化,后续调用时使用上一次调用结束后的值;函数体内的局部变量无论是否声明为stat\x1fic,外部编译单位都不能引用,选项A错误,其他选项正确。本题答案为A选项。
7.C
8.C
9.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。
10.A函数参数传递是个不可逆的过程,形参不会把值传回实参,所以A)选项(24)[答案]A)[解析]c的值为a乘以b的值,为3。所以答案选择A)。
11.D
12.A宏替换是在编译阶段前的预处理阶段,对程序中的宏完成文本替换,因此宏替换不占用运行时间,选项A正确;预处理命令行无须在源文件的开头,它可以出现在程序的任何一行的开始部位,其作用一直持续到源文件的末尾,选项B错误;在源文件的一行上至多只能有一条预处理命令,选项C错误;宏名通常使用大写字母表示,这并不是语法规定,只是一种习惯,选项D错误。本题答案为A选项。
13.C解析:C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对sum赋初值,它的值不确定。在执行了for循环语句后,sum的值也不确定的,所以,4个选项中选项C符合题意。
14.D
15.D
16.B解析:continue是结束本次循环,直接进入到下次循环中,break用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句除了goto语句,exit,return等语句也能直接跳出多层循环。注意:continue和break语句在while语句中的作用。
17.A
18.B根据ASCII码可知大写字符A与小写字符a的ASCIl码相差32,而D中应该是加上'a',选项A和C左侧的表达式都是大写字符C与大写字符A的差与'a'的ASCIl代码的和就是小写字符c的ASCII代码。
19.D解析:C语言中++运算符的对象可以是整型、实型和字符型,但不可是常量,本题中D为常量。
20.D在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。
21.str+strlen(str)-1str+strlen(str)-1解析:检查一个字符串是否是回文,函数huiwen中定义了两个字符指针,pl=str指向字符串头,p2应该指向字符串尾,因此该处应该填入:str+strlen(str)-1或&str[strlen(str)-1]。
22.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。
23.维护维护
24.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在逻辑表达式中,如果要同时满足几个条件可以使用逻辑与运算符“&&”,故本题的答案应该为:a+b>c&&a+c>b&&b+c>a或其他等价形式。
25.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。
26.503503解析:此处需注意的是:如果if后面的条件为真,只执行其后的一条语句或一条复合语句,如果if后面的条件为假,只执行else后面的一条语句或一条复合语句。先判断表达式“a<b”为假,不执行“t=a”,但执行“a=b;b=t;”,s的值为3,b的值为0。在判断表达式“a<c”,值为真,所以执行后面的3条语句“t=a;a=c;c=t”,结果a的值为5,c的值为3,所以最后输出的结果为5、0和3。
27.-4-4解析:if…else构造了一种二路分支选择,是一种最基本的选择结构,if(条件)S1(if分结构)elseS2(else分结构),它的工作过程是:先对条件表达式进行判断,若为真(成立,值为非零),就执行if分结构(S1);否则(不成立,值为0),就执行else分结构(S2)。本题中,n=0,可以判断(!n)为真,执行x=x-1=2-1=1;m=1,可以判断(m)为真,执行x=x-2=1-2=-1进而可以判断(x)为真,执行x=x-3=-1-3=-4。
28.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
29.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。
30.1100101
31.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。
32.*(p+5)或p[5]*(p+5)或p[5]
33.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
34.5555解析:分析程序执行过程,第一次循环时,i=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5:第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++]):P(a[4])=P(5),输出5,之后i自加等于5。
35.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。
36.数据独立性数据独立性解析:数据库的三级模式体系结构把数据的组织管理工作进行了划分,把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式,保证了数据的独立性。
37.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给d。函数的第一个参数为f(3,4)的返回值,函数f(9,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9;所以输出9。
38.模块模块
39.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。
40.x=11x=11解析:在对无符号数的右移是高位补0。
41.A解析:自增运算符“++”,放在变量之前表示在使用变量之前,先使变量的值加1;放在变量之后表示在使用变量之后,再使变量的值加1。第一条输出语句,先输出m=12,m再自加1,变成13,n先自加1再输出,输出n=35;第二条输出语句,先输出n=35,n再自加1,变成36,m先自加1再输出,输出m=14。
42.C
43.D
44.C解析:本题考查函数调用时的参数传递。函数point的参数为字符指针,当执行函数point时,刚开始指针p指向“a”,经过+3操作后,指针p指向“f”,所以最后的输出结果是f。
45.D解析:a='ABCD'书写错误,因为“=”左边不能出现常量;数组名s是代表s数组首地址的地址常量,而不是变量;字符串只有在定义时维数可以省略。
46.A解析:在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句n2=n1等价。因此选项A正确。
47.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
48.D解析:程序中定义了两个字符型变量'a'和'b',并分别赋初值为'A'和'a',然后调用函数fun(),将b的地址和a值作为实参。在函数fun()中第一个参数是传递地址,故在调用函数fun()中对参数做的修改(即将b值加一)将影响字符型变量的值(变为b),函数fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修改不影响字符型变量a(即'a'的值仍为'A'),所以在fun()函数中输出的d为b,B,接着在主函数中,输出a,b,然后退出fun()函数,接着执行后面的语句,输出A,b。所以最后输出为b,B,A,b。4个选项中D正确。
49.A解析:C语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在C语言中还允许用一个“\\”开头的字符序列来表示字符常量。其中,形式“\\ddd'表示1到3位8进制数所代表的字符;形式“\\xhh'表示1到2位16进制数所代表的字符。在本题中,\'\\x13\'表示回车符,是一个字符常量;\'\\081\'用8进制数所代表的字符,但形式不正确,因为8进制数所代表的字符中不会出现数字“8”;\'5\'不是一个字符,而是一个十进制数字;\'\\n\'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。
50.C本题主要考查成块读函数fread。在C语言中,提供了一种成块的读写方式来操作文件,使其数组或结构体等类型可以进行一次性读写。成块读文件函数的调用形式为:
intfread(void*buf,intsize,intcount,FILE*stream)
fread()函数的意思是从stream指向的流文件读取count(字段数)个字段,每个字段为size(字段长度)个字符长,并把它们放到buf(缓冲区)指向的字符数组中,然后进行读取操作。fread()函数返回实际已读取的字段数。
从上面的分析我们可以知道,参数buf是一个无返回类型的指针,指向要读入数据的存放地址,它其实是一个缓冲区。因此本题正确的答案选C。
51.D
52.C解析:选项A错误,continue语句只能结束本次循环,不能结束整个循环。要跳出循环可用break语句。选项B错误,表达式1+2<<3等价于(1+2)<<3,即0000000000000011向右移3位,移后变为0000000000000000,即0。选项C正确,函数fputc的操作对象是文件,而putchar是直接向标准输出设备输出字符。标准输出设备是一个特殊文件,即设备文件,文件型指针指向标准输出设备,因而功能相同。选项D错误,在定义函数中指定的形参变量,在未出现函数调用时,它们并不占内存中的存储单元。
53.C解析:y的初值为9,所以在for循环中,当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值。因为自减符号在y的前面,所以首先y自减1,然后再输出y的值,故输出结果为852。
54.C解析:①这种声明也具有定义的作用,并将预留存储空间。register说明的声明等价于auto说明的声明,所不同的是,register暗示了声明的对象将被频繁地访问,将尽可能存储在寄存器中。如果一个对象被声明为register,则将不能对它应用一元运算符&,声明为register但实际按照auto类型处理的对象的地址进行计算是非法的。②static将声明的对象说明为静态存储类。这种对象可以用在函数内部或者函数外部。在函数内部,该说明符将引起存储空间的分配,具有定义的作用。在函数外部,该说明符将引起声明对象为
55.D解析:本题考查如何引用数组元素的地址。
选项A)中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
56.C
57.A解析:C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)。在选项A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的:在选项D)中,在主调函数中先对于函数floatfun(inti,intj)进行了定义,然后进行调用。
58.B解析:调用函数f()时,将数组a的地址传递给了指针q,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44805.2-2024数字化电气文件编制第2部分:交互式维修手册
- GB/T 13397-2024合金内氧化法银金属氧化物电触头技术规范
- 股权质押合同范本
- 基于大数据分析的2024年度苹果树苗木种植承包合同
- 二零二四年度采购代理合同3篇
- 足浴店转让协议书范本 版
- 房产交易过程中卖方隐瞒房产瑕疵的违约责任合同20242篇
- 2006年广东省建设工程施工合同(范本)
- 2024年度游戏开发及发行合同
- 《多极化趋势讲》课件
- 人教版(2019)必修 第三册Unit 1 Festivals and Celebrations Reading and Thinking教学设计
- 三方代付工程款协议书范本2024年
- 【道法】爱护身体 课件-2024-2025学年统编版道德与法治七年级上册
- 第二次月考测评卷(5-6单元)(试题)-2024-2025学年六年级数学上册人教版
- 医学课件抗痉挛体位摆放
- 2024年统编版七年级上册道德与法治 第三单元 珍爱我们的生命 第八课 生命可贵 第2课时 敬畏生命 教学课件
- IATF16949组织环境因素识别表
- 《积极心理学(第3版)》 课件 第11章 宽容、篇终 积极心理学的应用与展望
- 职业素质养成(吉林交通职业技术学院)智慧树知到答案2024年吉林交通职业技术学院
- 5.5《方程的意义》(课件)-2024-2025学年人教版数学五年级上册
- 2024年秋人教版七年级上册数学全册教学课件(新教材)
评论
0/150
提交评论