c语言模拟测试

合集下载

C语言程序设计模拟试卷及答案(2)

C语言程序设计模拟试卷及答案(2)

C语言程序设计模拟试卷及答案(2)C语言程序设计模拟试卷及答案(2)一、填空题1、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______.2、C语言中基本的数据类型有:______、______ 、______ .3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是______.4、共用体和结构体的定义格式类似,不同点是______.5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a 的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______.6、有语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]= ______.7、符号“a”和‘a’的区别______.8、下列程序的输出结果是______.int ast(int x,int y,int * cp,int * dp){ *cp=x+y; *dp=x-y; }main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf(“%d,%d/n”,c,d);}二、选择题1、以下选项中属于C语言的数据类型是()。

A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是()。

A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是()。

A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是()。

A、字符型数组中可能存放字符串。

B、可以对字符型数组进行整体输入、输出。

C、可以对整型数组进行整体输入、输出。

C语模拟考试题1

C语模拟考试题1

C语言模拟考试题1(共100分)一、单项选择题(每小题1分,共20分)1.若已定义x和y为double类型,则表达式x=1, y=x+5/2的值是(C )。

(A) 2 (B) 3 (C) 3.0 (D) 3.52.下列正确的字符串常量是( B )。

(A) abc (B) "abc" (C) 'abc' (D) 'a'3.以下程序运行后的输出结果是(B )。

#include<stdio.h>void main( ){ int p=10;printf("%d\n", (p?p/3:p%3));}(A) 2 (B) 3 (C) 20 (D) 错误信息4.在C语言中,short类型的数据长度为2个字节,则unsinged short类型数据的取值范围是( B )。

(A) 0至255 (B) 0至65535(C) -32768至32767 (D) -256至2555.在下列定义中,不正确的是( D )。

(A) int a[10]={12,23}; (B) char *b[10];(C) char s[20]= "china"; (D) double n=9,aa[n];6.有#define f(x) x+x及int a=3; 则执行printf("%d", f(a)*f(a)); 后的输出值为(B )。

(A) 0 (B) 15 (C) 36 (D) 97.使用fseek函数可以实现的功能是(D )。

(A) 文件的输出和输入(B) 文件的顺序读写(C) 文件的随机读写(D) 改变文件位置指针的当前位置8.以下关于静态局部变量的说法正确的是(D )。

(A) 静态局部变量的作用域为程序运行的全过程(B) 静态局部变量定义在函数体之外(C) 当某一函数被调用时,系统才为它的静态局部变量临时分配存储空间(D) 存储特性定义为static的局部变量是静态局部变量9.表达式sizeof('a'+10.0)的值为( C )。

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。

A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。

答案选择B选项。

[单选题]4.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。

制定软件集成测试计划属于概要设计阶段的任务。

答案选择D选项。

[单选题]5.结构化程序的三种基本控制结构是()。

A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。

答案选择A选项。

[单选题]6.构成计算机软件的是()。

A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

答案选择D选项。

[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。

全国计算机二级C语言模拟测试【含详细解析】 (9)

全国计算机二级C语言模拟测试【含详细解析】 (9)

1.算法的时间复杂度是指A. 设计该算法所需的工作量B. 执行该算法所需要的时间C. 执行该算法时所需要的基本运算次数D. 算法中指令的条数正确答案:C你的答案:解析:【解析】算法的时间复杂度是指执行算法所需要的计算工作量。

它与算法程序执行的具体时间并不一致,因为算法执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中许多细节的影响。

算法的计算工作量是用算法所执行的基本运算次数来度量的。

故选C选项。

2.设循环队列存储空间为Q(1:50),初始状态为front=rear=50。

经过一系列入队和退队操作后,front=rear=25,则该循环队列中元素个数为A. 26B. 25C. 24D. 0或50正确答案:D你的答案:解析:【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。

循环队列长度为50,由初始状态为front=rear=50可知此时循环队列为空。

入队运算时,首先队尾指针rear进1(即rear+1),然后在队尾指针rear指向的位置插入新元素。

特别的,当队尾指针rear=50+1时,置rear=1。

退队运算时,排头指针front进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=50+1时,置front=1。

若经过运算,front=rear可知队列空或者队列满,则队列中有0或者50个元素。

故选D 选项。

3.某棵树的度为4,且度为4、3、2、1的结点数分别为1、2、3、4,则该树中的叶子结点数为A. 11B. 9C. 10D. 8正确答案:A你的答案:解析:【解析】由题目可以知道,若四种度的结点分开成子树,共包含结点(4+1)+2×(3+1)+3×(2+1)+4×(1+1)=30个,当组合成一棵树时,任选一个度不为0的结点作为根结点,则新的树结点个数为30-2-3-4=21个,则该树中叶子结点个数为21-1-2-3-4=11。

大一c语言模拟试题二和参考答案

大一c语言模拟试题二和参考答案

C语言测试题一、单项选择题(共30分,每题1分)1. 下列不正确的转义字符是A.\\B.\‘C.074D.\02. 不是C语言提供的合法关键字是A.switchB.cherC.caseD.default3.正确的标识符是()A.?a B.a=2 C.a.3 D.a_34.下列字符中属于键盘符号的是A.\B.\nC.\tD.\b.下列数据中属于“字符串常量”的A.ABCB.“ABC”C.‘ABC’D.‘A’6.c har型常量在内存中存放的是A.ASCII码B.BCD码C.内码值D.十进制代码值7.设a为5,执行下列语句后,b的值不为2的是()A.b=a/2B.b=6-(——a) C.b=a%2 D.b=a>3?2:28.在以下一组运算符中,优先级最高的运算符是()A.<=B.=C.%D.&&9.设整型变量i的值为3,则计算表达式i——i 后表达式的值是()A.0B.1C. 2D.表达式出错10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()A.6B.9C.8D.表达式出错11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.512.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果是()A.4B.3C.2D.113.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是()A.10<a<15B.a= =11 || a= =12 || a= =13 || a= =14C.a>10&&a<15D.!(a<=10)&&!(a>=15)14.若有以下定义:char a、 int b 、 float c 、double d,则表达式a*b+d-c值的类型为()A.floatB.intC.charD.double15.表达式“10!=9”的值是()A.trueB.非零值C.0D.116.循环语句 for (x=0,y=0;(y!=123)|| (x<4);x++);的循环执行()A.无限次B.不确定次C.4次D.3次17.在C语言中,下列说法中正确的是()A. 不能使用“do while”的循环B.“do while”的循环必须使用break语句退出循环C.“do while”的循环中,当条件为非0时将结束循环D.“do while”的循环中,当条件为0时将结束循环。

全国计算机二级C语言模拟测试【含详细解析】 (10)

全国计算机二级C语言模拟测试【含详细解析】 (10)

1.下列关于栈叙述正确的是( )。

A. 栈顶元素最先能被删除B. 栈顶元素最后才能被删除C. 栈底元素永远不能被删除D. 栈底元素最先被删除正确答案:A你的答案:解析:【解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。

栈底元素最先入栈却最后被删除。

所以选择A)。

2.下列叙述中正确的是( )。

A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D. 以上说法均不正确正确答案:C你的答案:解析:【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。

3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。

A. 3B. 4C. 6D. 7正确答案:D你的答案:解析:【解析】根据二叉树的基本性质3:在任意一棵二叉树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。

4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( )。

A. 学生成绩管理系统B. C语言编译程序C. UNIX 操作系统D. 数据库管理系统正确答案:A你的答案:解析:【解析】软件按功能可以分为:应用软件、系统软件、支撑软件。

操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。

所以B)、C)、D)都是系统软件,只有A)是应用软件。

5.结构化程序所要求的基本结构不包括( )。

A. 顺序结构B. GOTO跳转C. 选择(分支)结构D. 重复(循环)结构正确答案:B你的答案:解析:【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

全国计算机二级C语言模拟测试【含详细解析】 (15)

全国计算机二级C语言模拟测试【含详细解析】 (15)

1.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=20,rear=15。

现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为A. 5B. 6C. m-5D. m-6正确答案:D你的答案:解析:【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,比较次数为m-6次,D选项正确。

2.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为A. EFGDCBAB. DCBEFGAC. BCDGFEAD. DCBGFEA正确答案:D你的答案:解析:【解析】二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。

二叉树的前序序列为ABCDEFG,A为根节点。

中序序列为DCBAEFG,可知DCB为左子树节点,EFG为右子树节点。

同理B为C父节点,C 为D父节点,且CD均为B的同侧子树节点。

同理E为F根节点,F为G根节点,且FG 为E同侧子树节点。

二叉树的后序序列为DCBGFEA,D选项正确。

3.下列叙述中正确的是A. 有两个指针域的链表一定是二叉树的存储结构B. 有多个指针域的链表一定是非线性结构C. 有多个指针域的链表有可能是线性结构D. 只有一个根结点的数据结构一定是线性结构正确答案:C你的答案:解析:【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,称为线性表。

全国计算机二级C语言模拟测试【含详细解析】 (8)

全国计算机二级C语言模拟测试【含详细解析】 (8)

1.下列叙述中正确的是A. 解决同一个问题的不同算法的时间复杂度一般是不同的B. 解决同一个问题的不同算法的时间复杂度必定是相同的C. 对同一批数据作同一种处理,如果数据存储结构不同,不同算法的时间复杂度肯定相同D. 对同一批数据作不同的处理,如果数据存储结构相同,不同算法的时间复杂度肯定相同正确答案:A你的答案:解析:【解析】算法的时间复杂度是指执行算法所需要的计算工作量,而计算工作量是用算法所执行的基本运算次数来度量的。

解决同一个问题的不同算法的时间复杂度,可能相同也可能不相同。

算法的时间复杂度与数据存储结构无关,对同一批数据作同一种处理或者不同处理,数据存储结构相同或者不同,算法的时间复杂度都可能相同或者不同。

故选A选项2.下列处理中与队列有关的是A. 操作系统中的作业调度B. 执行程序中的过程调用C. 执行程序中的循环控制D. 二叉树的遍历正确答案:A你的答案:解析:【解析】队列是指允许在一端进行插入,而在另一端进行删除的线性表。

由于最先进入队列的元素将最先出队,所以队列具有“先进先出”的特性,体现了“先来先服务”的原则。

作业调度是指根据一定信息,按照一定的算法,从外存的后备队列中选取某些作业调入内存分配资源并将新创建的进程插入就绪队列的过程。

执行程序中的过程调用一般指函数调用,需要调用时候转入被调用函数地址执行程序,与队列无关。

执行程序中的循环控制是指算法的基本控制结构,包括对循环条件的判定与执行循环体,与队列无关。

二叉树是一个有限的结点集合,二叉树的遍历是指不重复地访问二叉树中的所有结点,与队列无关。

故本题选择A选项3.设栈的存储空间为S(1:m),初始状态为top=m+1。

经过一系列入栈与退栈操作后,top=1。

现又要将一个元素进栈,栈顶指针top值变为A. 发生栈满的错误B. 2C. mD. 0正确答案:A你的答案:解析:【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)一、选择题1. 下面哪个选项是C语言的合法标识符?A. voidB. 2varC. intD. _temperature解析:C语言的标识符必须以字母或下划线开头,后面可以跟字母、数字或下划线。

选项A和C是C语言的关键字,不能作为标识符。

选项B以数字开头,不合法。

选项D符合标识符的规则,是正确的。

2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char解析:在C语言中,关键字`int`用于定义整型变量。

选项A 用于定义浮点型变量,选项C用于定义双精度浮点型变量,选项D用于定义字符型变量。

因此,正确答案是B。

3. 下面哪个选项是C语言中的逻辑运算符?A.++B. &&C. ||D. !=解析:C语言中的逻辑运算符包括`&&`(逻辑与)和`||`(逻辑或)。

选项A是自增运算符,选项D是不等于运算符,因此正确答案是B和C。

二、填空题4. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++);return 0;}```解析:这段代码的输出是5。

在`printf`语句中,`x++`是后缀自增运算符,它先输出x的当前值5,然后x的值增加1。

因此,输出为5。

5. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5, y = 10;printf("%d\n", x > y ? x : y);return 0;}```解析:这段代码的输出是10。

条件运算符`?:`是一个三元运算符,它根据第一个表达式的值来选择第二个或第三个表达式。

在这个例子中,`x > y`是假的,所以输出是`y`的值,即10。

【C语言指针模拟测试题_答案】

【C语言指针模拟测试题_答案】

C语言指针部分模拟测试题一、选择题1.语句int a=10,*point=&a; D 其值不为地址。

A. pointB. &aC. &pointD. *point2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 BA. ”visual C++”B.str的首地址C. \nD.”v”4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为AA.T,Father,FB.Teaher,F,FatherC. Teacher,Father,FatherD.语法错,无输出5.下列说明或赋值语句,不正确的是 CA. char *p;p=”Visual C++”;B. char p1[12]={‘v’,’i’,’s’,’u’};C. char p2[12];p2=”Visual C++”D. char p3[]=”Visual”;6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 BA.p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int)D.p+=(2*4+3)*sizeof(int)7.语句int i,*p1,**p2;以下语句语法不正确的是 BA.p1=&i;B. p2=&i;C.p2=&p1;D.i=’\0x23’;8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能..把结点b连接到结点a之后的语句是 BC. p->next=&b;D.(*p).next=q;9.下面正确的语句是 AA. int a[3][4],(*p)[4]; p=a;B. int a[3][4],*p[4]; p=a;C. int a[3][4],*p; p=a;D. int a[3][4],**p;*p=a;10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 BA.fp=fopen("a:\\aa.dat","ab");B. fp=fopen("a:\\aa.dat","a");C. fp=fopen("a:\\aa.dat","r+");D. fp=fopen("a:\\aa.dat","w");11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, BA.函数返回值100B. 函数返回值150C. 函数返回二个值100和150D. 语句return 100,150;语法错.12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 AA.该数组的首地址B. 该数组的元素个数C. 该数组中的各元素值D. 该数组的大小13.执行以下语句序列:则 Aenum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //Ac1=Mon; //Bprintf(“%d”,c1);A.输出1B.输出2C.输出0D. B行语法错14.执行以下语句序列:则 Cchar *p1=”Speaking”; //Achar *p2=”English”; //Bchar *p3=”a piece of cake”; //Cchar *str[]={p1,p2,p3}; //Dprintf(“%c”,*(str[0]+1));A.输出EnglishB.输出SpeakingC.输出pD. D行语法错二、填空题1.(2*2分=4分)下面程序的运行结果为16 、 2void main( ){static int a[3][2]={{12},{14,16},{1,2}};int *p=a[1];printf(“%d\n”,*(p+1));printf(“%d\n”,*(p+3));}2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,*(*(p+1)+1)的值为7static int b[3][2]={1,3,5,7,9,11};int (*p)[2];p=b;3.(1*4分=4分)下面程序的运行结果为26#include<stdio.h>void sub(int *x,int i,int n){if(n<=i)sub(x,i,3*n);*x+=n++;}void main( ){int x=0;sub(&x,12,2);printf(“%d”,x);}4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(“%s\n”,q);printf(“%s\n”,p);}5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main(){short ar[5]={1,2,3,4,5 };short * par=&ar[1];int i;for(i=0; i<4; i++){printf(“%d %d %d”,ar[i],par[i],*(ar+i));}}6.(2*2分=4分) 以下程序运行结果是__200 100_____void swap2(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main( ){ int a=100,b=200;swap2(&a,&b);printf(“%d\t%d”,a,b);}7.(3*2分=6分)void fun(int n, int *s){ int f1,f2;if(n= =1||n= =2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“%d\t%d”,f1,f2);}}void main( ){ int x;fun(4,&x);printf(”x=%d\n”,x);}程序输出的第一行是1 1 第二行是4 1 最后一行是x=108. (3*2分=6分)void f(int *q1,int *q2,int *q3){*q3=*q1+*q2;}void main( ){ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;for(i=2;i<9;i++)f(p1++,p2++,p3++);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf(“%d”,a[i][i]);printf(’\n’);}}程序输出的第一行是111 第二行是555 最后一行是343434 9.(2*3分=6分)int f(int x,int y){return x*y;}void main( ){ int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i++){ switch(i){case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;}printf(”j=%d”,j);}}程序输出的第一行是j=2 第二行是j=6 最后一行是j=10三、完善程序1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.struct NODE{int data;NODE *next;};int min(NODE *first){NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next )if(m> p->data )m=p->data;return m;}2.(3*2分=6分)以下程序求二维数组的平均值float average(float (*p)[4],int n){float sum=0;for(int i=0; i<n ;i++){for(j=0;j<4;j++)sum+= (*p)[j] 或 *(*p+j) ;p++;}return sum/(n*4);}void main( ){ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};printf(”平均值=%f ”,average(score, 3 ));}3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。

全国计算机二级C语言模拟测试【含详细解析】 (18)

全国计算机二级C语言模拟测试【含详细解析】 (18)

1.下列叙述中正确的是()。

A. 链表可以是线性结构也可以是非线性结构B. 链表只能是非线性结构C. 快速排序也适用于线性链表D. 对分查找也适用于有序链表正确答案:A你的答案:解析:【解析】线性表的链式存储结构称为线性链表,线性链表可以是线性结构也可以是非线性结构。

快速排序和对分查找是适用于顺序存储的线性表。

故本题选择A选项。

2.循环队列的存储空间为Q(1:50)。

经过一系列正常的入队与退队操作后,front=rear=25。

后又成功地将一个元素退队,此时队列中的元素个数为()。

A. 24B. 49C. 26D. 0正确答案:B你的答案:解析:【解析】当front=rear时可知队列要么为空要么队列满,题目又成功地将一个元素退队,说明之前队列为满(为空时队列中无元素),退出一个元素后队列中还有50-1=49个元素。

故本题选择B选项。

3.设二叉树中有20个叶子结点,5个度为1的结点,则该二叉树中总的结点数为()。

A. 46B. 45C. 44D. 不可能有这样的二叉树正确答案:C你的答案:解析:【解析】二叉树中只存在度为0、1、2的结点,根据在二叉树中度为0的结点(叶子结点)总比度为2的结点多一个,可知本题中度为2的结点有20-1=19个。

故该二叉树中总的结点数为20+5+19=44个。

故本题选择C选项。

4.设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出队至队空,再依次出栈至栈空。

则输出序列为()。

A. E,D,C,B,A,F,G,H,I,JB. E,D,C,B,A,J,I,H,G,FC. F,G,H,I,J,A,B,C,D,E,D. F,G,H,I,J,E,D,C,B,A正确答案:D你的答案:解析:【解析】栈称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。

F,G,H,I,J依次入队,则依次出队顺序为F,G,H,I,J;A,B,C,D,E依次入栈,则依次出栈顺序为E,D,C,B,A。

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);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,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

一级c类模拟考试答案

一级c类模拟考试答案

一级c类模拟考试答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义`int a[5] = {1, 2, 3, 4, 5};`,则`a[0]`的值是多少?A. 0B. 1C. 2D. 3答案:B3. 下列哪个函数不能用于字符串的复制?A. strcpyB. strncpyC. strcatD. memcpy答案:C4. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. %D. ^答案:A5. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable_name答案:D6. C语言中,哪个函数用于计算数组中元素的总和?A. sumB. totalC. countD. None of the above答案:D7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D8. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D10. 在C语言中,哪个函数用于将字符串反转?A. reverseB. strrevC. strcpyD. None of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于__输出__。

答案:格式化2. `sizeof`运算符用于获取__数据类型__的__大小__。

答案:变量;占用内存3. 在C语言中,`for`循环通常用于__迭代__。

答案:序列4. `break`语句用于__退出__循环或__开关__语句。

C语言模拟测试题一及答案

C语言模拟测试题一及答案

模拟题一一、选择题1.下列说法正确的是()。

A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.C语言中不能用来表示整常数的进制是()。

A)十进制B)十六进制C)八进制D)二进制3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。

A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型4.C语言规定标识符由()等字符组成。

A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。

A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是()。

A)2.500000 B)3.500000 C)4.500000 D)5.0000007.设有如下定义和执行语句,其输出结果为()。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 38.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。

A)int B)float C)char D)double9.C语言中,运算对象必须是整型数的运算符是()。

A)%B)\C)% 和\D)**10.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为()。

A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。

全国计算机二级C语言模拟测试【含详细解析】 (4)

全国计算机二级C语言模拟测试【含详细解析】 (4)

全国计算机二级C语言模拟测试卷【附带详细解析】@乡村教师胡劲1.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=20,rear=15。

现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为A. 5B. 6C. m-5D. m-6正确答案:D你的答案:解析:【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,比较次数为m-6次,D选项正确。

2.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为A. EFGDCBAB. DCBEFGAC. BCDGFEAD. DCBGFEA正确答案:D你的答案:解析:【解析】二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。

二叉树的前序序列为ABCDEFG,A为根节点。

中序序列为DCBAEFG,可知DCB为左子树节点,EFG为右子树节点。

同理B为C父节点,C 为D父节点,且CD均为B的同侧子树节点。

同理E为F根节点,F为G根节点,且FG 为E同侧子树节点。

二叉树的后序序列为DCBGFEA,D选项正确。

3.下列叙述中正确的是A. 有两个指针域的链表一定是二叉树的存储结构B. 有多个指针域的链表一定是非线性结构C. 有多个指针域的链表有可能是线性结构D. 只有一个根结点的数据结构一定是线性结构正确答案:C你的答案:解析:【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,称为线性表。

c语言模拟试题

c语言模拟试题

c语言模拟试题C语言模拟试题一、选择题(每题2分,共20分)1. 以下哪个是C语言的关键字?A. intB. IntegerC. INTD. integer2. C语言中,用于定义一个整型变量的关键字是:A. varB. defineC. letD. int3. 以下哪个不是C语言的标准输入输出库函数?A. printf()B. scanf()C. coutD. getchar()4. C语言中,用于实现循环的关键字是:A. loopB. whileC. doD. repeat5. 在C语言中,以下哪个是正确的数组声明语句?A. int numbers[];B. int numbers(10);C. int numbers = 10;D. int numbers = {1, 2, 3};6. 以下哪个是C语言中正确的字符串定义方式?A. string str = "Hello";B. char str[] = "Hello";C. char str = "Hello";D. string str[] = "Hello";7. C语言中,用于定义函数的关键字是:A. functionB. funcC. defD. void8. 以下哪个是C语言中正确的条件语句?A. if (x == y)B. switch (x)C. case x:D. default9. C语言中,用于定义指针的符号是:A. &B. *C. ^D. %10. 在C语言中,以下哪个是正确的结构体声明语句?A. struct Student {int age; char name[50];};B. struct {int age; char name[50]} student;C. type Student {int age; char name[50]};D. Student struct {int age; char name[50]};二、填空题(每空2分,共20分)11. 在C语言中,一个变量的声明必须在____的开始。

全国计算机二级C语言模拟测试【含详细解析】 (19)

全国计算机二级C语言模拟测试【含详细解析】 (19)

1.下列叙述中正确的是()。

A. 快速排序法适用于顺序存储的线性表B. 快速排序适用于链式存储的线性表C. 链式存储的线性表不可能排序D. 堆排序适用于非线性结构正确答案:A你的答案:解析:【解析】排序可以在不同的存储结构上实现,但快速排序法适用于顺序存储的线性表,不适用于链式存储的线性表。

堆排序适用于线性结构,不适用于非线性结构。

故本题选择A 选项。

2.循环队列的存储空间为Q(1:50)。

经过一系列正常的入队与退队操作后,front=rear=25。

后又成功地将一个元素入队,此时队列中的元素个数为()。

A. 50B. 1C. 26D. 2正确答案:B你的答案:解析:【解析】当front=rear=25时可知队列要么为空要么队列满,题目中又成功地将一个元素入队,说明之前队列为空(为满时队列中无法入队元素),为空的队列入队一个元素后队列中元素个数为1。

故本题选择B选项。

3.树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。

则该树总的结点数为()。

A. 32B. 14C. 33D. 19正确答案:C你的答案:解析:【解析】在树中,树中的节点数等于树中所有节点的度之和再加1。

题干中树的度为3,有9个度为3的结点,5个度为1的结点,无度为2的结点,设有n个度为0的结点,则总结点数=9×3+5×1+0×2+n×0+1=33个。

故本题选择C选项。

4.设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出栈至栈空,再依次出队至队空。

则输出序列为()。

A. F,G,H,I,J,A,B,C,D,EB. F,G,H,I,J,E,D,C,B,AC. E,D,C,B,A,J,I,H,G,FD. E,D,C,B,A,F,G,H,I,J正确答案:D你的答案:解析:【解析】栈称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。

全国计算机二级C语言模拟测试【含详细解析】 (5)

全国计算机二级C语言模拟测试【含详细解析】 (5)

1.下列叙述中正确的是A. 每一个结点有两个指针域的链表一定是非线性结构B. 所有结点的指针域都为非空的链表一定是非线性结构C. 循环链表是循环队列的链式存储结构D. 线性结构的存储结点也可以有多个指针正确答案:D你的答案:解析:【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。

双向链表结点具有两个指针域,属于线性结构,A选项错误。

循环链表所有结点的指针域都为非空,属于线性结构,B选项错误。

循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,C选项错误。

双向链表结点具有多个指针域,D选项正确。

2.使用白盒测试方法时,设计测试用例应根据A. 程序的内部逻辑B. 程序的复杂结构C. 程序的功能D. 使用说明书正确答案:A你的答案:解析:【解析】白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试,故A选项正确。

3.在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗。

则实体医生和患者之间的联系是B. 多对一C. 一对多D. 一对一正确答案:A你的答案:解析:【解析】一般来说,实体集之间必须通过联系来建立联接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。

医生可为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,A选项正确。

4.设序列长度为n,在最坏情况下,时间复杂度为的算法是A. 二分法查找C. 分块查找D. 哈希查找正确答案:A你的答案:解析:【解析】对长度为n的线性表排序,最坏情况下时间复杂度,二分法查找为;顺序查找法为O(n);分块查找时间复杂度与分块规则有关;哈希查找时间复杂度为O(1),因其通过计算HashCode来定位元素位置,所以只需一次即可。

C语言模拟题目及答案

C语言模拟题目及答案

C语言模拟题目及答案一.选择题:1.设float x,y;则以下不合法的赋值语句是______。

x*=y+8; x=y=0; ++x; y=(x%2)/10;2. 设int k=017,g=111; 执行语句printf("%d,%x",k,g); 的输出是_____。

15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。

for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++);4. 下面对数组的初始化,错误的是_____。

char s[5]="abc"; char s[5]={'a','b','c'}; char s[5]=" "; char s[5];s="abc";5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。

是无限循环 while循环执行10次循环体语句一次也不执行循环体语句只执行一次6. 如果x为int型且为5,则执行if(x--<5) printf("%d",x);else printf("%d",x++);后输出结果是______。

3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用语句中,含有的实参个数是____。

3 4 5 有语法错8. 在C语言的if语句中,可用作条件判断的表达式为_____。

算术表达式逻辑表达式关系表达式任意表达式9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。

n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。

xx计算机三级C语言模拟试题

xx计算机三级C语言模拟试题

xx计算机三级C语言模拟试题1.以下表达中正确的选项是( )。

A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成假设干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表2.以下表达中正确的选项是( )。

A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构3.一棵二叉树共有25个结点,其中5个是叶子结点,那么度为l的结点数为( )。

A.16B.10C.6D.44.在以下模式中,能够给出数据库物理存储与物理存取方法的是( )。

A.外模式B.内模式C.概念模式D.逻辑模式5.在满足实体完整性约束的条件下( )。

A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字6.有三个关系R、S和T如下:xx年《》上机测试题(7)那么由关系R和S得到关系T的操作是( )。

A.自然连接B.并C.交D.差7.软件生命周期中的活动不包括( )。

A.软件维护B.市场调研C.软件测试D.需求分析8.下面不属于需求分析阶段任务的是( )。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试方案D.需求规格说明书评审9.在黑盒测试方法中,设计测试用例的主要根据是( )。

A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图10.在软件设计中不使用的工具是( )。

A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD图)11.针对简单程序设计,以下表达的实施步骤顺序正确的选项是( )。

A.确定算法和数据结构、编码、调试、文档B.编码、确定算法和数据结构、调试、文档C.文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、文档12.关于C语言中数的表示,以下表达中正确的选项是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、如果函数不要求带回值,可用void来定义函数返回值为空
2、将数组a的首地址赋给指针变量p的语句是p=a;
3、c语言表达式!(4>=6)&&(3<=7)的值是1
4、Int a=1,b=2,c=3;执行语句a=b=c;后a的值是3
5、c语言的三种基本结构是顺序结构、选择结构、循环结构
6、c语言中,数组元素的下标下限为0
7、若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 数值最大的元素下标值是2
8、结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体类型,再说明结构体变量
9、若s是int型变量,且s=6,则s%2+(s+1)%2值为1
10、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10 for(i=0,j=10,i<=j;i++,j--)k=i+j;
11、已知i=5,语句a=(i>5)?0:1;执行后整型变量a的值为1
12、字符串的结束标志是’\0’
13、当a=1,b=2,c=3时,执行以下程序段if(a>c)b=a;a=c;c=b;后a=3
14、执行下列语句char s[3]=”ab”,*p;p=s;后,*(p+1)的值是b
15、定义int a[2][3];表示数组a中元素的个数是6
16、一个c源程序中至少包括一个main 函数
17、程序段int k=10;while(k=0) k=k-1循环体语句执行0次
18、程序#include”stdio.h”main(){int a;for(a=0;a<10;a++);printf(“%d”,a);}输出结果10
19、已知i=5,写出语句i*i+1;执行后整型变量i的值为30
20、Static int a[3][3]={1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为6
21、#define和printf都不是c语句Y
22、共同体变量所占的内存长度等于最长的成员长度Y
23、若a=3,b=2,c=1则关系表达式”(a>b)==c”的值为真Y
24、Char c[]=”Very Good”;是一个合法的为字符串数组赋值的语句Y
25、变量根据其作用域的范围可以分为局部变量和全局变量Y
26、c语言中”%”运算符的运算对象必须是整型Y
27、while和do...while循环不论什么条件下结果都是相同的N
28、如果函数值的类型和return语句中的表达式值不一致,则以函数类型为准Y
29、参加位运算的数据可以是任何类型的数据N
30、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面N
31、以下c语言常量中错误的是B A OxFF B 1.2e0.5 C 2L D‘、72’
32、编译时系统提示错误,不能正确赋字符串的是C A char s[10]=”abcdefg”; B char t[]=”abcdefg”,*s=t; C char s[10];s=”abcdefg”; D char s[10];strcpy(s,”abcdefg”);
33、变量的指针是指该变量的地址
34、系统标准输入文件指键盘
35、定义共用体的关键字是union
36、优先级最高的运算符是C A*= B>= C(类型) D+
37、不能作为合法的c用户定义标识符的是D AFor BPrintf CWORD Dsizeof
38、调用函数时实参是一个数组名,则向函数传送的是数组的首地址
39、定义int*p[3],则定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
40、以下不正确的定义语句是 B Adouble x[5]={2.0,4.0,6.0,8.0,1.0}; Bint y[5]={0,1,3,5,7,9}; Cchar c1[]={‘1’,’2’,’3’,’4’,’5’}; Dchar c2[]={‘\x10’,’\xa’,’\x8’};
41、凡是函数中未指定存储类别的局部变量其隐含的存储类别为自动(auto)
42、当定义一个结构体变量时系统分配给它的内存是各成员所需内存量的总和
43、以下数组定义中不正确的是D Aint a[2][3]; B int b[][3]={0,1,2,3}; Cint c[100][100]={0}; Dint d[3][]={{1,2},{1,2,3},{1,2,3,4}};
44、P,p1为指针变量,a为数组名,j为整型变量,不正确的是D Ap=&j,p=p1; Bp=a; Cp=&a[j]; Dp=10;
45、合法的用户标识为B Along B_2Test C3Dmax DA.dat
46、不正确的字符串常量是A A’abc’ B”12’12” C”0” D”“
47、在c语言程序中函数的定义不可以嵌套,但函数的调用可以嵌套
48、先用语句定义字符型变量c,然后将字符a赋给c,则c=’a’;(c=97)
49、return语句可以在同一个函数中出现多次
50、char a[10];不能将字符串”abc”储存在数组中的是 C Astrcpy(a,”abc”); B a[0]=0;strcat(a,”abc”); Ca=”abc”; Dint i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
51、功能:将一个数组中的元素按逆序存放
#include<stdio.h>
#define N 7
main()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf(“\n the origanal array:\n”);
for (k=0;k<N;k++)
printf(“%4d”,a[k]);
for(k=0;k<N/2;k++)
{
s=a[k];
a[k]=a[N-k-1];
a[N-k-1]=s;
}
printf(“\n the changed array:\n”);
for(k=0;k<N;k++)
printf (“%4d”,a[k]);
}
52、求100内包括被100的偶数之和
#include<stdio.h>
main()
{
int i,sum=0;
for(i=2;i<=100;i+=2)
sum+=1;
printf(“Sum=%d\n”,sum);
}
53、根据整型形参吗,计算y=1+1/3+1/5+...1/(2m-3)
#include<stdio.h>
double fun(int m)
{
double y=1;
int i;
for(i=1;i<=m;i++)
y+=1.0/(2*i-3);
return(y);
}
main()
{
int n;
printf(“Enter n:”);
scanf(“%d”,&n);
printf(“\nThe result is %1f\n”,fun(n));
}
54、输出数组s中最大值元素的下标
#include”stdio.h”
void main()
{
int k,p;
int s[]={1,9,7,2,10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k]) k=p;
printf(“%d\n”,k);
}
55、带函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序放在数组pp中,这些除数的个数通过形参返回。

例如:若x=30,则1,3,5,15符合要求
#include<stdio.h>
Void fun(int x,int pp[],int *n)
{ int i;
*n=0;
for(i=1;i<=x;i+=2)
if(x%i==0)
{pp[*n]=i;
*n=*n+1;
}
int main()
{int x,aa[100],n,i;
printf(“please enter a number:\n”);
scanf(“%d”,&x);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf(“%3d”,aa[i]);
printf(“\n”);
return0;
}
56、从字符串中删除指定的字符,同一字母的大小写按不同字符处理。

相关文档
最新文档