模拟试题9Word格式.docx
- 文档编号:19361751
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:26
- 大小:37.89KB
模拟试题9Word格式.docx
《模拟试题9Word格式.docx》由会员分享,可在线阅读,更多相关《模拟试题9Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
D)下划线
(13)以下不能正确计算代数式
值的C语言表达式是
A)1/3*sin(1/2)*sin(1/2)
B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3
D)1/3.0*pow(sin(1.0/2),2)
(14)以下能正确定义且赋初值的语句是
A)intn1=n2=10;
B)charc=32;
C)floatf=f+1.1;
D)doublex=12.3E2.5;
(15)有定义语句"
intx,y;
"
。
若要通过"
scanf("
%d,%d"
&
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是
A)1112↙
B)11,12↙
C)11,12↙
D)11,↙12↙
(16)以下叙述中正确的是
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
(17)若x是int型变量,且有下面的程序片段:
for(x=3;
x<
6;
x++)printf((x%2)?
("
**%d"
):
##%d\n"
),x);
上面程序片段的输出结果是
A)**3
##4
**5
B)##3
**4
##5
C)##3
**4##5
D)**3##4
**5
(18)有以下程序:
main()
{intk=4,n=0;
for(;
n<
k;
)
{n++;
if(n%3!
=0)continue;
k--;
}
printf("
%d,%d\n"
k,n);
}
程序运行后的输出结果是
A)1,1
B)2,2
C)3,3
D)4,4
(19)有以下程序
main()
{intk=5,n=0;
while(k>
0)
{switch(k)
{
default:
break;
case1:
n+=k;
case2:
case3:
k--;
printf("
%d\n"
n);
A)0B)4C)6D)7
(20)有以下程序
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&
a[1];
for(x=1;
3;
x++)y+=p[x];
y);
A)10B)11C)14D)15
(21)下列选项中正确的语句组是
A)chars[8];
s={"
Beijing"
B)char*s;
C)chars[8];
s="
D)char*s;
(22)以下不能正确定义二维数组的选项是
A)inta[2][2]={{1},{2}};
B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3}
D)inta[2][]={{1,2},{3,4}}
(23)以下能正确定义一维数组的选项是
A)intnum[]
B)#defineN100
intnum[N]
C)intnum[0..100]
D)intN=100;
intnum[N]
(24)有以下程序
#include<
string.h>
{charp[]={'
a'
'
b'
c'
},q[10]={'
};
%d%d\n"
strlen(p),strlen(q));
以下叙述中正确的是
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;
但q数组中字符长度为3
C)由于q数组中没有字符串结束符,长度不能确定;
但p数组中字符长度为3
D)由于p和q数组中没有字符串结束符,故长度都不能确定
(25)有以下程序
voidsum(inta[])
{a[0]=a[-1]+a[1];
{inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&
a[2]);
a[2]);
}
A)6B)7C)5D)8
(26)有以下程序
inta=2;
intf(intn)
{staticinta=3;
intt=0;
if(n%2){staticinta=4;
t+=a++;
else{staticinta=5;
returnt+a++;
{ints=a,i;
for(i=0;
i<
i++)s+=f(i);
s);
A)26B)28C)29D)24
(27)有以下程序
typedefstruct{intb,p;
}A;
voidf(Ac)/*注意:
c是结构变量名*/
{intj;
c.b+=1;
c.p+=2;
{inti;
Aa={1,2};
f(a);
a.b,a.p);
A)2,3B)2,4C)1,4D)1,2
(28)有以下程序
main(intargc,char*argv[])
{intn=0,i;
for(i=1;
argc;
i++)n=n*10+*argv[i]-'
0'
;
编译连接后生成可执行文件tt.exe。
若运行时输入以下命令行
tt12345678
A)12B)12345C)12345678D)136
(29)当用"
#defineF37.5f"
定义后,下列叙述正确的是
A)F是float型数
B)F是char型数
C)F无类型
D)F是字符串
(30)以下程序的功能是:
给r输入数据后计算半径为r的圆面积s,程序在编译时出错。
/*Beginning*/
{intr;
floats;
%d"
r);
s=*∏*r*r;
s=%f\n"
出错的原因是
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
(31)有以下程序
{inta[3][3],*p,i;
p=&
a[0][0];
for(i=0;
9;
i++)p[i]=i+1;
a[1][2]);
A)3B)6C)9D)2
(32)在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是
A)auto
B)register
C)extern
D)static
(33)设有定义:
intn1=0,n2,*p=&
n2,*q=&
n1;
,以下赋值语句中与n2=n1;
语句等价的是
A)*p=*q;
B)p=q;
C)*p=&
D)p=*q;
(34)有以下程序段
typedefstructNODE
{intnum;
structNODE*next;
}OLD;
A)以上的说明形式非法
B)NODE是一个结构体类型
C)OLD是一个结构体类型
D)OLD是一个结构体变量
(35)有以下程序
structSTU
{charname[10];
intnum;
floatTotalScore;
};
voidf(structSTU*p)
{structSTUs[2]={{"
SunDan"
20044,550},{"
Penghua"
20045,537}},*q=s;
++p;
++q;
*p=*q;
{structSTUs[3]={{"
YangSan"
20041,703},{"
LiSiGuo"
20042,580}};
f(s);
%s%d%3.0f\n"
s[1].name,s[1].num,s[1].TotalScore);
A)SunDan20044550
B)Penghua20045537
C)LiSiGuo20042580
D)SunDan20041703
(36)有以下程序
{charname[10];
intnum;
voidf(char*name,intnum)
20044},{"
20045}};
num=s[0].num;
strcpy(name,s[0].name);
20041},{"
20042}},*p;
s[1];
f(p->
name,p->
num);
%s%d\n"
p->
A)SunDan20042
B)SunDan20044
C)LiSiGuo20042
D)YangSan20041
(37)有以下程序
voidf(intb[])
for(i=2;
i++)b[i]*=2;
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
10;
i++)printf("
%d,"
a[i]);
A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10,
C)1,2,3,4,10,12,14,16,9,10,
D)1,2,6,8,10,12,14,16,9,10,
(38)以下程序的功能是进行位运算
{unsignedchara,b;
a=7^3;
b=~4&
a,b);
A)43
B)73
C)70
D)40
(39)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(40)有以下程序
stdio.h>
{FILE*fp;
intk,n,a[6]={1,2,3,4,5,6};
fp=fopen("
d2.dat"
"
w"
);
fprintf(fp,"
%d%d%d\n"
a[0],a[1],a[2]);
a[3],a[4],a[5]);
fclose(fp);
r"
fscanf(fp,"
%d%d"
k,&
n);
%d%d\n"
close(fp);
A)12
B)14
C)1234
D)123456
二、填空题
请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。
(1)软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【1】。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
(3)设有下列二叉树:
对此二叉树中序遍历的结果为【3】。
(4)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【4】的设计方法。
(5)数据结构包括数据的【5】结构和数据的存储结构。
(6)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<
回车>
,则输出结果是【6】。
{chara,b;
a=getchar();
b);
a=a-'
A'
+'
b=b*2;
%c%c\n"
(7)以下程序运行后的输出结果是【7】。
{inta=3,b=4,c=5,t=99;
if(b<
a&
&
a<
c)t=a;
a=c;
c=t;
if(a<
c&
b<
c)t=b;
b=a;
a=t;
%d%d%d\n"
a,b,c);
(8)以下程序运行后输入:
3,abcde↙,则输出结果是【8】。
move(char*str,intn)
{chartemp;
inti;
temp=str[n-1];
for(i=n-1;
i>
0;
i--)str[i]=str[i-1];
str[0]=temp;
{chars[50];
intn,i,z;
scanf("
%d,%s"
n,s);
z=strlen(s);
=n;
i++)move(s,z);
%s\n"
(9)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。
请填空。
voidfun(int,int,int(*)[4],int*);
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
%4d"
b[i]);
\n"
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
m;
i++)
{x=ar[i][0];
for(j=0;
j<
n;
j++)if(x<
ar[i][j])x=ar[i][j];
【9】=x;
(10)以下程序运行后的输出结果是【10】。
inta=5;
fun(intb)
{staticinta=10;
a+=b++;
%d"
a);
{intc=20;
fun(c);
a+=c++;
(11)以下程序运行后的输出结果是【11】。
#defineS(x)4*x*x+1
{inti=6,j=8;
S(i+j));
(12)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:
yes!
,否则函数返回字符串:
no!
,并在主函数中输出。
所谓回文即正向与反向的拼写都一样,例如:
adgda。
char*huiwen(char*str)
{char*p1,*p2;
inti,t=0;
p1=str;
p2=【12】;
=strlen(str)/2;
if(*p1++!
=*p2--){t=1;
break;
if(【13】)return("
elsereturn("
{charstr[50];
Input:
%s"
str);
【14】);
(13)以下程序运行后的输出结果是【15】。
structNODE
{intk;
structNODE*link;
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!
=q){
p->
k=++i;
p++;
q->
k=i++;
q--;
k=i;
5;
m[i].k);
(1)A
【解析】本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
(2)C
【解析】栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。
二者的区别是:
栈只允许在表的一端进行插入或删除操作,是一种"
后进先出"
的线性表;
而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种"
先进先出"
的线性表。
(3)B
【解析】二分法查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
设有序线性表的长度为n,被查元素为x,则二分查找的方法如下:
将x与线性表的中间项进行比较,若中间项的值等于x,则说明查到,查找结束;
若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;
若x大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找。
这个过程一直进行到查找成功或子表长度为0(说明线性表中没有这个元素)为止。
顺序查找又称顺序搜索。
顺序查找一般是指在线性表中查找指定的元素,其基本方法如
下:
从线性表的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示找到(即查找成功);
若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。
由此可见,对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。
(4)D
【解析】良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此,程序设计风格对保证程序的质量很重要。
主要应注意和考虑下述一些因素:
1.源程序要文档化;
2.数据说明的次序要规范化;
3.语句的结构应该简单直接,不应该为提高效率而把语句复杂化,避免滥用goto语句;
4.模块设计要保证低耦合、高内聚。
故本题答案为D。
(5)D
【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
软件生命周期的主要活动阶段是:
(1)可行性研究与计划制定。
确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
(2)需求分析。
对待开发软件提出的需求进行分析并给出详细定义。
编写软件规格说明书及初步的用户手册,提交评审。
(3)软件设计。
系统设计人员和程序设计人员应该在反复理解软件需求的基础上给出软件的结构、模块的划分、功能的分配以及处理流程。
(4)软件实现。
把软件设计转换成计算机可以接受的程序代码。
即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)