




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义“inta;longb;doublex,y;”,则以下选项中正确的表达式是()。
A.a=x<>yB.a%(int)(x-y)C.(a*y)%bD.y=x+y=x
2.
3.设有以下语句:inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A.6B.7C.8D.9
4.将数组a[0,1,…,m-1]作为循环队列SQ的存储空间,f为队头指示,r为队尾指示,则执行出队操作的语句为()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)
5.以下选项中,合法的一组C语苦数值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
6.有以下程序:#include<stdio.h>main(){charc;for(;(c=getchar())!=‘#’;){if(c>=‘a’&&c<=‘z’)c=c-‘a’+‘A’;putchar(++c);}}执行时输入aBcDefG##并按<Enter>键,则输出结果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bcdefgh
7.设n、m为一棵二叉树上的两个结点,在中序遍历时,n在m之前的条件是_____________。
A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孙
8.算法的有穷性是指A.算法程序的运行时间是有限的
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
9.设x、y、t均为血型变量,则执行语句x=y=3;t=++x||++y;后,y的值为______。
A.不定值B.4C.3D.1
10.若有"doublea;",则正确的输入语句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
11.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是()。A.1256B.5634C.5612D.3456
12.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的出度为()。
A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和
13.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。
A.O(1)B.O(log2n)C.O(n)D.O(n2)
14.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
15.以下对于C语言的描述中,正确的是:()
A.C语言调用函数时,值传递方式只能将实参的值传给形参,形参的值不能传递给实参
B.C语言中函数既可以嵌套定义,也可以递归调用
C.函数必须有返回值
D.C程序中有调用关系的所有函数必须放在同一源程序文件中
16.有如下定义:inta[5],*p;p=a;则下列描述错误的是()。
A.表达式p=p+1合法的B.表达式a=a+1是合法的C.表达式p-a是合法的D.表达式a+2是合法的
17.C语言中char类型数据占字节数为()。
A.3B.4C.1D.2
18.设散列表中m个存储单元,散列函数为H(key)=key%p,p是最好选择()。
A.小于等于m的最大奇数B.小于等于m的最大素数C.小于等于m的最大偶数D.小于等于m的最大合数
19.设有以下定义则下面语句中错误的是()。A.a++;B.b++C.c++;D.d++;
20.
二、2.填空题(20题)21.当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。
#include<stdio.h>
#defineN5
main()
{inti,j,number,top,bott,min,loca,a[N],flag;
charc;
printf("Pleaseinput5numbers(a[i]>a[i-1])\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{scanf("%d",&a[i]);
if(a[i]>=a[i-1))i++;
}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("\n");
flag=1;
while(flag)
{scanf("%d",&number);
loca=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))loca=-1;
while((loca==0)&&(top<=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("%disthe%dthnumber\n",number,loca+1);
}
elseif(number<a[min])bott=min-1;
elsetop=min+1;
}
if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
22.在对文件进行操作的过程中,若要使文件位置的指针回到文件的开头,应使用的函数是【】。
23.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
24.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
25.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。
26.实体—联系模型是一种常用的高级概念数据模型,而【】是实体—模型中的核心。
27.在关系数据库中,将数据表示成二维表,每一个二维表称为______。
28.当运行以下程序时,输入abcd,程序的输出结果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
29.在面向对象方法中,类之间共享属性和操作的机制称为______。
30.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。
31.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
32.下列程序的输出结果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
primf("%d",sum);
}
33.层次模型的典型代表是IBM公司的【】数据库管理系统。
34.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
35.表达式10+'a'+1.5-0.5*'B'的结果是【】。
36.以下程序的运行结果是【】。
#include<stdio.h>
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
37.在C语言中,可以利用【】,将一个表达式的值转换成指定的类型。
38.以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b)
{inti,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(【】)b[j++]=a[i];
returnj;
}
main()
{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printf("The%dhighestscore;\n",n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++);
fprintf(out,"%4d\n",h[i].s);
fclose(out);
}
39.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
40.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
三、1.选择题(20题)41.以下对结构体类型变量td的定义中,错误的是()。
A.typcdefstructaa{intn;floatm;}AA;AAtd;
B.structaa{intn;floatm;}structaatd;
C.struct{intn;floatm;}aa;structaatd;
D.struct{intn;floatm;}td;
42.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}执行后输出结果是()。
A.产生语法错误B.随机值C.AD.65
43.以下叙述中正确的是()。
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
44.2个指针变量不可以______。
A.相加B.比较C.相减D.指向同一地址
45.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
46.若m,y,z均为int型变量,则执行下面语句后m值是______。m=1;x=2;y=3;z=4;m=(m<x)?m:x;m=(n<y)?m:y;m=(m<z)?m;z;
A.1B.2C.3D.4
47.在一个C语言程序中A.main()函数必须出现在所有函数之前
B.main()函数可以在任何地方出现
C.main()函数必须出现在所有函数之后
D.main()函数必须出现在固定位置
48.fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。
A.字符串读入后会自动加入'\0'
B.fp是指向该文件的文件型指针
C.fgets函数将从文件中最多读入n个字符
D.fgets函数将从文件中最多读入n-1个字符
49.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A.acbedB.decabC.deabcD.cedba
50.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
51.在一棵二叉树上第8层的结点数最多是_______。
A.8B.16C.128D.256
52.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}执行扣输出的结果是
A.11122B.12C.12020D.120
53.以下程序的输出结果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&C);prt(&a,&b,&C);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
54.为了合理组织数据,应遵循的设计原则是()
A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系
B.用外部关键字保证有关联的表之间的联系
C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段
D.以上各原则都包括
55.下列对于软件测试的描述中正确的是______。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能地多发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
56.下列函数定义中,会出现编译错误的是()。
A.max(intx,inty,int*z){*z=x>y?x:y;}
B.intmax(intx,y){intz;z=x>y?x:y;returnz;}
C.max(intx,inty){intz;z=x>y?x:y;return(z);}
D.intmax(intx,inty){return(x>y?x:y);}
57.若有程序:fun(inta,intB){staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,rr=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的输出结果是_______。
A.23B.15C.19D.18
58.有以下程序:#include<stdio.h>main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n",y);}程序运行后的输出结果是()。
A.10B.11C.14D.15
59.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是______。A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
60.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务
四、选择题(20题)61.有以下程序
.程序运行后的输出结果是()。
A.6B.9C.11D.7
62.下列叙述中错误的是()。
A.一种数据的逻辑结构可以有多种存储结构
B.数据的存储结构与数据处理的效率无关
C.数据的存储结构与数据处理的效率密切相关
D.数据的存储结构在计算机中所占的空间不一定是连续的
63.请阅读以下程序:
上面程序的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
64.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
A.&B.^C.D.E.F.~
65.下列叙述中正确的是()。
A.软件测试的目的是确定程序中错误的位置
B.软件测试的目的是发现程序中的错误
C.软件调试的目的是发现程序中的错误
D.软件调试后一般不需要再测试
66.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
67.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
68.
69.
有下列程序:
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,
70.
71.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图
72.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。
A.*m=&n;scanf("%lf",m);
B.m=(double*)malloc(10);scanf("%f",m);
C.m=&n;scanf("%lf",n);
D.m=&n;scanf("%le",m);
73.
74.下列选项不符合良好程序设计风格的是()。
A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计原则是高耦合、高内聚
75.已定义以下函数:
fun函数的返回值是()。
A.一个整数B.不确定的值C.形参P中存放的值D.形参P的地址值
76.有以下程序当执行程序时,按下列方式输入数据(从第l列开始,<CR>代表回车,注意;回车也是--+qz符)12<CR>34<CR>则输出结果是()。
A.123B.12C.1234D.1234
77.
78.
79.
80.
五、程序改错题(1题)81.由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(10w%high)。然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中,直到low>;high,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如,在键盘输入字符串2345210,函数返回长整型整数2345210。注意:部分源程序存放在文件prog1.c中,请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()指定的部位填入所编写的若干语句。试题程序:
参考答案
1.BC语言中没有“<>”运算符,所以A选项错误。运算符“%”的左右两个操作数必须为整型数据,所以B选项正确。表达式“a*y”的结果为double型,所以C选项错误。不能将值赋给像“x+y”这样的表达式,所以D选项错误。故本题答案为B选项。
2.B
3.D本题考查两个知识点,按位异或左移把b左移2位化成二进制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故选择D。
4.B
5.B
6.C题干中,循环的作用是将输入的字符串转化为大写,getchar函数读入一个字符,putchar函数输出一个字符,当遇到‘#’字符结束。“putcha(++C);”,表示将字符变量c加1后输出。当输入“aBcDefG##”时,得到的结果是BCDEFGH。故本题答案为C选项。
7.C
8.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
9.C解析:C语言中在做逻辑或运算时,自左向右判断各个参加或运算的表达式,一旦运算到某式的值为非零时,表明整个表达式一定为真,余下的语句则不再进行运算。本题中,++x的值为真,则++y并没有进行运算,所以y值不变。
10.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
11.BFunl是输出局部变量的值,fun2是把全局变量的值改成3和4,所以输出的结果是5634。
12.A
13.C
14.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
15.A
16.B
17.CChar类型数据占1个字节。
18.B
19.D
20.D
21.134122312isthe4thnumber.
22.rewind或fseekrewind或fseek
23.fopenfopen解析:函数fopen的原型为FILE*fopen(char*filename,char*mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为intfseek(FILE*fp,longoffset,intbase),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准,offset为位移量的位置;函数ftell的原型为longftell(FILE*fp),功能为返回fp所指向的文件中当前的读写位置;函数fclose的原型为intfclose(FILE*fp),功能为关闭fp所指的文件,释放文件缓冲区。
24.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
25.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。
26.实体-联系图(E-R图)实体-联系图(E-R图)解析:实体-联系图(E-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库概念设计的最常用的工具。
27.关系或关系表关系或关系表解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系.表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。
28.a*b*c*d*a*b*c*d*解析:程序中的变量i用于存放字符串str的长度,执行while语句,通过分析可知,字符串第2*i项的值可由第i项的值得到;第2*i-1项直接赋值为。号,i减1,如此反复直到不满足i>0的条件时,输出运行后的字符串。
29.继承继承
30.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。
31.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。
32.无定值无定值解析:for(i=l;i<7;i++)决定了循环次数为6次,每次执行的操作是sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值。
33.IMS(informationManagementSystem)
34.x+=1;
35.75.5
36.99解析:本题考查宏定义与三目运算符的综合应用。宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则b+1的值为整个表达式的值(应注意后面的加1)。
37.强制类型转换强制类型转换
38.max==a[i].smax==a[i].s解析:该程序使用循环嵌套,第1个for语句的作用是找出最大值。第2个循环的作用是找出与max相等的成绩,也即最高成绩的学生,并存入b中。
39.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析题目可知,程序中运用函数c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar())!='\\n'。
40.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
41.C解析:选项A)中typedef的作用是声明一个新的类型名AA代替已有的结构体类型名struetaa,然后用AA定义结构体类型变量td;选项B)直接用结构体类型名structaa定义结构体类型变量td;选项C)中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,该项错误;选项D)省去了结构体名,直接将td定义为结构体变量,正确。
42.C解析:本题在定义共用体的同时,定义了一个共用体型变量u1,共占两个字节,有两个成员n和c,两个成员的首地址是相同的。因此给u1.c赋一个A,其实就是给无符号整型成员u1.n的低字节赋一个A,输出u1.n的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为A。所以,C选项为所选。
43.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。
44.A
45.D结构化程序设计的基本要点:①采用自顶向下、逐步求精的程序设计方法;②任何程序都可由顺序、选择和循环3种基本控制结构构造。
46.A
47.B解析:本题考核的知识点是main()函数的位置。一个完整的C语言程序有且仅有一个主函数main()函数).程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项A、选项C和选项D均不正确。所以,B选项为所选。
48.C解析:字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。s可以是一个字符数组名,或是指向字符串的指针;n为要读取的最多的字符个数:fp是指向该文件的文件型指针。字符串输入函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串存放到字符数组s中。
49.D解析:中序遍历的递归算法如下:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法如下:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法如下:①遍历左子树;②遍历右子树;③访问根结点。由后序遍历结果dabec可知c是根结点,且无右子树。再由左子树的后序遍历结果dabe可知,e是左子树的根结点,且由左子树的中序遍历结果deba可知,d是左子树的左子树结点,b和a是左子树的右子树结点。再次由后序遍历结果ab可知,a是左子树结点。b是根结点。至此,各结点在树中的位置已完全确定。
50.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。
51.C解析:根据二叉树的性质1:二叉树第k(k>1)层上,最多有2k-1个结点。于是第8层的结点数最多是27=128。
52.A解析:本题考核的知识点是for循环和switch语句的综合运用。for循环执行了3次,第一次时i的值为0,执行其后的switch语句,没有匹配的case,执行default语句后的pdntf语句,输出为0;第二次循环时i的值为1,执行其后的switch语句,与第一个case分支匹配,执行其后的printf语句,输出1,由于没有遇到break语句,所以一直向下执行,又输出了两个1,第三次循环时i值为2,执行其后的switch语句,同理输出两个2。所以,A选项为所选。
53.B解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。
54.D解析:为了合理的组织数据,应遵循的设计原则有:“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系;用外部关键字保证有关联的表之间的联系;表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段。所以选择D。
55.C解析:软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误,软件测试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。
56.B解析:本题考核的知识点是函数的定义方法。选项B中在说明形参时,省略了第二个参数的类型,故选项B编译不能通过。
57.A解析:static声明的外部变量只限于被本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。
58.C解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。
59.D解析:feof函数的功能是判断文件指针是否已指到了文件末尾,是则返回非零值,否则返回零;ftell函数的功能是得到流式文件中文件指针的当前位置,用相对于文件开头的位移量来表示;fgetc函数的功能是从指定文件读人一个字符;rewind函数的功能是使文件指针重新返回文件的开头。fseek函数用于改变文件的位置指针,调用形式为:fseek(文件类型指针,位移量,起始点),“起始点”取值0(SEEK_SET)、1(SEEK_CUR)、2(SEEK_END)分别表示文件开始、文件当前位置、文件末尾。“位移量”是以“起始点”为基点,向前移动的字节数。函数fseek(fp,OL,SEEK_SET)的作用是将位置指针移到文件头,所以选项D)正确。
60.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。
61.A本题首先定义了3个字符数flip、q、r,并分别被初始化。数组p;}i旨定的大小为20,初始化列表为la,b,c,d},即只指定了前4个元素的内容,根据c语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过streat()函数,将字符串r连接到字符串p之后,即执行后p中的内容为“123d123de”。因为“strlen(q)”表示求字符串q的长度,很明显为3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串q复制到数9lp的第4个元素位置处。
62.B解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项A和选项D正确。采用不同的存储结构,其数据处理的效率不同,因此,在进行数据处理时,选择合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大数据应用示范基地项目可行性研究报告(仅供参考)
- 《质量(重量)的初步认识 -克、千克的认识与计算》教学设计-2024-2025学年沪教版数学二年级下册
- 2024年第十八届“振兴杯”全国青年职业技能大赛职工组主体赛(职业技能竞赛)全国决赛电工赛项业务知识题库
- 小学六年级英语毕业复习计划
- 2025年消防安全知识培训考试题库:消防安全宣传教育方法试题解析与实训
- 农村妇幼保健知识精讲2025年乡村医生考试模拟试题集
- 2 让我们的家更美好(教学设计)-2023-2024学年统编版道德与法治五年级下册
- 2025年潜水教练资格考试模拟试卷:潜水教练法律法规与职业道德试题
- 2025年人力资源管理师专业技能考核综合测评试卷
- 2025年专升本艺术概论模拟试卷:艺术美学原理与应用经典案例分析题
- 2025北京丰台高三一模物理试题及答案
- 江南美术遗产融入美育的数智化路径探索
- 西雅图驾驶证考题及答案
- 综合执法考试试题及答案
- 软式内镜消毒管理与质量标准
- (高清版)DB11∕T2324-2024脚手架钢板立网防护应用技术规程
- DBJ50T-284-2018 工程勘察信息模型设计标准
- 无人机吊装作业安全措施
- 2012年7月国家开放大学专本科《法律文书》期末纸质考试试题及答案
- 《永辉超市营运能力现状、问题及优化建议探析》10000字【论文】
- 2024铁路通信线路施工合同规范范本3篇
评论
0/150
提交评论