




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年江苏省无锡市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型B.调用该函数的主调函数类型C.定义函数时所指定的函数类型D.以上说法都不正确
2.以下能正确定义且赋初值的语句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
3.第
11
题
若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
4.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则队头出队的运算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
5.有以下程序
#include<stdio.h>
main()
{charch[3][5]={“AAAA”,”BBB”,”CC”};
printf(“%s\n”,ch[1];)
}
程序运行后的输出结果是()A.A.AAAA
B.CC
C.BBBCC
D.BBB
6.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是()。A.A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
7.
8.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile,dat","");{puts("abe",ip);fclose(fp);fp=fopen("myfile.dat","a*");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%S",str);puts(str);fclose(fp);}程序运行后的输出结果是()。A.abcB.28cC.abc28D.内类型不一致而出错
9.下列条件语句中,功能与其他语句不同的是()。
A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
10.有以下程序程序运行后的输出结果是()。
A.21B.11C.20D.10
11.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab
12.下列叙述中正确的是______。
A.线性表是线性结构B.栈与队列是非线性结构C.线性列表是非线性性结构D.二叉树是线性结构
13.
14.在C语言中,退格符是
A.\nB.\tC.\fD.\b
15.
16.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序执行后的输出结果是()。A.7B.3C.2D.0
17.设有如下定义语句:intm[]={2,4,6,8,10},*k=m;以下选项中,表达式的值为6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
18.
19.若有下列定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
20.一个无向连连通图的生成树是含有该连通图的全部项点的_______。
A.极小连通子图B.极小子图C.极大连通子图D.极大子图
二、2.填空题(20题)21.以下函数的功能是求x的y次方,请填空。
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
22.下面程序的运行结果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t1)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
23.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
24.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
25.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
26.\13'在内存中占1个字节,"\12"在内存中占______个字节。
27.有以下程序:
intf(intn)
{if(n==1)retum1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是【】。
28.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;j+=2;)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);printf("\n");
}
29.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str
charstr[];
{inti,num=0,word=0;
for(i=0;str[i]!=【】;i++)
if(【】=")word=0
elseif(word=0)
{
word=1;
【】;
}
return(num);
}
30.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
31.数据流图的类型有【】和事务型。
32.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
[8]
if(s[*k]<s[i])*k=i;
return[9];}
main()
{inta[10]:{876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
pfintf("%d,%d\n"
33.性结构中,第一个结点没有前驱结点,其余每个结点有且只有【】个前驱结点;最后一个结点没有后继结点,其余每个结点有且只有【】个后继结点。
34.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
35.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。
36.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
37.设有chara,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。
38.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左卜方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidyanghui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;j<N;i++)
{x[i][0]=______=1;
for(j=1;j<i;j++)
x[i][j]=______;
}
}
39.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。
40.下列程序的输出结果是【】。
main()
{
inta=1,b=2;
a=a+b;b=a-b;a=a-b;
prrintf("%d,%d\n",a,b);
}
三、1.选择题(20题)41.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
42.已知函数fread的调用形式为fread(buffer,size,count,fp);其中buffer代表的是()。
A.存放读入数据项的存储区
B.一个指向所读文件的文件指针
C.一个指针,是指向输入数据存放在内存中的起始地址
D.一个整型变量,代表要读入的数据项总数
43.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为()
A.并运算B.交运算C.差运算D.积运算
44.设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是
A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相同
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等
45.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
46.以下程序的输出结果是______。main(){intx=05;charz='a';printf("%d\n",(x&1)&&(z<'z'));}
A.0B.1C.2D.3
47.下列关于“数据库系统(DBS)”的叙述中,正确的一条是______。
A.DBS是指在计算机系统中引入数据库后的系统构成
B.DBS是帮助用户建立、使用和管理数据库的一种计算机软件
C.DBS是用户建立的若干数据库文件的集合
D.DBS是一种新颖的关系数据库管理系统
48.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。
Stmctstu
{inti;
intname;
}st,*p;
p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
49.以下选项中,非法的字符常量是______。
A.'t\'B.'\17'C.\nD.'\xaa'
50.以下语句或语句组中,能正确进行字符串赋值的是______。A.char*sp;*sp="right!";
B.chars[10];s="right!";
C.chars[10];*s="right!";
D.char*sp="right!";
51.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
52.CPU处理数据基本单位为字,一个字的字长()
A.为8个二进制位B.为16个二进制位C.为32个二进制位D.与CPU芯片的型号有关
53.经过以下语句定义后,表达式z+=x>y?++x:++y的值是______。intx=1,y=2,z=3;
A.2B.3C.6D.5
54.数据的存储结构是指()。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
55.有以下程序:#include<stdio.h>main(){unsignedchara,b;a=413;b=4&3;printf("%d%d\n",a,b);}执行后的输出结果是()。
A.70B.07C.11D.430
56.下列可用于C语言用户标识符的一组是()。
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
57.有以下程序:#inlucde<stdio.h>main()D)233{intn,*P=NULL;*p=&n;printf("inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()。
A.intn,*P=NULL;
B.*P=&n;
C.scanf(“%d",&p)
D.printf("%d\n",p);
58.函数fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}
A.字符串a的长度B.字符串b的长度C.字符串a和b的长度之差D.字符串a和b的长度之和
59.有以下程序:voidchange(intk[]){k[0]=k[5];}main(){intx[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序运行后输出的结果是()。
A.678910B.13579C.12345D.62345
60.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
四、选择题(20题)61.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
62.有以下程序:
程序运行后的输出结果是()。
A.SunDan20044550
B.Penghua20045537
C.LiSiGuo20042580
D.SunDan20041703
63.有以下程序段:
为使程序段不陷入死循环,从键盘键入的数据应该是()。
A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
64.有以下程序:
程序的运行结果是()。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
65.在最坏情况下,堆排序的时间复杂度是()。
A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)
66.以下关于C语言的叙述中正确的是()。
A.C语言的数值常量中夹带空格不影响常量值的正确表示
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致\
D.C语言中的注释不可以夹在变量名或关键字的中间
67.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
68.有以下程序:
程序运行时,输入的值在哪个范围才会有输出结果()。
A.小于3的整数B.不等于10的整数C.大于3或等于10的整数D.大于3且不等10的整数
69.
数字字符0的ASCII值为48,运行以下程序的输出结果是()。
main
(chara=1,b=2;
printf("%C,",b++);printf("%d\n",b—a);}
A.3,2B.50,2C.2,2D.2,50
70.
71.以下选项中,合法的一组c语言数值常量是()。
A.12.0Xtl234.5e0
B.028.5e-3-0xf
C.1774el.50abe
D.0x8A10,0003.e5
72.下面的变量说明中__________是正确的。
A.char:a,b,c;
B.chara;b;c;
C.chara,b,c;
D.chara,b,c
73.
74.
75.
若有以下程序段,w和k都是整型变量:
┇
w=k:
LB:if(w==0)gotoLE;
W--:
printf("*")
gotoLB;
LE;
┇
则不能与上面程序段等价的循环语句是()。
A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
76.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和static
B.extern和register
C.auto和register
D.static和register
77.有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为()。
A.笛卡尔积B.交C.并D.自然连接
78.
79.开发大型软件时,产生困难的根本原因是()
A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。
例如,n=8时,输入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值为94.566635,在平均值以上的实数个数应为4。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
1.C
2.B解析:本题考查的知识点是变量赋初值.选项A中的语句只能起定义n1的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错“n2未定义”,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项C定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。
3.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
4.A
5.Dch[1]即输出的为第二个字符串,即BBB。
6.D解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而\u3000int类型在TurboC\u30002.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。
7.A
8.C本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“myfile”文件,再打开“myfile.data"文件,输入28,在键盘上接收字符,输出并关闭文件。本题结果为abc28。
9.D解析:选项A、选项B和选项C都是在a的值为0的时候输出y,a不为0的时候输出x,而选项D是在a为0的时候输出x,a不为0的时候输出y。所以,4个选项中选项D符合题意。
10.A声明data是结构S的数组。初始化时data[0].a=10;data[0].b:104);data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[11.b;执行语句prinff(”%dkn”,++(p.A));打印输出时p.a先增l再打印。即p.a=data[1].a=20,先增1等于21,因此程序运行结果是21。
11.C解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。
12.A解析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
13.B
14.D解析:在C++语言中退格符表示为\\b退格。注意:其他转义字符的意义:\\n表示回车换行,\\t表示横向跳到下一制表位置,\\v表示竖向跳格,\\r表示回车,\\f表示走纸换页,\\\\表示反斜线符,\\a表示鸣铃,\\ddd1~3位表示八进制数所代表的字符,\\xhh1~2位表示十六进制数所代表的字符。
15.B
16.C在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun(x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。
17.A本题考查数组和指针,*k指针是指向rn数组的首地址,所以要使表达武的值为6,只需要指针指向第m[2],所以答案选择A。-
18.D
19.D本题考查数组元素的地址的引用。A中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个元素加1;选项C中,不存在这种引用方式;D中,&a[0]引用的是数组的首地址。
20.A
21.xx解析:函数的定义形式为;
函数类型函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:累积变量以求得变量的Y次方。
22.abcdefglkjihabcdefglkjih解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。
23.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
24.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
25.d1.dat"rb"d1.dat,'rb'解析:打开文件的函数为fopen('文件名','mode'),其中'mode'表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只读方式打开。'w'表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。'a'为追加方式打开。若文件存在时,将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。'r+'打开一个已存在文件用于更新(可读可写)。\'w+'创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。'a+'打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填'd1.dat','rb'。
26.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。
27.33解析:i=1时,f(1)=1,j=j+f(1)=0+1=1;i=2时,f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是3。
28.a[I]>a[j]a[I]>a[j]解析:本题中的嵌套的循环结构用在了数组元素的排序上。本题需要注意的一点是:由于题目只要求出下标值为偶数的元素从小到大排序,所以内外层for循环的条件变量变更条件都是+=2,最后通过条件a[i]>a[j]对元素大小进行判断并交换。
29.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:
①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;
②str[i]代表字符串str中的第i+1个字符;
③整型变量num的值是要记录的单词的个数。
C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。
30.驱动模块驱动模块解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。
31.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
32.本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。
33.11
34.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
35.77解析:此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,--和后缀++,--的区别。
36.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
37.1000001010000010解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。
38.x[i][i]x[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]解析:本题考核的知识点是函数与算法结合在一起的应用。在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i]在第2重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
39.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。
40.212,1解析:本题中,执行a=a+b时,a=1,b=2,a=1+2=3,b=a-b时,a=3,b=2,b=3-2=1;a=a-b时,a=3,b=1,a=3-1=2;因此,本题的输出是2,1
41.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。
42.C解析:数据块读取函数调用形式:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数:“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
43.AA)【解析】关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,新关系中包含两个关系中的所有元组。
44.D解析:考查的是字符指针和字符数组的区别。选项A)中,s为数组名,是一个常量地址,而指针p为一个字符变量,不能说两者完全相同,所以选项A)错误。选项B)和C)的说法都不严谨,只有选项D)的说法正确。
45.D解析:a是一个2行3列的二维数组,行下标和列下标都是从0开始的,数组中的元素为a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下标最大值为1,列下标最大值为2,因此选项A、B、C都是错误的引用。计算选项D中数组元素的下标后得a[0][0],为正确的引用。
46.B解析:“&”是位运算符表示按位与运算,“&&”是逻辑运算符当其两边的表达式都为真时返回真值。关系表达式(x&1)&&(z<'z'),(x&1)为真,(z<'z')也为真,两者相与,自然也为真,以整型输出,则输出1。
47.A解析:数据库系统DBS是指在计算机系统中引入数据库后的系统构成。数据库系统是一种带有数据库的综合系统,它包括硬件、软件(如操作系统、数据库管理系统、编译系统及应用开发工具软件等)、数据库以及开发者和使用者。
48.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式即(*p).i和p->i。
49.C解析:C语言中字符常量是以单引号括起来的单个字符,或以“\\”与三位八进制数值或两位十六进制数值代替单个字符。
50.D解析:本题考查了考生对字符串常量的理解。字符串常量是一段以双引号括起来的字符序列,它既可以出现在对字符数组的初始化中,也可以出现在表达式中。当它用于对字符数组的初始化时,应注意系统自动为其添加的结束标志'\\0'。而当它出现在表达式中时,应该将其看作一个constchar*类型的指针常量。在选项A中,首先定义了一个字符指针sp,然后将一个字符串赋给甲所指的地址,这是错误的。因为sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项C首先定义了一个字符数组,然后将一个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字符串常量,即将一个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合题意。
51.C解析:EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件是否在文件末尾,文本文件和二进制文件均可以使用此函数,如果遇到文件结束就返回1,否则返回0。
52.D
53.C
54.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
55.A解析:&是按位“与”运算符,其运算规则是:参加运算的两个运算量,如果两个相应的位都为1,则该位的结果值为1,否则为0。|是按位“或”运算符,其运算规则是:两个相应位中只要有一个为1,该位的结果为1。4转换为二进制数为0100,3转换为二进制数为0011,则4|3=0111,即7,4&3=0000,即0。
56.B解析:C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。
57.A
58.D解析:第一个while循环是字符串a的长度,第二个while是将字符串b接在a的后面,num在a串长度上继续累计,为两个字符串长度之和。
59.A解析:本题的change()函数实现的是:将传入的地址值的高5个单位的地址中的内容复制到传入的地址当中,即等价于*k=*(k+5)。在主函数中,首先通过while循环,循环5次调用change()函数,依次将x[0]~x[4]的地址传入,所以while循环结束后,x[0]~x[4]中的内容等于x[5]~x[9]中的内容。所以输出结果为678910,故应该选择A。
60.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
61.Astrcat函数,gets函数;首先将输入的字符串赋给ss,然后将字符串“6789”连接到ss得后面
62.B本题考查的是结构体。本程序将结构体数组s的首地址传递给了结构体指针变量P,并在函数f中改变了指针变量P所指向的第二个结构体中的成员变量,这一改变,也就是改变了主函数中s[1]的成员变量,故程序输出的值为Penghua20045537。
63.D此题目中变量s是迷惑考生的,变量t赋初值为1,由语句t=t-2;将使t得到的是负奇数。所以选项D)是正确答案。
64.C函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行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}。所以正确答案为c)。
65.B若有n个元素的序列,将元素接腰序组成一棵完全二叉树,当且仅当满足下列条件时称为堆。大根堆是指所有结点的值大于或等于左右子结点的值;小掇堆是指所有结点的值小于或等于左右子结点的值。在调整建堆的过程中,总是将根结点值与左、右子树的根结点进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。堆排序最坏情况需要0(nl092n)次比较,所以时间复杂度是0(nl092n),B选项正确。
66.DC语言的数值常量中不能夹带空格,所以A错误。C语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头。不能随便放置,所以8错误。在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误。
67.A\n关系数据库系统采用关系模型作为数据的组织形式。在关系模型中用二维表来表示实体及实体问的联系。
\n
68.D根据代码可知如果x的值小于等于3,执行空语句,不进行打印操作。如果x的值大于3,再判断x的值是否不等于l0,如果不等于l0就打印X的值,所以选择D选项。
69.C
\nb++是先用表达式的值然后自增l,因此表达式值为2,b为3;b-a=3-1=2,因此最后输出的结果为2,2,前一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年王江泾镇国资公司公开招聘工作人员笔试参考题库附带答案详解
- 2023年湖南长沙自贸投资发展集团有限公司公开招聘工作人员7人笔试参考题库附带答案详解
- 2025至2030年中国亚克力礼品数据监测研究报告
- DB63T 2413-2025 高海拔地区高炮人工防雹作业技术指南
- 烟草专卖营销中心培训课件:烟草专卖品牌基础知识学习(完整版)
- 火电厂热工基础知识
- 游泳的基础知识
- 淘宝SEO基础知识你了解多少
- 绿化购买合同范本
- 消防知识培训王建琴
- 【9数一模】2025年安徽省合肥市蜀山区九年级中考一模数学试卷(含答案)
- 2025年无锡市锡山环保能源集团招聘笔试参考题库含答案解析
- 田径运动会各种记录表格
- 报价单(报价单模板)
- 农家肥撒施翻耕施工方案
- GB∕T 11071-2018 区熔锗锭-行业标准
- 产品和服务战略
- 远离手机班会课件
- 一页纸的劳动合同范本(5篇)
- 2019最新中小学校安全管理制度汇编
- 内审不符合项报告
评论
0/150
提交评论