二级C语言5练习(循环含答案)

合集下载

C语言循环结构练习题带答案

C语言循环结构练习题带答案

第5章循环结构程序设计5.1基本知识点✍while语句的使用格式和注意事项✍do-while语句的使用格式和注意事项✍for语句的使用格式和注意事项✍break和continue语句在循环语句中的应用✍循环结构的嵌套✍使用goto语句实现循环结构✍穷举法程序设计方法✍迭代程序设计方法5.2练习题51.单项选择题(1)语句while(!e);中的条件!e等价于A。

A.e==0B.e!=1C.e!=0D.~e(2)下面有关for循环的正确描述是D。

A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。

A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。

A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句(5)以下程序段C。

intx=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误(6)下列语句段中不是死循环的是__C__。

A.i=100;while(1){i=i%100+1;if(i==20)break;}B.for(i=1;;i++)sum=sum+1;C.k=0;do{++k;}while(k<=0);D.s=3379;while(s++%2+3%2)s++;(7)与以下程序段等价的是__A__。

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

本文由皓月90贡献 doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

《全国计算机等级考试二级教程——C 语言程序设计》课后题及参考答案 目 录 第一章、第二章、第三章、第四章、第五章、第六章、第七章、第八章、第九章、 第十章、第十一章、第十二章、第十三章、第十四章、第十五章、第十六章 第一章 程序设计基本概念 1.1 在 TRUBO C 环境中用 RUN 命令运行一个 C 程序时,所运行的程序的后缀是。

 答案:.exe 1.2 C 语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后, 生成文件的后缀是。

 答案:.c .obj .exe 1.3 结构化程序由、、三种基本结构组成。

 答案:顺序、选择、循环 第二章 C 程序设计的初步知识 一、选择题 2.1 以下选项中正确的整型常量是 A)12. B)-20 C)1,000 D)4 5 6 答案:B 2.2 以下选项中正确的实型常量是 A)0 B)3. 1415 C)0.329×10(2)(10 的 2 次方) D).871 答案:D 2.3 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 答案:B 2.4 以下选项中不合法的用户标识符是 A)abc.c B)file C)Main D)PRINTF 答案:A 2.5 以下选项中不合法的用户标识符是 A)_123 B)printf C)A¥ D)Dim 答案:C 2.6 C 语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)** 答案:A 2.7 可在 C 程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B 2.8 若变量已正确定义并赋值,符合 C 语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B 2.9 以下叙述中正确的是 A)a 是实型变量,C 允许进行以下赋值 a=10,因此可以这样说:实型变量中允许存放整 型值。

c语言循环章节练习题(部分答案)

c语言循环章节练习题(部分答案)

循环章节练习题一、选择题1.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是_______.A. while循环执行10次。

B.循环是无限循环。

C.循环体语句一次也不执行。

D.循环体语句执行一次。

2.设有以下程序段:int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);则________。

A. 运行程序段后输出0。

B. 运行程序段后输出1。

C.程序段中的控制表达式是非法的。

D.程序段执行无限次。

3.下面程序段的运行结果是________。

x=y=0;while(x<15) {y++;x+=++y;}printf(“%d,%d”,y,x);A.20,7 B. 6,12C. 20,8D. 8,203.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n 中的较大者,请选择填空。

#incldue <stdio.h>main(){ int m=0,n=0;char c;while( (___1____)!=’\n’){ if(c>=’A’&&’Z’) m++;if(c>=’a’&&’z’) n++;}printf(“%d\n”,m<n?___2____);}1)A.c=getchar() B.getchar()C.c=getcharD.scanf(“%c”,c);2)A. n:m B. m:n C. m:m D. n:n4.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include <stdio.h> main(){ int a,max=0;scanf(“%d”,&a);while(_______){ if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max); }A.a==0B.aC.!a=1D. !a5.下面程序的运行结果是______。

计算机二级c语言题库及答案

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。

A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是( )。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是( )0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是( )。

A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。

则实体部门和职员间的联系是( )。

A.1:m联系B.m:n联系C.1:1联系D.m:l联系6.右两个关系R和S如下:则由关系R得到关系S的操作是( )。

A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于( )。

A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括( )。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是( )。

A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是( )。

A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是( )。

A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。

国家二级C语言机试(数据结构与算法)模拟试卷5(题后含答案及解析)

国家二级C语言机试(数据结构与算法)模拟试卷5(题后含答案及解析)

国家二级C语言机试(数据结构与算法)模拟试卷5(题后含答案及解析)题型有:1. 选择题选择题1.设二叉树共有375个结点,其中度为2的结点有187个。

则度为1的结点个数是A.0B.1C.188D.不可能有这样的二叉树正确答案:A解析:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。

二叉树的第i层至多有2i-1个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。

本题中,度为2的结点有187个,叶子结点应该有187+1=188个,度为1的结点个数=375-187-188=0。

知识模块:数据结构与算法2.在带链队列中,经过一系列正常的操作后,如果front=rear,则队列中的元素个数为A.0或1B.0C.1D.队列满正确答案:A解析:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。

进行插入操作的端称为队尾,进行删除操作的端称为队头。

队列的链式存储也称为链队列。

为了便于操作,可给链队列添加1个头结点,并令头指针指向头结点。

队列为空的判断条件是头指针和尾指针的值相同,且均指向头结点。

当队列为空(0)或1时,front=rear。

知识模块:数据结构与算法3.设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5。

该树中度为3的结点数为A.1B.2C.3D.不可能有这样的树正确答案:B解析:树的度是指一棵树中,最大的结点的度称为树的度。

本题中树的度为3,那么树中最少有一个结点的度为3。

而树中没有度为2的结点,叶子结点数为5,度为1的结点下面只有一个叶子结点。

因此,该树中含2个度为3的结点满足题目要求。

知识模块:数据结构与算法4.设二叉树共有500个结点,其中叶子结点有250个。

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案计算机二级c语言经典练习题及解析答案一、单选题1. C语言中的三大基本数据类型包括( B )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、数组型2. 在C语言中,以下合法的字符常量是( c )A. '\048'B. 'ab'C. '\43'D. "\0"3.设x 为 int 型变量,执行下列语句: x=10; x+=x-=x-x; 则x的值为 ( B )A. 15B. 20C. 25D. 304. 定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( C )A. 1 4 7B. 1 5 9C. 3 5 7D. 3 6 95.逗号表达式(a=3*5,a*4),a+15的值是( b )A.15B. 30D. 756. .以下程序的输出结果是( c )。

main( ){ int x=10,y=11;printf("%d,%d\n",x--,--y);}A. 11,11B. 10,11C. 10, 10D.11,107.若一个外部变量的定义形式为static int x ; 其中static的作用是( d )A.将变量存放在静态存储区,使x的值可以永久保留B.使变量x可以由系统自动初始化C.使x的值可以永久保留D.使x只能在本文件内引用8.有如下变量说明:int k=2;则下面的循环共执行多少( d )次while (k!=0) {printf("%d",k);k--;}A.无限多次 B.0次 C.1次 D. 2次9.设有变量说明:int a=7,b=8;那么语句:printf("%d,%d\n",(a+b,a),(b,a+b));的输出应该是( a )A. 7,15B. 8,15C. 15,7D.15,810.若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( b )A. p+1C. a+1D. ++p11. C语言变量名中不能使用的字符是( d )A. 数字B. 字母C. 下划线D. 关键字12.以下变量定义中合法的是( a )A.short a=2.1e-1;B. double b=1+5e0.5;C. long do=0xffe ;D. float 3_end=1-e3;13.若有说明语句char ch1=′\x79′;则ch1( c )A.包含4个字符B.包含3个字符C. 包含2个字符D.包含1个字符14.C语言中的函数( b )A. 可以嵌套定义B.嵌套调用和递归调用均可C. 不可以嵌套调用D. 可以嵌套调用但不可以递归调用15. 设整形变量a=12;则执行完语句a+=a-=a*a后a的值为( c )A. 552B. 264C. -264D. 14416.设a=1,b=2,c=3,d=4,则表达式:a>b?a:cA.1 B.2 C.3 D.417.若有说明语句:int b[][4]={ 3,1,2,5,7,6,4}; 则b数组的行数为( b )A. 3B. 2C.无确定值D. 118. 若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( c )A. scanf(″%c″,&c[10]);B. gets(c);C. scanf(″%s″,&c);D. gets(c[10]);19. 两个基类型相同的指针变量之间,不能进行的运算是( c )A. <B. =C. +D.-20. 下面程序段执行结果是( b )int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);A. 24,8B. 21,8C. 21,7D. 24,721.以下选项中属于C语言的数据类型是( b )。

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言(选择结构、循环结构)机试模拟试卷1(总分66, 做题时间90分钟)1. 选择题1.下列选项中,当x为大于1的奇数时,值为0的表达式是( )。

SSS_SINGLE_SELA x%2==0B x/2C x%2!=0D x%2==1分值: 2答案:A解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。

B选项的值为不定值,但绝对不是O。

C选项的值为真,即1。

D选项的值为真,即1。

2.若a是数值类型,则逻辑表达式(a==1)‖(a!=1)的值是( )。

SSS_SINGLE_SELA 1B 0C 2D 不知道a的值,不能确定分值: 2答案:A解析:逻辑或“‖”要求只要两边的运算对象有一个非零,结果就为真。

虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零。

3.当变量e的值不为2、4、6时,值为“真”的表达式是( )。

SSS_SINGLE_SELA (c>=2&&e<=6)&&(c%2 1=1)B (c==2)‖(c==4)‖(c==6)C (c>=2&&c<=6)&&!(c%2)D (c>=2&&c←6)‖(c!=3)lI(c!=5)分值: 2答案:D解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!:3与c!:5均成立,所以D选项的结果一定为真。

4.有以下程序: #include main() { int a=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2‖c一!=3) prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c); } 程序的运行结果是( )。

2014年9月二级C语言程序设计模拟(5)试题及答案

2014年9月二级C语言程序设计模拟(5)试题及答案

2014年9月二级C语言程序设计模拟(5)试题及答案单项选择题1.下列数据结构中,能用二分法进行查找的是( )。

A:无序线性表B:线性链表C:二叉链表D:顺序存储的有序表参考答案: D 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

2.下列叙述中,不属于设计准则的是( )。

A:提高模块独立性B:使模块的作用域在该模块的控制域中C:设计成多入口、多出口模块D:设计功能可预测的模块参考答案: C 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 大量软件设计表明,以下的设计准则是可以借鉴为设计的指导和对软件结构图进行优化,这些准则是:提高模块独立性;模块规模适中;深度、宽度、扇出和扇入适当;使模块的作用域在该模块的控制域中;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块。

3.下列队列的描述中,正确的是( )。

A:队列属于非线性表B:队列在队尾删除数据C:队列按“先进后出”进行数据操作D:队列按“先进先出”进行数据操作参考答案: D 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。

队列的操作数是依据先进先出的原则进行的。

因此队列亦称作先进先出的线性表,或后进后出的线性表。

4.对下列二叉树进行前序遍历的结果为( )。

A: ABCDEFGHB: ABDGEHCFC: GDBEHACFD: GDHEBFCA参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 遍历就是不重复地访问二叉树的所有结点。

二叉树遍历的方法有3种:前序遍历、中序遍历和后序遍历。

记住3种遍历的顺序:①前序,访问根一按前序遍历左子树一按前序遍历右子树。

②中序,按中序遍历左子树一访问根一按中序遍历右子树。

二级全国c语言机试题及答案

二级全国c语言机试题及答案

二级全国c语言机试题及答案二级全国C语言机试题及答案1. 以下哪个选项是C语言中正确的字符串定义?A. char str[5] = "hello";B. char str[] = "hello";C. char str[6] = "hello";D. char str[5] = {'h', 'e', 'l', 'l', 'o'};答案:B2. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 以下哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { return a + b; }B. int function(int a, int b) { return a - b; }C. int function(int a, int b) { return a * b; }D. All of the above答案:D4. 以下哪个选项是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = {1, 2, 3};C. int arr[5] = {};D. All of the above答案:D5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p = 0;C. int *p = NULL;D. All of the above答案:D6. 以下哪个选项是C语言中正确的文件操作函数?A. fopenB. fcloseC. fprintfD. All of the above答案:D7. 在C语言中,以下哪个选项是正确的条件语句?A. if (a > b)B. if (a > b) { ... }C. if (a > b) { ... } else { ... }D. All of the above答案:D8. 以下哪个选项是C语言中正确的循环语句?A. for (int i = 0; i < 10; i++)B. while (condition)C. do { ... } while (condition);D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define SQUARE(x) x * xC. #define MAX(a, b) ((a) > (b) ? (a) : (b))D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的递归函数定义?A. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}B. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n);}C. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}D. All of the above答案:A。

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while 语句构成的循环不能用其他语句构成的循环来代替。

B.do---while 语句构成的循环只能用break 语句退出。

C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。

D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。

8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k 为整型变量,则下面while 循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。

计算机二级C语言测试题(含答案)

计算机二级C语言测试题(含答案)

(第一章)1. 以下关于算法的描述不正确的是__________。

A. 任何一个问题,它的实现算法是唯一的B. 描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等C. 算法的最终实现是计算机程序D. 正确性和清晰易懂性是一个好算法的基本条件2.下面是一个加法程序,指出存在的逻辑错误和语法错误。

/* 求整数a和b的和 */main( ){int a,b;a=8;b=2000;print("%d\n",a-b);}3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为__________。

A.main B. MAIN C. name D. function4.以下叙述不正确的是__________。

A.C程序书写格式规定,一行内只能写一个语句B.main()函数后面有一对花括号,花括号内的部分称为函数体C.一个C程序必须有main()函数D.C规定函数内的每个语句以分号结束5.以下各标识符中,合法的用户标识符为_________。

A.A#C B.mystery C.main D.ab*6.已知求解某问题的算法如下:⑴输入a、b、c三个数。

⑵将a和b比较,较大者放在a中,小者放在b中。

⑶将a和c比较,较大者放在a中,小者放在c中。

⑷将b和c比较,较大者放在b中,小者放在c中。

⑸依次输出a、b、c。

请根据上述算法描述,把算法的功能表达出来。

【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。

7.一个C语言程序可以包括多个函数,程序总是按照如下_________所描述的方式执行当前的程序。

A.从本程序的main()函数开始,到本程序文件的最后一个函数结束。

B.从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C.从main()函数开始,到main()函数结束。

D.从本程序文件的第一个函数开始,到本程序main()函数结束。

8.以下叙述正确的是_________。

C语言程序设计(循环)习题与答案

C语言程序设计(循环)习题与答案

一、单选题1、关于下面程序段,正确的是()。

int k=10;while(!k)k--;A.循环体一次也不执行B.死循环C.循环体执行1次D.循环体执行10次正确答案:A2、下面程序的运行结果是( )。

#include <stdio.h>int main( ){int x=3;do{printf("%3d",x-=2);}while(!(--x));return 0;}A.1B.死循环C.1 -2D.10正确答案:C3、已定义int j; 下面程序段的输出结果是()。

for(j=7;j<10;j++)printf("%d",j);A.无结果B.8910C.789D.91011正确答案:C4、下面程序的输出结果是()。

#include <stdio.h>int main( ){int i,j,s=0;for(j=1,i=7;j<=i;j++,i--)s=s+i+j;printf("%d",s);return 0;}A.0B.死循环C.32D.28正确答案:C5、下面程序的输出结果是()。

#include <stdio.h>int main( ){int j,s;for(j=1;j<=7;j++)s=s+j;printf("%d",s);}A.死循环B.0C.不确定D.28正确答案:C6、已定义int j,s; 则下面程序段的输出结果是()。

int j,s;for(j=1,s=0;j<=5;j++)s*=j;printf("%d",s);A.0B.无结果C.120D.死循环正确答案:A7、从循环体内某一层跳出,继续执行循环外的语句是( )。

A.if语句B.break语句C.空语句D.continue语句正确答案:B8、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是()。

计算机二级《C语言》考试题库与答案

计算机二级《C语言》考试题库与答案

计算机二级《C语言》考试题库与答案一、程序填空题(共18分)、下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANKl.c中。

不得增行或删行,也不得更改程序的结构!二、程序修改题(共l8分)下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!三、程序设计题(共24分)编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为l,则输出3。

注意:部分源程序在文件PROCl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。

参考答案一、程序填空题【参考答案】(1)j++或j+=1或++j或j=j+1(2)s[i]=t1[i](3)j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。

【解题思路】填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。

填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。

填空3:最后将敦字字符加到s串之后,并且i要小于数字的.个数j。

二、程序修改题【参考答案】(1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。

国家二级C语言(数据结构与运算)机试模拟试卷5(题后含答案及解析)

国家二级C语言(数据结构与运算)机试模拟试卷5(题后含答案及解析)

国家二级C语言(数据结构与运算)机试模拟试卷5(题后含答案及解析)题型有:1. 选择题选择题1.某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为A.EDABCB.CBEDAC.CBADED.EDCBA正确答案:A解析:后序遍历次序是“左右根”,中序遍历次序是“左根右”。

由定义可知:①后序遍历中最后一个就是树根结点,即E结点;②在中序遍历中,根结点左边的是左子树集,右边的是右子树集,即CBAD是根结点E的左子树集合。

问题就会转化为:求后序遍历是CBAD,中序遍历是CBAD的子树,方法同上。

因为中序遍历中,D结点右边没有结点了,所以D结点不包含右子树,否则就会被分为2个子问题。

以下是这道题的详细推理过程:步骤1:由CBADE得出根结点为E,由中序遍历可知{ CBAD}E,右子树为空;步骤2:由CBAD得出左子树集合的根节点为D,由中序可知{CBA}D,右子树为空;步骤3:同理,二叉树更新后如下图所示。

知识模块:数据结构与运算2.下列叙述中正确的是A.在循环队列中,队头指针和队尾指针的动态变化决定队列的长度B.在循环队列中,队尾指针的动态变化决定队列的长度C.在带链的队列中,队头指针与队尾指针的动态变化决定队列的长度D.在带链的栈中,栈顶指针的动态变化决定栈中元素的个数正确答案:A 涉及知识点:数据结构与运算3.设栈的存储空间为S(1:60),初始状态为top=61。

现经过一系列正常的入栈与退栈操作后,top=1,则栈中的元素个数为A.60B.59C.0D.1正确答案:A解析:栈是向上增长的,每次压入一个元素,栈的TOP指针向上移动一位,即top-1。

当压入第一个元素时,TOP指针指向60+1-1 = 60;当压入第二个元素时,TOP指针指向60+1-2 = 59;......;以此类推,当压入第N个元素时,TOP 指针指向60+1-N = 1,则N=60。

所以选项A正确。

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;k--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while 语句构成的循环不能用其他语句构成的循环来代替。

B.do---while 语句构成的循环只能用break 语句退出。

C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。

D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。

8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0D 29.若k 为整型变量,则下面while 循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。

全国计算机二级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来定位元素位置,所以只需一次即可。

2016计算机二级《C语言》基础练习题及答案(5)(分享文档)

2016计算机二级《C语言》基础练习题及答案(5)(分享文档)

2016年计算机二级《C语言》基础练习题及答案(5) 1[单选题] 有以下程序:程序运行后的输出结果是( )。

.A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World参考答案:A参考解析:P是指向二维字符数组第二行One+Dream!的数组指针,所以长度是l0,打印输出的也是该字符串。

.2[简答题]编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

.程序运行后,若输入精度0.0005,则程序应输出为3.14…。

.注意:部分源程序给出如下。

.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

.试题程序:参考解析:【参考答案】【考点分析】本题考查:迭代法求给定多项式的值。

.迭代算法是让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。

.需要注意变量的数据类型以及赋初值操作。

.【解题思路】首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。

.从第二项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用sl来表示每一项,s表示求和后的结果。

.需注意sl和s的初值都为1.0,因为循环变量从第二项开始累加。

.3[单选题] 软件设计中模块划分应遵循的准则是( )。

.A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合参考答案:B参考解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。

.模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。

.模块之间的耦合应尽可能的低,模块的内聚度应尽可能。

.4[单选题] 有以下程序:程序运行后的输出结果是( )。

.A.let=4B.m=2C.m=6D.m=5参考答案:C参考解析:第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}= i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。

计算机二级C语言知识点与习题试卷 (5)

计算机二级C语言知识点与习题试卷 (5)

A) 栈是"先进先出"的线性表B) 队列是"先进后出"的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。

2、支持子程序调用的数据结构是()。

A) 栈B) 树C) 队列D) 二叉树参考答案:A【解析】栈支持子程序调用。

栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。

3、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。

A) 10B) 8C) 6D) 4参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。

4、下列排序方法中,最坏情况下比较次数最少的是()。

A) 冒泡排序B) 简单选择排序C) 直接插入排序D) 堆排序参考答案:D【解析】冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是5、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

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

A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。

A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行"错误定位"是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性参考答案:A【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A)错误。

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

(1)有以下程序段int n,t=1,s=0;scanf("%d",&n);do{ s=s+t; t=t-2; }while (t!=n); t==n t=-1,-3,-5为使此程序段不陷入死循环,从键盘输入的数据应该是A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数(2)设变量已正确定义,则以下能正确计算f = n!的程序段是A) f=0; B) f=1;for(i=1;i<=n;i++) f*=i; for(i=1;i<n;i++) f*=i; (n-1)!C) f=1; D) f=1;for(i=n;i>1;i++) f*=i; 死循环for(i=n;i>=2;i--) f*=i;(3)以下程序的功能是计算:s=1+12+123+1234+12345。

请填空。

main(){ int t=0,s=0,i;; i=1 t=1 i=2 t=12 i=3 t=123 t=i+10*ts=s+t; }printf("s=%d\n",s);}4) 要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是ch=getchar()!='N' ch=('a'!='N')ch=1 while( 1 )(ch=getchar()) != 'N' ch=getchar() ch='a' 'a'!='N' while(1)A)while((ch=getchar())!='N') printf("%c",ch); B)while(ch=getchar()!='N')printf("%c",ch);C)while(ch=getchar()=='N') printf{"%c",ch); D)while((ch=getchar())=='N')printf("%c",ch);5) 以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。

例如,输入整数5时(注意:n不得大于10),程序运行结果如下:A B C D EF G H IJ K LM NO请填空完成该程序。

main(){ int i,j,n; char ch='A';scanf("%d",&n);if(n<11) n=5{ for(i=1;i<=n;i++) i=1 j=1 to 5 'A' ch='B' 'C'{ for(j=1;j<=n-i+1;j++){ printf("%2c",ch);ch=ch+1 ; ch++ ++ch}printf("\n") ;}}else printf("n is too large!\n")printf("\n");}7) 以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main(){int i,j;for(i=0;【13】;i++) i<=9 i<10{ 26 36j%3!=0 j%3printf("%d ",j);}8) 有以下程序main(){ int k=5;while(--k) printf("%d",k -= 3); k=4 k=1 k=0printf("\n");}执行后的输出结果是A)1 B)2 C)4 D)死循环9) 有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0) i=30if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A)5 B)24 C)32 D)4010) 有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【9】1 1。

main(){ int a,b;printf("Enter a,b:"); scanf("%d,%d",&a,&b);while(a!=b) a=18 b=11 a=7 b=4 a=3 b=1 a=1 b=1{ while(a>b) a -= b; a=7 a=3 a=2 a=1while(b>a) b -= a; b=4 b=1}printf("%3d%3d\n",a,b);}11) 以下程序的功能是:将输入的正整数按逆序输出。

例如:若输入135则输出531。

请填空。

#include <stdio.h>main(){ int n,s;printf("Enter a number : "); scanf("%d",&n); 135printf("Output: ");do{ s=n%10; printf("%d",s); 【10】; } s=5 n=n/10 =13 n=n/10=1while(n!=0);printf("\n"); } n=1235%101357n=1357,s=0;while(n!=0){s=s+n%10; s=7 s=5 s=3 s=1n=n/10; n=135 n=13 n=1 n=0}12) 有以下程序main(){ int k=5,n=0;do{ switch(k) k=5 n=0 k=4 n=2 k=3 n=3 k=2 n=3 k=1 n=5{ case 1: case 3: n+=1; k--; break;default: n=0; k--;case 2: case 4: n+=2; k--; break;}printf("%d",n); 235}while(k>0 && n<5);}程序运行后的输出结果是A)235 B)0235 C)02356 D)235613) 有以下程序main(){ int i,j;for(i=1; i<4; i++) i=1 j=1 ~ 3 i=2 j=2 ~ 3{ for(j=i; j<4; j++) printf("%d*%d=%d ",i,j,i*j);printf("\n");}}程序运行后的输出结果是A)1*1=1 1*2=2 1*3=3 B)1*1=1 1*2=2 1*3=3 C)1*1=1 1*2=2 2*2=4 D)1*1=12*1=2 2*2=42*1=2 2*2=4 2*2=4 2*3=6 1*3=3 2*3=6 3*1=3 3*2=63*1=3 3*3=9 3*3=9 3*3=914) 以下程序的运行结果是#& 。

main(){ int a=2, b=7, c=5;switch(a>0){ case 1: switch(b<0){ case 1: printf("@"); break;case 2: printf("!"); break;}case 0: switch(c==5){ case 0: printf("*"); break;case 1: printf("#"); break;case 2: printf("$"); break;}default: printf("&");}printf("\n");}15) 当执行以下程序时,输入1234567890<回车>,则其中while次。

#include <stdio.h>main(){ char ch;while((ch=getchar())=='0') printf("#");}(16)若变量已正确定义,有以下程序段i=0;do printf("%d,",i); while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(17)有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(18)以下程序的输出结果是_[9]_54321______.#include <stdio.h>main(){ int n=12345,d;while(n!=0){ d=n%10; printf("%d",d); n/=10;} }。

相关文档
最新文档