江苏省二级C笔试模拟练习题4.docx
《江苏省二级C笔试模拟练习题4.docx》由会员分享,可在线阅读,更多相关《江苏省二级C笔试模拟练习题4.docx(20页珍藏版)》请在冰豆网上搜索。
江苏省二级C笔试模拟练习题4
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试
二级C语言全真模拟试卷(4)
(本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟)
说明:
1.本试卷满分为60分,分选择题和填空题,试卷不分A、B类型。
2.选择题用答题卡答题。
每一项有A、B、C、D四个可供选择的答案,请选择其中一个你认为正确的答案,用HB铅笔涂写在答题卡的相应答题号内。
每选对一项得1分,不选或选错不得分。
3.填空题用答题纸答题。
请将答案填写在答题纸的相应答题号内,每个答案只占一行,不得换行。
每填对一个答案得1分,不填或填错不得分。
4.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是否填写正确。
第一部分 计算机基础知识
1.计算机最具代表性的应用领域是科学计算,数据处理, 1 ,计算机辅助设计和人工智能。
A.办公室自动化 B.银行电子化 C.算术运算 D.实时控制
2.下列关于集成电路的叙述中,错误的是 2 。
A.集成电路使用的都是半导体硅(Si)材料
B.集成电路根据它所包含的晶体管数目可分为小规模、中规模、大规模、超大规模和极大规模集成电路
C.集成电路的工作速度与组成逻辑门电路的晶体管尺寸有密切关系
D.集成电路是将大量晶体管、电阻及互连线等制作在尺寸很小的半导体单晶片上
3.在CPU中, 3 是指挥中心,它有一个指令计数器,用来存放CPU正在执行的指令的地址,CPU将按照该地址从内存读取所要执行的指令。
A.寄存器B.指挥器C.运算器D.控制器
4.二进制带符号整数(补码)10000000的表示的十进制数为 4 。
A.0B.128C.-0D.-128
5.下列关于RAM的说法中,错误的是 5 。
A.DRAM芯片电路简单,集成度高,工耗小,成本低
B.DRAM工作速度快,适合用作Cache
C.SRAM芯片电路复杂,集成度低,工耗大,成本高
D.无论是DRAM还是SRAM,当关机或断电时,其中的信息都将随之丢失
6.下面有关PCI总线的叙述中,错误的是 6 。
A.PCI总线的数据宽度仅为32位
B.PCI总线的时钟与CPU时钟无关
C.PCI总线数据线宽度比ISA总线宽
D.PCI总线可同时支持多组外围设备,与CPU的型号无关
7.成像芯片的像素数目是数码相机的重要性能指标,它与可拍摄的图象分辨率直接相关。
索尼(SONY)--DSC-T7的像素约为500万,它所拍摄的图象的最高分辨率为7。
A.1280×960 B.1600×1200
C.2048×1536 D.2592×1944
8. 8 音乐与高保真的波形声音相比,虽然在音质方面还有一些差距,也无法合成出所有各种不同的声音,但它的数据量很少,又易于编辑修改,还可以与波形音乐同时播放。
A.MIDIB.RelC.MPEGD.JPEG
9.如果一个图像的颜色深度为24,这该图像能表示的最大颜色数目为 9 。
A.24种B.256种
C.1千6百多万种D.10亿种以上
10.下列应用软件中___10___属于网络通信软件。
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[]="abcdefg",*s=t;
C.chars[l0];s="abcdefg";D.chars[l0];strcpy(s,"abcdefg");
24.有以下程序:
#include
#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;”中,把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,'A'},{2,'B'}};
D.structtt[2]={{1,"A",62.5},{2,"B",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
main()
{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;
}
main()
{structSTUa={"YangSan",2041},b={"WangYin",2043};
fl(a);f2(&b);
printf("%d%d\n",a.num,b.num);
}
7.若输入的值是-45,以下程序的运行结果是(9)。
#include
main()
{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("%d",k);
x=x/k;
if(x>1)printf("*");
r=x%k;
}
}
if(x!
=1)printf("%d\n",x);
}
8.以下程序执行后输出的第一个数据是(10),第二个数据是(11)。
main()
{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;
printf("%d,%d",stu.un.x,stu.un.y);
}
9.以下程序执行后,输出结果的第一行是(12),第二行是(13),第三行是(14)。
#include
#include
voidfun(inta[3][4],intb[4][3],intab[3][3])
{intj,k,l;
for(k=0;k<3;k++)
for(l=0;l<3;l++)
for(j=0;j<4;j++)
ab[k][l]+=a[k][j]*b[j][l];
}
main()
{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<3;i++)
{for(j=0;j<3;j++)
printf("%d",xy[i][j]);
printf("\n");
}
}
10.以下程序若输入的是2736598,则输出是(15)。
#include
#include
voidfun(longs,long*t)
{longsl=10;
*t=s%10;
while(s>0)
{s=s/100;
*t=s%10*sl+*t;
sl=sl*10;
}
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:
");
scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
11.以下程序执行后输出结果是(16)。
#include
f(inta)
{intb=0;
staticc=3;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf(“%d\n”,k);
}
12.以下程序运行后输出结果的第一个数是(17),第六个数是(18)。
#include
fun(s,n1,n2)
int*s,n1,n2;
{inti,j,t;
i=n1;j=n2;
while(i{t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
i++;j—
}
}
main()
{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);
for(i=0;i<10;i++)
printf(“%d”,*(a+i));printf(“\n”);
}
●完善程序题(共12分)
13.请编写函数fun,函数的功能是:
找出一维数组中最大值和它所在的下标,最大值和它所在的下标通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
#include
#include
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=1;iif((19)){*max=a[i];(20);}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i{x[i]=rand()%50;
printf("%4d",x[i]);
}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
14.请编写一个函数fun的功能是求出二维数组每行中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
#include
#include
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[M])
{intk,i,j;
for(i=0;i{k=tt[i][0];
for(j=1;jif((21))k=tt[i][j];
(22);
}
}
main()
{intt[M][N]={{22,45,56,30},
{19,33,45,38},
{20,22,66,40}};
intp[M],i,j,k;
clrscr();
printf("Theoriginaldatais:
\n");
for(i=0;ifor(j=0;jprintf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:
\n");
for(k=0;kprintf("\n");
}
15.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
函数fun的功能是:
求出平均分,由函数值返回。
#include
#include
#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;
while(i{q=(STREC*)malloc(sizeof(STREC));
(24);i++;p->next=q;p=q;
}
p->next=0;
returnh;
}
outlist(STREC*h)
{STREC*p;
p=h->next;printf("head");
do
{printf("->%4.1f",p->s);p=p->next;}
while(p!
=0);
printf("\n\n");
}
main()
{doubles[N]={85,76,69,85,91,72,64,87},ave;
STREC*h;
h=creat(s);outlist(h);
ave=fun(h);
printf("ave=%6.3f\n",ave);
}
16.以下程序将从键盘输入的一行字符(不超过255个字符)中每个单词(单词间以空格分隔)的第一个字母改成大写字母。
main()
{charstr[255];
inti=0;
while((str[i++]=getchar())!
='\n');
str[i-1]=(25);
for(i=0;str[i]!
='\0';i++)
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->next;p;p=(27))
if((28))n=p->data;
returnn;
}
18.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请补足所缺语句。
main()
{floats;
floatgmax,gmin;
scanf("%f",&s);
gmax=s;gmin=s;
while((29))
{if(s>gmax)
gmax=s;
if((30))
gmin=s;
scanf("%f",&s);
}
printf("\ngmax=%f\ngmin=%f\n",gmax,gmin);
}
参考答案:
第一部分 计算机基础知识
1.D