C语言模拟试卷5及答案
c语言模拟考试试题及答案
c语言模拟考试试题及答案C语言模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable#name答案:B2. 下列哪个选项是C语言中的关键字?A. charB. variableC. ifD. string答案:C3. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. float var;C. double var;D. char var;答案:A5. 下列哪个选项是C语言中的控制结构?A. switch-caseB. if-elseC. for-loopD. All of the above答案:D6. 在C语言中,哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. None of the above答案:D(注:C语言标准库中没有sum()函数)7. 以下哪个选项是C语言中数组的正确声明方式?A. int array[10] = {1, 2, 3};B. int [10] array = {1, 2, 3};C. Both A and BD. None of the above答案:C8. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A9. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. int function(int a; int b) { ... }C. int function(int a, int b) { ... }D. int function(int a, b) { ... }答案:C10. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用____关键字可以定义一个函数。
C语言程序设计模拟题(含答案)
C语言程序设计模拟题(含答案)C语言程序设计试题一、单项选择题(本题共25小题,每小题2分,共50分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡上。
错选、多选或未选均无分。
1. 以下正确的C语言自定义标识符是__A____。
A. _1aB. 2a_C. doD. a.122. 在C语言中,错误的常数表示是___D____。
A. 0LB.-0x6aLC. '6'D. 1.234E3.53. 设int a, x=2; 执行语句a=x>0?3*x:x=10;后,变量x的值是___B____。
A. 1B. 2C. 6D. 104.设有以下程序段:int x=2,y=2,z=0,a;a=++x||++y&&z++;printf("%d,%d,%d\n",x,y,z);执行后输出的结果是___C______。
A. 2, 2, 0B. 3, 3,1C. 3, 2, 0D. 3, 2, 15. 在C语言中,字符串"\\TOP\t\65\""的长度是__B_____。
A. 5 B.7C. 8D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是___C_____A_。
A. scanf("%5f",&x)B. scanf("%5d",&x);C. scanf("%f",x);D. scanf("%s",&x);7.逗号表达式a=2*6,a*3,a+5的值是___B______。
A. 12B. 17C.36 D. 418. C语言程序中,整型常量的书写形式不包括___A______。
A. 二进制B. 八进制C. 十进制D. 十六进制9. 在C语言中,下列运算符中结合性属于自右向左的是________B_。
C语言模拟试卷及答案
《C语言程序设计》考试试卷(答案)一、填空题(每小空1分,共10分)1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。
2.一个C程序有且仅有一个main( )函数.3.C语言描述“x和y都大于或等于z"的表达式是x〉=z && y〉=z。
4.C语言可以用来实现循环的结构化语句是while、do while、for。
5.数组名表示数组在内存的首地址.6.int a=3,*p=&a;*p+2的值是5。
二、单项选择题(每小题2分,共70分)1._____是C语言合法的标识符。
(A)3_sy45 (B)su_m (C)@123 (D)3D642.一个程序的执行是从.(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.(C)本程序的main函数开始,到本程序文件的最后一个函数结束.(D)本程序文件的第一个函数开始,到main函数结束。
3.以下叙述正确的是。
(A)在C程序中,main函数必须位于程序的最前面.(B)C程序每行中只能写一条语句.(C)C语言本是没有输入输出语句。
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误.4.以下叙述不正确的是。
(A)逗号运算符的运算级最低。
(B)ABC和abc是两个不同的变量。
(C)若a和b类型相同,在执行a=b后,b的自身值不变。
(D)‘a’和“a”是完全等价的常量。
5.int x=3,y=2;则表达式x+=x*=y+8的值为。
(A)28 (B)30 (C)60(D)176.在c语言中,变量的隐含存储类别是。
(A)auto(B)static (C)extern (D)无存储类别7.执行下面两个语句后,输出的结果为_____。
char c1=98;printf(“%d %c”,c1,c1—32);(A)97 66 (B)98 b (C)b 66 (D)98 B8.执行下面语句后的结果为.y=10;x=y++;(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=109.char w;int x;float y;double z;则表达式w*x+z—y值的数据类型是。
C语言练习题1-5及参考答案,DOC
练习题1及参考答案1.单项选择题(1)以下并非C语言的特点的是。
A. C语言简洁和紧凑B.能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作D. C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2.填空题(1)一个C源程序至少有①个main()函数和②个其他函数。
【答】①一②若干(2)任何C语句必须以结束。
【答】分号(3)C语言源程序的基本单位是。
【答】函数(4)C编译程序的功能是。
【答】将C源程序编译成目标代码2练习题2及参考答案1.单项选择题(1)以下字符串为标识符的是。
A._MYB.2_2222C.shortD.LINE5计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。
本题答案为C。
(7)若定义intm=7,n=12;则能得到值为3的表达式是。
A.n%=(m%=5)B.n%=(m-m%5)C.n%=m-m%5D.(n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。
本题答案为D。
(8)以下程序的运行结果是。
#include<stdio.h>main(){inti=5,j=6,m=i+++j;printf("%d,%d,%d\n",i,j,m);}A.6,6,11B.5,6,11C.5,6,12D.6,6,12【答】m=i+++j等价于m=(i++)+j。
本题答案为A。
(9)以下程序的运行结果是。
#include<stdio.h>voidmain()(1)表达式语句与表达式的不同是。
【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。
(2)在C语言中可以利用将一个表达式的值转换成指定的类型。
【答】强制类型转换(3)写出完成下列功能的表达式:·如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。
国家二级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模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-twoD. variable_two答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 以下代码段的输出结果是什么?```cint a = 10;printf("%d", a++);```A. 10B. 11C. 9D. 编译错误答案:A4. 在C语言中,以下哪个语句可以正确地实现数组元素的初始化?A. int arr[5] = {0, 1, 2};B. int arr[5] = {0, 1, 2, 3, 4};C. int arr[5] = {0};D. int arr[5] = {0, 1, 2, 3};答案:C5. 下列哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int a, int b);B. int myFunction(int a, int b);C. Both A and BD. None of the above答案:C7. 以下哪个是C语言中的输入函数?A. printf()B. scanf()C. sprintf()D. fprintf()答案:B8. 以下代码段的输出结果是什么?```cfor (int i = 0; i < 5; i++) {printf("%d ", i);}```A. 0 1 2 3 4B. 4 3 2 1 0C. 1 2 3 4 5D. 编译错误答案:A9. 在C语言中,以下哪个是正确的字符串声明?A. char str[10] = "Hello";B. string str = "Hello";C. char str = "Hello";D. string str[10] = "Hello";答案:A10. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. Both A and BD. None of the above答案:C二、填空题(每空2分,共20分)1. 在C语言中,一个基本的数据类型可以是______、______或______。
C语言模拟题十套附答案 c语言教程
第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是(c)A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置(C)A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由(B)括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是(D)A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5B. 1E5.1C. …a12‟D. 32766L15、以下(D)是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下(C)是正确的字符常量A. “c”B. …//”C. …W‟D. “\32a”17、以下(A)是不正确的字符串常量A. …abc‟B. “12‟12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码B. 反码C. 补码D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是(D)A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为(c)A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(c)A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是(a)A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是(a)A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2B. x=(y==1)C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是(b)A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成(可是是字母和数字组合)D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为(b)A. 5B. 1C. 6D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. …A‟与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)C. …A‟*‟B‟是不合法的D. “A”+”B”是合法的只能字符间运算37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)A. 1B. 0C. 6D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A. 1B. 0C. 2D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A. 7B. 8C. 9D. 10 (i++要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A. 8B. 6C. 7D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A. 4B. 5C. 6D. 7 ( i先运算再--44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是(b)A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a);B. scanf(“%l f”,&a);不可能是实数C. scanf(“%c”,&a);D. scanf(“%u”,&a);十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(d)A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是(A)int a=0,b=0,c=0;if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是(d)void main(){int a=65;c har c=‟A‟;printf(“%x,%d”,a ,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为(A)A. 1B. tC. 0D. f (有符号的比较,按负数进行比较)59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不是零就是一A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为(a)A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。
2023年9月青少年软件编程C语言等级考试试卷五级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷五级(含答案)分数:100 题数:4一、编程题(共4题,共100分)第1题.红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。
你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。
请写一个程序,计算你总共能够到达多少块黑色的瓷砖。
时间限制:1000内存限制:65536输入:包括多个数据集合。
每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。
W和H都不超过20。
在接下来的H行中,每行包括W个字符。
每个字符表示一块瓷砖的颜色,规则如下:(1)‘.’黑色的瓷砖;(2)‘#’白色的瓷砖;(3)‘@’黑色的瓷砖,并且你站在这块瓷砖上。
该字符在每个数据集合中唯一出现一次。
当在一行中读入的是两个零时,表示输入结束。
输出:对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。
样例输入:6 9....#......#..............................#@...#.#..#.0 0样例输出:45参考答案:#include <iostream>#define xa x+a[i]#define ya y+b[i]using namespace std;int graph[21][21];int w=0,h=0;int X1=0,Y1=0,cnt=0;const int a[]={-1,0,1,0},b[]={0,-1,0,1};void dfs(int x,int y){graph[x][y]=0;cnt++;for(int i=0;i<4;i++){if(graph[xa][ya]==1 && xa>0 && xa<=w && ya>0 && ya<=h)dfs(xa,ya);}}void get(){for(int i=1;i<=w;i++){for(int j=1;j<=h;j++){char a;cin>>a;if(a=='#') graph[i][j]=0;else if(a=='.') graph[i][j]=1;else if(a=='@'){X1=i,Y1=j;graph[i][j]=1;}}}dfs(X1,Y1);cout<<cnt<<endl;cnt=0;}int main(){while(1){cin>>h>>w;if(h==0 && w==0) break;get();}return 0;}第2题.装箱问题一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1,2*2,3*3,4*4,5*5,6*6。
2022年3月C语言五级考试试卷含答案
2022年3月C语言五级考试试卷含答案1.数字变换给定一个包含5个数字(0-9)的字符串,例如“02943”,请将“12345”变换到它。
你可以采取3种操作进行变换1. 交换相邻的两个数字2. 将一个数字加1。
如果加1后大于9,则变为03. 将一个数字加倍。
如果加倍后大于9,则将其变为加倍后的结果除以10的余数。
最多只能用第2种操作3次,第3种操作2次求最少经过多少次操作可以完成变换。
时间限制:1000内存限制:65536输入有最多100,000 组数据每组数据就是包含5个数字的字符串输出对每组数据,输出将"12345"变换到给定字符串所需要的最少操作步数。
如果无法变换成功,输出-1样例输入124359999912374样例输出1-13提示由于测试数据太多,如果对每组数据都从头进行搜索,就会超时。
建议先做预处理,即以“12345”作为初始状态做一遍彻底的广搜,找出“12345”经合法变换能够到达的所有字符串,并记录到达这些字符串各需要多少步操作。
然后对读入的每组数据,在上述预处理记录的结果中进行查询即可。
2.寻找边缘给定一张R*C 的地图,由"X" 和"O" 组成。
现在需要重新处理这张地图,找到地图边缘的那些"O"。
你需要将这些地图边缘上的"O" 保留下来,然后将其他的"O" 全部替换为"X"。
地图边缘的"O" 指的是那些处于第一行/列或最后一行/列上的"O",以及从这些"O" 的相邻位置(上下左右)延伸出去的"O"。
时间限制:1000内存限制:65536输入第一行是一个正整数T,表示一共有T 组数据。
对于每组数据,其第一行是两个正整数R 和C,表示地图的大小,用一个空格分开。
接下来的R 行,每行包含了 C 个字符,分别是"X" 或"O"。
C语言程序设计模拟考试试卷及答案(五)
C语言程序设计模拟考试试卷及答案(五)1、下列电子邮件地址中正确的是(其中□表示空格)A) Malin&B) malin@C) Lin□Ma&D) Lin□Ma@2、下列说法中正确的是A) 为了使用Novell网提供的服务,必须采用FTP协议B) 为了使用Internet网提供的服务,必须采用TELNET协议C) 为了使用Novell网提供的服务,必须采用TCP/IP协议D) 为了使用Internet网提供的服务,必须采用TCP/IP协议3、下列说法中不正确的是A) 调制解调器(Modem)是局域网络设备B) 集线器(Hub)是局域网络设备C) 网卡(NIC)是局域网络设备D) 中继器(Repeater)是局域网络设备4、十进制数397的十六进制值为A) 18D B) 18EC) 277 D) 3615、下列说法中不正确的是A) CD-ROM是一种只读存储器但不是内存储器B) CD-ROM驱动器是多媒体计算机的基本部分C) 只有存放在CD-ROM盘上的数据才称为多媒体信息D) CD-ROM盘上最多能够存储大约650兆字节的信息6、Windows应用环境中鼠标的拖动操作不能完成的是A) 当窗口不是最大时,可以移动窗口的位置B) 当窗口最大时,可以将窗口缩小成图标C) 当窗口有滚动条时可以实现窗口内容的滚动D) 可以将一个文件移动(或复制)到另一个目录中去7、从Windows中启动MS-DOS方式进入了DOS状态,如果想回到Windos 状态,在DOS提示符下,应键入的命令为A) EXITB) QUITC) WIND) DOS -U8、要在Windows标准窗口的下拉菜单中选择命令,下列操作错误的是A) 用鼠标单击该命令选项B) 用键盘上的上下方向键将高亮度条移至该命令选项后再按回车键C) 同时按下ALT键与该命令选项后括号中带有下划线的字母键D) 直接按该命令选项后面括号中带有下划线的字母键9、ASCLL码(含扩展)可以用一个字节表示,则可以表示的ASCLL码值个数为A) 1024B) 256C) 128D) 8O10、字长为32位的计算机是指A) 该计算机能够处理的最大数不超过2(32)B) 该计算机中的CPU可以同时处理32位的二进制信息C) 该计算机的内存量为32MBD) 该计算机每秒钟所能执行的指令条数为32MIPS11、在DOS系统中,下列文件名中非法的是A) ABCDEFG1B) ABCDEFG1.234C)ABCD_EFGD)ABCD\\EFG12、DOS系统启动后,下列文件中驻留内存的是A) CONFIG.SYSB) C) AUTOEXEC.BATD) MEM.EXE13、DOS下的"DIR *2"命令将列出当前目录下的A) 所有名字末尾为字符2的非隐含文件和目录B) 所有名字末尾为字符2的非隐含文件C) 所有非隐含文件D) 所有非隐含文件和目录14、软驱的盘符为A,A盘上只有一个目录\XYZ,而\XYZ下有若干子目录和文件,若想把A盘的所有内容复制到C盘根目录下,应使用的命令为A) COPY A:\\*.* C:B) COPY A:\\*.* C:\\*.*C) XCOPY A:\\*.* C:\\ /SD) DISKCOPY A: C:15、若要将当前盘目录下的文件A.TXT连接在文件B.TXT后面,应使用的命令为A) COPY A.TXT>>B.TXTB) MOVE A.TXT>>B.TXTC) PATH A.TXT>>B.TXTD) TYPE A.TXT>>B.TXT16、若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1B) a=b=c+2C) int 18.5%3D) a=a+7=c+b17、C语言中运算对象必须是整型的运算符是A) %=C) =D) 〈=18、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1B) 2C) 2.0D) 2.519、若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a==1B) ++i;C) a=a++=5;D) a=int(i);20、若有以下程序段,int c1=1,c2=2,c3; c3=1.0/c2*c1;则执行后,c3中的值是A) 0B) 0.5C) 1D) 221、若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是B) 0.5C) 1D) 222、能正确表示逻辑关系:"a≥=10或a≤0"的C语言表达式是A) a>=10 or a<=0B) a>=0|a<=10C) a>=10 &&a<=0D) a>=10‖a<=023、有如下程序main0{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=224、有如下程序main0{ float x=2.0,y;if(x<0.0) y=0.0; elseif(x<10.0) y=1.0/x; else y=1.0;printf("%f\n",y); }该程序的输出结果是A) 0.000000B) 0.250000C) 0.500000D) 1.00000025、有如下程序main0{int a=2,b=-1,c=2; if(a<b)if(b<0) c=0;else c++printf("%d\n",c);}该程序的输出结果是A) 0B) 1C) 2D) 326、有如下程序main0{ int i,sum;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum); }该程序的执行结果是A) 6B) 3C) 死循环D) 027、有如下程序main0{int x=23;do{printf("%d",x--);}while(!x);}该程序的执行结果是A) 321B) 23C) 不输出任何内容D) 陷入死循环28、有如下程序main0{int n=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是A) 987B) 876C) 8765D) 987629、设有说明语句:char a='\72';则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法30、有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是A) 3B) 4C) 5D) 有语法错31、有如下程序int runc(int a,int b){return(a+b);}main0{int x=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}该程序的输出的结果是A) 12B) 13C) 14D) 1532、有如下程序段int *p,a=10,b=1p=&a; a=*p+b;执行该程序段后,a的值为A) 12B) 11C) 10D) 编译出错33、对于基类型相同的两个指针变量之间,不能进行的运算是A) <B) =C) +D) -34、以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){int i,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p])__________;return(p);}在下划线处应填入的是A) i=pB) a[p]=a[i]C) p=jD) p=I35、有如下程序long fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); elsereturn(2);}main0{ printf("%d\n",fib(3)); 该程序的输出结果是A} 2B} 4C} 6D} 836、有如下程序#define N 2#define M N+1#define NUM 2*M+1#main(){ int i;for(i=1;i<=NUM;i++)printf("%d\n",i); }该程序中的for循环执行的次数是A) 5B) 6C) 7D) 837、有以下函数char fun(char *p){ return p; }该函数的返回值是A) 无确切的值B) 形参p中存放的地址值C) 一个临时存储单元的地址D) 形参p自身的地址值38、有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A) tureB) falseC) 0D) 139、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是A) EOFB) 0C) 非零值D) NULL40、若有以下说明和定义fun(int *c){ }main(){int (*a)()=fun,*b(),w[10],c;┆}在必要的赋值之后,对fun函数的正确调用语句是A) a=a(w);B) (*a)(&c);C) b=*b(w);D) fun (b);41、有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是A) *P+9B) *(P+8)C) *P+=9D) P+842、有如下程序main0{int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++)n[i]=n[i]+1;printf("%d\n",n[k]);}该程序的输出结果是A) 不确定的值B) 2C) 1D) 043、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是A) &t[3][2]B) t[3]C) t[1]D) t[2]44、有如下程序main0{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)for(j=0;j<i;j++) s+=a[i][j]printf("%d\n",s);}该程序的输出结果是A) 18B) 19C) 20D) 2145、有如下定义struct person{char name[9]; int age;}; strict person class[10]={"Johu", 17, "Paul", 19"Mary", 18,"Adam 16,};根据上述定义,能输出字母M的语句是A) prinft("%c\\n",class[3].mane);B) pfintf("%c\\n",class[3].name[1]);C) prinft("%c\\n",class[2].name[1]);D) printf("%^c\\n",class[2].name[0]);46、以下对结构体类型变量的定义中,不正确的是A) typedef struct aa{ int n;float m;}AA;AA td1;B) #define AA struct aaAA {int n;float m;}td1;C) struct{ int n;float m;}aa;stuct aa td1;D) struct{ int n;float m;}td1;47、有如下程序main(){char s[]="ABCD",*P;for(p=s+l; p<s+4; p++) printf ("%s\n",p);}该程序的输出结果是A) ABCDBCDCDDB) ABCDC) BCDD)BCDCDD48、有如下程序main(){char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是A) 69825B) 63825C) 6385D) 693825答案BDAAC BACBBDBDCD BACBAADACC CBBAADBCDB BBDCBBDDAD CDC。
C语言最终模拟题(含答案)
题号3...选择题A:(1分,正确答案B,学生答案B)
表达式:(int)((double)9/2)-(9)%2的值是()。
A:0
B:3
C:4
D:5
题号4...选择题A:(1分,正确答案B,学生答案D)
若有定义语句:int x=10;,则表达式x-=x+x的值为()。
C:3.89
D:4.0
题号29...选择题A:(1分,正确答案C,学生答案A)
已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为( )。
A:3,1
B:15,12
C:15,1
D:3,12
题号30...选择题A:(1分,正确答案B,学生答案*)
A:s="Good";
B:s[20]="Good";
C:strcat(s,"Good");
D:strcpy(s,"Good");
题号28...选择题A:(1分,正确答案B,学生答案*)
已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为()。
A:3
B:3.0
D:可以在其他函数之前或之后
题号23...选择题A:(1分,正确答案D,学生答案B)
以下选项中,()是C语言关键字。
A:printf
B:include
C:fun
D:default
题号24...选择题A:(1分,正确答案A,学生答案*)
已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为()。
2016年安徽省计算机二级考试C语言(模拟试卷五)
单项选择题1:计算机软件分为系统软件和应用软件,下列软件中,不属于应用软件的是______。
A. AutoCADB. MSNC. SQL ServerD. Windows Media Player参考答案:C2:操作系统的主要功能是_____。
A. 管理系统所有的软、硬件资源B. 实现软、硬件转换C. 把源程序转换为目标程序D. 进行数据处理参考答案:A3:微型计算机的硬件系统包括______。
A. 控制器、运算器、存储器、输入设备和输出设备B. 主机、键盘、电源和CPUC. 主机、电源、CPU和显示器D. CPU、键盘、显示器和打印机参考答案:A4:下列有关Windows"文件夹"的叙述,不正确的是_______。
A. 文件夹中既可以存放文件,也可以存放文件夹B. 文件夹中不能存放同名文件C. 不同文件夹中可以存放同名文件D. 名称相同的文件和文件夹可以存放在同一文件夹中参考答案:D5:多媒体计算机是指______。
A. 安装了光驱并具有较高运算能力的计算机B. 安装了office软件的计算机C. 能够处理音频、视频等多媒体信息的计算机D. 能够访问Internet的计算机参考答案:C6:以下叙述错误的是______。
A. 一个C程序可以包含多个函数B. 一个C程序只能有一个主函数C. C程序在书写时,有严格的缩进要求,否则不能编译通过D. C程序的主函数必须用main作为函数名参考答案:C7:设有char a='\101';,则变量a包含______个字符。
A. 1B. 2C. 3D. 4参考答案:A8:下列_______是不合法的常量。
A. 'xabcde'B. "x1f"C. 0x12D. 2.1e3参考答案:A9:_______不是C语言的合法关键字。
A. switchB. defaultC. caseD. printf参考答案:D10:下列表达式中值为0的是______。
c语言模拟考试题及答案
c语言模拟考试题及答案1. 以下哪个是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,以下哪个函数用于将整数转换为字符串?A. sprintfB. atoiC. itoaD. printf答案:C3. 在C语言中,以下哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 下列哪个选项是正确的C语言注释方式?A. // 这是注释B. /* 这是注释 */C. // 这是注释D. /* 这是注释 */答案:B5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. int str = "Hello, World!";D. char str[] = {"Hello", "World!"};答案:A6. C语言中,以下哪个函数用于计算数组的长度?A. strlenB. sizeofC. lengthD. array_length答案:B7. 在C语言中,以下哪个选项是正确的二维数组声明?A. int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};B. int arr[2][3] = {1, 2, 3, 4, 5, 6};C. int arr[2][3] = {1, 2, 3};D. int arr[][] = {1, 2, 3, 4, 5, 6};答案:A8. 在C语言中,以下哪个选项是正确的函数声明?A. int myFunction(int x);B. int myFunction(int);C. int myFunction();D. int myFunction(int x, int y);答案:A9. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A10. 在C语言中,以下哪个选项是正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. if (condition) else答案:A。
计算机二级C语言五套模拟卷及答案
计算机二级C语言五套模拟卷及答案模拟试题一一、选择题(本大题30分,每小题2分)1.下列说法正确的是。
E) main函数必须放在C程序的开头F) main函数必须放在C程序的最后G) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的H) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。
A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型3.若有说明语句:char c= ‘\64’; 则变量C包含:。
A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定4.设有如下定义和执行语句,其输出结果为:。
int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 35.C语言中,运算对象必须是整型数的运算符是。
A)% B)\ C)% 和\ D)**6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= 。
A)2 B)3 C)4 D)无结果8.下面有关for循环的正确描述是。
c语言试题及答案解析
c语言试题及答案解析一、选择题1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级编程语言。
B. C语言可以直接被计算机执行。
C. C语言具有结构化编程的特性。
D. C语言支持多文件编程。
答案:B解析:C语言是一种高级编程语言,它需要编译器将其编译成机器语言后,计算机才能执行。
C语言支持结构化编程,并且可以进行多文件编程。
2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:C解析:在C语言中,关键字`int`用于定义函数的返回类型,`return`用于从函数返回值,`void`表示函数没有返回值,而`function`并不是C语言的关键字。
正确的关键字用于定义函数的是`void`,但通常与函数名一起使用,例如`void functionName() {}`。
二、填空题1. C语言标准库函数_________()用于将字符串转换为浮点数。
答案:atof解析:`atof`函数是C语言标准库中的一个函数,它用于将字符串转换为浮点数。
2. 在C语言中,_________运算符用于计算两个整数的差值。
答案:-解析:在C语言中,减号`-`运算符用于计算两个整数的差值。
三、简答题1. 简述C语言中指针的概念及其作用。
答案:指针是C语言中一个重要的概念,它是一个变量,其值是另一个变量的内存地址。
指针的作用包括:- 直接访问内存,提高程序的运行效率。
- 实现动态内存分配。
- 作为函数参数,实现函数对变量的间接操作。
- 实现复杂的数据结构,如链表、树等。
解析:指针是C语言中用于存储变量地址的变量,它使得程序能够直接操作内存地址,从而实现高效的数据处理和复杂的数据结构。
2. 描述C语言中数组的声明和初始化方法。
答案:在C语言中,数组的声明和初始化可以通过以下方式进行:- 声明:使用`type arrayName[arraySize];`的格式,其中`type`是数据类型,`arrayName`是数组名,`arraySize`是数组的大小。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言试卷5
C语言模拟考试学号:5 姓名:赵莎得分:1 ..................................................................单项选择C语言程序中必须有的函数是()。
A.#include "stdio.h"B.mainC.printfD.scanf【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]下列语句中符合C语言语法的语句是:( ).A.x=y+2=x+y+z;B.x=7+y,y++,z++;C.x=(3+b,z)=x+3;D.x=3+y++=x+3;【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]C语言执行程序的开始执行点是()。
A.程序中的main函数B.程序中第一个函数C.包含文件中的第一个函数D.程序中第一条可以执行语言【评分报告得分:1.0 之 1.0 】【参考答案】正确A【学生答案】A若有定义:int *p[3];,则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个名为*p的整型数组,该数组含有三个int类型元素C.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素【评分报告得分:0.0 之 1.0 】【参考答案】错误C【学生答案】[未答此题]C语言中的文件的存储方式有()。
A.只能从文件的开头进行存取B.可以顺序存取,也可随机存取C.只能随机存取(或直接存取)D.只能顺序存取【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]能将高级语言编写的源程序转换为目标程序的是()。
A.编译程序B.链接程序C.解释程序D.编辑程序【评分报告得分:0.0 之 1.0 】【参考答案】错误A【学生答案】[未答此题]下列数据中属于"字符串常量"的是( )。
国家二级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语言模拟试卷 (5)
7. 以下叙述中正确的是( ) (2 分) A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.main()函数必须放在其它函数之前 D.所有被调用的函数一定要在调用之前进行定义 .标准答案:A
8. 下面的符号常量定义中,正确的是 ( ) (2 分) A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 .标准答案:D
3. 设有字符型变量 x 的值是'1'(对应二进制数是 00110001),要通过“x^y”运算,使得 x 的高 3 位不变,低 5 位取反,y 的 值用二进制数来表示应为________________________________. (2 分) .标准答案:1. 00011111;
4. 下面程序的输出是 ____________________________________ #include <stdio.h> #include <string.h> main() { char ss[10]= "12345"; strcat(ss, "6789"); printf("%s\n",ss); } (2 分) .标准答案:1. 123456789;
三、程序设计题 (共 2 题,共 20 分)
1. 编程将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。 (10 分)
标准答案:main() {
int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { while(n!=i) { if(n%i==0) { printf("%d*",i); n=n/i; } else break; } } printf("%d",n); }
电子学会青少年软件编程(C语言五级)等级考试试卷(2021年3月)-附答案
第 3 题
问答题 密室逃脱 小Y喜欢玩密室逃脱,每次游戏开始时,小Y会进入一个密室,她需要按照顺序解开各个隐藏线索才能成功逃脱 密室。小Y非常聪明,解开线索对她来说并不难,但是她有一点懒,她希望在通关过程中移动次数最少。请你
博学佑航-青少年考级竞赛题库
帮小Y计算她至少要移动多少次才能成功通关。 密室是m行n列的格子矩阵,小Y从左上角(1,1)进入密室,密室中有三种格子: 墙,以数字0标记 路,以数字1标记 隐藏线索处,以数字( > 1)标记, 代表该线索的难度
第 2 题
问答题 求逆序对数 对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序 请求出整数序列A的所有逆序对个数 时间限制:500 内存限制:65536 输入 输入包含多组测试数据,每组测试数据有两行 第一行为整数N(1 <= N <= 20000),当输入0时结束 第二行为N 个整数,表示长为N的整数序列 输出 每组数据对应一行,输出逆序对的个数
样例输入 2 33 132 104 10 6 5 33 132 000 10 6 5 样例输出 8 -1
提示 样例解释:由于需要按难度顺序解开线索,在第一组数据中,小Y第一次移动到3时不能解密,在完成2之后需 要回到3.最后小Y解开10时,她成功通关。
答案
#include <iostream> #include <algorithm> #include <queue>
青少年软件编程(C语言五级)等级考试试卷(2021年3月)
题目总数:4
总分数:100
时间:不限时
第 1 题
问答题 最小新整数 给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。 现在从m位中删除k 位(0<k < m),求生成的新整数最小为多少? 例如: n = 9128456, k = 2, 则生成的新整数最小为12456
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.以下程序运行后,输出结果是
#include<stdio.h>
#define PT 5.5
#define S(x) PT*x*x
main( )
{
int a=1,b=2;
printf("%4.1f\n",S(a+b))
}
printf("%d,%d\n",c,d);
}
输出结果是
A)50,30 B)30,50
C)80,-20 D)80,20
16.设有数组定义: char array [ ]="China";则数组array所占的空间为
A) 4个字节B) 5个字节C) 6个字节D) 7个字节
17.以下程序运行后,输出结果是
2.下面程序的运行结果是
main()
{
char ch[7]={"65ab21"};
int i,s =0
for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2)
s=10*s+ch[i]-'0'
printf("%d\n",s);
}
A)12ba56 B)6521 C)6 D)62
3.若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
#include <stdio.h>
main()
{ int i,a[10],*p=a,sum=0;
printf("Enter 10 num:\n");
for(i=0;i<10;i + + ) scanf("%d",&a[i]);
for(i=0;i<10;i + + )
if(isprime(*(p+ _______)) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); }
1. C语言数组的下标总是从__________开始,不可以为负数;构成数组各个元素具有相同的__________。
2.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为_______,一个int数据在内存中所占字节数为_______,一个long数据在内存中所占字节数为_______,一个float数据在内存中所占字节数为_______。
6.在实际编程中,do-while循环完全可以用for循环替换()
7. C程序的注释只能是一行()
8.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式()
9.在函数内的复合语句中定义的变量在本函数范围内有定义()
10.一个变量在内存中占据一定的存储单元()
四、程序填空(本题共5道小题,每题4分,共20分。)
#include<stdio.h>
#include<string.h>
main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n", str);}
10.执行以下程序后,y的值是
main ( )
#define N 10
invert(s,i,j)
int *s,i,j;
{ int t; if(i<j){ t=*(s+i); *(s+j)=(s+j);*(s+j)=t; invert(s, ________ ,j-1);}}
main()
{ int a[N],i;
for(i=0;i<N;i + + ) scanf("%d",a+ ____________ );
if( isupper(c)) num[c-65]+=1;
for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/
if(num[i]) printf("%c:%d\n,i __________ , num[i]);
}
2.以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。
p=q=ph; printf("Input an integer number,enter -1 to end:\n");
scanf("%d",&a):
while(a!=-1)
{ p=(struct list *)malloc(sizeof(struct list));
p->data=a;
q->next=p;
a=pl==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
执行该程序后,a的值为_________,b的值为__________。
5.以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。
#include <stdio.h>
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
12.若有说明:int i,j=7,*p=&i;,则与i=j;等价的语句是
printf("\nThe sum=%d\n",sum); }
isprime(x)
int x;
{ int i; for(i=2;i<=x/2;i + + )
if(x%i = = 0) return (0); _________ ; }
3.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next = = NULL).
A)49.5 B)9.5 C)22.0 D)45.0
7.设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
则表达式_____的值是6。
A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n
A) I= *P;B) *P=*&J;
C) i=&j;D) i=* *p;
13.执行语句:for(i=1;i++<4;)后;变量i的值是
A)3 B)4 C)5 D)不定
14.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
D) 0-2147483647
20.设有如下定义:
int (*ptr)*();
则以下叙述中正确的是
A)ptr是指向一维组数的指针变量
B)ptr是指向int型数据的指针变量
C)ptr是指向函数的指针,该函数返回一个int型数据
D)ptr是一个函数名,该函数的返回值是指向int型数据的指针
二、填空题(每空1分,共10分。)
invert(a,0,N-1);
for(i=0;i<N;i + + ) printf("%d",a[i]);
printf("\n"); }
五、编程题(本题共2道小题,共20分。)
1.计算1-1/2+1/3-1/4-...+1/99-1/100的值,并显示出来。
3. C程序是由________构成的,一个C程序中至少包含________。因此,________是C程序的基本单位。
4.假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为__________。
三、判断题(本题共10道小题,共10分。)
1.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数()
8.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为
if(a<b)
if(c<d)x=1;
else if(a<c)
if(b<d)x=2;
else x=3;
else x=6;
else x=7;
A)1 B)2 C)3 D)6
9.下面程序的输出是
A) xyzabcABCB) zabcABCC) yzabcABCD) xyabcABC