




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省眉山市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置
D.一个存储区,存放要读的数据项
2.函数filecopy的功能是,将fin所指文件中的内容输出到fout所指文件中,但函数不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下划线处应填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1
3.以下叙述中错误的是
A.在函数外部定义的变量在所有函数中都有效
B.在函数内部定义的变量只能在本函数范围内使用
C.函数中的形参属于局部变量
D.在不同的函数中可以使用相同名字的变量
4.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
5.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子的编号为______。
A.98B.99C.50D.48
6.栈的特点是B,队列的特点是()。
A.先进先出B.先进后出
7.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。
A.两个语句都是将变量a的值赋予变量p
B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p
C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a
D.两个语句都是使p指向变量a
8.
9.以下叙述中正确的是()
A.C程序由函数和过程组成B.C程序由主函数组成C.C程序由函数组成D.C程序中,主函数必须放在其他函数之前
10.下列选项中,能够满足“若字符串sl等于字符串s2,则执行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
11.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,数组A的最后一个元素A6,7的存储地址为()。
A.1024B.1440C.1448D.1432
12.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.69825B.63825C.6385D.693825
13.下面C程序段中count++语句执行的次数为()A.15B.16C.31D.32
14.有以下程序:
程序运行后的输出结果是()。
A.4B.34C.31D.32
15.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的运行结果是
A.987654321B.4321098765C.5678901234D.987651234
16.以下有4组用户标识符,其中合法的一组是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
17.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII形式存放在一个文本文件中
D.C语言源程序经编译后生成扩展名为.obj的目标文件
18.以下程序的输出结果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
19.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
20.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
二、2.填空题(20题)21.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。
22.下列程序的输出结果是______。
#include<stdio.h>
main()
{inta=2,b=1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
23.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdatc
{intday;
intmouth;
intyear:
union{intshare1;
floatshare2:
}share;
}a;
24.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
25.若有定义doublea[5];,则a数组元素下标的上限为______。
26.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
27.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的输出结果是【】。
A)0123B)04010C)04515D)14515
28.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
29.选择程序中的输入输出语句,以满足题目给定的输入输出数据形式。
main()
{inta;floatb;
【】
【】}
输入形式:3.52<空格>6<回车>
输出形式:a*b=21.12
30.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单词链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。[*]
#include<stdio.h>
typedefstructnode/*链表结点结构*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立链表*/
{…}
voiddisp(Node*h)
{Node*
31.对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。
32.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
33.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
34.#define命令出现在程序中函数的外面,宏名的有效范围为______。
35.已知函数isaplha(ch)的功能是判断变量ch是否是字母,若是,则该数值为1,否则为0。下面程序执行后的输出结果是()。
#include<ctype.h>
#include<string.h>
voidfun(chars[])
{inti,j;
for(i=0,j=0;s[i];i++)
s[j]='\0';
}
main()
{charss[80]="goodmorning";
fun(ss);
printf("%s",ss);
}
36.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
37.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
38.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
39.下列程序运行时输入1234567<CR>,则输出结果是______。
#include<stdio.h>
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
40.有以下程序:
#include<stdio.h>
intsub(intn)
{return(n/10+n%10);}
main()
{intx,y;
seanf("%d",&x);y=sub(sub(sub(x)));
printf("%d\n";,y);
}
若运行时输入:1234<回车>,程序的输出结果是【】。
三、1.选择题(20题)41.在面向对象的程序设计中,下列叙述中错误的是()。
A.对象是面向对象软件的基本模块
B.对象不是独立存在的实体,各个对象之间有关联,彼此依赖
C.下一层次的对象可以继承上—层次对象的某些属性
D.同样的消息被不同对象接受时,可导致完全不同的行动
42.主调函数中的两个变量a和b,要求调用函数交换a、b的值,返回交换结果,则以下正确的函数是______。
A.funa(int*x,int*y){int*p;*p=*x;*x=*y;*y=*p;}
B.funb(intx,inty){intt;t=x;x:y=y=t;}
C.func(int*x,int*y){*x=*y;*y=*x;}
D.fund(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}
43.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
44.下列有关数据库的描述,正确的是
A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键宇,则称其为本关系的外关键字
45.在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码()。
A.小32B.小64C.大32D.大1
46.与进制数101.01011等值的十六进制数是()
A.A.BB.5.51C.A.51D.5.58
47.设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是______。A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
48.下面程序的输出结果是______。voidprty(int*x){printf("%d\n",++*x);}main(){inta=25;prty(&a);}
A.23B.24C.25D.26
49.有下列程序main(){doubled;floatf;longl;inti;i=f=1=d=20/3;printf("%d%1d%f%f\n",i,1,f,D);}程序运行后的输出结果是(小数点后只写1位)()
A.666.06.0B.666.76.7C.666.06.7D.666.76.0
50.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚
51.下列所述中,是软件调试技术的是()。
A.错误推断B.集成测试C.回溯法D.边界值分析
52.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序运行后的输出结果是______。
A.abcdefB.gfedcbaC.gbcdefaD.abedcfg
53.已知下面的程序段,正确的判断是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);
A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数
54.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
55.下列程序段的输出结果是______。intx=5,y=4,z;printf("%d\n",z+=1,z=x%y);
A.0B.1C.2D.结果是不确定值
56.下列程序的输出结果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-fprintf("%d,%d,%d\n",e,f,g);}
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
57.设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);
58.设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()
A.aa数组元素的值分别是"abcd"和"ABCD"
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符'a'和'A'的地址
59.在c语言中,变量的隐含存储类别是()。
A.autoB.staticC.externD.无存储类别
60.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
四、选择题(20题)61.设有以下函数:
A.
B.
C.
D.
62.下述程序执行的输出结果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
63.
64.以下叙述不正确的是()。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
65.
66.
有下列程序:
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-l;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[10]:{1,2,3,4,5,6,7,8,9,10),i;
sort(aa+2,5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,l0,
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,
67.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A.scanf("%d",pa);B.scanf("%d",a);C.scanf("%d",&pa);D.scanf("%d",*pa);
68.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精
69.有以下程序:
#include<stdio.h>
main()
{inta=0,b=0,c=0;
c=(a=a=5);(a=b,b+=4);
printf("%d,%d,%d\n",a,bc);
}
程序运行后的输出结果是()。
A.0,4,5B.4,4,5C.4,4,4D.0,0,0
70.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
71.以下选项中叙述错误的是()。
A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C.C程序函数中定义的自动变量,系统不自动赋确定的初值
D.C程序函数的性能不可以说明为static型变量
72.有以下程序:
程序运行后的输出结果是()。
A.2,4B.1,2C.1,4D.2.3
73.有以下程序:
程序运行后的输出结果是()。
A.7B.5C.3D.9
74.
75.
76.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位编译系统上,程序执行后的输出结果是()A.21,43B.43,21C.43,00D.21,00
77.有以下程序
78.
79.现有格式化输入语句,
已知在输入数据后,
x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。
A.23,56,78<Enter>
B.x=23,y=56,z=78<Enter>
C.x=23C,sumy=56,z=78<Enter>
D.x=23],sum]y=56,line]z=78<Enter>
80.设有以下定义inta=0;doubleb=1.25;charc=’A’;#defined2则下面语句中错误的是()
A.a++;B.b++C.c++;D.d++;
五、程序改错题(1题)81.假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数proc()的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请修改程序中的错误,使它能够得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.C解析:数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
2.Afilecopy函数每次从fin文件指针调用getc函数读取一个字符存放到ch中,再通过while循环调用putc函数将ch写入fout,直到fin指向文件尾部为止。所以while的循环条件是判断fin是否到文件尾部。这里使用feof函数判断:feof返回值为真时,表示fin指向了文件尾部,否则表示fin未到文件尾部。所以while循环条件为!feof(fin)。故本题答案为A选项。
3.A全局变量有效范围是从定义的位置开始到所在源文件的结束,在这区域内的函数才可以调用,如果在定义函数之后,定义的变量,该变量不能被之前的函数访问所以A选项说法错误,答案为A选项。
4.B本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。
5.A
6.A
7.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。
8.B
9.C
10.Astrcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCIl表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,sl)==0)ST,若s2等于sl,则返回值0,0等于0,所以逻辑表达式strcmp(s2,sl)==0为真,执行ST。
11.B
12.C
13.A
14.C本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。
15.C解析:函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。
16.C解析:选项A中for和case为C语言中的保留字,不能作为用户标志符,故A错误。选项B中的4d其开头的第一个为数字,而在C语言中规定,第一个字符必须为字母或者下划线,故B错误;选项D中void为C语言中的保留字,不能作为用户标志符,故D错误。所以,4个选项中选项C符合题意。
17.AC语言中的非执行语句不会被编译,不会被转换成二进制的机器指令,所以A选项错误。由C语言构成的指令序列称为C语言源程序,C语言源程序经过C语言编译程序编译之后,生成一个扩展名为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此目标文件与C语言提供的各种库函数连接起来生成一个扩展名为.exe的可执行文件。故本题答案为A选项。
18.D当k=1时,循环成立,输出w[l]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k=3时,循环不成立,退出。
19.B
20.CC语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。
21.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
22.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再柱下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。
23.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。
24.x[0]x[0]x[0],x[0]解析:函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。
25.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。
26.q<p+nq<p+n解析:通过地址传递可以在被调函数中对调用函数中的变量进行引用。
27.CC解析:枚举的语法规定,当枚举元素没有赋值时,如果前面没有其他枚举元素,其值为0;如果前面有其他枚举元素,其值为前一个元素的值加1,所以his的值为5,her的值为15。
28.I<na[I]I<n,a[I]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它们所指向的变量时,要对它们进行指针运算,即*号运算。
29.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);
30.
31.n/2n/2解析:删除—个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2:所以总体平均移动元素个数为n/2。
32.p!=NULLcount++(*p).next
33.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。
34.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
35.goodmorninggoodmorning解析:子函数fun(chars[])的作用是将字符数组s中除去字母以外的所有其他字符都去掉,然后将字母仍按原来的顺序存在数组s中。在主函数中调用fun(ss),是将“goodmorning”中所有的非字母去掉,在这里就是去掉空格,然后输出ss。
36.调试调试
37.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。
38.n-1jn-1\r\nj解析:此题采用了do…while循环内嵌for循环的双层循环结构来实现了数组元素的排序。数组元素通过首地址和数组下标的方式来引用的。
39.本题考查的重点是scanf函数的调用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上场宽,本题中两个变量的场宽都为2,所以输入1234567<CR>后,变量a的值为12。变址b的值为34,从而输出为1234。\r\n\r\n
40.1010解析:函数sub递归调用的返回值被作为再次调用sub函数的实参传给函数sub的形参,共进行3次递归调用。第1次调用sub(1234)的返回值为1234/10+1234%10=127;第2次调用sub(127)的返回值为127/10+127%10=19;第3次调用sub(19)的返回值为19/10+19%10=10。所以程序的输出为10。
41.B解析:在面向对象的程序设计中,一个对象是一个可以独立存在的实体。各个对象之间相对独立,相互依赖性小。所以,选项B错误,应为本题的正确答案。
42.D解析:选项A中指针变量p没有明确的指向,选项B是值传递方式,显然不能改变实参中的值,选项C不能完成交换,实参中的值都变成一样的,只有选项D是正确的。
43.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。
44.D解析:数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。
45.A解析:本题考查大小写字母的ASCII码值的关系。大写字母比它相应的小写字母的ASCII码小32。
46.D
47.C解析:将题目中的定义语句去掉前面的typedef和后面的NEW(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,ST是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struetST一起构成一个结构体类型,就好像字符类型char.若只去掉前面的typedef,就是一条结构体定义同时声明一个结构体变量NEW的语句,因为NEW的前面部分是structST的完整写法。可以看作是structST.C语言允许用typedef说明一种新类型名,其语法格式为:
typedef类型名标识符;
以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给stmctST的完整写法定义一个新的名称NEW。所以,此时的NEW是一个结构体类型,它相当于structST,即可以和char一样单独用来声明该结构体变量,而ST只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。
48.D
49.A
50.D解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。
51.C解析:软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。
52.B解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。
53.C解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。
54.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
55.C解析:printf函数的参数传递方向是从右至左,因此,先将x%y的值1赋给z,再执行z+=1,z的值变为2,格式控制符%d是将z+=1的值输出。
56.C解析:本题考查while循环。while循环的控制表达式k=1是个赋值表达式而不是逻辑表达式,所以循环体一次也不执行。
57.B解析:本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针。而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。
58.C
59.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。
60.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
61.A函数指针的定义形式是:数据类型标识符(*指针变量名)。void(*pf)定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。
62.A\nstrcpy实现的功能是复制,该操作把are复制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you复制到a[l]中,故输出a为“are&you”。
\n
63.B
64.D在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冥想课件介绍语
- 2025年广西贺州市平桂管理区平桂高级中学物理高一下期末监测模拟试题含解析
- 二零二五年IDC数据中心区块链技术服务合同
- 二零二五年度安全标准鸡苗运输安全管理合同
- 二零二五版车床租赁与设备租赁期内的维护责任协议
- 二零二五版专业旅游包车服务合同规范
- 2025年度餐饮连锁品牌合作协议
- 二零二五年环境监测与污染防控技术咨询合同
- 二零二五年度能源审计EMC合同能源管理服务协议
- 二零二五年度安全生产信息化建设责任合同书范本
- 【新教材】苏科版(2024)七年级上册数学第1-6章全册教案设计
- 木垒风电勘察报告
- (2024年)剪映入门教程课件
- 石材的检测报告
- 2024年低压电工(特种作业操作证)考试题库及答案(通用版)
- 班组长压力和情绪管理
- 初中数学学法指导讲座
- GB 8109-2023推车式灭火器
- 集卡车安全操作规程
- 高考英语词汇3500电子版
- 2022年新疆公务员考试行测真题及答案解析
评论
0/150
提交评论