真题笔试部分Word下载.docx
- 文档编号:22903180
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:50
- 大小:35.25KB
真题笔试部分Word下载.docx
《真题笔试部分Word下载.docx》由会员分享,可在线阅读,更多相关《真题笔试部分Word下载.docx(50页珍藏版)》请在冰豆网上搜索。
z);
程序的输出结果是:
____B______。
Ax/y&
z=0Bx/y&
z=1Cx^y&
z=0Dx^y&
~z=1
//优先诀
括号成员第一;
//括号运算符[]()成员运算符.->
全体单目第二;
//所有的单目运算符比如++--+(正)-(负)指针运算*&
乘除余三,加减四;
//这个"
余"
是指取余运算即%
移位五,关系六;
//移位运算符:
<
>
>
,关系:
<
=<
=等
等于(与)不等排第七;
//即==!
=
位与异或和位或;
//这几个都是位运算:
位与(&
)异或(^)位或(|)
"
三分天下"
八九十;
逻辑或跟与;
//逻辑运算符:
||和&
&
十二和十一;
//注意顺序:
优先级(||)底于优先级(&
)
条件高于赋值,//三目运算符优先级排到13位只比赋值运算符和"
"
高//需要注意的是赋值运算符很多!
逗号运算级最低!
//逗号运算符优先级最低
//结合决
每种运算符都有一个优先级,优先级是用来标志运算符在表达式中的运算顺序的。
优先级高的先做运算,优先级低的后做运算,优先级相同的右结合性决定计算顺序。
大多数运算符都是按从左到右计算,只有三类运算符的结合性是从右到左。
他们是:
单目、三目和赋值。
8.定义一个返回值为整型的函数指针变量,下列哪一个是正确的___C___。
Aint*p()Bint(*p)[]Cint(*p)()Dintp()
9.main()
inti,j;
do{
if(j%5==0)i++;
j++;
}while(i!
=5)
}
修订为:
main()
inti=0,j=0;
if(j%5==0)i++;
j++;
}while(i!
=5);
程序运行结束后j的值为____D___。
A25B20C26D21
10.若intx=2,y=1,z=0,下列几个表达式的值分别为_____A_____。
⑴x|y&
z⑵x!
=y!
=z⑶~x>
y
A0,1,0B0,1,1C0,0,0D1,1,0
二读程序,并选出正确的答案(每空3分,共45分)
1.#include<
intfind(char*s1,char*s2)
intt;
char*p1,*p2;
for(t=0
s1[t]
t++)
p1=&
p2=s2
while(*p2&
*p2==*p1)//先算*p2==*p1
p1++;
p2++;
if(!
*p2)return(t);
return-1
if(find(“cisfun”,”is”)!
=-1)
L1:
printf(“is”);
if(find(“cisfun”,”Basic”)!
L2:
printf(“basic\n”);
(11)行L1输出的结果为____A_____。
AisBiCcisfunD没有输出
(12)行L2输出的结果为_____D___。
ABasicBcisfunCbasicD没有输出
2.main()
intw=2,k;
for(k=0;
k<
3;
k++)
w=f(w);
printf(“%d\n”,w);
f(intx)
inty=0;
staticz=3;
y++;
z++;
return(x+y+z)
程序结束后,y的值为____B____。
(13)A0B1C2D3
程序结束后,w的值为___A___。
(14)A20B7C28D13
3.intx1=30,x2=40;
intx3=10,x4=20
sub(x3,x4)
sub(x2,x1);
printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);
sub(intx,inty)
x1=x
x=y
y=x1
L2
:
printf(“%d,%d\n”,x,y)
L1行输出结果为______D_________。
(15)A10,20,30,40B10,20,40,10
C20,10,40,30D10,20,40,40
L2行输出结果为_______B________。
(16)A10,20B20,10C10,20D20,10
40,1010,4010,4040,10
4.main()
intx=1,i=1
for(
x<
50
i++)
if(x>
10)break
if(x%2
!
=2){x+=3
continue
x-=1
printf(”%d\n”,x)
17该语句输出为____D______。
printf(”%d\n”,i)
18该语句输出为_____D______。
intx=1,i=1;
for(;
50;
10)break;
if(x%2!
=0){x+=3;
continue;
x-=1;
printf("
%d\n"
x);
//D
i);
(17)A11B14C10D12
(18)A7B8C9D10
5.以下程序不用第三个变量实现两个数对调的操作。
程序中(19)为____A_____,(20)为____B______,(21)为____B______。
#includ<
inta,b;
scanf(“%d,%d”&
a,&
b);
a=_____A_____;
(19)
b=_____B_____;
(20)
c=______B____;
(21)
printf(“%d,%d”,a,b);
#include<
scanf("
%d,%d"
&
a=a+b;
b=a-b;
a=a-b;
printf("
a,b);
(19)Aa+bBa-bCa*bDa/b
(20)Aa+bBa-bCb-aDa*b
(21)Aa+bBa-bCb*aDa/b
6.#include<
voidstringcat(char*s,char*t)
while(*(s+i))i++;
while(s[i++]=t[j++]);
chars[]=”123”,t[]=”456”;
stringcat(s,t);
printf(“%s\n”,s);
程序运行结果为:
____C_____。
(22)A123B456C123456D456123
在程序中,若将指针改为数组,stringcat函数的形式为:
voidstringcat(chars[],chart[])
while(*s[i]!
=’\0’)i++;
while(s[i]!
则程序运行后的结果为____C___。
(23)A123B456C123456D456123
intx=10,y;
y=x++;
printf(“%d,%d\n”,(++x,y),y++);
//表达式从右向左解
则程序运行后的结果为____D___。
(24)A11,11B10,10C10,11D11,10
8.main()
structdata
inti;
floatf;
doubled;
unionu{charu1[5];
longu2[2];
}ud;
};
printf(“%d\n”,sizeof(structsata));
#include"
stdio.h"
%d\n"
sizeof(structdata));
_______C__。
//按TC长度计算
(25)A27B25C22D19
三程序填空(每小题2分,共30分)
1.下面程序删除字符串中的所有空格(包括TAB符,回车符、换行符)。
请在程序的对应位置处填入。
(函数isspace()用于测试字符是否为空格)
#include<
ctype.h>
charstr[81]={“123456789”};
delspace(str);
puts(str);
delspace(str)char*str;
inti,t;
charis[81];
for(i=0,t=0;
____(26)str[i]或str[i]!
=NULL或str[i]=0____;
_____(27)++i或i++_____)
isspace(____(28)*(str+i)或str[i]_____))is[t++]=str[i];
is[t]=’\0’;
strcpy(str,is);
//原型:
externintisspace(intc);
//用法:
//功能:
判断字符c是否为空白符
//说明:
当c为空白符时,返回非零值,否则返回零。
//空白符指空格、水平制表、垂直制表、换页、回车和换行符。
//从键盘输入五个字符组成的单词,判断该单词是不是hello,并显示结果。
staticcharstr[]={‘h’,’e’,’l’,’l’,’o’};
charstr1[5];
inti,____(29)flag_____;
for(i=0;
i<
5;
str1[i]=____(30)getchar()______;
flag=0;
if(str1[i]!
=___(31)str[i]___)
flag=1;
break;
if(flag)
printf(“Thiswordisnothello”);
else
printf(“Thiswordidhello”);
3.以下程序把从键盘输入的字符存放到一个文件中,用“#”作为结束符。
请按题意要求填空完善程序。
FILE*fp;
charch,fname[10];
printf(“Inputthefilename:
\n”);
gets(fname);
if(______(32)fp=fopen(fname,”w”)________==NULL)
printf(“cannotopenfile\n”);
exit(0);
while((_____(33)ch=getchar()____)!
=’#’)
fputc(ch,______(34)fp______);
fclose(fp);
4.该程序是完成文件的换名拷贝操作(类似于DOS的COPY命令)。
请将程序补充完善。
main(intargc,char*argv[])
intc;
FILE*fpr,*fw;
if(argc!
=3)
puts(“\>
Usage:
copyfilefilename1filename2”);
if((fpr=fopen(____(35)argv[1],”r”____))==NULL)
printf(“\>
file%sCannotopen\n”,argv[1]);
exit
(1);
if((fpr=fopen(argv[2],____(36)”w”____))==NULL)
file%sCannotopen\n”,argv[2]);
exit
(2);
while((c=______(37)fgetc_______(fpr))!
=EOF)
fputc(c,____(38)fpw_____);
fclose(fpr);
fclose(fpw);
5.该程序是利用折半查找法在一个数组中进行数据检索。
当查找到时,给出数据在数组中的位置;
查找不到,给出数据不在数组中的信息。
请将程序完善。
#definen10
inta[]={1,2,3,4,5,6,7,8,9,10};
charss(x,m)intx,m;
charz;
if(x==a[m])z=’t’;
else
if(x<
a[m])z=’p’;
elsez=’r’;
return(z);
intp,r,m,loop,x;
charc;
scanf(“%d”,&
x);
p=0;
r=n-1;
m=(r-p)/2;
loop=1;
while(loop&
(r-p))
c=ss(x,m);
if(c==’t’)
loop=0;
printf(“元素在数组中,其位置为:
%d\n”,m);
else
if(c==’p’)
{p=p;
_____(39)r=m_______;
m=(r-p)/2+p;
{_____(40)p=m+1______;
r=r;
if(loop)printf(“%d数据不在数组中\n”,x);
答案:
选择题
(1)C
(2)C(3)B(4)C(5)C(6)C(7)B(8)C(9)C(10)A
二、选择题
(11)A(12)D(13)B(14)A(15)D(16)B(17)D(18)D(19)A(20)B
(21)B(22)C(23)C(24)D(25)C
三、程序填空
(26)str[i]或str[i]!
=NULL或str[i]=0(27)++i或i++(28)*(str+i)或str[i]
(29)flag(30)getchar()(31)str[i](32)fp=fopen(fname,”w”)(33)ch=getchar()
(34)fp(35)argv[1],”r”(36)”w”(37)fgetc(38)fpw(39)r=m(40)p=m+1
真题二
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)
1.C++语言中所定义的类实际上也是一种数据类型。
A
2.数据结构的表示包括数据逻辑结构和存储结构两个方面的表示。
A
3.冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。
B
4.线性表采用链式储存时,结点的存储地址必须是连续的。
5.栈顶的位置是随着进栈和退栈操作而变化的。
6.在软件生存期内,软件必须进行维护,维护不会产生副作用。
7.采用动态重定位进行地址转换,允许程序在执行过程中在内存中移动。
而静态重定位则不可以。
8.在软件的需求分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。
9.需求分析阶段的主要任务应由系统分析员主持完成。
10.操作系统是最最重要的系统软件。
二、选择题(每小题1分,共5分)
1.以下特征中哪个不是算法得特征(D)
A可行性B确定性C有穷性D唯一性
2.在多道程序设计系统中,处于后备状态的作业要经过(B)调度后才能真正执行
A作业调度B作业调度和进程调度C进程调度D作业调度和设备调度
3.为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。
“缓冲区”的结构多为(C)。
A顺序栈B链栈C顺序队列D循环队列
4.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A结合B程序的效率C封装D抽象
5.结构化程序设计主要强调的是(A)
A程序易读性B程序的效率C程序设计语言的先进性D程序的规模
第二部分
C与C++语言程序设计
(共85分)
一、单项选择题(每小题1分,共10分)
1.下列程序运行结果是(B)
#include<
voidswap(intx,inty)
x^=y;
y^=x;
inta=010,b=1;
swap(a,b);
%d,%d\n"
A10,1B8,1C1,8D1,10
2.有以下程序
malloc.h>
char*p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf(“%s%s”,p,q);
%s,%s\n"
p,q);
若输入:
abcdef<
回车>
,则输出为(def,def)
3.下列程序的输出是()
iostream.h>
inta=-1,b=4,k;
k=(a++<
=0)&
(!
(b--<
=0));
cout<
a<
b<
endl;
输出103
4.关于类概念的描述中,(A)是错误的
A类就是C语言中的结构体类型
B类是创建对象的样板
C类是具有共同行为的若干对象的统一描述体
D类是抽象数据类型的实现
5.下列程序的运行结果是()
Main()
Voidfu();
fu();
}.
Voidfu()
Staticinta=0;
Printf(“a=%d,”,!
a?
1:
8);
运行结果a=1,a=1
6.以下程序中,输出值是()
#defineM3
#defineNM+1
#defineNNN*N/2
Mai()
Printf(“%d\n”,NN);
输出值6
7.若有语句:
chars1[]=”string1”,s2[8],*s3,*s4=”string2”;
则(D)是对库函数strcpy的错误调用
A)strcpy(s1,“string2”);
B)strcpy(s4,“string1”);
A)strcpy(s3,“string1”);
A)strcpy(“string2”,s2);
8.以下(C)为不正确的if语句
A)if(x>
y);
B)if(x==y)x+=y;
C)if(x!
=y)x=x*xelsex+=1;
D)if(x>
y){x++;
y++;
9.关于C++函数参数的描述中,错误的是(D)
A实参个数与形参个数可以不同
B缺省参数必须放在形参表的最右端
C用引用变量做形参可以实现地址传递
D重载函数可以有缺省参数
10.若有如下定义:
structnode
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 笔试 部分