




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年山西省晋城市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列能正确定义且赋初值的语句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
2.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。
A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表
3.已知各变量的类型说明如下则以下不符合C语言语法的表达式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
4.
5.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
6.若以下选项中的变量已正确定义,则正确的赋值语句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
7.
8.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
9.在长度为n的顺序表的第i个位置上插入一个元素(1≤i≤n+1),元素的移动次数为:()。
A.n–i+1B.n–iC.iD.i–1
10.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
11.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
12.
13.下列程序的输出结果是()。char*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
14.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
15.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序运行后的输出结果是
A.9B.11C.19D.21
16.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一个文件指针,指向待读取的文件
B.一个整型变量,代表待读取的数据的字节数
C.一个内存块的首地址,代表读人数据存放的地址
D.一个内存块的字节数
17.有以下定义语句,编译时会出现编译错误的是()。
A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;
18.以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);该程序段的输出结果是()。
A.*B.****C.**D.********
19.以下不合法的数值常量是()。
A.8.0E0.5B.1e1C.011D.0xabcd
20.与单链表相比,双向链表的优点之一是()。
A.插入、删除操作更加简单B.可以随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更加灵活
二、2.填空题(20题)21.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
22.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
23.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
24.软件工程研究的内容主要包括:【】技术和软件工程管理。
25.在面向对象方法中,允许作用于某个对象上的操作称为【】。
26.下面程序的运行结果是______。
#include<stdio.h>
intf(inta[],intn)
{if(n>1)
returna[0]+f(a+1,n-1);
else
returna[0];
}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;
s=f(aa+2,4);printf("%d\n",s);
}
27.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
28.程序测试分为静态测试和动态测试。其中()是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
29.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++
{
for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
30.按照“先进先出”的原则组织数据的结构是______。
31.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
32.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为0的元素中,其他依此类推。请填空。
Fun(intx,intb[])
{intk=0,r;
do
{r=x%2;
()=r;
x/=2;
}while(x);
}
33.以下条件表达式可计算:1+|a|的值,请填空。
a>=0?【】:【】
34.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。
35.以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的
末尾。单向链表的头指针作为函数值返回。请填空。
#include<stdio.h>
structlist
{chardata;
structlist*next;
};
structlist*creat;
{structlist*h,*p,*q;
charch;
h=(【】)malloc(sizeof(structlist));
p=q=h;
ch=getchar();
while(ch!='?')
{p=(【】)mallco(sizeof(structlist));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
【】;
}
36.以下程序运行后的输出结果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
37.以下程序运行后的输出结果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
38.数据库理论中,数据的独立性一般可分为物理独立性和______。
39.对长度为10的线性表进行冒泡排序,对坏情况下需要比较的次数为______
40.下面程序的功能是输出数组s中最大元素的下标,请填空。
#include<stdio.h>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);
}
三、1.选择题(20题)41.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
42.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,
D.1,1,1,1,1,1,1,1,1,1,
43.下面的程序ASCⅡ。main(){intx=3,y=0,z=0;if(x==y+z)printf("****");elseprintf("####");}
A.有语法错误不能通过编译B.输出****C.可以通过编译,但是不能通过连接,因而不能运行D.输出####
44.以下函数返回a所指数组中最大值所在的下标值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]>a[p])______;return(p);}在下划线处应填入的内容是()。
A.i=pB.a[p]=a[i]C.p=jD.p=i
45.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法
A.对象B.数据结构C.数据流D.目标
46.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。
A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符
B.定义语句出错,Int无法被识别
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出Case的值
47.以下4个程序中,完全正确的是()。
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}
48.以下程序的输出结果是______。#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
49.有定义语句:“inta=1,b=2,c=3,x;”,则以下选项中各程序段执行后,x的值不为3的是()。
A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
50.下列对于软件测试的描述中正确的是______。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能地多发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
51.对于条件表达式(M)?(a++):(a--),其中的表达式M等于()
A.M==0B.M==1C.M!=0D.M!=1
52.下述关于数据库系统的叙述中,正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据
53.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
54.下列叙述中正确的是()。A.实体集之间一对一的联系实际上就是一一对应的关系
B.关系模型只能处理实体集之间一对一的联系
C.关系模型属于格式化模型
D.以上三种说法都不对
55.以下有4组用户标识符,其中合法的—组是______。
A.FOR-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
56.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
57.C语言提供的合法关键字是()
A.swicthB.cherC.CaseD.default
58.规范化理论中,分解()是消除其中多余的数据相关性
A.关系运算B.内模式C.外模式D.视图
59.下列不属于算法特性的是
A.确定性B.可行性C.有输出D.无穷性
60.在C语言中,退格符是
A.\nB.\tC.\fD.\b
四、选择题(20题)61.已知inta,b;doublec;,则以下语句中错误的函数调用是
A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);
C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);
62.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A.A.A,BB.A,68C.65,66D.65,68
63.(22)下列关于栈的叙述中正确的是()
A.在栈中只能插入数据
B.在栈中只能删除数据
C.栈是先进先出的线性表
D.栈是先进后出的线性表
64.
65.有以下程序:
程序运行后的结果是()。
A.有运行错误B.输出ll.10C.输出l2.10D.输出21.10
66.面下程序段的运行结果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A.67B.0C.字符’C’的地址D.字符’C’
67.当变量c的值不为2、4、6时,值也为“真”的表达式是()。
68.函数ftell(fp)的作用是()。
A.得到fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确
69.有以下程序程序运行后的输出结果是()。
A.8B.4C.6D.2
70.在单链表中,增加头结点的目的是()。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现
71.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
72.
73.设有定义:doublex=5.16894;,则语句prinff(”%If\n”,(int)(x$1000+0.5)/1000.);的输出结果是()。
A.5.16900B.5.16800C.0.00000D.输出格式说明符与输出项不匹配,产生错误信息
74.已定义以下函数
fun(char*p2,char*p1)
{
while((*p2=*p1)!=’\0’){p1++;p2++;}
}
函数的功能是
A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有’\0’
75.有以下程序:
程序运行后的输出结果是()。
A.9B.7C.5D.3
76.有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}该程序的执行结果是()。A.321B.23C.不输出任何内容D.陷入死循环
77.有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba
78.以下程序段中,与语句:k=a>;b?(b>;c?1:O):0;功能相同的是()。
79.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
80.
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出m以内最大的6个能被7或11整除的自然数之和。m的值由主函数传人。例如,若m的值为600,则函数的值为3515。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如,若a数组中的值为则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B在c语言规定中,可以在定义变量的同时给变量赋初值,选项A中n2没有定义;选项C中不能在赋值表达式的右边出现变量本身,选项D中字母E后面的数应该为整数,所以不对。
2.D
3.A
4.A
5.D
\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。
\n
6.C解析:赋值的一般形式为:变量名:表达式;,赋值的方向为由右向左,即将:右侧表达式的值赋给:左侧的变量,执行步骤是先计算再赋值。选项A中运算符%的运算对象必须为整数,而选项A中26.8不为整数,故选项A不正确;选项B将一个变量赋值给一个常量,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个常量,故选项D不正确;所以,4个选项中选项C符合题意。
7.D
8.C转义字符中,八进制的表示形式为\\ddd,但是八进制中不能包含数字8,所以C选项不合法。故本题答案为C选项。
9.A
10.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
11.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。
12.D
13.C本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。
14.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
15.A解析:本题考核的知识点是一维数组的定义,初始化和数组中元素的引用。函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他没有赋值的数组元素将自动赋值为0。for循环中,当s[1]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s101+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。所以,4个选项中选项A符合题意。
16.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。
17.Cchar类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。
18.AC语言中,分号为一条语句的结束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的语句,“printf(“*”);”是独立语句,不属于for循环。最后执行printf语句输出“*”。故本题答案为A选项。
19.AA选项中E后面的指数必须为整数,所以不合法。C选项中的011表示的是八进制常量,D选项中的0xabcd表示的是十六进制常量。故本题答案为A选项。
20.D
21.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。
22.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
23.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
24.软件开发
25.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。
26.本题主要考查函数的嵌套调用和数组名作为实参。实际程序运行结果应为aa[2]+aa[3]+aa[4]+aa[5]=18。\r\n\r\n
27.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
28.静态测试静态测试
29.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本题有两层for循环,主函数中定义了整型变量row、col、max和min,其中row用来存放外循环中的循环次数,col用来存放内循环中的次数,max记录每行中的最大值,min记录所有行中最大值中的最小值。在内循环中,首先给max赋初值为每行的第0列元素值,然后从第一列开始依次与max进行比较。如果大于max则将其值赋给max,当每一行循环结束,max记录了每一行的最大值。所以第一个空应该填a[row][col]>max或a[row][col]>=max。退出内循环,在第一次退出内循环时,将min赋初值为第0行的max,然后在每次退出内循环时,将min和每行的max比较,如果大于max,则将max值赋min,所以第二个空应该填max>min或mm>max,当退出外循环时,min为所有行中的最大值的最小值。
30.队列队列解析:队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。
31.101091101091解析:for(表达式1;表达式2:表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。
32.b[k++]b[k++]解析:本题的考查点是do-while语句。形参x默认为十进制,要想将一个十进制的数转换成二进制,可以使用整除求余法,题中的程序段也表明了将使用这种方法,将一个十进制的数转换成二进制要用这个十进制数不断的整除2,将每次的余数记录下来,直至无法再除,此时,整除得到的第一个元素即为二进制数的最低位,其余依次类推,所以在程序段中的横线处,应当填写“b[k++]”。
33.1+a1-a1+a\r\n1-a解析:因为题目中求的是1+|a|的值,即1和a的绝对值之和。所以根据数学中求绝对值的规则,当a>=0时,绝对值取本身,当a<0时,绝对值取相反数,再结合条件运算符的计算规则可得到本题的答案为a>=0。注意:逗号表达式的求值规则。
34.一对多(或1:N)一对多(或1:N)
35.strcurlist*strucrlist*return(h)
36.55解析:主函数首先声明了一个结点数组s[3],并分别初始化其成员num为1、2、3,而成员next全部被初始化为'\\0'也就是0。下面又用三条语句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分别将三个结点指向其后面一个结点,而最后一个结点指向第1个结点,构造出一条单向循环链表。接下来用结点指针p=s即让其指向s[0],然后让q=p->next,即指向了s[1],r=q->next即让r指向s[2],然后让一个累计变量sum累加q->next->num和r->next->next->nm,因为q指向s[1]所以它的next指针指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最终输出结果为5。
37.8181解析:本题的宏调用S(i+j)将被替换成表达式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本题输出81。
38.逻辑独立性逻辑独立性解析:数据的独立性一般可分为物理独立性和逻辑独立性。
39.在最坏情况下冒泡排序法需要比较的次数为n(n-1)/2。
40.k=p;k=p;解析:要找数组中最大元素的下标,首先预设数组首元素下标为临时最大元素的下标,从首元素开始顺序向后继元素逐一比较,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标,直至比较了数组的全部元素后,临时最大元素下标就是数组中最大元素的下标。程序中,变量k用于存储临时最大元素下标,变量p控制顺序比较的循环变量。当发现当前元素s[p]比临时最大元素s[k]更大时,用p更新k。所以在下划线处应填入代码“k=p;”。
41.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
42.A解析:C语言规定数组名代表数组的首地址,所以for循环中循环变量p的初值即&a[o),故输出的*p的值为a[0]的值。执行p++后,指针变量P指向a[1],这时输出*P即输出a[1]的值,经过10次循环,将输出a数组的全部数据:
1,2,3,4,5,6,7,8,9,0,
43.D解析:对于printf()函数,若有格式控制字符,则在格式控制字符的位置输出变量i的值;否则,直接输出双引号内的内容。
44.D解析:该题目要求的是最大数的位置(下标)。程序通过对a所指数组中的元素进行逐个比较,记录最大数的下标i,并把该下标记录在变量p中,所以,如果a[i]>a[p]关系成立,应该把i的值赋给p,这样才满足题目的要求。
45.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
46.B解析:C语亩足一种大小写敏感的语言,因此Int应为int,而CaseprintF则可以使用。
47.B解析:选项A在定义main()函数时,函数头后面多了一个分号,故选项A不正确;C语言中的注释是不能嵌套的,故选项C不正确:选项D在使用预编译指令#include时漏掉了#号,所以也是错误的。故应该选择B。
48.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
49.C解析:选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。
选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。
选项C中,首先选执行第一条if语句,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条if语句,由于“1<1”为假,后面的语句不执行,所以最后的x值为2不为3。
选项D中,首先选执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3。所以,4个选项中选项C符合题意。
50.C解析:软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误,软件测试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。
51.C
52.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。
53.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
54.D解析:实体集之间一对一的联系不一定是一一对应的关系。例如,在一个教室中,实体集“学生”与实体集“座位”之间是一对一的联系。因为实体集“学生”中的每一个学生最多与实体集“座位”中的一个座位有联系(学生坐在该座位上);并且,实体集“座位”中中的每一个座位也最多与实体集“学生”中的一个学生有联系(座位上坐着该学生)。但该教室中的学生与座位之间不一定是一一对应的关系,因为有可能某些座位是空的,没有学生去坐。因此,选项A)中的说法是错误的。在关系模型中,由于使用表格数据来表示实体之间的联系,因此,可以直接描述多对多的实体联系。因此,选项B)中的说法也是错误的。关系模型是与格式化模型完全不同的数据模型,它与层次模型、网状模型相比有着本质的区别。关系模型是用表格数据来表示实体本身及其相互之间的联系,它是建立在数学理论基础上的。因此,选项C)中的说法也是错误的。
55.C解析:C语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下划线组成的字符串。而且标识符不能与关键字相同。
56.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
57.D
58.A解析:数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。
59.D解析:一个算法必须具有5个特性,即有穷性、确定性、可行性、有输入、有输出。其中有穷性是指算法必须总是在执行完有穷步之后结束,而且每步都在有穷时间内完成。
60.D解析:在C++语言中退格符表示为\\b退格。注意:其他转义字符的意义:\\n表示回车换行,\\t表示横向跳到下一制表位置,\\v表示竖向跳格,\\r表示回车,\\f表示走纸换页,\\\\表示反斜线符,\\a表示鸣铃,\\ddd1~3位表示八进制数所代表的字符,\\xhh1~2位表示十六进制数所代表的字符。
61.C本题主要考查格式输入函数scanf。此函数一般的输入形式是scanf(格式控制,地址表列);。函数“格式控制”的含义同printf函数,以%开始,以一个格式字符结束,中间可以插入附加的字符。常用的格式字符主要有:
d:用来输入有符号的十进制整数。
u:用来输入无符号的十进制整数。
o:用来输入无符号的八进制整数。
x:用来输入无符号的十六进制整数(大小写作用相同)。
c:用来输入单个字符,包括回车键。
s:用来输入字符串,将字符串送到一个字符数组中,在输入时以非空格字符开始,以第一个空格字符结束。字符串以串结束标志’\\0’作为其最后一个字符。
f:用来以小数形式输入实数(包括浮点型和双精度型)。
e:用来以指数形式输入实数。
scanf的附加格式说明字符:
L、l:用于输入长整型数据(可用%ld,%lo,%lx)及double型数据(用%lf)。
h:用于输入短整型数据(可用%hd,%ho,%hx)。
域宽:指定输入数据所占宽度(列数),域宽应为正整数。
*:%后的“*”附加说明符用来表示跳过它相应的数据。
在本题中,由于变量a和b是整型变量,而c是双精度类型。很显然,选项C中的描述不正确,它用%o输出实数。
62.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。
63.D
64.B
65.Acalloe(n,sizeof(type))在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针,如果分配不成功,返回NULL。s在函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租客合同终止租房协议
- 技术开发与转让合同保密范本
- 智能化系统供货安装合同样本
- 矿山企业轮换工劳动合同模板及示例
- 农村土地出租权属合同样本
- 标准货物销售合同简版
- 城市配送服务合同一览
- 小学生种花演讲课件
- 影视设备行业交流服务批发考核试卷
- 广播电视节目的心理影响与教育意义考核试卷
- 低温绝热液氧瓶充装操作规程模版(2篇)
- 大众汽车使用说明书
- (高清版)DZT 0145-2017 土壤地球化学测量规程
- 供热公司安全教育知识
- 高中英语课程纲要
- 《药物设计学》课件
- 随机微分方程
- 道路设施施工现场安全管理基本要求
- 公寓楼改造装修施工方案
- 烟台大学化学化工学院实验室仪器设备搬迁项目
- 2022版10kV架空配电线路无人机自主巡检作业导则
评论
0/150
提交评论