四川省计算机二级C语言试题集Word文件下载.docx
《四川省计算机二级C语言试题集Word文件下载.docx》由会员分享,可在线阅读,更多相关《四川省计算机二级C语言试题集Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。
chars[]="
China"
*p;
(考点:
字符指针)
p=s;
则下列叙述正确的是(16)。
16(A)s和p完全相同(B)*p与s[0]不等(C)*p与s[0]相等(D)*s与p相等
2.以下可以作为函数fopen中第一个参数的正确格式是(17)。
(*考点:
文件)
17(A)c:
prog\file1.dat(B)c:
\\prog\\file1.dat
(C)"
c:
\prog\file1.dat"
(D)"
\\prog\\file1.dat"
3.若有定义:
uniondata
{
inti;
floatj;
chars[5];
}k;
则在TurboC2.0环境中sizeof(k)的值是(18)。
(考点:
共用体类型)
18(A)2(B)5(C)11(D)0
4.下面四个选项中,合法的用户自定义标识是(19)。
标识符命名)
19(A)int(B)a_b3(C)3_bc(D)#mm
5.已知结构体:
(20)。
存储类型extern)
structstudent
charname[20];
struct
{intyear;
intmonth;
}birth;
charsex;
}stu;
20(A)stu.birth=2009;
(B)stu.year=2009;
(C)stucent.birth.year=2009;
(D)stu.birth.year=2009;
6.下面程序的输出结果是(21)。
宏定义)
#include<
stdio.h>
#defineM4
#defineN2*M+1
#defineKN/2-5
voidmain()
{printf("
%d\n"
K);
}
21(A)2(B)1(C)0(D)3
7.有以下结构体及其变量的定义:
structnode
{intdata;
structnode*next;
}*p,*q,*r;
如图所示,指针p、q、r分别指向此链表中的三个连续结点。
若要将q所指结点从链表中删除,使p所指结点与r所指结点连接,不能完成指定操作的语句是(22)。
链表)
22(A)p->
next=q->
next;
(B)p->
next=p->
next->
(C)p->
next=r;
(D)p=q->
8.下列程序段中,不是无限循环的是(23)。
循环语句)
23(A)(B)
k=0;
j=100;
dowhile
(1)
{++k;
}{j=j%100+1;
whiel(k-->
=0);
if(j>
100)break;
(C)(D)
s=3333;
for(;
;
);
while(s%2+s++%2);
9.不能把字符串"
Hello!
"
赋给字符数组b的选项是(24)。
字符数组赋值)
24(A)charb[10]={'
H'
'
e'
l'
o'
!
'
\0'
};
(B)charb[10];
b="
;
(C)charb[10];
strcpy(b,"
);
(D)charb[10]="
10.若变量已正确定义并赋值,以下符合C语言语法的表达式是(25)。
表达式)
25(A)a:
=b+1(B)a=b=c+2(C)int18.5%3(D)a=a+7=c+b
二、读程序回答问题(每个选择3分,共45分)
1.在下面程序中(考点:
数组、函数(地址参数)、删除字符算法)
voidfun(char*s)
inti,j;
for(i=0,j=0;
s[i]!
='
i++)
if(s[i]>
0'
&
&
s[i]<
9'
)
{s[j]=s[i];
j++;
s[j]='
}
chars[20]="
ab12cd34"
fun(s);
printf("
%3d%3d\n"
sizeof(s),strlen(s));
%s\n"
s);
(1)第1个printf输出的结果为(26)。
26(A)88(B)208(C)2020(D)204
(2)第2个printf输出的结果为(27)。
27(A)abcd(B)ab12cd(C)1234(D)ab12cd34
2.下列程序的输出结果是(28)。
函数(地址参数和普通参数)、指针运算)
voidfun(char*c,intd)
*c=*c+1;
d=d+1;
chara='
A'
b='
a'
fun(&
b,a);
%c,%c\n"
a,b);
28(A)B,A(B)a,B(C)A,B(D)A,b
3.下列程序的输出结果是(29)。
带参数的宏定义)
#include"
stdio.h"
#defineGOOD(y)2.84+y
#definePR(a)printf("
\n%d"
(int)(a))
#definePRINT(a)PR(a);
putchar('
\n'
intx=2;
PRINT(GOOD(5)*x);
29(A)11(B)15(C)13(D)12
4.下列程序运行后的输出结果是(30)。
结构体类型、函数(普通参数)、全局变量和局部变量)
structtree
intx;
char*s;
}t;
func(structtreet)
t.x=10;
t.s="
computer"
return(0);
t.x=1;
minicomputer"
fun(t);
%d,%s\n"
t.x,t.s);
30(A)10,computer(B)1,minicomputer
(C)1,computer(D)10,minicomputer
5.下列程序编译连接后生成可执行文件CAD.EXE,输入以下命令行:
CADFILE1FILE2<
CR>
(<
表示回车)
程序的运行结果是(31)。
命令行参数)
voidmain(intargc,char*argv[])
argc);
for(i=0;
i<
=argc-1;
%s"
argv[i]);
\n"
31(A)2(B)3
cadfile1file2cadfile1file2
(C)2(D)3
CAD.EXEFILE1FILE2CAD.EXEFILE1FILE2
6.有下列程序:
for循环嵌套、continue语句、break语句)
inti,j,x=0;
2;
{
x++;
for(j=0;
j<
=3;
j++)
if(j%2)
continue;
x);
(1)该程序的运行结果是(32)
32(A)6(B)4(C)8(D)2
(2)若将程序中的continue改为break,则输出结果为(33)
33(A)6(B)4(C)8(D)2
7.有如下程序:
文件打开方式、文件操作函数、函数调用)
string.h"
voidfun(char*fname,char*st)
FILE*myf;
myf=fopen(fname,"
w"
strlen(st);
fputc(st[i],myf);
fclose(myf);
fun("
text"
"
world"
hello"
(1)运行该程序后,文件text中的内容为(34)。
34(A)world(B)worldhello(C)hello(D)helloworld
(2)若将文件打开方式"
改为"
a"
,则运行程序后,文件text中的内容为(35)。
35(A)world(B)worldhello(C)hello(D)helloworld
8.有如下程序:
递归函数)
intfun(intn)
inty;
if(n==1)
y=1;
elseif(n==2)
y=2;
else
y=n+fun(n-2);
returny;
scanf("
%d"
&
x);
fun(x));
若输入x的值为8,则程序的输出结果为(36)。
36(A)16(B)36(C)30(D)20
{inti,s=0;
for(i=1;
=n;
i=i+2)
s=s+i;
returns;
与函数fun等价的非递归程序为(37)。
37(A)intfun(intn)(B)
for(i=n;
i>
=1;
i=i-2)
(C)intfun(intn)(D)
i--)
9.有如下程序:
数组、函数、静态存储类型)
intfun(int*x,intn)
staticints=0,i;
n;
s=s+x[i];
intx[5]={1,2,3,4,5},y[4]={6,7,8,9},s;
s=fun(x,5)+fun(y,4);
(1)程序的运行结果为(38)。
38(A)15(B)30(C)45(D)60
(2)若将fun函数中的static去掉,则程序的运行结果为(39)。
39(A)15(B)30(C)45(D)60
10.有如下程序:
循环、switch语句)
charch;
while((ch=getchar())!
switch(ch)
case'
1'
:
2'
putchar(ch+2);
3'
4'
break;
default:
若输入135<
回车>
,程序的运行结果为(40)。
40(A)135(B)357(C)3357(D)3333557
注意:
①请把下面“程序填空”中各小题答案写在主观题答题纸上
②每一个空只填一个语句或一个语句所缺的部分内容
三、程序填空(每空2分,共30分)
1.函数fun的功能是:
将n×
n(1<
n<
=10)方阵的下三角(包括对角线元素)×
m,
例如:
123若m=2,则处理后的方阵为:
223
4568106
789141618
在main函数中调用fun函数,并分行输出处理后的方阵。
请填空。
矩阵处理算法)
voidfun(inta[][10],intn,intm)
=①;
a[i][j]=a[i][j]*m;
intw[10][10]={{1,2,3},{4,5,6},{7,8,9}},m,i,j;
m);
fun(②,3,m);
3;
%4d"
w[i][j]);
printf(③);
2.下面程序的功能是输出所有的5位4倍反序数。
说明:
当一个5位整数的4倍刚好是其反序数,则称其为5位4倍反序数。
例如21978的反序数是87912,而87912=4*21978,所以21978就是一个5位4倍反序数。
输出结果为:
2197887912
循环、逆置整数算法)
longn,k,t,m,j=0;
for(n=10000;
=99999;
n++)
m=0;
t=n;
for(k=1;
k<
=①;
k++)
②;
③;
if(m==4*n)
{
%ld%ld\n"
n,m);
3.下面程序的功能是:
对一整型数组中下标是3的倍数的元素进行升序排序,其余元素保持不变。
数组、排序算法)
inta[16]={16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
inti,j,t;
16;
①)
for(j=i+3;
②)
if(③)
t=a[i];
a[i]=a[j];
a[j]=t;
a[i]);
4.已知磁盘文件test.dat中有10个大于2的正整数,下列程序能判断和输出文件中10个数中的所有素数。
文件、函数参数、判素数算法)
intprime(①,intn)
inti,j,k=0,flag=0;
for(j=2;
a[i];
if(②==0)
{flag=0;
flag=1;
if(flag)
{③=a[i];
k++;
returnk;
intn,i,a[10];
FILE*fp;
if((fp=fopen("
test.dat"
r"
))==NULL)
Cannotopenthefile!
exit(0);
for(n=0;
10;
fscanf(fp,"
a[n]);
n=prime(a,n);
%3d"
fclose(fp);
5.程序的功能是计算:
s=1-12+123-1234+12345的值,请填空。
循环、序列处理算法)
inti,s=0,t=0,k=1;
=5;
t=t*10+①;
s=s+②;
k=③;
s=%d\n"
第二十七次等级考试
2007年10月27日
1.数组也是一种数据结构,一维数组就是一种顺序表结构。
(1)
2.递归算法的程序结构比迭代算法的程序结构更为精炼。
(2)
3.进程调度按一定的调度算法,从就绪队列中挑选出合适的进程。
(3)
4.在单处理器系统中,程序的并发执行,实质上是程序的交替执行。
(4)
5.数据的基本单位是数据元素。
(5)
6.分页存储管理中,页面可以映射到不连续的内存块中。
(6)
7.通道方式能实现外设与CPU之间直接进行数据交换。
(7)
8.软件测试和软件调试没有任何区别。
(8)
9.白盒测试方法一般适合用于系统测试。
(9)
10.瀑布模型的突出缺点是不适应用户需求的变化。
1.线性表不具有的特点是(11)。
11(A)随机访问(B)无须事先估计所需存储空间大小
(C)插入时不必移动元素(D)所需空间与线性表长度成正比
2.以下(12)不是实时操作系统的特点。
12(A)高可靠性(B)及时响应
(C)中断管理(D)独立性
3.若当前进程因时间片用完而让出处理机时,该进程应转变为(13)状态。
13(A)运行(B)就绪
(C)等待(D)完成
4.以下(14)不是数据结构研究的主要问题。
14(A)数据元素之间的逻辑关系(B)数据元素之间的存储结构
(C)软件开发方法(D)实现操作的算法
5.软件开发中,模块设计的原则是(15)。
15(A)低偶合、高内聚(B)高偶合、高内聚
(C)高偶合、低内聚(D)低偶合、低内聚
1.以下程序的输出结果是(16)。
逻辑运算、自增自减运算)
{inta=-1,b=4,k;
k=(++a<
0)&
(b--<
%d%d%d\n"
k,a,b);
16(A)004(B)103(C)003(D)104