《全国计算机等级考试二级C语言笔试模拟题.pdf》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试模拟题.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级 C 语言模拟试题笔试部分一、填空题(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间【参考答案】D(2)用链表表示线性表的优点是A)便于随机存取B)花费的存储空间较顺序存储少C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同【参考答案】C(3)数据结构中,与所使用的计算机无关的是数据的A)存储结构 B)物理结构 C)逻辑结构 D)物理和存储结构【参考答案】C(4)结构化程序设计主要强调的是A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性【参考答案】D(5)软件设计包
2、括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系 B)系统结构部件转换成软件的过程描述C)软件层次结构 D)软件开发过程【参考答案】B(6)检查软件产品是否符合需求定义的过程称为A)确认测试 B)集成测试 C)验证测试 D)验收测试【参考答案】A(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是A)控制流 B)加工 C)数据存储 D)源和潭【参考答案】A(8)应用数据库的主要目的是A)解决数据保密问题 B)解决数据完整性问题C)解决数据共享问题 D)解决数据量大的问题【参考答案】C(9)在数据库设计
3、中,将 E-R 图转换成关系数据模型的过程属于A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段【参考答案】B(10)在数据管理技术的发展过程中,经历了人工管理阶段、阶段。其中数据独立性最高的阶段是A)数据库系统 B)文件系统 C)人工管理 D)数据项管理【参考答案】A(11)以下叙述中正确的是A)构成 C 程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)C 函数定义的格式是 K&R 格式【参考答案】A(12)结构化程序所规定的三种最基本控制结构是A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环D)主程序、子程序
4、、函数【参考答案】C(13)一个 C 语言程序是由A)个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成文件系统阶段和数据库系 统【参考答案】B(14)请选出可用作 C 语言用户标识符的是A)void,define,WORD B)a3_b3,_123,IF C)FOR,-abc,Case D)2a,Do,Sizeof【参考答案】B(15)下列各数据类型不属于构造类型的是A)枚举型 B)共用型 C)结构型 D)数组型【参考答案】A(16)在 16 位 C 编译系统上,若定义 long a;,则能给 a 赋 40000 的正确语句是A)a=20000+20000;B)a=400
5、0*10;C)a=30000+10000;D)a=4000L*10L【参考答案】D(17)以下不正确的叙述是A)在 C 程序中,逗号运算符的优先级最低B)C)后 b 中的值将放入 a 中,而 b 中的值 不变D)从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型 数值【参考答案】D(18)sizeof(float)是A)个双精度表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式【参考答案】B(19)若 x,i,j 和 k 都是 int 型变量,则计算表达式 x=(i=4,j=16,k=32为A)4 B)16 C)32 D)52【参考答案】C(20)下面程
6、序的功能是把 316 表示为两个加数的和,使两个加数分别能被 13 和 11 整除,请 选择填空。#include main()int i=0,j,k;doi+;k=316-13*i;while(_);)后,x 的值在 C 程序中,APH 和 aph 是两个不同的变量若 a 和 b 类型相同,在计算了赋值表达式 a=bj=k/11;printf(316=13*%d+11*%d,i,j);A)k/11 B)k%11 C)k/11=0 D)k%11=0【参考答案】B(21)设有定义:int n=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是A)p=1;B)*q=2;C)q=p;D)*p=
7、5;【参考答案】D(22)下面程序的运行结果是#include main()int y=10;doy-;while(-y);printf(%d n,y-);A)-1 B)1 C)8 D)0【参考答案】D23)下面程序的输出结果是main()int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(%dn,*(p+2);A)3 B)4 C)1 D)2【参考答案】A(24)有如下程序int a 10=1,2,3,4,5,6,7,8,9,10;int*p=&a 3,b;b=p 5;则 b 的值是A)5 B)6 C)9 D)8【参考答案】C(25)设有 int x=11;则表达
8、式(x+*1/3)的值是A)3 B)4 C)11 D)12【参考答案】A 26)请选出以下语句的输出结果printf(”d n,strlen(”、t、065xff、n)A)5 B)14 C)8 D)输出项不合法,无正常输出【参考答案】A(27)下列程序的输出结果是main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%d n,d*y);A)3 B)3.2 C)0 D)3.07【参考答案】C(28)下列程序的输出结果是int b=2;int func(int*a)b+=*a;return(b);main()int a=2,res=2;res+
9、=funcprintf(&a);(%d n,res);A)4 B)6 C)8 D)10【参考答案】B所占的空间为29)下面能正确进行字符串赋值操作的是A)char s 5=ABCDE;B)char s:5:=ABC,D:E;C)char*s;s=ABCDE;D)char*s;char a;scanf(%s,&s);【参考答案】C(30)执行以下程序后,a,b 的值分别为main()int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1=&m;b=(*p1)/(*p2)+7;printf(a=%d n,a);printf(b=%d n,b);A)-1,5 B)1,6 C)0,7 D
10、)4,10【参考答案】C31)设有数组定义:char array =China;则数组 arrayA)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节【参考答案】C(32)若已定义:int a =0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0m9,则对 a 数组元素不正确的引用是A)ap-a B)*(&ai)C)p i D)a10【参考答案】D(33)以下不正确的定义语句是A)double x 5=2.0,4.0,6.0,8.0,10.0;B)int y 5=0,1,3,5,7,9;C)char c1 =1,2,3,4,5;D)char c2 =x10,xa ,x8;
11、【参考答案】B(34)若有以下程序#include int a =2,4,6,8;main()int i;int*p=a;for(i=0;i4;i+)ai=*p;printf(%dn,a 2);上面程序输出结果是A)6 B)8 C)4 D)2【参考答案】D35)下面程序段的运行结果是 char*format=%s,a=%d,b=%d n;int a=11,b=10;a+=b;printf(format,a+=b,a,b);A)for,a+=b,ab B)format,a+=bC)a+=b,a=21,b=10 D)以上结果都不对【参考答案】C(36)C 语言允许函数类型缺省定义,此时函数值隐含的
12、类型是A)float B)int C)long D)double【参考答案】B(37)以下程序有语法错误,有关错误原因的正确说法是 main()int G=5,k;void prt_char()k=prt_char(G)A)语句 void prt_char();有错,它是函数调用语句,不能用B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线【参考答案】C38)以下叙述中不正确的是A)在不同的函数中可以使用相同的名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效【参考答
13、案】D(39)有以下程序:#include union pw int i;char ch 2;a;main()a.ch 0=13;a.ch程序的输出结果是A)13 B)14 C)208 D)209【参考答案】A(40)在 16 位 IBM-PC 机上使用 C 语言,若有如下定义struct data int i;char ch;double f;b;则结构变量 b 占用内存的字节数是A)1 B)2 C)7 D)11【参考答案】D 1=O;printf(%d n,a.i);void 说明(41)下面程序的运行结果是#include main()int a=1,b=10;dob-=a;a+;whi
14、leprintf(b-0);(a=%d,b=%dn,a,b);A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9【参考答案】B42)以下程序的输出结果是void reverse(int a,int n)int i,t;for(i=0;in/2;i+)t=a i;a i=an-1-i;a n-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i2)return(fib(n-1)+fib(n-2);else return(2);main()printf(%d n,fib(3
15、);该程序的输出结果是A)2 B)4 C)6 D)8【参考答案】B(44)假定以下程序经编译和连接后生成可执行文件PROG.EX,E 如果在此可执行文件所在目录的 DOS 提示符下键入:PROG ABCDEFGH IJKL 回车,则输出结果为main(int argc,char*argv)while(-argc0)printf(%s,argv argc);printf(n);A)ABCDEFG B)IJHL C)ABCDEFGHIJKL D)IJKLABCDEFGH【参考答案】D(45)以下程序有错,错误原因是main()int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*
16、p=*q;A)p 和 q 的类型不一致,不能执行*p=*q;语句B)*p 中存放的是地址值,因此不能执行*p=40;语句C)q 没有指向具体的存储单元,所以*q 没有实际意义D)q 虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行义,可能会影响后面语句的执行结果【参考答案】D(46)函数 rewind 的作用是A)使文件位置指针重新返回文件的开始位置B)将文件位置指针指向文件中所要求的特定位置C)使文件位置指针指向文件的末尾D)使文件位置指针自动移至下一个字符位置*p=*q;没有意【参考答案】A(47)设有以下说明语句struct ex int x;float y;char z;ex
17、ample;则下面的叙述中不正确的是A)struct 结构体类型的关键字B)example 是结构体类型名C)x,y,z 都是结构体成员名D)struct ex 是结构体类型名【参考答案】B(48)设有以下语句:char x=3,y=6,z;z=xAy2;则 z 的二进制值是A)B)C)D)【参考答案】B(49)阅读以下程序及对程序功能的描述,其中正确的描述是#include main()FILE*in,*out;char ch,infileprintf 10,outfile 10 n)(E nter the in file n ame:scanf(%s,infile);printf(Ente
18、r the outfile name:scanf(%s,outfile);if(in=fopen(infile,r)=NULL)n)printf(cannot open infile n);exit(0);if(out=fopen(outfile,w)=NULL)printf(cannot open outfile n);exit(0);while(!feof(in)fputc(fgetc(in),out)fclose(in)fclose(out)A)程序完成将磁盘文件的信息在屏幕上显示的功能B)程序完成将两个磁盘文件合二为一的功能C)程序完成将一个磁盘文件复制到另一个磁盘文件中D)程序完成将
19、两个磁盘文件合并并在屏幕上输出【参考答案】C(50)C 语言中,能识别处理的文件为A)文本文件和数据块文件B)文本文件和二进制文件C)流文件和文本文件D)数据文件和二进制文件【参考答案】B二、填空题(1)数据的逻辑结构有线性结构和【1】两大类。【参考答案】【1】非线性结构(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置【2】的存储单元中。【参考答案】【2】相邻3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【3】【参考答案】【3】可重用性(。(4)软件工程研究的内容主要包括:【参考答案】【4】软件开发(5)关系操作的特点是【5】操作。【参考答案】【5】集合【4
20、】技术和软件工程管理。(6)下面程序是指从终端读入的20 个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。#include main()int i;char s 21,*p;for(i=0;i20;i+)s i=getchar();si=【6】;p=【7】while(*p)putchar(【8】)参考答案】【6】O【7】s【8】*p+(7)以下程序将数组 a 的 4 个元素和数组 b 的 6 个元素写到名为 lett.dat 的二进制文件中,请填空。#include main()FILE*fp;char a 4=1234,b6=abcedf;if(fp=fopen(【9】,wb)
21、=NULL)exit(O);fwrite(a,sizeof(char),4,fp);fwrite(b,【1O】,1,fp);fclose(fp);【参考答案】【9】lett.dat【1O】6*sizeof(char)(8)在 C 语言中(以 16 位 PC 机为例),一个 float 型数据在内存中所占的字节数为4;一个 double 型数据在内存中所占的字节数为【11】。【参考答案】【11】8(9)以下程序输出的结果是【12】。main()int a=5,b=4,c=3,d;d=(abc);printf(%d n,d);【参考答案】【12】O(1 O)以下函数的功能是求出能整除 x 且不是偶
22、数的各整数,并按从小到大的顺序放在数组中,这些除数的个数通过形参 n 返回。pp 所指的例如,若 x 中的值为 30,则有 4 个数符合要求,它们是 1,3,5,15。请按题意,完成填空。试题程序:#include#include void fun(int x,int pp,int*n)int i,j=0;【13】if(x%i=0)pp j+=i;【14】;main()int x,aa 1000,n,i;clrscr()printf(n Please en ter an in teger nu mber:fun(x,aa,&n);for(i=0;in;i+)printf(%d,aai);pri
23、ntf(n );【参考答案】【13】for(i=1;ix;i+=2)【14】*n=j11)#include#include int fun(int*s,int t,int*k)int i;*k=0;【15】if(s*k si)*k=i;return【16】n”)scanf%d,&x)、;(main()int a 10=876,675,896,101,301,401,980,431,451,777,k;clrscr();fun(a,10,&k);printf(”d,%d、n,k,a:k);【参考答案】【15】for(i=0;it;i+)【16】012)mystrlen 函数的功能是计算 str
24、所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char*str)int i;for(i=0;【17】!=O;i+);return(i);【参考答案】【17】*(str+i)或 str i(13)以下程序的输出结果为【18】。#define JFT(x)x*xmain()int a,k=3;a=+JFT(k+1);printf(%d,a)【参考答案】18】9(14)以下定义的结构体类型拟包含两个成员,其中成员变量 info 用来存入整形数据;成员变量 link 是指向自身结构体的指针,请将定义补充完整。struct node int info;【19】link;【参考答案】【19】struct node*(15)设有以下结构体类型:struct st char name 8;int num;float s 4;student 50;并且结构体数组 student 中的元素都已有值,若要将这些元素写到硬盘文件 fp 中,请 将以下 fwrite语句补充完整:fwrite(student,【20】,1,fp);【参考答案】【20】sizeof(struct st)*50