![2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页](http://file4.renrendoc.com/view/91377d6872411114caeb0a4b4e2ca72b/91377d6872411114caeb0a4b4e2ca72b1.gif)
![2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页](http://file4.renrendoc.com/view/91377d6872411114caeb0a4b4e2ca72b/91377d6872411114caeb0a4b4e2ca72b2.gif)
![2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页](http://file4.renrendoc.com/view/91377d6872411114caeb0a4b4e2ca72b/91377d6872411114caeb0a4b4e2ca72b3.gif)
![2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页](http://file4.renrendoc.com/view/91377d6872411114caeb0a4b4e2ca72b/91377d6872411114caeb0a4b4e2ca72b4.gif)
![2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页](http://file4.renrendoc.com/view/91377d6872411114caeb0a4b4e2ca72b/91377d6872411114caeb0a4b4e2ca72b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年河北省承德市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在一个C源程序文件中所定义的全局变量,其作用域为()。A.由具体定义位置和extern说明来诀定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围
2.有以下程序:#include<stdi0.h>#defineS(x)(x)"x"2main(){intk一5,j=2;Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j)));}程序运行后的输出结果是()。A.98,18B.39,11C.39,18D.98,11
3.下列关于软件测试的目的和准则的叙述中,正确的是()
A.软件测试是证明软件没有错误
B.主要目的是发现程序中的错误
C.主要目的是确定程序中错误的位置
D.测试最好由程序员自己来检查自己的程序
4.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456
5.
6.结构化程序所要求的基本结构不包括()。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构
7.向一个栈顶指针为HS的链式栈中插入一个s所指的结点时,则执行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
8.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
9.设以下变量均为int类型,则值不等于7的表达式是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+l,x=y,x+1)
10.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
11.已知a,b均被定义为double型,则表达式:a=5/2的值为()。
A.1B.3C.3.0D.2.5
12.在以下一组运算中,优先级最高的运算符是()
A.<=B.=C.%D.&&
13.下列关于栈的描述中错误的是()。
A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针
14.下列程序段的输出结果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);
A.100000B.8C.40D.77
15.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
16.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
17.以下非法的赋值语句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
18.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
19.关键路径是事件结点网络中()。
A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路
20.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
二、2.填空题(20题)21.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;bteak;}
if(【】)return("yes!");
elsereturn("no!");
}
main()
{charsb[50];
printf("Input:");scanf("%s",str);
ptintf("%s\n",【】);
}
22.将以下程序段写成三目运算表达式:【】。
if(a>b)max=a;
elsemax=b;
23.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
24.以下程序段的输出结果是【】。
inti=9;
printf("%o\n",i);
25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为【】。
26.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
27.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
28.数据模型按不同应用层次分成三种类型,它们是概念数据模型、【】和物理数据模型。
29.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句“k=B*20;”(k为int型变量)后,k的值是______。
30.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
31.若从键盘输入24,则以下程序输出的结果是()。
#include<stdio.h>
main()
{inta;
scanf("%d",&A);
if(a>20)printf("%d",A);
if(a>10)printf("%d",A);
if(a>5)printf("%d",A);
}
32.设有说明;
structDATE{intyear;intmonth;intday;};
请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。
33.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
34.下列程序的运行结果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
35.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
36.有以下程序:
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=P1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序运行后的输出结果是【】。
37.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,legth=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<length)
while(k<length)
s[j++]=s[k++];
s[j]='\0'
}
38.以下程序的输出结果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
39.下面程序的输出结果是【】。
unsignedfun6(unsignednum)
{unsignedk=1;
do{k*=hum%10;
num/=10;}while(num);
return(k);}
main()
{unsignedn=26;
printf("%d\n",fun6(n));}
40.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
三、1.选择题(20题)41.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
A.选择B.连接C.投影D.并
42.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
43.程序中若有如下说明和定义语句:charfun(chat*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;}以下选项中对函数fun的正确调用语句是()。
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
44.阅读下列程序,当运行函数时,输入asdafaaz67,则输出为#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];
A.asdafaaz67B.asdafaa267C.asdD.z67
45.下面程序的运行结果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有语法错
46.以下能正确定义字符串的语句是()。
A.charstr[]={'\064'};
B.charstr="kx43";
C.charstr=";
D.charstr[]="\0";
47.需求分析阶段的任务是()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
48.下列不属于软件调试技术的是______。A.强行排错法B.集成测试法C.回溯法D.原因排除法
49.在面向对象的程序设计中,下列叙述中错误的是()。
A.对象是面向对象软件的基本模块
B.对象不是独立存在的实体,各个对象之间有关联,彼此依赖
C.下一层次的对象可以继承上—层次对象的某些属性
D.同样的消息被不同对象接受时,可导致完全不同的行动
50.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
51.以下程序的输出结果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}
A.0B.29C.31D.无定值
52.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是()。
A.3B.2C.1D.0
53.以下程序的输出结果是
#include<stdio.h>
intfun(intn,int*s)
{intf1,f2;
if(n==0||n==1)
*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}}
voidmain()
{intx;
fun(6,&x);
printf("\n%d",x);}
A.7B.13C.9D.10
54.下列程序的输出结果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}
A.3B.6C.8D.0
55.下列关于c语言用户标识符的叙述中正确的是()。
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
56.十六进制数FF.1转换成十进制数是()
A.255.0625B.255.125C.127.0625D.127.125
57.数据库技术的根本目标是要解决数据的()。
A.存储问题B.共享问题C.安全问题D.保护问题
58.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
59.已知字母A的ASCII参政值是65,字母a的ASCII码值是97,以下程序列______。main(){chara='A';intb=20;printf("%d,%o",(a=a+a,a+b,b),a+'a'+'A',b);}
A.表达式非法,输出零或不确定值
B.因输出项过多,无输出或输出不确定值
C.输出结果为20,141
D.输出结果为20,141,20
60.下列叙述中正确的是()。
A.数据库设计是指设计数据库系统
B.数据库设计是指设计数据库管理系统
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.以上三种说法都不对
四、选择题(20题)61.第
15
题
以下程序的输出结果是
main()
{inta=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A.30B.31C.32D.33
62.(25)下面对对象概念描述错误的是()
A.任何对象都必须有继承性
B.对象是属性和方法的封装体
C.对象间的通讯靠消息传递
D.操作是对象的动态性属性
63.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之问的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
64.下列函数的功能是()
65.C源程序中不能表示的数制是()。
A.十六进制B.八进制C.十进制D.二进制
66.下面叙述中正确的是(
)。A.全局变量的作用域一定比局部变量的作用域范围大B.静态类型变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋值的auto变量和static变量的初值都是随机值
67.设有charstr[10],下列语句正确的是
A.scanf("%s",&str);B.printf("%c",str);
C.printf("%s",str[0]);D.printf("%s",str);
68.(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()
A.可行性分析
B.需求分析
C.详细设计
D.程序编码
69.有以下程序:
程序运行后的输出结果是()。
A.120B.11C.6D.21
70.
71.
72.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
73.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.数据库系统需要操作系统的支持
74.用树形结构来表示实体之间联系的模型称为()。
A.关系模型B.层次模型C.网状模型D.数据模型
75.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
76.为了提高软件的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
77.有以下程序程序运行后的输出结果是()。
A.1,2,3.4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.2,3,1,6,8,7,5,4,10,9,
D.10,9,8,7,6,1,2,3,4,5,
78.下列叙述中正确的是()。
A.软件测试应该由程序开发者来完成
B.程序经调试后一般不需要测试
C.软件维护只包括对程序代码的维护
D.以上三种说法都不对
79.
80.if语句的基本形式是:if(表达式)语句,以下关于“表=迭式”值的叙述中正确的是()。
A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。例如,当S所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(char*a){}voidmain(){ chars[81]; printf(“Enterastring:\n”); gets(s); fun(s); printf(“Thestringafterdeleted:\n”); puts(s);}
参考答案
1.A[解析]全局变量的作用域是从声明处到文件的结束。所以选择A)
2.BS(k+j)=(k+j)*k+j*2=(5+2)*5+2*2=39,同理S(k-1)=(k+j)*k+j*2=\r\n(5-2)*5-2*2=11,所以答案选择B。
3.BB)【解析】软件侧试的目的:
\n①软件测试是为了发现错误而执行程序的过程;
\n②一个好的测试用例能够发现至今尚未发现的错误;
\n⑧一个成功的测试是发现了至今尚未发现的错误。
\n软件侧试的准则:
\n①所有测试都应追溯到需求;
\n②严格执行测试计划,排除测试的随意性;
\n③充分注意测试中的群集现象:
\n④程序员应避免检查自己的程序;
\n⑤穷举测试不可能;
\n⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
4.C此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出.可知答案为C。
5.B
6.B1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
7.C
8.A
9.C
10.A解析:由于本题定义的是共用体,所以成员表列中的整型变景x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
11.D
12.C
13.B
\n栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆作用,栈可以采用顺序存储,也可以采用链式存储。
\n
14.C解析:将变量a按位求反,再与b按位与,最后左移1位。9的二进制表示为00001001,020的二进制表示为00010000。a按位求反为11110110,再与b按位与结果为00010000,左移1位结果为00100000。按八进制输出为040。
15.A解析:一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。
16.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。
17.C解析:本题考查的知识点是赋值语句的基本知识。在表达式的运算中,双目赋值运算符的格式为“变量二表达式”,单目运算符一般形式为“运算符表达式”或“表达式运算符”。常量和表达式是不能被赋值的。选项A为复合表达式,首先计算(i=2,++i)的值,然后赋值给n,故选项A正确;选项B为简单自加运算,故选项B正确;选项C在表达式++(i+1);中,(i+1)不是变量,该表达式的值为常量,而在++运算中,其运算对象必须为变量,故选项C错误;选项D中为复合赋值表达式,正确.所以应当选择C。
18.D解析:本题考查的知识点是do-while循环结构循环执行条件的判断.使用do-while语句必须注意以下几点:
先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,
如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。
C语言中的do—while语句是在表达式“真”时重复执行循环体。
在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。
19.A
20.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。
21.str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:函数huiwen中开始定义了两个字符指针p1和p2,并让p1指向sb的开始位置,所以p2应该指向str的尾部,即&str[strlen(str)-1]或写成str+strlen(str)-1或者其他等价形式。然后使用一个循环,循环str的长度的一半次数,比较p1和p2的内容,并分别递增和递减这两个指针。若有不同,则让标志t为1,并跳出循环。所以最后一个if语句应该为判断标志t是否为1,即应该填t==0或者其它等价形式。在主函数中,应该输出huiwen()函数的返回结果,即最后一空应该填huiwen(str)。
22.max=(a>b)?a:bmax=(a>b)?a:b解析:本题考查三目运算符的用法,条件表达式的一般形式为:
表达式1?表达式2:表达式3
所以,本题可以写成(a>b)?a:b,它是一个条件表达式,执行顺序是:如果条件(a>b)为真,则条件表达式取值a,否则取值b。
23.x=11x=11解析:在对无符号数的右移是高位补0。
24.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。
25.-32768~32767
26.77解析:在C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
27.*t*t解析:程序中,(a+n)代表字符串s最后一个字符后的,'\\0',根据题意,'\\0'所在位置应该赋值为字符串t的第一个字符,字符中t的其他字符根据循环,依次赋值到,所指字符串的尾部,所以[14]应填:*t。
28.逻辑数据模型逻辑数据模型解析:数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型、物理数据模型。
29.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
30.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
31.242424
32.structDATEd={2006101};structDATEd={2006,10,1};解析:在C语言中,结构体变量定义语句的一般形式如下:
struct<结构体名><结构体对象名>[=<初始化列表>];
在本题中,<结构体名>是DATE,<结构体对象名>题目要求为d,而可有可无的<初始化列表>本题要求为{2006,10,1}。故应该填structDATEd={2006,10,1};。
33.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。
34.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x、e.a、e.b占用同一段内存单元。执行语句e.b=2;后,e.in.x=e.a=e.b=2;执行语句e.in.x=e.a*e.b;时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。程序最后的输出结果为4,8。
35.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。
36.8168,16解析:float(*p1)(float)是定义p1为指向函数的float型的指针变量。因此p1=f1;p2=f2;表示p1指向函数f1,p2指向函数f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面将p1与p2互换,y2=f1(f2(2.0))=16。
37.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。
38.SOSO解析:题中需要注意两个问题:一是for循环的修正表达式共执行两次“i-”操作;二是*p[i]是对某个字符的引用。
39.1212解析:do…while循环的一个比较显著的特点是:先执行一次循环体然后再判断循环的条件是否满足,若满足则接着进入下一次循环,否则就退出循环。注意:3种循环结构的比较。
40.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,循环条件不成立,则退出循环。
41.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。
42.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
43.A
44.A解析:本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留下”字符的算法,以前的题目亦是如此。用str[i]从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意j的下标变化、初值及最后加串结束符'\\0'。
45.A解析:考查用指针来引用字符数组元素的方法。指针p1+k相当于指针p1向后移动了k个字符的位置,指针p2同理。
46.D解析:字符串必须以‘\\0’为结束符。
47.DD)【解析】需求分析是软件定义时期的最后一个阶
\n段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
48.B解析:我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。所以答案是选项B。A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。
49.B解析:在面向对象的程序设计中,一个对象是一个可以独立存在的实体。各个对象之间相对独立,相互依赖性小。所以,选项B错误,应为本题的正确答案。
50.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
51.C解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。
52.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。
53.B解析:考查函数的递归调用。n=0或n=1是递归的终止条件,然后利用已知值逐步递推求出未知值。通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。
54.B
55.B解析:在C语言中,合法的标识符由字母,数字和下划线组成(故选项A不正确),并且第一个字符必须为字母或者下划线(故选项B和选项D不正确).所以,B选项为所选.
56.A
57.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
58.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。
59.C解析:本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即20。然后以八进制的形式输出a+'a'-'A'的值为97对应的八进制数141,由于最后一个表达式b没有对应输出格式的输出项表列就不会输出。
60.C解析:数据库设计是指,在已有数据库管理系统的基础上建立数据库的过程,选项A与B错误,选项C正确。
61.A本题主要考查逗号运算符。在本题的程序中,首先定义两个整型变量a和b,并分别赋初值为21和11,然后用输出语句对由a和b组成的表达式进行输出。输出语句的输出格式表明只输出一个数据,但在后面的输出列表中则有两个待输出的表达式。
--a+b,--b+a的运算顺序是首先运算--a+b,然后由于--和+运算符的优先级高于逗号运算符,因此,运算--b+a,最后执行逗号运算符。
运算--a+b的结果为31,但此时变量a的值变为了20,然后运算--b+a得到的结果为30,根据逗号运算符的特点,逗号运算符的结果为最后一个表达式的结果,因此,最后输出的30,本题正确的答案选A。
62.A
63.C对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
64.A将a数组里元素赋值给b数组,直到数组a的末尾,所以选择A)。
65.D在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。
66.B
67.D本题主要考查字符数组的引用。题目中定义了一个大小为10的字符数组str。下面分别分析每个选项。
在选项A中,从scanf('%s',&str);语句的输入列表&str可以知道此语句不正确,因为str是数组名,本身就表示一个地址,再加一个取地址符&,使表示方法不正确。
在选项B中,由于printf('%c',str);语句的输出格式表示输出单个字符,而输出列表中的str表示一个地址,而不是数值,表示方法不对。
在选项C中,由于printf('%s',str[0]);语句的输出格式表示输出一个字符串,而输出列表中的str[0]表示一个字符,表示方法不对。
在选项D中,由于printf('%s',str);语句的输出格式表示输出一个字符串,而输出列表中的str表示一个字符串的首地址,通过这个方式可以实现输出str所指向的字符串。
68.B结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。所以数据流程图是在需求分析阶段使用的。
69.Dfun函数中的变量X为静态局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代经济环境下的市场动态与趋势分析
- 1 有余数的除法 第二课时(说课稿)-2023-2024学年二年级下册数学苏教版
- 2023三年级英语下册 Unit 1 My Body第1课时说课稿 陕旅版(三起)
- 6 有多少浪费本可避免 第一课时 说课稿-2023-2024学年道德与法治四年级下册统编版001
- 2024年八年级物理下册 12.1杠杆说课稿 (新版)新人教版001
- 《14学习有方法》(说课稿)-部编版(五四制)道德与法治二年级下册
- 2023九年级语文下册 第三单元 11 送东阳马生序说课稿 新人教版001
- Unit8 We're twins(说课稿)-2023-2024学年译林版(三起)英语三年级下册
- 2024年五年级英语上册 Unit 5 Can you tell me the way to the supermarket说课稿 陕旅版(三起)
- Unit 6 Our rules(说课稿)-2024-2025学年辽师大版(三起)(2024)英语三年级上册
- 亲历电子病历系统分级评价四级参评纪实-2022医院信息化
- 凸优化在经济学与金融学中的应用
- 【钢铁冶炼】-锑冶炼先关工艺
- 渐变方格模板
- 大学生职业生涯发展规划知到章节答案智慧树2023年齐鲁师范学院
- 环境因素汇总识别及评价表(保卫部 )
- GB/T 9123.1-2000平面突面钢制管法兰盖
- 元代文学-绪论课件
- 2023年版劳动实践河北科学技术出版社一年级下册全册教案
- 方案报审表(样表)
- pp顾问的常见面试问题
评论
0/150
提交评论