版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2009年9月计算机等级考试二级C语言模拟试题(1)笔试部分一、选择题1.串的长度是( )A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数2.以下不属于对象的基本特点的是( )A.分类性 B.多态性 C.继承性 D.封装性3.下面不属于软件设计原则的是( )A.抽象 B.模块化 C.自底向上 D.信息隐蔽4.下列SQL语句中,用于修改表结构的是( )A.ALTER B.CREATE C.UPDATE D.INSERT5.关系模型允许定义3类数据约束,下列不属于数据约束的是( )A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自
2、定义的完整性约束6.非空的循环单链表head的尾结点(由p所指向),满足( )A.p->next=NULL B.p=NULLC.p->next=head D.p=head7.对建立良好的程序设计风格,下面描述正确的是( )A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无8.在软件生产过程中,需求信息的给出是( )A.程序员 B.项目管理者 C.软件解析设计人员 D.软件用户9.NULL是指( )A.0 B.空格 C.未知的值或无任何值 D.空字符串10.下列说法中,不属于数据模型所描述的内容的是( )A.数据结构 B.数据操
3、作 C.数据查询 D.数据约束11.在C语言中,退格符是( )A.nB.tC.fD.b12.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25 &&b-<=2 &&c? printf(*a=%d,b=%d,c=%dn,a,b, c):printf(#a=%d,b=%d,c=%dn,a,b,c);程序输出的结果是( )A.* * *a=25,b=13,c=19 B.* * *a=26,b=14,c=19C.# a=25,b=13,c=19 D.# a=26,b=14,c=1913.若运行以下程序时,从键盘
4、输入ADescriptor(表示回车),则下面程序的运行结果是( )#include main() char c;int v0=1,v1=0,v2=0;do switch(c=getchar() case a:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1;default:v0+=1;v2+=1; while(c!=n);printf(v0=%d,v1=%d,v2=%dn,v0,v1,v2);A.v0=7,v1=4,v2=7 B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11 D.v0=13,v1=4,v
5、2=1214.执行下面的程序段后,变量k中的值为( ) int k=3,s2; s0=k;k=s1*10;A.不定值 B.33 C.30 D.1015.有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);执行该程序段后,x的值为( )A.tureB.falseC.0D.116.以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n) int i,j=0,p;p=j;for(i=j;i<N;I+)< p> if(ai>ap)_return(p);在下划线处应填入的内容是(
6、)A.i=pB.ap=aiC.p=jD.p=i17.有如下程序main() char s =ABCD,*p;for(p=s+1;p<S+4;P+)PRINTF(%SN,P);< p> 该程序的输出结果是( )A.ABCD B.ABCD BCD CD BDC.B D.BCDC CDD D18.以下正确的说法是( )A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准19.结构化程序设计的三种基本逻辑结构是( )A.选择结构、循环结构和嵌套结构B.顺序
7、结构、选择结构和循环结构C.选择结构、循环结构和模块结构D.顺序结构、递归结构和循环结构20.设有如下定义struck sk int a;float b; data; int * p;若要使p指向data中的a域,正确的赋值语句是( )A.p=8a; B.p=data.a; C.p=&data.a; D.*p=data.a;21.在下述程序中,判断i>j共执行的次数是( )main() int i=0,j=10,k=2,s=0;for(;) i+=k;if(i>j) printf(%d,s);break;s+=i;A.4B.7C.5D.622.以下程序的输出是( )stru
8、ct st int x;int *y; *p;int dt4=10,20,30,40;struct st aa4=50,&dt0,60,&dt0,60,&dt0,60,&dt0;main() p=aaprintf(%dn,+(p->x);A.10B.11C.51D.6023.下列数据中,不合法的C语言实型数据的是( )A.0.123B.123e3C.2.1e3.5D.789.024.设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为( )A.intB.floatC.doubleD.不确定25.设以下变量均为in
9、t类型,表达式的值不为7的是( )A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)26.若变量a是int型,并执行语句:a=A+1.6;,则正确的叙述是( )A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符A的ASCII值加上127.有如下程序main()int x=23;do printf(%d,x-); while(!x);该程序的执行结果是( )A.321B.23C.不输出任何内容D.陷入死循环28.若变量c为char类型,能正确判断出c为小写字母的表达式是
10、( )A.a<=c<=zB.(c>=a)|(c<=z)C.(a<=c)and(z>=c)D.(c>=a)&&(c<=z)29.下面程序段的运行结果是( )char str=ABC,*p=str;printf(%dn,*(p+3);A.67 B.0C.字符C的地址 D.字符C30.有以下语句,则对a数组元素的引用不正确的是(0i9)( )int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A.ap-a B.*(&ai) C.pi D.*(*(a+i)31.有以下程序fun(int x,int y,int z)
11、z=x*y;main()int a=4,b=2,c=6;fun(a,b,c);printf(%d,c);程序运行后的输出结果是( )A.16B.6C.8D.1232.以下叙述中不正确的是( )A.预处理命令都必须以#号开始B.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.在以下定义是正确的:#define PI 3.141592633.下面程序段的运行结果是( )char *p=abcdefgh;p+=3;printf(%dn,strlen(strcpy(P,ABCD);A.8B.12C.4D.734.已知函数的调用形式:fread(buf,size,
12、count,fp),参数buf的含义是( )A.一个整型变量,代表要读入的数据项总数B.一个文件指针,指向要读的文件C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项35.C语言规定,在一个源程序中,main函数的位置( )A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后36.以下叙述中正确的是( )A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点37.C语言中最简单的数据类型包括( )A.整型、实型、逻辑型 B.整型、实型、
13、字符型C.整型、字符型、逻辑型 D.字符型、实型、逻辑型38.下列可用于C语言用户标识符的一组是( )A.void define WORD B.a3_b3 _123 CarC.For abc IFCase D.2a DO sizeof39.已知int t=0;while (t=1)则以下叙述正确的是( )A.循环控制表达式的值为0 B.循环控制表达式的值为1C.循环控制表达式不合法 D.以上说法都不对40.有以下程序main() int i=1,j=1,k=2;if(j+ | k+)&&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是( )A.1,1,2
14、B.2,2,1 C.2,2,2 D.2,2,341.在下列选项中,没有构成死循环的是( )A.int i=100;while(1) i=i%100+1;if(i>100)break;B.for(;);C.int k=1000;dok+;while(k>10000);D.int s=36;while(s)-s;42.有以下程序float fun(int x,int y)return(x+y);main() int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是( )A.编译出错B.9C.21D.9.043.设
15、有以下说明语句struct stu int a;float b; stutype;则下面的叙述不正确的是( )A.struct是结构体类型的关键字B.struct stu是用户定义的结构体类型C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名44.以下说法正确的是( )A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分45.下列程序执行后的输出结果是( )void func(int *a,int b ) b0=*a+6; main(
16、) int a,b5=0;a=0;b0=3;func(&a,b);printf(%dn,b0);A.6B.7C.8D.946.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a ,int n) int i,j,t;for(i=0;i<N-1;I+)< p> for(j=i+1;j<N;J+)< p> if(ai< p> main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5);for(i=0;i<10;i+)printf(%d,aai)
17、;printf(n);程序运行后的输出结果是( )A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10, D.1,2,10,9,8,7,6,5,4,3,47.若执行下述程序时,若从键盘输入6和8时,结果为( )main() int a,b,s;scanf(%d%d,&a,&b);s=aif(a<B)< p> s=b;s*=s;printf(%d,s);A.36B.64C.48D.以上都不对48.有以下程序void ss(char *s,char t) while( *s) i
18、f(*s=t)*s=t-a+As+;main() char strl100=abcddfefdbd,c=d;ss(strl,c);printf(%sn,strl);程序运行后的输出结果是( )A.ABCDDEFEDBD B.abcDDfefDbDC.abcAAfefAbA D.Abcddfefdbd49.请选出可用作C语言用户标识符的是( )A.void,define,WORD B.a3_b3,_123,IFC.FOR,-abc,Case D.2a,Do,Sizeof50.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是( )#include
19、 main() int i=0,j,k; doi+;k=316-13*i;while(_); j=k/11; printf(316=13*%d+11*%d,i,j);A.k/11 B.k%11 C.k/11=0 D.k%11=0二.填空题1.用树结构表示实体类型及实体间联系的数据模型称为_【1】_。2.数据流图的类型有_【2】_和事务型。3.冒泡排序算法在最好的情况下的元素交换次数为_【3】_。4.若串s="MathTypes",则其子串的数目是_【4】_。5.关系数据库的关系演算语言是以_【5】_为基础的DML语言。6.以下程序的功能是从键盘输入若干学生的成绩,并输出最高
20、成绩和最低成绩,当输入负数时结束。请填空。main ()float x,amax,amin;scanf(%f,&x);amax=x;amin=x;while(_【6】_)if(x>amax)amax=x;elseif_【7】_amin=x;else scanf(%f,&x);printf(n amax=%fn amin=%fn,amax,amin);7.下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。main() int i,x,y=1;scanf(%d,&x);for(i=2;i<=x/2;i+)if_【8】_y=0;br
21、eak;printf(%dn,y);8.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。main() char b17=0123456789ABCDEF;int c64,d,i=0,base=16;long n;printf(Enter a number:n);scanf(%1d,&n);doci=_【9】_;i+;n=n/base;while(n!=0);printf(Transmite new base:n);for(-i;i>=0;-i)d=ci;printf(%c,b_【10】_);printf(n);9.以下程序段的输出结果是_【11】_mainint a=2
22、,b=3,c=4;a*=16+(b+)-(+c);printf(%d,a);10.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为_【12】_。11.以下程序的输出结果是_【13】_。void fun()static int a=0;a+=2;printf(%d,a);main()int cc;for(cc=1;cc<4;cc+)fun();printf(n);12.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)_【14】_。13.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后
23、调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。FILE *myf;long f1;myf=_【15】_(test.t,rb);fseek(myf,0,SEEK_END);f1=ftell(myf);fclose(myf);printf(%dn,f1);14.以下程序的输出结果是_【16】_。main() ZK(int a=0;a+=(a=8);printf(%dn,a);ZK)15.函数fun的功能是根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。P=SX(m!n!(m-n)!SX)例如:m=12,n=8时,运行结果应该是495.000
24、000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include #include float fun(int m,int n) int i; double p=1.0; for(i=1;i<=m;i+)_【17】_;for(i=1;i<=n;i+)_【18】_; for(i=1;i<=m-n;i+)p=p/i;return p;main() clrscr();printf(p=%fn,fun(12,8);16.下列程序的功能是求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include #
25、include #define M 81int fun(char * ss,char c) int i=0; for(_【19】_;ss+)if(*ss=c)i+;return i;main() char aM,ch; clrscr(); printf(nPlease enter a string: );gets(a);printf(nPlease enter a char: );ch=getchar(); printf(nThe number of the char is:%dn,fun(a,ch);17.设有如下宏定义#define MYSWAP(z,x,y)z=x;x=y;y=z;以下程
26、序段通过宏调用实现变量a,b内容交换,请填空。float a=5,b=16,c;MYSWAP(_【20】_,a,b);上机部分一、填空题给定程序中,函数fun的功能是:将形参n中各位上为偶数的数取出,按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数27638496,函数返回值为26846。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include unsigned long fun(unsigned long n)unsigned long x=0,s,i;int t;s=n;i= 1
27、;while( 2 )t=s%10;if(t%2=0)x=x+t*i; i= ( 3 ) ;s=s/10;return x;main()unsigned long n=-1;while(n>99999999|n<0)printf("input(0<N printf("nThe result is: %ldn",fun(n);【参考答案】(1)1或1L(2)s>0或s!=0或s(3)i*10【解析】(1)从x=x+t*i;语句,可以看到i是将t放到正确数位上的幂指数,相当于t*10n,空1给i赋初值,连乘的初值为1,因此应填入:1或1L。(2
28、)空2是考查对循环条件表达式的判断,由于是取s每一位上的数给t,判断是否为偶数,同时s除10,显然s的值越来越小,当s不为零时,继续循环,因此应填入:s>0或s!=0或s。(3)空3是对i进行操作,由于随着循环的进行,所取出的数t的幂指数越来越大,每次增大10,因此应填入:i*10。二、改错题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+1/(m*m)例如:若m中的值为5,则应输出1.463611。请改正程序中的错误,使其能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#inc
29、lude double fun(int m)double y=1.0;int i;for(i=2;i<M;I+)< p> y+=1/(i*i);return(y);main()int n=5;printf("nThe result is %lfn", fun(n);【参考答案】(1)将for(i=2;i (2)将y+=1/(i*i); 改为:y +=1.0/(i*i);【解析】(1)第1处错误for循环的终止条件是i<=M;I+)或FOR(I=2;I 三、编程题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余
30、的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG 123456”,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后,t所指的数组中的内容应是“246”。注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include #include void fun(char *s, char t)main()char s100,t100;printf("nPlease enter string S:");scanf("%s", s);fun(s,t);printf("nThe result is: %sn",t);【参考答案】#include #include void fun(char *s,char t)int k,n=0;for(k=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川大学华西厦门医院事业单位专业技术人员招聘笔试真题2025
- 月结酒店合同(2026版)
- 龙岩武平县专项招聘期满服务基层项目高校毕业生笔试真题2025
- 2025年上海市徐汇区卫生健康委员会事业单位招聘笔试真题
- (正式版)DB34∕T 3017-2017 《规模养殖场沼气清洁生产技术规范》
- 2026 年高中秋季开学第一课城市暴雨内涝应急避险实操科普
- 2026年山东省烟台市中考化学试卷(真题+答案)
- 高考生物二轮复习专练(六)细胞器
- 2026年统编版七年级下册道德与法治期末质量监测试卷(共3套、含答案)
- 保安管理面试必问问题及应答
- 2025年茂名港集团有限公司招聘笔试真题
- 2026安徽师范大学专职辅导员招聘3人(第二批)笔试参考题库及答案详解
- 2026年车险查勘定损人员上岗考核试卷及答案
- 成都教科附属2026初一入学语文分班考试真题含答案
- 2026书记员面试题目及答案
- 2026-2027北师大版七(上)数学第一章 丰富的图形世界 单元测试卷
- 2026中煤华利新疆炭素科技有限公司招聘16人笔试历年典型考点题库附带答案详解
- 中国骨科大手术vte预防指南(2025版)
- 肺癌病人营养支持护理
- 2026年江苏省安全员C1证(机械类)考试真题(含答案解析)
- 2026中医养生精益化管理课件
评论
0/150
提交评论