江苏省二级C笔试模拟练习题4Word文档下载推荐.docx
《江苏省二级C笔试模拟练习题4Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《江苏省二级C笔试模拟练习题4Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
A.FrameMaker7.0B.Flash
C.OutlookExpressD.Frontpage
11.虚拟存储系统能够为用户程序提供一个容量很大的虚拟地址空间,但其大小有一定的范围,它受到___11__的限制。
A.内存容量大小
B.外存空间及CPU地址表示范围
C.交换信息量大小
D.CPU时钟频率
12.下列关于PC机的叙述中,下面说法中正确的是 12 。
A.CMOS中存放着基本输入/输出系统(BIOS)
B.PC机只能安装MS-DOS或Windows操作系统
C.PC机主板型号与CPU型号是一一对应的,不同的主板对应不同的CPU
D.CMOS芯片需要一个电池给它供电,否则其中数据会因主机断电而丢失
13.算法是问题求解规则的一种描述,下面哪些选项属于其基本性质 13 。
A.确定性、有穷性、能行性、输入、输出
B.确定性、无穷性、能行性、输入、输出
C.不确定性、无穷性、能行性、输入、输出
D.不确定性、有穷性、能行性、输入、输出
14.计算机网络是利用通信设备和网络软件,把地理位置分散而 14 的计算机(及智能设备)以相互共享资源和进行信息传递为目的连接起来的一个系统。
A.相互连接B.功能齐全C.功能独立D.价格便宜
15.关于有线电视电缆调制解调技术的描述中,正确的是 15 。
A.使用电缆调制解调技术,上网速度很快,但在上网的同时不能看电视
B.电缆调制解调技术是多用户共享带宽,用的人多了,单个用户的速度会下降
C.使用电缆调制解调技术非常的方便,只要有有线电视的地方就能上网
D.电缆调制解调器的下载速度快,上传速度慢
16.通过Internet发送或接收电子邮件(E-mail)的首要条件是应该有一个电子邮件(E-mail)地址,它的正确形式是 16 。
A.用户名#域名B.用户名@域名
C.用户名/域名D.用户名.域名
17.微软公司自Windows95简体中文版始,系统采用 17 代码,该代码共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。
A.UCS B.BIG5 C.GBK D.CJK
18.目前,数据相机所采用的既支持无损压缩又支持有损压缩的图像文件格式是 18 。
A.TIFB.JPEGC.BMPD.GIF
19.用于辅助人们进行信息获取、传递、存储、加工处理、控制及显示的综合使用各种信息技术的系统,可以通称为 19 。
A.自动办公系统B.信息管理系统
C.信息处理系统D.人工智能系统
20.在电子表格软件Excel环境下,下列叙述中不正确的是 20 。
A.在一个单元格内最多可以存放255个西文字符
B.在输入由数字组成的字符输入项时,应为数字字符串加双引号
C.利用“填充柄”可向单元格输入系列数据
D.单元格引用分为相对引用、绝对引用和混合引用
第二部分 C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内)
21.C语言源程序是由 21 构成的。
A.函数和过程B.子程序C.文本 D.函数
22.以下4组用户定义标识符中,全部合法的一组是 22 。
A._mainB.ifC.txtD.int
enclude-maxREALk_2
sinturbo3COM_001
23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 23 。
A.chars[l0]="
abcdefg"
;
B.chart[]="
*s=t;
C.chars[l0];
s="
D.chars[l0];
strcpy(s,"
);
24.有以下程序:
#include<
stdio.h>
#difineF(X,Y)(X)*(Y)
main()
{inta=3,b=4;
print("
%d\n"
F(a++,b++));
}
程序运行后的输出结果是 24 。
A.12B.15C.16D.20
25.设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是 25 。
A.10101001B.10101000C.11111101D.01010101
26.若有以下定义和语句:
doubler=99,*p=&
r;
*p=r;
则以下正确的叙述是 26 。
A.以上两处的*p含义相同,都是给指针变量p赋值
B.在“doubler=99,*p=&
”中,把r的地址赋值给了p所指的存储单元
C.语句“*p=r;
”把变量r的值赋给指针变量p
D.语句“*p=r;
”将变量r的值赋给p所指向的存储单元
27.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是 27 。
A.a>
=10ora<
=0B.a>
=0|a<
=10
C.a>
=10&
&
a<
=0D.a>
=10‖a<
=0
28.有以下程序
main()
{chars[]="
\n123\\"
printf(%d,%d\n"
strlen(s),sizeof(s));
}
执行后输出结果是 28 。
A.赋初值的字符串有错B.6,7
C.5,6D.6,6
29.设有如下说明
typedefstruct{intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是 29 。
A.STDtt[2]={{1,'
A'
62},{2,'
B'
75}};
B.STDtt[2]={1,"
A"
62,2,"
B"
75};
C.structtt[2]={{1,'
},{2,'
}};
D.structtt[2]={{1,"
62.5},{2,"
75.0}};
30.下列关于C语言数据文件的叙述中正确的是 30 。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
●基本概念题(共5分)
1.C语言规定,标识符可以以字母和
(1)开头。
2.能将高级语言编写的源程序转换成目标程序的是
(2)。
3.C语言中,数组名是一个不可改变的(3),不能对它进行赋值运算。
4.有以下定义和语句,则sizeof(a)的值是(4),而sizeof(a.share)的值是(5)。
structdate{intday;
intmonth;
intyear;
union
{intshare1;
floatshare2;
}share;
}a;
●阅读程序题(共13分)
5.有以下程序,执行后输出结果是(6)。
(提示:
程序中fseek(fp,-2L*sizeof(int),SEEK_END);
语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节)
#include<
{FILE*fp;
inti,a[4]={1,2,3,4},b;
fp=fopen("
data.dat"
"
wb"
for(i=0;
i<
4;
i++)fwrite(&
a[i],sizeof(int),1,fp);
close(fp);
fp=fopen("
data.dat"
rb"
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&
b,sizeof(int),1,fp);
fclose(fp);
printf("
%d\n"
,b);
}
6.有以下程序执行后输出结果的第一个数据是(7),第二个数据是(8)。
structSTU
{charname[l0];
intnum;
};
voidfl(structSTUc)
{structSTUb={"
LSiGuo"
,2042};
c=b;
voidf2(structSTU*c)
{structSTUb={"
SunDan"
,2044};
*c=b;
{structSTUa={"
YangSan"
,2041},b={"
WangYin"
,2043};
fl(a);
f2(&
b);
%d%d\n"
a.num,b.num);
7.若输入的值是-45,以下程序的运行结果是(9)。
math.h>
{intn;
scanf("
%d"
&
n);
if(n<0)printf("
-"
n=fabs(n);
fun(n);
fun(intx)
{intk,r;
for(k=2;
k<sqrt(x);
k++)
{r=x%k;
while(r==0)
{printf("
k);
x=x/k;
if(x>1)printf("
*"
r=x%k;
if(x!
=1)printf("
x);
8.以下程序执行后输出的第一个数据是(10),第二个数据是(11)。
{structexmp
{union
{intx;
inty;
}un;
inta;
intb;
}stu;
stu.a=1;
stu.b=2;
stu.un.x=stu.a*stu.b;
stu.un.y=stu.a+stu.b;
%d,%d"
stu.un.x,stu.un.y);
9.以下程序执行后,输出结果的第一行是(12),第二行是(13),第三行是(14)。
conio.h>
voidfun(inta[3][4],intb[4][3],intab[3][3])
{intj,k,l;
for(k=0;
k<
3;
k++)
for(l=0;
l<
l++)
for(j=0;
j<
j++)
ab[k][l]+=a[k][j]*b[j][l];
}
{intx[3][4]={{1,0,1,1},{2,1,0,1},{1,2,0,3}};
inty[4][3]={{1,1,1},{0,0,0},{2,1,1},{1,1,3}};
intxy[3][3]={0},i,j;
clrscr();
fun(x,y,xy);
printf("
axb=ab:
(3,3):
"
for(i=0;
i++)
{for(j=0;
%d"
xy[i][j]);
\n"
10.以下程序若输入的是2736598,则输出是(15)。
voidfun(longs,long*t)
{longsl=10;
*t=s%10;
while(s>
0)
{s=s/100;
*t=s%10*sl+*t;
sl=sl*10;
{longs,t;
clrscr();
\nPleaseenters:
scanf("
%ld"
&
s);
fun(s,&
t);
Theresultis:
%ld\n"
t);
11.以下程序执行后输出结果是(16)。
#include<
f(inta)
{intb=0;
staticc=3;
return(a);
main()
{inta=2,i,k;
2;
k=f(a++);
printf(“%d\n”,k);
12.以下程序运行后输出结果的第一个数是(17),第六个数是(18)。
fun(s,n1,n2)
int*s,n1,n2;
{inti,j,t;
i=n1;
j=n2;
while(i<
j)
{t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
i++;
j—
{inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
fun(p,0,3);
fun(p,4,9);
fun(p,0,9);
10;
printf(“%d”,*(a+i));
printf(“\n”);
●完善程序题(共12分)
13.请编写函数fun,函数的功能是:
找出一维数组中最大值和它所在的下标,最大值和它所在的下标通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
stdlib.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];
*d=0;
for(i=1;
n;
if((19)){*max=a[i];
(20);
{inti,x[20],max,index,n=10;
randomize();
i++)
{x[i]=rand()%50;
%4d"
x[i]);
fun(x,n,&
max,&
index);
Max=%5d,Index=%4d\n"
max,index);
14.请编写一个函数fun的功能是求出二维数组每行中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[M])
{intk,i,j;
for(i=0;
M;
{k=tt[i][0];
for(j=1;
N;
if((21))k=tt[i][j];
(22);
{intt[M][N]={{22,45,56,30},
{19,33,45,38},
{20,22,66,40}};
intp[M],i,j,k;
printf("
Theoriginaldatais:
i++){
%6d"
t[i][j]);
fun(t,p);
\nTheresultis:
for(k=0;
k++)printf("
p[k]);
}
15.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
函数fun的功能是:
求出平均分,由函数值返回。
#defineN8
structslist
{doubles;
structslist*next;
};
typedefstructslistSTREC;
doublefun(STREC*h)
{STREC*p;
intnum=0;
doublesum=0;
p=h->
next;
do
{sum+=p->
s;
(23);
num++;
while(p!
=0);
returnsum/num;
STREC*creat(double*s)
{STREC*h,*p,*q;
inti=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->
s=0;
N)
{q=(STREC*)malloc(sizeof(STREC));
(24);
p->
next=q;
p=q;
next=0;
returnh;
outlist(STREC*h)
head"
{printf("
->
%4.1f"
p->
p=p->
\n\n"
main()
{doubles[N]={85,76,69,85,91,72,64,87},ave;
STREC*h;
h=creat(s);
outlist(h);
ave=fun(h);
ave=%6.3f\n"
ave);
16.以下程序将从键盘输入的一行字符(不超过255个字符)中每个单词(单词间以空格分隔)的第一个字母改成大写字母。
{charstr[255];
inti=0;
while((str[i++]=getchar())!
='
\n'
str[i-1]=(25);
str[i]!
\0'
if((str[i-1]=='
'
||i==0)&
str[i]>
a'
str[i]<
z'
)
str[i]+=(26);
printf("
\n%s\n"
str);
17.以下min函数的功能是:
查找带有头结点的单向链表,将结点数据域的最小值作为函数的返回值。
补足所缺语句。
stuctNode
{intdata;
stuctNode*next;
intmin(structNode*head)
{structNode*p;
intn;
p=head;
n=p->
data;
for(p=p->
p;
p=(27))
if((28))n=p->
returnn;
18.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请补足所缺语句。
{floats;
floatgmax,gmin;
%f"
gmax=s;
gmin=s;
while((29))
{if(s>
gmax)
if((30))
gmin=s;
scanf("
\ngmax=%f\ngmin=%f\n"
gmax,gmin);
参考答案:
1.D