四川省计算机等级考试二级C语言笔试题第二十一次一Word下载.docx
- 文档编号:22115419
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:21.06KB
四川省计算机等级考试二级C语言笔试题第二十一次一Word下载.docx
《四川省计算机等级考试二级C语言笔试题第二十一次一Word下载.docx》由会员分享,可在线阅读,更多相关《四川省计算机等级考试二级C语言笔试题第二十一次一Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
)。
12(A)数据流图
(B)N-S图
(C)PDA图
(D)PDL语言
3.任何两个并发进程之间(
13
13(A)一定存在互斥关系
(B)一定存在同步关系
(C)一定彼此独立无关
(D)可能存在同步或互斥关系
4.进程从运行状态进入就绪状态的原因可能是(
14
14(A)被选中占有处理机
(B)等待某一事件
(C)等待的事件已发生
(D)时间片用完
5.算法指的是(
15
15(A)计算机程序
(B)解决问题的有限运算序列
(C)排序算法
(D)解决问题的计算方法
第二部分
C与C++语言程序设计
(共85分)
一、单项选择题(每小题1分,共10分)
1.以下程序运行后,输出结果是(
16
main()
{
inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a<
b);
printf(“%d,%d\n”,k,m);
}
16(A)0,0
(B)0,1
(C)1,0
(D)1,1
2.以下程序输出的结果是(
17
main()
{
int
m=5;
if(m++>
5)
printf(“%d”,m++);
else
printf(“%d”,m--);
17(A)7
(B)6
(C)5
(D)4
3.下列程序运行的结果是(
18
inta=10,b=11,c=12;
printf(“%d\n”,a>
c?
a:
d=a>
b:
b);
18(A)11
(B)0
(C)10
(D)12
4.已知:
inta,b;
下列switch语句中,(
19
)是正确的。
19(A)switch(a)
(B)switch(a+b)
{
casea:
a++;
break;
case1:
caseb:
b++;
case2:
}
}
(C)switch(a*b)
(D)switch(a/10+b)
{
case1,2:
a+b;
casea+b:
++a;
case3,4:
a-b;
casea-b:
--b;
5.下列程序由两个件f1.c和f2.c组成。
f1.c文件的内容:
#include<
stdio.h>
f2.c>
#defineN3
inti;
for(i=1;
i<
=N;
i++)
printf(“%d,”,sum(i));
f2.c文件的内容:
sum(intn)
intt;
staticints=0;
for(t=1;
t<
=n;
t++)
s+=t*t;
return(s);
程序的运行输出结果是(
20
20(A)1,5,14,
(B)1,2,3,
(C)1,6,20,
(D)1,4,9,
6.C++中,有以下定义:
inta,b;
若要从键盘输入变量a,b的值,则正确的输入语句是(
21
21(A)cin>
>
a>
b;
(B)cin<
<
a<
(C)cout>
(D)cout<
7.下列程序运行的结果是(
22
#include
<
#defineswap(x,y)
{x^=y;
y^=x;
x^=y;
inta=010,b=1;
swap(a,b);
printf(“%d,%d\n”,a,b);
22(A)1,8
(B)8,1
(C)10,1
(D)1,10
8.以下scanf函数调用中对结构体变量成员的错误引用是(
23
structstudent
charname[20];
intage;
intsex;
}stud[5],*p;
p=stud;
23(A)scanf(“%s”,stud[0].name);
(B)scanf(“%d”,&
stud[0].age);
(C)scanf(“%d”,p->
age);
(D)scanf(“%d”,&
(p->
sex));
9.在以下关于构造函数的描述中,错误的是(
24
24(A)构造函数可以重载
(B)构造函数可以带缺省形参值
(C)构造函数名必须与类同名
(D)构造函数可以带回返回值
10.下面对C++函数重载的描述中,错误的是(
25
25(A)函数名相同
(B)函数参数个数或参数类型至少有一个不同
(C)函数参数不可以用缺省值
(D)函数返回值必须不同
四川省计算机等级考试二级C语言笔试题(第二十一次)二
20:
00
二、读程序回答问题(每个选择3分,共45分)。
1.下列程序运行的结果为(
26
voidfun(char*c,intd)
*c=*c+1;
d=d+1;
printf("
%c,%c,"
*c,d);
chara='
A'
b='
a'
;
fun(&
b,a);
%c,%c\n"
a,b);
26(A)B,a,B,a
(B)a,B,a,B
(C)A,b,A,b
(D)b,B,A,b
2.下面程序的输出是(
27
voidtest(int*u,int*v)
int*w;
w=u;
u=v;
v=w;
intm=3,n=6,*x=&
m,*y=&
n;
test(x,y);
%d
%d"
m,n);
27(A)3
(C)0
0
(D)编译出错
3.以下程序的输出结果是(
28
intx,y;
for(x=1,y=1;
x<
=15;
x++)
if(y>
=20)
break;
if(y%3==1)
y+=3;
continue;
y-=10;
%d,%d\n"
x,y);
28(A)8,22
(B)7,20
(C)6,22
(D)5,20
4.fun(char*t1,char*t2)
inti,j;
while(*t2!
=0)
for(i=0,j=0;
t1[i];
if(t1[i]!
=*t2)
t1[j++]=t1[i];
t1[j]='
\0'
t2++;
chara[]="
abcde"
b[]="
ae"
fun(a,b);
puts(a);
该程序的输出结果为(
29
29(A)abcde
(B)bcd
(C)abcdeae
(D)ae
5.以下程序的输出结果是(
30
#defineFUN(y)
2.84+y
#definePR(a)
%d"
(int)(a))
#definePRINT(a)
PR(a);
putchar('
\n'
{intx=2;
PRINT(FUN(5)*x);
30(A)11
(B)12
(C)14
(D)15
6.读下列程序,回答问题。
voidsort(inta[])
inti,j,t;
for(i=0;
4;
for(j=0;
j<
4-i;
j++)
if(a[j]>
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
inta[5]={5,10,-7,3,7},i,t,j;
sort(a);
=4;
%d\n"
a[i]);
关于程序的说法正确的是(
31
31(A)用选择法对数据按从小到大排列
(B)用选择法对数据按从大到小排列
(C)用冒泡法对数据按从小到大排列
(D)用冒泡法对数据按从大到小排列
7.执行下面程序时输入“Iwillpasstheexam!
”,其输出结果是(
32
如果将程序中的scanf(“%s”,s)改为gets(s);
同样输入”Iwillpasstheexan!
”,则程序的输出结果是(
33
intfun(chars[])
inti=0;
while(s[i]!
='
i++;
returni;
voidmain()
chars[81];
Pleaseinputastring:
\n"
);
scanf("
%s"
s);
fun(s));
32(A)5
(B)21
(C)1
(D)17
33(A)5
8.以下是一个C++程序
iostream.h>
classSample
public:
Sample()
{x=y=0;
Sample(inta,intb)
{x=a;
y=b;
voiddisp()
cout<
"
x="
y="
y<
endl;
Sample
s1,s2(2,3);
s1.disp();
s2.disp();
(1)该程序主函数中s1.disp()的输出为(
34
34(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=1y=1
(2)该程序主函数中s2.disp()的输出为(
35
35(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=1y=1
9.读下列程序并回答问题。
voidfun(int*p,inti,intj)
if(i<
j)
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
fun(p,++i,--j);
inta[]={1,2,3,4,5,6},i;
fun(a,0,5);
6;
%d"
(1)程序中的fun函数被调用(
36
)次。
36(A)6
(B)5
(C)4
(D)3
(2)程序的运行结果是(
37
37(A)123456
(B)456123
(C)135246
(D)654321
10.读程序,回答问题。
main(intargc,char*argv[])
{FILE*fp;
intfun(FILE*);
intnum,i=1;
while(--argc>
0)
if((fp=fopen(argv[i++],"
r"
))==NULL)
Cannotopenfile!
exit(0);
else{num=fun(fp);
fclose(fp);
num=%d\n"
num);
intfun(FILE*fp)
staticintcount=0;
charc;
c=fgetc(fp);
while(c!
=EOF)
if(c>
0'
&
c<
9'
)count++;
return(count);
上述C程序经编译、连接后生成一个名为2_3.exe的可执行文件,假设盘上有两个文本文件file1.dat和file2.dat,file1.dat的内容为123abc,file2.dat的内容为xyzABC987。
(1)若在DOS提示符下键入:
2_3file1.datfile2.dat<
回车>
,则程序的运行结果为(
38
38(A)num=3
(B)num=4(C)num=5
(D)num=6
(2)若将fun函数中对count的定义staticintcount=0;
改为intcount=0;
其余条件不变,则在DOS提示符下键入:
39
39(A)num=3
(3)若将fun函数中对count的定义staticintcount=0;
改为intcount;
40
40(A)num=4
(B)num=5(C)num=6
(D)随机值
四川省计算机等级考试二级C语言笔试题(第二十一次)三
23:
02
注意:
①请把下面“程序填空”中各小题答案写在主观题答题纸上
②每一个空只填一个语句或一个语句所缺的部分内容
三、程序填空(每空2分,共30分)
1.以下程序能创建一张包含有4名学生信息的单向链表并输出。
malloc.h>
#defineLENsizeof(structstudent)
intdata;
①
;
};
intnum=1;
structstudent*creat()
structstudent*head,*p1,*p2;
head=p1=p2=(structstudent*)malloc(LEN);
&
p1->
data);
while(num<
4)
p1=(structstudent*)malloc(LEN);
②
p2=p1;
num++;
p2->
next=NULL;
return(head);
structstudent*head,*p;
head=creat();
p=head;
if(head!
=NULL)
do{
p->
③
}while(p!
=NULL);
2.下面程序功能是在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如:
cbyab变成ycbab。
string.h>
charstr[80],*p=str,*q,max;
gets(p);
max=*(p++);
while(*p!
if(max<
*p)
max=*p;
p++;
p=q;
while(②
*p=*(p-1);
p--;
puts(p);
3.以下程序能统计低于平均成绩的人数,并将低于平均成绩的分数存放到below数组中。
intfun(intscore[],intm,intbelow[])
inti,k=0,aver=0;
m;
aver/=m;
if(score[i]<
aver)
k++;
return(k);
inti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90};
n=③
n);
Belowtheaveragesc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川省 计算机等级考试 二级 语言 笔试 第二十 一次