高考语文四川省普通高等学校计算机应用知识和能力第二十九次等级考试Word文件下载.docx
《高考语文四川省普通高等学校计算机应用知识和能力第二十九次等级考试Word文件下载.docx》由会员分享,可在线阅读,更多相关《高考语文四川省普通高等学校计算机应用知识和能力第二十九次等级考试Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
15(A)可行性分析(B)程序编码
(C)详细设计(D)需求分析
第二部分C与C++语言程序设计(共85分)
一、单项选择题(每小题1分,共10分)
1.下列关于C++语言类的描述中错误的是(16)。
16(A)类用于描述事物的属性和对事物的操作
(B)类与类之间通过封装而具有明确的独立性
(C)类与类之间必须是平等的关系,而不能组成层次结构
(D)类与类之间可以通过一些方法进行通信和联络
2.C++中,已知有如下定义:
constintD=5;
inti=1;
longintf=0;
charc=15;
则下列选项错误的是(17)。
17(A)++i;
(B)D--;
(C)c++;
(D)--f;
3.下面关于类和对象的描述中,错误的是(18)。
18(A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量
(B)类和对象之间的关系是抽象和具体的关系
(C)对象是类的实例,一个对象必须属于一个已知的类
(D)类是具有共同行为的若干对象的统一描述体
4.设有定义:
intn=0,*p=&
n,**q=&
p,则下列选项中正确的赋值语句是(19)。
19(A)p=5;
(B)*q=5;
(C)q=p;
(D)*p=5;
5.设有定义:
chars[20]="
ab\101\ncd"
;
则sizeof(s)和strlen(s)的值为(20)。
20(A)6,6(B)20,6(C)20,7(D)20,10
6.在C语言的函数中(21)。
21(A)必须有形参(B)形参必须是变量名
(C)可以有也可以没有形参(D)数组名不能作为形参
7.下列程序输出结果是(22)。
#include"
stdio.h"
#defineSQR(x)x*x
voidmain()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("
%d\n"
a);
}
22(A)10(B)1(C)9(D)0
8.已知学生记录描述如下
structstudent
{intno;
charname[20];
charsex;
struct
{intyear;
intmonth;
intday;
}birth;
};
structstudents;
设变量s中“生日”是“1982年5月29日”,对“生日”的正确赋值方式是(23)。
23(A)year=1982;
month=5;
day=29;
(B)birth.year=1982;
birth.month=5;
birth.day=29;
(C)s.year=1982;
s.month=5;
s.day=29;
(D)s.birth.year=1982;
s.birth.month=5;
s.birth.day=29;
9.有下列程序输出结果是(24)。
#include<
stdio.h>
voiddig(char*s)
{
char*p=s;
while(*s)
*s>
='
0'
&
&
*s<
9'
?
s++:
(*p++=*s++);
*p='
\0'
char*str="
A1B2C3"
dig(str);
puts(str);
24(A)ABC(B)A1B2C3(C)A1B2C(D)ABC3
10.在下面的选项中,赋值语句错误的是(25)。
25(A)i++;
(B)a=(b=(c=2,d=3));
(C)a=a<
a;
(D)a=a*b=2;
二、读程序回答问题(每个选择3分,共45分)
1.读下面程序并回答问题:
voidfun1(intx,inty)
intt;
t=x;
x=y;
y=t;
voidfun2(intx[])
t=x[0];
x[0]=x[1];
x[1]=t;
inta[2]={1,2},b[2]={1,2};
fun1(b[0],b[1]);
fun2(a);
%d,%d,%d,%d\n"
a[0],a[1],b[0],b[1]);
(1)下列说法错误的是(26)。
26(A)数组名作为函数参数进行传递,传递的是数组的首地址
(B)数组名作为函数参数时,形参数组与实参数组共用内存空间
(C)普通变量作为函数参数进行传递,实参与形参之间发生的是单向值传递
(D)数组名作为函数参数时,传递的是数组元素的值
(2)程序的运行结果是(27)。
27(A)1,2,1,2(B)1,2,2,1(C)2,1,1,2(D)2,1,2,1
2.读程序并回答问题。
intfun()
staticintc=0;
c++;
returnc;
voidmain(intargc,char*argv[])
intx,i,j;
for(i=1;
i<
argc;
i++)
for(j=0;
argv[i][j]!
j++)
x=fun();
x*argc);
(1)若程序经编译连接后生成可执行文件2_3.exe,若键入以下命令行:
2_3abcd123
则程序的运行结果为(28)。
28(A)3(B)21(C)9(D)0
(2)若将函数fun中的static去掉,变为intc=0;
程序经编译后连接生成可执行文件2_3.exe,若键入以下命令行:
则程序的运行结果为(29)。
29(A)3(B)30(C)22(D)10
3.读程序并回答问题
string.h>
voidfun(char*s,intp1,intp2)
chart;
while(p1<
p2)
{
t=*(s+p1);
*(s+p1)=*(s+p2);
*(s+p2)=t;
p1++;
p2--;
}
charstr[10];
inti;
for(i=0;
9;
str[i]='
A'
+i;
fun(str,0,strlen(str)-1);
(1)第一个puts(str)的输出结果为(30)。
30(A)AHCFEDGBI(B)IBGDEFCHA
(C)ABCDEFGHI(D)IHGFEDCBA
(2)第二个puts(str)的输出结果为(31)。
31(A)AHCFEDGBI(B)IBGDEFCHA
4.阅读下面程序,回答问题。
intn,m,s=0,t=1;
scanf("
%d"
&
m);
for(n=1;
n<
=m;
n++)
t*=n;
s+=t;
s);
程序的功能是(32)
32(A)实现1的阶乘至m的阶乘的求和
(B)求m的阶乘
(C)1到m的求和
(D)实现1至m-1的阶乘的求和
5.读程序,回答问题。
chars[80];
inti,j;
gets(s);
for(i=j=0;
s[i]!
if(s[i]!
c'
)s[j++]=s[i];
s[j]='
puts(s);
程序运行时输入cctv10,其输出结果为(33)。
33(A)cc(B)tv10(C)ctv10(D)tv10cc
6.有下列程序:
charfunc(char*s)
while(*p!
)
p++;
returnp-s;
\n%d\n"
func("
Hello!
"
));
getch();
(1)程序的运行结果是(34)。
34(A)3(B)Hello!
6(C)无输出(D)6
(2)指针变量的运算不可以(35)。
35(A)指针变量加整形变量(B)指针变量减整形变量
(C)指针变量加指针变量(D)指针变量减指针变量
7.以下是一个C++程序,读程序写出程序运行结果。
iostream.h>
intnum=0,i=8;
do
{i--;
num++;
}while(--i);
cout<
<
num<
endl;
程序的运行结果是(36)。
36(A)2(B)0(C)4(D)5
8.有下列程序:
{charc='
intk=0;
{switch(c++)
{case'
:
k++;
break;
case'
B'
k--;
C'
k+=2;
D'
k%=2;
continue;
E'
k*=10;
break;
default:
k/=3;
}while(c<
'
G'
);
k=%d\n"
k);
(1)程序输出结果是(37)。
37(A)k=3(B)k=4(C)k=2(D)k=0
(2)本程序中continue的作用(38)。
38(A)与break一样(B)不起任何作用
(C)开始下一次循环(D)出现语法错误
9.有下列程序
intw=3;
intfun(intk)
if(k==0)returnw;
return(fun(k-1)*k);
intw=10;
fun(5)*w);
输出结果是(39)。
39(A)360(B)3600(C)1080(D)1200
10.有下列程序
charch[2][5]={"
6934"
"
8254"
},*p[2];
inti,j,s=0;
2;
p[i]=ch[i];
p[i][j]>
p[i][j]<
j+=2)
s=10*s+p[i][j]-'
输出结果是(40)。
40(A)6385(B)69825(C)63825(D)693825
注意:
①请把下面“程序填空”中各小题答案写在主观题答题纸上
②每一个空只填一个语句或一个语句所缺的部分内容
三、程序填空(每空2分,共30分)
1.函数fun的功能是:
找出N行M列二维数组元素中的最大值,并作为函数值返回,最大值的行列下标通过形参指针带回main函数中。
请填空。
#defineN3
#defineM4
intfun(inta[N][M],int*row,int*col)
inti,j,r,c;
r=c=0;
N;
j<
M;
if(a[i][j]>
①){r=i;
c=j;
②;
*col=c;
③;
inta[N][M]={1,2,3,4,5,6,7,8,9,10,11,12};
introw,col,max;
max=fun(a,&
row,&
col);
max=%d,row=%d,col=%d\n"
max,row,col);
2.程序的功能是:
求出分数序列2/1,3/2,5/3,8/5,13/8……前20项之和,请填空。
{doublex=2,y=1,t,s=0;
=20;
s=①;
t=②;
x=③;
s=%f\n"
3.有5个学生的成绩需要保存在文件score.dat文件中,保存格式如下:
姓名,年龄,成绩<
CR>
请填空。
{FILE*fp;
charname[80];
intage;
floatscore;
fp=fopen(①,"
w"
5;
{printf("
请输入第%d个学生的信息\n"
i);
姓名:
%s"
name);
年龄:
age);
成绩:
fprintf(fp,"
%s,%d,%f\n"
name,age,score);
4.下列程序的功能是:
从5个字符串中找出最长的那个字符串。
#defineN5
#defineM81
char*fun(char(*sq)[M])
{inti;
①;
sp=sq[0];
if(②)sp=sq[i];
returnsp;
{charstr[N][M],*longest;
pleaseenter5string:
gets(str[i]);
puts(str[i]);
longest=③;
\nThelongeststring:
puts(longest);
5.下面程序的功能是:
由25人坐成圆圈,先从任一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1,2,3,4,…),数到5的倍数的出圈,剩下的继续报数,求最后出圈的编号。
inta[26],j,n,count;
for(j=1;
=25;
j++)a[j]=j;
j=1;
count=0;
{if(a[j]!
=0)
{n++;
if(n%5==0)
{②;
if(count==24)printf("
j);
count++;
j++;
if(j>
25)j=1;
while(③);
}