




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年河北省承德市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().
A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
2.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
3.有以下程序:#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}程序运行后的输出结果是()。A.2B.4C.6D.8
4.
5.如有inta=11;则表达式(a/1)的值是()。
A.0B.3C.4D.11
6.程序执行后的输出结果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23
7.下列关于信息系统的叙述中,错误的是()。
A.广播电视是一种双向的、点到多点的信息交互系自
B.网络聊天是一种双向的,以信息交互为主要目的系统
C.电话是一种双向的、点对点的、以信息交互为主要的的系统
D.雷达是一种以感测和识别为主要目的的系统
8.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。
A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序
9.c源程序中不能表示的数制是()。
A.二进制B.八进制C.十进制D.十六进制
10.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的运行结果是()。A.2B.3C.7D.0
11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
12.下面哪种排序算法是稳定的()
A.快速排序B.堆排序C.归并排序D.选择排序
13.若有下列说明语句int(*p)();则标识符p代表的是()
A.一个用于指向函数的指针变量,函数返回值的类型为int型
B.一个带回值类型为整型的函数名
C.一个用于指向整型数据的指针变量
D.一个带回值类型为指针类型的函数名
14.需求分析最终结果是产生
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告
15.
16.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。
A.O(1)B.O(log2n)C.O(n)D.O(n2)
17.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
18.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
19.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
20.设有定义:charpE]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
二、2.填空题(20题)21.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。
22.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t时返回正值,当s<t时返回负值。请填空。
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】);
}
23.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
24.Jackson方法是一种面向【】的结构化方法。
25.下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"));=NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】);
}
fclose(fp);
}
26.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
27.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
28.以下程序通过函数SunFun求。这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{returnx*x+1;}
29.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
30.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。
31.结构化分析方法是面向______进行分析的方法。
32.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。
33.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
34.函数pi的功能是根据以下近似公式求π值:
请在下面的函数中填空,完成求π的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*s));
}
35.
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);)
36.以下程序的输出结果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
37.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
38.若a是血型变量,则表达式(a=2*3,a*2),a+6的值为______。
39.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
40.若有如下程序:
#include"stdio.h"
main()
{chars[30];
strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");
printf("%s\n",s);}
则程序运行后的输出结果是【】。
三、1.选择题(20题)41.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
42.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
43.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
44.SQL语言又称为______。
A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言
45.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
46.以下语句中存在语法错误的是A.charss[6][20];ss[1]="right?";
B.charss[][20]={"right?"};
C.char*ss[6];ss[1]="right?";
D.char*ss[]={"right?"};
47.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
48.结构化程序设计的核心和基础是()。
A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法
49.设有如下说明:typedefstruetST{longa;intb;charc[2];}NEW;则下面叙述中正确的是()。
A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
50.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是()。
A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)
51.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
52.有以下程序: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
53.下列能正确定义字符串的语句是()。
A.charstr[]={'\64'};
B.charstr="kx43";
C.charstr=";
D.charstr[]="\0";
54.下列程序的执行结果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}
A.3,14,1B.3,14,2C.2,04,1D.2,14,1
55.下列程序的运行结果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[0];m++;}voidmain(){inta[]={1,2,3,4,5},k;intx;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}
A.1,1,1,1,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,
56.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
57.产生软件危机的原因是:一方面与软件生产本身的复杂性有关;另一方面,和______的方法不正确有关。
A.软件的使用B.软件的成本C.软件的开发和维护D.软件的文档资料
58.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。A.A.路径的集合B.循环的集合C.目标的集合D.地址的集合
59.以下各选项企图说明一种新的类型名,其中正确的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
60.下列叙述中正确的是()。
A.程序执行的效率与数据的存储结构密切相关
B.程序执行的效率只取决于程序的控制结构
C.程序执行的效率只取决于所处理的数据量
D.以上三种说法都不对
四、选择题(20题)61.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
62.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
63.
64.
65.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
66.
67.以下是if语句的基本形式:
if(表达式.语句
其中“表达式”()。
A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
68.在C程序中有如下语句:char*func(intx,inty);它是()。
A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的
69.
70.设有二元关系R和三元关系s,下列运算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
71.
72.
73.下列语句组中,正确的是()。
A.char*s;s="Olympic";
B.charsE73;s="Olympic";
C.char*S;s={¨Olympic"};
D.charsET3;s={"Olympic"};
74.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。
A.随机值B.0C.x的地址D.P的地址
75.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
76.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A.scanf("%d",pa);B.scanf("%d",a);C.scanf("%d",&pa);D.scanf("%d",*pa);
77.以下程序运行后的输出结果是()。
A.1B.2C.4D.8
78.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
79.设有定义语句int(*f)(int);,则以下叙述正确的是()。
A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是基类型为int类型的地址
80.
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是判断字符串是否为回文,若是,则函数返回1,在主函数中输出“YES”,否则返回0,在主函数中输出“NO”。回文字符串是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分无纸化考武题庠请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}
参考答案
1.B
2.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
3.D本题考查运算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。
4.D
5.D
6.D[解析]字符串是一个特殊的数组,所以按照数组的规则,s1应该指向的是数组的首地址,即"abc的第一个字符的地址。s2指向的是"123"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符ai和1的内容,所以打印输出为D)。
7.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。
8.C
9.AA。【解析】C语言源程序不能表示八进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、二进制、十六进制3种形式表示,故A不正确。
10.A因为fun(intx)是一个递归函数。在主函数中fun(7)经过3次递归调用。其过程可以描述为fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的输出结果为2。故本题答案为A选项。
11.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。
12.C
13.A
14.B解析:本题考核软件工程中的需求分析环节。需求分析应交付的主要文档就是需求规格说明书。
15.B
16.C
17.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。
18.BA选项中不能将变量Y赋给表达式,c选项中错误与A选项一样,D选项中强制类型转换表达式应写成(doub1e)x/10。
19.D解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。
20.A根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
21.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
22.*s-*t*s-*t解析:本题考查比较字符串的大小。函数的两个形参是两个字符指针变量,指针变量的值是字符串的首地址,*s和*t表示s和t指向的第一个字符,在while循环中,通过s和t指针的移动,不断改变所指字符,通过返回s和t的第一个不同字符的ASCII码的差值*s-*t得到结果。
23.参照完整性参照完整性
24.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
25."bi.dat"fp
26.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
27.ii解析:外循环是递减的,方阵中的每个元素为(j-1)*4+i,因此空格处填i。
28.xx解析:考查函数的调用。函数调用时,实参与形参一致,函数F只有一个形参,故函数的调用为F(x)。
29.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。
30.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。
31.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
32.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
33.调试调试
34.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本题考查数据类型的转换。由题意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循环体为s=s+1/(i*i),由于s为double型数据,所以要将1/(i*i)的值转换为double类型。
35.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空白处应该填x,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)的值,所以其返回值应该为x*x+1。
36.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空。输出语句不在for循环体内,所以在循环执行完毕后才输出s的值。s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。
37.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
38.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
39.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向7实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。
40.adf
41.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。
42.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
43.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
44.CC。【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言4个部分。
45.B解析:C语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在'A'和'Z'之间就可以了,选项A)和C)符合要求。函数isalpha用来确定一个字符是否为字母,大写字母的ASCII码值的范围为65到90,所以如果一个字母的ASCII码小于91,那么就能确定它是大写字母。
46.A数组定义后,不可以对数组整体赋值,s是一维数组,因ss[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(ss[1],'right\'\');这样的形式,而选项A)中对二维数组中的第“1维(相当于一个一维数组)赋值,是不可以的。选项B)和D)是定义时对数组初始化,这是可以的。选项C)中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。
47.C解析:带参数的宏定义命令行形式如下:
#define宏名(形参表)替换文本
在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。
48.CC。【解析】结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。
49.C解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则structST为结构体类型,现在用typedef定义后,相当于用NEW代表了structST这一结构体类型,故NEW为结构体类型。
50.D解析:本题的考点是C语言的文件操作。函数fseek(fp,0L,SEEK_SET)的作用是,将文件指针fp移到相对于文件开始处(SEEK_SET)位移为0L的地方,也就是文件的开头。选项A的feof(fp)是判断是否读到了文件尾,作用与函数fseek不符。选项B的ftell(fp)是告知文件指针的当前位置,作用与函数fseek也不符。选项C的fgetc(fp)是从文件指针fp中读入一个字符,作用与函数fseek也不符。选项D的rewind(fp)是将文件指针回绕到文件开始处,作用与函数fseek(fp,0L,SEEK_SET)相同。
51.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。
52.A解析:函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他没有赋值的数组元素将自动赋值为0。for循环中,当s[i]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s[0]+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。
53.D解析:字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。
54.A解析:本题主要考查自加运算符(++、--)的使用。①前缀变量“++i、--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算;②后缀变量“i++、i--”,先使用此时的表达式的值参与运算,在使用i之后,再使i的值加1或者减1。本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此语句后a的值是3;表达式c+=-a+++(++b)等价于c=c+(-a++)+(++b),c=1+(-3)+3=1,此时a=4,b=3。
55.A解析:本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。
56.A解析:“%”是求余运算符或模运算符,“%”两侧均应为整型数据,选项A)中的x是double型数据。
57.C解析:在软件开发和维护的过程中存在着不少问题,从而导致软件危机。软件危机一方面与软件生产本身的复杂性有关,另一方面也和软件开发与维护的方法不正确有关。
58.A解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。此方法将程序看做是路径的集合,故选项A正确。
59.C解析:C语言中可以使用typedef来重新定义已有的数据类型,相当于为数据类型取个别名。
60.A本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。
61.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
62.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。
63.A
64.A
65.A\n关系数据库系统采用关系模型作为数据的组织形式。在关系模型中用二维表来表示实体及实体问的联系。
\n
66.B
67.D解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)
68.C
69.C
70.D本题给出的两个关系R与S的表结构是不同的(R是二元关系,S是三元关系),它们不能进行∩、∪、一运算。而两个不同结构的关系是可以进行笛卡儿积(×)运算的。
71.D
72.A
73.A给字符串数组赋值时,要先定义数组长度,然后再赋值。可以只给部分元素赋初值,当中值的个数少于元素个数时,只给前面部分元素赋值。数组的下标是从0开始的,所以s[7]代表从s[0]到s[6]七个元素。其格式可以写成:char数组名[常量]={字符,字符,…);,也可写为char数组名[常量]={"字符串"};,或去掉{)写为:char数组名[常量]="字符串"。所以本题应选择A选项。
74.A*P的意思是取其指向地址的内容,P是指向x地址的指针,因此输出*p也就是输出x的内容,即0,故选择B选项。
75.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
76.A本题主要考查scanf函数。scanf函数可以用来输入任何类型的多个数据。
scanf函数的一般形式为:
scanf(格式控制,地址列表)
“格式控制”是用双引号引起来的字符串,也称“转换控制字符串”;“地址列表”是由若干个地址组成的表列,可以是变量的地址或字符串的首地址。
指针变量中只能存放地址(指针),&:取地址运算符。例如,&a为变量a的地址,*p为指针变量p所指向的变量。所以,可以在地址列表中的有pa和&a,故本题答案为A。
77.D第一次调用的是最内层的f(n),即f(1)返回值是2。第二次调用中间的f(f(n)),即f(2)返回值是4。最后调用最外层的f(f(f(n))),即r(4)返回值是8。最后打印输出。
78.C\n软件生命周期可分为软件定义、软件开发和软件运行维护3个阶段。软件开发期包括概要设计、详细设计、实现和测试4个阶段。
\n
79.B本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。
80.A81.
(1)}t=0;
(2)if(d%21=0)或if(d%2==1)
【考点分析】
本题考查:指针型变量作为函数参数;if语句条件表达式,结合奇偶数的表示方法来确定该表达式内容。
【解题思路】
(1)由函数定义可知,变量t是指针变量,所以对t进行赋初值0是不对的。因为t指向的是存放新数的变量,所以此处应给新数赋初值0,即。t=0。
(2)变量d表示数S各个位上的数,此处的if条件应为判断d是否为奇数。
82.1intfun(char*str)2{3inti,n=0,fg=1;4char*p=str;5while(*p)/*将指针p指向字符串末尾,并统计字符数*/6{7n++8P++;10}10for(i=0;i2022-2023年河北省承德市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().
A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
2.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
3.有以下程序:#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}程序运行后的输出结果是()。A.2B.4C.6D.8
4.
5.如有inta=11;则表达式(a/1)的值是()。
A.0B.3C.4D.11
6.程序执行后的输出结果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23
7.下列关于信息系统的叙述中,错误的是()。
A.广播电视是一种双向的、点到多点的信息交互系自
B.网络聊天是一种双向的,以信息交互为主要目的系统
C.电话是一种双向的、点对点的、以信息交互为主要的的系统
D.雷达是一种以感测和识别为主要目的的系统
8.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。
A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序
9.c源程序中不能表示的数制是()。
A.二进制B.八进制C.十进制D.十六进制
10.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的运行结果是()。A.2B.3C.7D.0
11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
12.下面哪种排序算法是稳定的()
A.快速排序B.堆排序C.归并排序D.选择排序
13.若有下列说明语句int(*p)();则标识符p代表的是()
A.一个用于指向函数的指针变量,函数返回值的类型为int型
B.一个带回值类型为整型的函数名
C.一个用于指向整型数据的指针变量
D.一个带回值类型为指针类型的函数名
14.需求分析最终结果是产生
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告
15.
16.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。
A.O(1)B.O(log2n)C.O(n)D.O(n2)
17.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
18.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
19.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
20.设有定义:charpE]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
二、2.填空题(20题)21.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。
22.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t时返回正值,当s<t时返回负值。请填空。
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】);
}
23.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
24.Jackson方法是一种面向【】的结构化方法。
25.下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"));=NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】);
}
fclose(fp);
}
26.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
27.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
28.以下程序通过函数SunFun求。这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{returnx*x+1;}
29.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
30.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。
31.结构化分析方法是面向______进行分析的方法。
32.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。
33.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
34.函数pi的功能是根据以下近似公式求π值:
请在下面的函数中填空,完成求π的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*s));
}
35.
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);)
36.以下程序的输出结果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
37.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
38.若a是血型变量,则表达式(a=2*3,a*2),a+6的值为______。
39.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
40.若有如下程序:
#include"stdio.h"
main()
{chars[30];
strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");
printf("%s\n",s);}
则程序运行后的输出结果是【】。
三、1.选择题(20题)41.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
42.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
43.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
44.SQL语言又称为______。
A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言
45.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
46.以下语句中存在语法错误的是A.charss[6][20];ss[1]="right?";
B.charss[][20]={"right?"};
C.char*ss[6];ss[1]="right?";
D.char*ss[]={"right?"};
47.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
48.结构化程序设计的核心和基础是()。
A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法
49.设有如下说明:typedefstruetST{longa;intb;charc[2];}NEW;则下面叙述中正确的是()。
A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
50.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是()。
A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)
51.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
52.有以下程序: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
53.下列能正确定义字符串的语句是()。
A.charstr[]={'\64'};
B.charstr="kx43";
C.charstr=";
D.charstr[]="\0";
54.下列程序的执行结果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}
A.3,14,1B.3,14,2C.2,04,1D.2,14,1
55.下列程序的运行结果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[0];m++;}voidmain(){inta[]={1,2,3,4,5},k;intx;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}
A.1,1,1,1,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,
56.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
57.产生软件危机的原因是:一方面与软件生产本身的复杂性有关;另一方面,和______的方法不正确有关。
A.软件的使用B.软件的成本C.软件的开发和维护D.软件的文档资料
58.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。A.A.路径的集合B.循环的集合C.目标的集合D.地址的集合
59.以下各选项企图说明一种新的类型名,其中正确的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
60.下列叙述中正确的是()。
A.程序执行的效率与数据的存储结构密切相关
B.程序执行的效率只取决于程序的控制结构
C.程序执行的效率只取决于所处理的数据量
D.以上三种说法都不对
四、选择题(20题)61.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
62.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
63.
64.
65.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
66.
67.以下是if语句的基本形式:
if(表达式.语句
其中“表达式”()。
A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式
68.在C程序中有如下语句:char*func(intx,inty);它是()。
A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的
69.
70.设有二元关系R和三元关系s,下列运算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
71.
72.
73.下列语句组中,正确的是()。
A.char*s;s="Olympic";
B.charsE73;s="Olympic";
C.char*S;s={¨Olympic"};
D.charsET3;s={"Olympic"};
74.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。
A.随机值B.0C.x的地址D.P的地址
75.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
76.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A.scanf("%d",pa);B.scanf("%d",a);C.scanf("%d",&pa);D.scanf("%d",*pa);
77.以下程序运行后的输出结果是()。
A.1B.2C.4D.8
78.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
79.设有定义语句int(*f)(int);,则以下叙述正确的是()。
A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是基类型为int类型的地址
80.
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是判断字符串是否为回文,若是,则函数返回1,在主函数中输出“YES”,否则返回0,在主函数中输出“NO”。回文字符串是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分无纸化考武题庠请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}
参考答案
1.B
2.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
3.D本题考查运算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。
4.D
5.D
6.D[解析]字符串是一个特殊的数组,所以按照数组的规则,s1应该指向的是数组的首地址,即"abc的第一个字符的地址。s2指向的是"123"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符ai和1的内容,所以打印输出为D)。
7.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。
8.C
9.AA。【解析】C语言源程序不能表示八进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、二进制、十六进制3种形式表示,故A不正确。
10.A因为fun(intx)是一个递归函数。在主函数中fun(7)经过3次递归调用。其过程可以描述为fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的输出结果为2。故本题答案为A选项。
11.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。
12.C
13.A
14.B解析:本题考核软件工程中的需求分析环节。需求分析应交付的主要文档就是需求规格说明书。
15.B
16.C
17.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。
18.BA选项中不能将变量Y赋给表达式,c选项中错误与A选项一样,D选项中强制类型转换表达式应写成(doub1e)x/10。
19.D解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。
20.A根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
21.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
22.*s-*t*s-*t解析:本题考查比较字符串的大小。函数的两个形参是两个字符指针变量,指针变量的值是字符串的首地址,*s和*t表示s和t指向的第一个字符,在while循环中,通过s和t指针的移动,不断改变所指字符,通过返回s和t的第一个不同字符的ASCII码的差值*s-*t得到结果。
23.参照完整性参照完整性
24.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
25."bi.dat"fp
26.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
27.ii解析:外循环是递减的,方阵中的每个元素为(j-1)*4+i,因此空格处填i。
28.xx解析:考查函数的调用。函数调用时,实参与形参一致,函数F只有一个形参,故函数的调用为F(x)。
29.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。
30.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。
31.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
32.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
33.调试调试
34.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本题考查数据类型的转换。由题意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循环体为s=s+1/(i*i),由于s为double型数据,所以要将1/(i*i)的值转换为double类型。
35.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空白处应该填x,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)的值,所以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新版心肺复苏题库及答案
- 中国柠檬酸锌项目创业计划书
- 2025年春考机械类考试题及答案
- 技改项目申请报告样板
- 2025年机械员考试题库附参考答案典型题
- 安全用电考试试题及答案
- 2025年机械工程师专业素养测试考试试题及答案解析
- 复印机经销合同5篇
- 国家职业技能鉴定考评员考试题库含答案
- 2025年企业人力资源管理师职业技能鉴定等级考试(专业能力)二级技师经典试题及答案四
- 基础生态学第4章种群及其基本特征课件
- 虚拟现实与增强现实头戴显示关键技术及应用项目
- (完整)公共卫生基本知识考试题题库及答案
- 《电力工业企业档案分类规则0大类》(1992年修订版)
- GB∕T 26520-2021 工业氯化钙-行业标准
- 温州医科大学《儿科学》支气管肺炎
- 常见传染病预防知识ppt-共47页课件
- 装修材料燃烧性能等级表
- 路灯基础开挖报验申请表
- 建筑材料送检指南(广东省2018完整版)
- 细胞的分化公开课学案
评论
0/150
提交评论