国家二级C语言机试(选择题)模拟试卷83
国家二级C语言机试(选择题)模拟试卷83(总分:80.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.算法的时间复杂度是指( )。
(分数:2.00)A.算法的长度B.执行算法所需要的时间C.算法中的指令条数D.算法执行过程中所需要的基本运算次数√解析:解析:算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
2.以下数据结构中,属于非线性数据结构的是( )。
(分数:2.00)A.栈B.线性表C.队列D.二叉树√解析:解析:二叉树属于非线性结构。
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进行的线性表。
3.数据结构中,与所使用的计算机无关的是数据的( )。
(分数:2.00)A.存储结构B.物理结构C.逻辑结构√D.线性结构解析:解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。
4.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。
(分数:2.00)A.顺序内聚B.偶然内聚√C.时间内聚D.逻辑内聚解析:解析:内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。
内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚一一模块中的代码无法定义其不同功能的调用。
但它使该模块能执行不同的功能,这种模块为巧合强度模块。
逻辑内聚一一这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。
时间内聚一一这种模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。
过程内聚一一如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
通信内聚一一这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。
顺序内聚一一如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。
功能内聚一一如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。
5.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。
二维表中可能有若干个键,它们称为该表的( )。
(分数:2.00)A.连接码B.关系码C.外码D.候选码√解析:解析:在关系中凡能惟一标识元组的最小属性集称为该表的键或码。
二维表中可能有若干个键,它们称为该表的候选码或候选键。
从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。
6.检查软件产品是否符合需求定义的过程称为 ( )。
(分数:2.00)A.确认测试√B.需求测试C.验证测试D.路径测试解析:解析:确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求。
7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是( )。
(分数:2.00)A.控制流√B.加工C.存储文件D.源和潭解析:解析:数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括4个方面,即加工、数据流、存储文件、源和潭。
8.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。
(分数:2.00)A.2B.3 √C.4D.5解析:解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。
所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则被交换放在第三个位置。
9.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为( )。
(分数:2.00)A.并运算√B.交运算C.差运算D.除运算解析:解析:关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
10.下列选项中,不属于数据管理员(DBA)职责的是( )。
(分数:2.00)A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换√解析:解析:数据库管理员(DataBaseAdministrator,DBA是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。
DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。
DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。
DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。
11.C语言规定,在一个C程序中,main()函数的位置( )。
(分数:2.00)A.必须在系统调用的库函数之后B.必须在程序的开始C.必须在程序的最后D.可以在任意位置√解析:解析:每个C程序有且只有一个主函数(main),且程序必须从“main()”函数开始执行,而且“main()”函数可以放在程序中的任意位置。
12.以下叙述中正确的是( )。
(分数:2.00)A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式√D.C语言出现的最晚,具有其他语言的一切优点解析:解析:此题考查的是C语言的基本特点。
C语言是一种高级编程语言,但并不是比其他语言高级;C 语言源程序必须经过编译生成目标文件才能被计算机识别执行;C语言出现比较晚,它既有优点也有缺点,而并不是具有其他一切语言的优点。
13.已知“int a=6;”则执行“a+=a-=a*a;”语句后,a的值为( )。
(分数:2.00)A.36B.0C.-24D.-60 √解析:解析:此题考查的是赋值表达式。
执行语句“a+=a-=a*a;”时,首先执行“a=a-a*a=-30”,然后执行“a=a+a=-60”。
14.下列叙述中错误的是( )。
(分数:2.00)A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行√D.赋值表达式末尾加分号就构成赋值语句解析:解析:C语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。
复合语句也称为“语句块”,其形式如下:{语句1;语句2;……语句n;},即用一对大括号把若干语句括起来构成一个语句组。
一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。
一个赋值表达式的最后加一个分号就成为一条语句,即赋值语句。
空语句是只有一个分号的语句,它什么也不做,程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号会导致逻辑上的错误,而且这种错误十分隐蔽,编辑器也不会提示逻辑错误,需要慎用。
15.若有定义:int a=7;float x=2.5,y=4.7;则表达式“x+a%3*(int)(x+y)%2/4”的值是( )。
(分数:2.00)A.2.500000 √B.2.750000C.3.500000D.0.000000解析:解析:此题考查的是变量的类型转换。
表达式中“(int)(x+y)把x+y=(7.2)”的值强制转化成整型即得到7,那么“a%3*(int)(x+y)%2”的值为整型常量1,所以“a%3*(int)(x+y)%2/4”的值为0;因为变量x是浮点型变量,所以表达式“x+a%3*(int)(x+y)%2/4”的结果也是浮点型,得到2.500000。
16.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是( )。
(分数:2.00)A.++i;B.n1=(n2/(n3=2));C.k=i=j;D.a=b+c=2;√解析:解析:本题考查赋值表达式。
赋值表达式的一般形式是:变量名:表达式。
C语言规定,不能给变量表达式赋值。
17.下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。
(分数:2.00)A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式√解析:解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。
逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。
18.若有说明int a[3][4];则a数组元素的非法引用是( )。
(分数:2.00)A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4] √解析:解析:此题考查的是数组元素的引用。
对于已定义的数组a[M][N],数组元素的正确引用必须满足行下标小于M,列下标小于N且为正整数。
此题中,选项D中列下标值出现溢出。
19.下列说法不正确的是( )。
(分数:2.00)A.int*ptr;//指针指向整形数据B.char*ptr;//指针的类型是字符型指针C.int**ptr;//指针的类型是双重指针D.int(*ptr)[3];//是一个指针数组,数组共有三个元素,而三个元素是int型指针√解析:解析:int(*ptr)[3]是一个数组指针,指针指向一个有3个int型变量的数组。
20.有以下程序#include<stdio.h>void main() {char s[]={''01aXy''};int i,n=0;for(i=0;s[i]!=0;i++) if(s[i]<='a'&&s[i]>='z')n++; printf(''%d\n'',n); } 程序运行后的输出结果是( )。
(分数:2.00)A.0 √B.2C.3D.5解析:解析:这段程序的功能求出字符串s中字符的ASCII码小于小写字符a并且大于小写字符z的字符的个数。
因为小写字符z的ASCII码大于小写字符a的ASCII码,所以满足a的ASCII码并且大于z的ASCII 码的字符是不存在的,所以输出0。
21.有以下程序:#include<stdio.h>main() {int a[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf(''y=%d\n'',y);} 程序的运行结果是( )。
(分数:2.00)A.y=0B.y=1C.y=2D.y=3 √解析:解析:程序首先定义了一个一维数组和指针,接着将数组第4个元素的地址赋给“*p”,进行-p使指针p指向了数组的第3个元素;通过“y=*p”,将数组第3个元素的值3赋给了y,所以选项D正确。
计算机二级c语言考前模拟二
第一部分:C语言程序设计试卷(共100分)一、填空题(每题1分,共10分)1、若已知a=20,b=l0,则表达式!a>b的值为( )。
2、为表示关系x大于等于y并且大于等于z,应使用的C语言表达式是()。
3、有以下程序main( ){int x=102,y=012;printf(“%2d,%2d ”,x,y);}执行后输出结果是()。
4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是( )。
5、有以下程序main( ){ char A[]=”abcdefg”,B[10]=”abcdefg”;printf(“%d %d ”,sizeof(A) ,sizeof(B) );}执行后输出结果是()。
6、以下程序运行时若从键盘输入:B33<回车>,则输出结果是( )。
#include <stdio.h>main(){char a,b;a=getchar();scanf("%d",&b);a=a-'a'+31;b=b*2;printf("%d %c\n",a,b);}7、以下程序运行后的输出结果是( )。
main(){ int x=10,y=20,t=0;if(x==y) t=x;x=y;y=t;printf("%d,%d\n",x,y);}8、以下程序的输出结果是( )。
main(){int arr[]={30,25,20,15,10,5},*p=arr;p++;printf("%d\n",*(p+3));}9、下列程序段的输出结果是( )。
main(){char b[]="Hello you";b[5]=0;printf("%s\n",b);}10、用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。
全国计算机二级考试《C语言》真题练习及答案
全国计算机二级考试《C语言》真题练习及答案全国计算机二级考试《C语言》真题练习及答案一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234B)'\123'C)123D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 34 5 0<回车>,则输出结果是A)6566456B)66656C)66666D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n);continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行。
全国计算机等级考试二级C语言笔试试题及答案
全国计算机等级考试二级C语言笔试试题及答案一、选择题1. 以下关于C语言的描述中,正确的是(A)A. C语言是一种结构化程序设计语言B. C语言是面向对象的程序设计语言C. C语言是一种解释型语言D. C语言是一种高级汇编语言答案:A2. 在C语言中,以下哪个选项是非法的整型常量?(D)A. 012B. 0x123C. 0XabcD. 0123答案:D3. 若变量已正确定义并赋值,以下正确的表达式是(C)A. a = b ++ + 1;B. a = b ++ = a++;C. a = b + b++;D. a = ++b + ++b;答案:C4. 在C语言中,以下哪个函数用于输出字符?(B)A. printfB. putcharC. putcharcD. putchart答案:B5. 已知 int a = 5, b = 3;,以下哪个选项的结果为1?(D)A. a % bB. a / bC. a + bD. a - b答案:D二、填空题1. 在C语言中,一个int类型的数据在内存中占______个字节。
答案:42. C语言中,逻辑运算符“或”用______表示。
答案:||3. 若定义 int a = 10, b = 20;,则执行语句 a += b -= a; 后,b的值为______。
答案:104. 在C语言中,函数的返回值类型为void时,表示该函数______。
答案:无返回值5. 在C语言中,以下函数的返回类型为______。
int max(int a, int b) {return (a > b) ? a : b;}答案:int三、判断题1. C语言中的数组名可以作为指针使用。
(正确)2. 在C语言中,静态存储区的数据在程序运行期间一直存在。
(正确)3. 在C语言中,结构体是一种用户自定义的数据类型。
(正确)4. 在C语言中,函数的参数传递都是按值传递的。
(错误,部分按引用传递)5. 在C语言中,文件操作完成后必须关闭文件,否则可能导致数据丢失。
国家二级C语言程序设计机试(选择题)模拟试卷3
国家二级C语言程序设计机试(选择题)模拟试卷3(总分:80.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。
(分数:2.00)A.循环队列B.带链队列C.二叉树√D.带链栈解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。
不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。
2.算法的空间复杂度是指( )。
(分数:2.00)A.算法在执行过程中所需要的计算机存储空间√B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。
3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
(分数:2.00)A.循环队列B.栈√C.队列D.二叉树解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。
4.软件设计中划分模块的一个准则是( )。
(分数:2.00)A.低内聚、低耦合B.高内聚、低耦合√C.低内聚、高耦合D.高内聚、高耦合解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。
5.结构化程序的三种基本控制结构是( )。
(分数:2.00)A.顺序、选择和重复(循环) √B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。
6.软件需求规格说明书在软件开发中的作用不包括( )。
(分数:2.00)A.软件设计的依据B.软件可行性分析的依据√C.软件验收的依据D.用户和开发人员对软件要做什么的共同理解解析:解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。
全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(四)
全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(四)一、选择题(1)通常所说的主机主要包括A)CPU B)CPU和内存C)CPU、内存与外存 D)CPU、内存与硬盘(2)在微机系统中,最基本的输入输出模块BIOS存放在A)RAM中 B)ROM中 C)硬盘中 D)寄存器中(3)一个24*24点阵的汉字字形信息所占的字节数为A)2 B)24 C)32 D)72(4)bit的意思是A)字 B)字长 C)字节 D)二进制位(5)某学校的工资管理程序属于A)系统程序 B)应用程序C)工具软件 D)文字处理软件(6)与十六进制数BB等值的十进制数是A)187 B)188 C)185 D)186(7) 设一张软盘已染上病毒,能清除病毒的措施是A)删除该软盘上的所有文件 B)格式化该软盘C)删除该软盘上的所有可执行文件 C)删除该软盘上的所有批处理文件(8)一张3.5英寸双面高密度软盘片的容量为A)360KB B)720KB C)1.44MB D)1.2MB(9)与二进制小数0.1等值的十六进制小数为A)0.1 B)0.2 C)0.4 D)0.8(10)DOS系统的热启动与冷启动的不同之处为热启动时A)不检测键盘、处设接口与内存 B)不提示用户输入日期与时间C)不用装入文件 D)不能从软盘启动(11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令A)COPY K1+K2+K3 K4 B)COPY K1+K2+K3+K4C)COPY K1+K2+K3+K4 K4 D)COPY K4+K1+K2+K3(12)下列文件名中可以作为批处理文件名的是A)AUTOEXC.C B)AUTOEXECC)ATX.BAT D)AUTO.TXT(13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令A)DIR \ PRN B)TYPE \ PRNC)DIR PRN C)TYPE PRN(14)设可执行文件 ABC.EXE 所需要的本该由键盘输入的数据已经按格式存放在文件XYZ 中,并要求执行结果放在文件 XYZ 中输入数据的后面. 下列命令中正确的是A) ABC XYZ B) ABC XYZC) ABC <XYZ(15)设当前盘中某一目录路径为 \A\B\C,当前目录为\A.下列命令中肯定出错的是A)MD \A\C B) CD C) MD \A\B\A D) MD \A\B(16)设 A 盘的目录结构如下:根目录│┌─────┬┴──┬───┬───┬────┐│ │ │ │ │ │ABC D1子目录 DX.C Q.DAT D2子目录A.FOR│ │┌────┬─┴──┬───┐┌───┬───┐│ │ │ │ │ │ │B.PAS D3子目录 Y.BAS A.C A1.C D4子目录XYZ.C│┌────┬────┬────┐│ │ │ │QR.C NA.C A.TXT B.C如果当前盘为 C 盘,A 盘的当前目录为\D2,则下列对 A 盘上文件QR.C 的指定中,合法的是A)\D2\D4\QR.C B)D4\QR.CC)A:D4\QR.C D)A:D2\D4\QR.C(17)下列DOS命令中,有错误的是A)TYPE AAB.FORCON B)TYPE ?AB.FORC)COPY *.C CON D)COPY CON PRN(18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C 盘根目录下的文件XYZ.TXT的后面,正确的命令是A)COPY C:\XYZ.TXT+AB1.TXTB)COPY AB1.TXTC:\XYZ.TXTC)TYPE AB1.TXTC:\XYZ.TXTD)AB1.TXT+C:\XYZ.TXTC:\XYZ.TXT(19)下列命令中合法的是A)DISKCOPY A: A: B)DISKCOPY A: C:C)DISKCOPY C: A: D)DISKCOPY C: D:(20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A.要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令A)COPY \*.C *.FOR B)COPY *.C \A\*.FORC)COPY *.FOR \*.C D)COPY \A\*.C *.FOR(21)下列不正确的转义字符是A)'\\' B)'\" C)'074' D)'\0'(22)若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(23)表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)(24)设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3 C) 2 D) 1(25)设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A) 10 B) 20 C) 40 D) 30(26)下列可作为C语言赋值语句的是A) x=3,y=5 B) a=b=6C) i--; D) y=int(x);(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A) 不定值 B) 2 C) 1 D) 0(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100y=765.12(29)设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y<=50;y++){ if(x=10))break;if (x%2==1){ x+=5; continue;}x-=3;}A) 2 B) 4 C) 6 D) 8(30)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度(31)以下叙述中不正确的是A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(32)假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a; a++; }while (b--<0);A) 9 B) -2 C) -1 D) 8(33)设j为int型变量,则下面for循环语句的执行结果是for( j=10;j3;j--){ if(j%3)j--;--j; --j;printf("%d ",j);}A) 6 3 B) 7 4 C) 6 2 D) 7 3(34)设有以下宏定义:#define N 3#define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为A) 出错 B) 42 C) 48 D)54(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int 型变量,则不能正确执行的语句是A)k=*P1+*P2; B)p2=k;C)P1=P2; D)K=*P1 * (*P2);(36)设有如下定义:int arr[]={6,7,8,9,10};int * ptr;则下列程序段的输出结果为ptr=arr;* (ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));A)8,10 B)6,8 C)7,9 D)6,10(37)以下程序的输出结果是main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)23(38)执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A) 15 B) 14 C) 13 D) 12(39)有以下程序段char arr[]="ABCDE";char *ptr;for(ptr=arr;ptr<arr+5;ptr++)printf("%s\n",ptr);输出结果是A) ABCD B) A C) E D)ABCDEB D BCDEC C CDED B DEE A E(40)有以下程序main(){ int x,i;for(i=1;i<=50;i++){ x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf("%d,i);}}输出结果是A) 28 B) 27 C) 42 D) 41(41)有下列程序#include<stdio.hmain(){ union{ int k;char i[2];} *s,a;s=&a;s-i[0]=0x39; s-i[1]=0x38;printf("%x\n",s-k);}输出结果是A) 3839 B) 3938 C) 380039 D) 390038(42)有以下程序#include <stdio.hmain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A) 2,1 B) 3,2 C) 4,3 D) 2,-1(43)设有如下定义:int (*ptr)*();则以下叙述中正确的是A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是一个函数名,该函数的返回值是指向int型数据的指针(44)有以下程序#include <stdio.hstruct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n",(*p).name); }main(){struct stu students[3]={ {9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18} };fun(students+2);}输出结果是A) Zhang B)Zhao C) Wang D) 18(45)设有以下说明和定义:typedef union{ long i; int k[5]; char c; }DATE; struct date{ int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A) 26 B) 30 C) 18 D) 8(46)有以下程序main(){ char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));}输出结果是A) gm B) rg C) or D) ga(47)有以下程序viod fun (int a,int b,int c){ a=456; b=567; c=678;}main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d\n",c,d);}输出结果是A)30,20,10 B)10,20,30C)456,567,678 D)678,567,456(48)有以下程序int fun(int x,int y,int *cp,int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是A)50,30 B)30,J50 C)80,-20 D)80,20(49)有以下程序main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i<j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11(50)有以下程序#include "atdio.h"int abc(int u,intv);main (){ int a=24,b=16,c;c=abc(a,b);printf('%d\n",c);}int abc(int u,int v){ int w;while(v){ w=u%v; u=v; v=w }return u;}输出结果是A) 6 B) 7 C) 8 D) 9二、填空题(1)自动批自理文件名为_______.(2)DOS命令分为内部命令与外部命令,COMP命令属于_______命令.(3)设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容.这一条DOS命令应为__ _ (4)要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为__ _(5)设DOS外部命令文件所在的路径均已用PATH命令打通.现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为___(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___ 1.0+x/y(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___for(i=0,j=10;i<=j;i++,j--) k=i+j;(8)设有以下定义的语句:int a[3][2]={10,20,30,40,50,60}, (*p)[2];p=a;则 *(*(p+2)+1)值为___(9)以下程序的输出结果是___#include <stdio.hint fun(int x,int y){ static int m=0,i=2;i+=m+1;m=i+x+y;return m}main(){ int j=4,m=1,k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}(10)函数fun的功能是:使一个字符串按逆序存放,请填空void fun (char str[]){ char m; int i,j;for(i=0,j=strlen(str);i<____;i++,j--){ m=str[i];str[i]=__ _;str[j-1]=m;}printf("%s\n",str);}(11)以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空.#include"ctype.h"#include"stdio.h"main(){ char str[81],*sptr;int i;for(i=0;i<80;i++){ str[i]=getchar();if(str[i]=='\n') break;}str[i]=____;sptr=str;while(*sptr) putchar(*sptr____(13));}(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1.请填空.#includemain(){ char str[100],str2[100],c;int i,s;printf("\n input string 1:\n"); gest(str1);printf("\n input string 2:\n"); gest(str2);i=0;while((strl[i]==str2[i]&&(str1[i]!=____))i++;s=____;printf("%d\n",s);}(13)以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请填空.#include<stdio.hmain(){ FILE *fp;char str[100]; int i=0;if((fp=fopen("text.txt",__ __))==NULL){ printf("can't open this file.\n");exit(0);}printf("input astring:\n"); gest(str);while (str[i]){ if(str[i]='a'&&str[i]<='z')str[i]=___ _;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("test.txt",____);fgets(str,100,fp);printf("%s\n",str);fclose(fp);}(14) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空.#include.<stdio.hmain(){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int c[64],d,i=0,base;long n;printf("enter a number:\n"); scanf("%ld",&n);printf("enter new base:\n"); scanf("%d",&base);do{ c[i]=____;i++; n=n/base;} while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c",b____;}}_答案一、选择题(1)B (2)B (3)D (4)D (5)B(6)A (7)B (8)C (9)D (10)A(11)D (12)C (13)A (14)B (15)D(16)C (17)B (18)A (19)A (20)A(21)C (22)D (23)A (24)D (25)B(26)C (27)C (28)B (29)C (30)C(31)D (32)D (33)B (34)C (35)B(36)D (37)B (38)A (39)D (40)D(41)A (42)A (43)C (44)B (45)B(46)D (47)A (48)C (49)B (50)C二、填空题(1)AUTOEXEC.BAT(2)外部(答外部命令不扣分)(3)COPY A:*.DAT PRN(在 COPY 后面与A:*.DAT后面都至少要有一个空格)(4)RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR(在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格) (5)ATTRIB+R WST.TXT(在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIBWST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)(6)1.0或1(7)10(8)60(9)8,17(10)strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1str[j-1]或*(str+j-1)(11)'\0' 或0++(12) '\0'或0strl[i]-str2[i](13) "w"或"w+"或"wt"或"w+t"或"""wt+"str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'"r"或"r+"或"r+t"或"rt+"(14)n%base[d]。
国家二级计算机考试c语言试题及答案
国家二级计算机考试c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名必须以字母开头B. 变量名可以包含数字和下划线C. 变量名区分大小写D. 变量名可以以数字开头答案:D2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 函数结构5. 在C语言中,用于定义函数的关键字是:A. intB. voidC. returnD. function答案:B6. C语言中,用于声明一个字符型变量的关键字是:A. intB. charC. floatD. double答案:B7. 在C语言中,以下哪个选项是正确的注释方式?A. //B. /* */C.D. @@答案:B8. C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. doubleD. char答案:B9. 在C语言中,以下哪个选项不是合法的整数常量?B. 0x1AC. 0123D. 1.23答案:D10. 在C语言中,以下哪个选项不是合法的标识符?A. _nameB. name2C. 2nameD. name-name答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。
答案:int2. C语言中,使用________函数可以输出格式化的字符串。
答案:printf3. 如果要定义一个指向整型数据的指针,应该使用________关键字。
答案:int*4. 在C语言中,使用________关键字可以定义一个结构体。
答案:struct5. 使用________函数可以获取当前系统时间。
答案:time6. 在C语言中,使用________关键字可以定义一个枚举类型。
国家二级C语言程序设计机试选择题模拟试卷2_真题-无答案
国家二级C语言程序设计机试(选择题)模拟试卷2(总分80,考试时间90分钟)1. 选择题1. 下列叙述中正确的是( )。
A. 一个算法的空间复杂度大,则其时间复杂度也必定大B. 一个算法的空间复杂度大,则其时间复杂度必定小C. 一个算法的时间复杂度太,则其空间复杂度必定小D. 算法的时间复杂度与空间复杂度没有直接关系2. 下列叙述中正确的是( )。
A. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B. 循环队列中的元素个数随队头指针的变化而动态变化C. 循环队列中的元素个数随队尾指针的变化而动态变化D. 以上说法都不对3. 一个栈的初始状态为空。
现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
A. 1,2,3,A,B,CB. C,B,A,1,2,3C. C,B,A,3,2,1D. 1,2,3,C,B,A4. 一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为( )。
A. 219B. 229C. 230D. 2315. 对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。
A. 9B. 10C. 45D. 906. 下列各项中,对对象概念描述正确的是( )。
A. 对象间的通信靠消息传递B. 对象是名字和方法的封装体C. 任何对象必须有继承性D. 对象的多态性是指一个对象有多个操作7. 下列各项中,不属于软件设计阶段任务的是( )。
A. 软件总体设计B. 算法设计C. 制订软件并确认测试计划D. 数据库设计8. 一般情况下,当对关系R和S进行自然连接时,要求R和s含有一个或者多个共有的( )。
A. 记录B. 行C. 属性D. 元组9. 下列各项与栈结构有关联的是( )。
A. 数组的定义域使用B. 操作系统的进程调度C. 函数的递归调用D. 选择结构的执行10. 有两个关系R和T如下:则由关系R得到关系T的操作是( )。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
国家二级(C语言)机试历年真题试卷汇编18
国家二级(C语言)机试历年真题试卷汇编18(总分:86.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中错误的是( )。
(分数:2.00)A.算法的时问复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系√D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:解析:算法的时间复杂度是指执行算法所需要的计算工作量。
数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A项正确。
算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B项正确。
而算法的时间复杂度与空间复杂度没有直接关系,C项错误。
算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的,D项正确。
2.在满足实体完整性约束的条件下( )。
(分数:2.00)A.一个关系中应该有一个或多个候选关键字√B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析:实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A。
3.下面描述中,不属于软件危机表现的是( )。
(分数:2.00)A.软件过程不规范√B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析:软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
因此本题答案为A。
4.下列各项中不属于需求分析阶段任务的是( )。
(分数:2.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划√解析:解析:需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为D。
国家计算机等级考试二级c语言选择题及答案全部..
11 题号 题目内容 A B C D 答案 1 二进制数1111.1对应的八进制数是( )。
17.5 15.4 17.4 17.1 C 2 计算机能够自动工作,主要是因为采用了( )。
二进制数制 高速电子元件 存储程序控制 程序设计语言 C 3 从第一代计算机到第四代计算机的体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出设备组成的。
这种体系结构称为( )体系结构。
艾伦.图灵 罗伯特.诺依斯 比尔.盖茨 冯.诺依曼 D 4 电子计算机能够自动地按照人们的意图进行工作的最基本思想是( )这个思想是冯.诺依曼提出来 布尔运算 集成电路 程序存储 总线系统 C5 对待计算机软件正确的态度是( )。
计算机软件不需要维护 计算机软件只要能复制得到就不必购买 受法律保护的计算机软件不能随便复制 计算机软件不必有备份 C 6 冯·诺依曼计算机工作原理是( )。
程序设计 存储程序和程序控制 算法设计 程序调试 B 7 根据汉字结构输入汉字的方法是( )。
区位码 电报码 拼音码 五笔字型 D 8 工厂利用计算机系统实现温度调节、阀门开关,该应用属于( )。
过程控制 数据处理 科学计算 CAD A9 计算机系统的组成包括( )。
硬件系统和应用软件 外部设备和软件系统 硬件系统和软件系统 主机和外部设备 C 10 计算机之所以能够按照人的意图自动地进行操作,主要是因为采用了( )。
二进制编码 高级语言 存储程序和程序控制 高速的电子元件 C 11 世界上不同型号的计算机,就其工作原理而言,一般认为都基于冯.诺依曼提出的原理( )。
二进制数 布尔代数 集成电路 存储程序和程序控制 D 12 世界上第一台电子计算机的名字是( )。
ENIAC EDSAC EDVAC UNIVAC A 13 世界上第一台计算机的名称是( )。
IBM APPLEⅡ MAC ENIAC D14 下列叙述中,正确的是( )。
