国家二级C语言机试(函数和数组)模拟试卷16

国家二级C语言机试(函数和数组)模拟试卷16(总分:58.00,做题时间:90分钟)一、选择题(总题数:29,分数:58.00)1.以下语句中存在语法错误的是(分数:2.00)A.char ss[][20]={"right?"};√B.char*ss[6];ss[1]="right?";C.char*ss[]={"right?"};D.char ss[6][20];ss[1]="right?";解析:解析:选项A中定义了二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项C和A)不同,选项C为指针数组,对于指针变量可以保存常量字符串的地址。

2.下面是有关C语言字符数组的描述,其中错误的是(分数:2.00)A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串√解析:解析:本题考查字符数组。

选项A、B)和C)都是正确的,字符数组存放其他数据。

3.以下选项中有语法错误的是(分数:2.00)A.char str[3][10];str[1]="guest";√B.char str[][10]={"guest"};C.char*str[3];str[1]="guest";D.char*str[]={"guest"};解析:解析:本题考查字符数组的定义和使用。

选项A定义了一个二维字符数组,第二句是直接给字符数组赋值错误,C语言中不能直接给字符数组赋值;选项B、C)和D)都是正确的。

4.下列叙述中正确的是(分数:2.00)A.两个连续的单引号(")是合法的字符常量B.可以对字符串进行关系运算C.两个连续的双引号("")是合法的字符串常量√D.空字符串不占用内存,其内存空间大小是0解析:解析:两个连续的双引号:"",是一个字符串常量,称为“空串”。

5.以下选项中,能正确进行字符串赋值的是(分数:2.00)A.char siS]={'A','B','C','D','E'};B.char*s="ABCDE";√C.char s[4][5]={"ABCDE"};D.char*S;gets(s);解析:解析:对于选项A字符串中无法存放字符串结束标志'\0',选项C每行仅仅存放5个字符,同样的不能存放字符串结束标志,选项D中指针变量s没有实际的内存空间,无法存放输入的字符串。

因此正确的选项为B),相当于char*s:s="ABCDE",把字符串常量的首地址存放到指针变量中存储。

6.有以下程序 #include int fun(char s[]){char*p=s; while(*p!=0)p++; return(p-s);}main(){printf("%d\n",fun("0ABCDEF"));} 程序运行后的输出结果是(分数:2.00)A.6B.7 √C.1D.0解析:解析:函数fun的主要功能是计算字符串中实际字符的个数,因此主函数中调用fun得到结果为7。

7.若有以下程序段 char str[4][12]={"aa","bbb","ccccc","d"},*strp[4]; int i; for(i=0;i (分数:2.00)A.strp √B.str[0]C.strp[3]D.*strp解析:解析:程序段中定义指针数组*strp,含有4个元素,for循环strp分别保存了二维数组str中的4个字符串的首地址,因此strp为二级地址,不能保存字符串的首地址,*strp或者strp[0]中存放了字符串”aa”的首地址。

所以不能正确引用字符串的为选项A。

8.以下叙述中正确的是(分数:2.00)A.下面的语句用赋初值方式来定义字符串,其中,“'\0'”是必须的char strl []={'s','t','r','l','\0'};B.有定义语句:char strl[]="strl";,数组strl将包含4个元素√C.字符串常量“strl”的类型是:字符串数据类型D.字符数组的每个元素可存放一个字符,并且最后一个元素必须是“'\0'”字符解析:解析:选项B中除了字符串中实际字符之外,还要存储字符串结束标志,应为5个元素。

在C语言中没有字符串数据类型,因此选项C不正确,选项D字符数组不一定必须存放字符串,因此没有规定最后一个元素为字符串结束标志。

9.以下叙述中正确的是(分数:2.00)A.char ca[3][5]={"A","BB","CCC"};是不合语法的B.字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组√C.char ca[][5]={"A","BB","CCC"};是不合语法的D.char*ca[3]={"A","BB","CCC"};是不合语法的解析:解析:字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项B的说法正确。

选项A和C)对于ca的定义是正确的。

选项D定义一个指针数组,可以保存多个字符串的首地址。

10.以下叙述中正确的是(分数:2.00)A.函数调用“strlen(s);”会返回字符串s实际占用内存的大小(以字节为单位)B.两个字符串可以用关系运算符进行大小比较C.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和D.C语言本身没有提供对字符串进行整体操作的运算符√解析:解析:C语言中没有运算符可以处理字符串,要调用“string”库中的函数来处理字符串,其中strlen 函数主要测试字符串中实际字符的个数,比实际占用的内存至少要少一个。

Strcat(s1,s2)函数用于连接两个字符串,是把字符串s2连接到s1的后面。

11.以下叙述中正确的是(分数:2.00)A.不能用字符串常量对字符数组名进行整体赋值操作√B.字符串常量“Hello”会被隐含处理成一个无名字符型数组,它有5个元素C.“char str[7]="string!";”在语法上是合法的,运行也是安全的D.“char*str;str="Hello";”与“char str[];str="Hello";"效果是一样的解析:解析:字符数组仅仅可以采用定义时初始化以及输入得到数据,在程序其他部分不允许对其进行赋值。

字符串常量中除了实际字符之外还有结束标志,选项B错误,而选项C中,没有空间存放字符串结束标志,因此运行是不安全的。

选项D中第一个str为指针。

可以赋值,而后面的为数组,在程序中赋值出错。

12.以下叙述中正确的是(分数:2.00)A.语句“char str[10]="string!";”和“char str[10]={"string!"};”并不等价B.对于一维字符数组,不能使用字符串常量来赋初值C.对于字符串常量“string!”,系统已自动在最后加入了“'\0'”字符,表示串结尾√D.在语句char str[1]="string!";中,数组str的大小等于字符串的长度解析:解析:在C语言中,字符串是借助于字符型一维数组来存放的,可以借助在定义时初始化以及输入来把字符串存入数组,并规定以字符'\0'作为“字符串结束标志”。

'\0'是一个转义字符,称为空值,它的ASCII码值为0。

'\0'作为标志占用存储空间,但不计入字符串的实际长度。

在C语言中,系统在每个字符串的最后自动加入一个字符('\0')作为字符串的结束标志。

13.设有定义char str[]="Hello";则语句printf("%d%d",sizeof(str),strlen(str));的输出结果是(分数:2.00)A.6 6B.6 5 √C.5 5D.5 6解析:解析:sizeof主要用于测试变量所占的实际内存,而strlen函数主要测试字符串中实际字符的个数,字符串"Hello"占有内存6个字节。

而字符串中共有5个字符。

14.设有定义语句: char*aa[2]={"abcd","ABCD"};则以下叙述正确的是(分数:2.00)A.aa数组的两个元素只能存放含有4个字符的一维数组的首地址B.aa数组的值分别是字符串"abcd"和"ABCD"C.aa是指针变量,它指向含有两个元素的字符型数组D.aa[0]存放了字符串"abcd"的首地址√解析:解析:题目中char*aa[2],定义了指针数组aa,有两个元素,aa[0]存放"abcd".地址,而aa[1]存放"ABCD"地址。

15.以下选项中,没有编译错误的是(分数:2.00)A.char str3[]={'d','e','b','u','g','\0'}:√B.char strl[5]="pass",str2[6];str2=strl;C.char name[10];name="china";D.char str4[];str4="hello world";解析:解析:选项A是定义了字符数组str3[],并对其赋初值。

选项B中语句str2=str1非法,字符数组不能直接赋值。

选项C,D)和选项B一致。

16.有以下程序 main() {char a[5][10]={"one","two","three","four","five"}; int i,j; char t; for(i=0;ia[j][0]) {t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;} puts(a[1]); } 程序运行后的输出结果是(分数:2.00)A.fwo √B.owoC.twoD.fix解析:解析:这个程序的执行过程是当i=0时,j=1,a[0][0]=0a[3][0]=f;置换a[2][0]=f,a[3][0]=t;此时,a[2][0]=f,a[1][0]=t,再置换a[2][0]=t,a[1][0]=f,;;当i=3时,j=4,a[3][0]=f=a43][0]=f;不置换;所以a[1]的结果为fw0。

合集下载

2020年全国计算机等级考试二级C语言上机模拟训练题库(共50套)

2020年全国计算机等级考试二级C语言上机模拟训练题库(共50套)

2020 年全国计算机等级考试二级 C 语言上机模拟训练题库(共50 套)第一套1 程序填空给定程序中,函数fun 的功能是:计算下式s=1/22+3/42+5/62+(2 ×n-1)/(2 ×n) 2 2 -3 并把计算结果作直到︱( 2×n-1 )/ (2×n)︱《 10为函数值返回。

例如,若形参 e 的值 le -3,函数值的返回值为 2.735678。

第 1 处 i=0;第 2 处 i++;第 3 处 x=(2.0*i-1) / ((2.0*i)* (2.0*i));2程序修改给定程序 MODI1.C中函数 fun 的功能是:将 s 所指字符串的正序和反序进行连接,形成一个新串放在 t 所指的数组中。

/**found**/void fun(char*s, char *t)/**found**/t[2*d]= 0’;3程序设计函数 fun 的功能是:将 s 所指字符串中除了下标为奇数、同时 ASCII 值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。

viod fun(char*s, chat t[]){int i,j=0;for(i=1;i<strlen(s);i+=2)if(s[i]%2)t[j++]=s[i];t[j]=0;}第二套1程序填空给定程序中,函数 fun 的功能是:在 3× 4 的矩阵中找出在行上最大,列上最小的那个元素,若没有符合条件的元素则输出相应信息。

第 1 处 max=a[i][j];c=j;}第 2 处 find=0;第 3 处 i++;2 程序修改给定程序 MODI1.C中函数 fun 的功能是:根据整形形参 m 的值:计算如下公式的值 ?例如 : 若 m中的值为 5,则应输出: 0.536389 。

/**found**/for(i=2;i<=m;i++)/**found**/y-=1.0/(i*i);3 程序设计m个人的成绩存放在 score 数组中,请编写函数 fun ,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below 所指的数组中。

国家二级C语言机试模拟题2019年(16)_真题-无答案

国家二级C语言机试模拟题2019年(16)_真题-无答案

国家二级(C语言)机试模拟题2019年(16)(总分100,考试时间120分钟)选择题1. 一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次人栈,然后再依次出栈,则元素出栈的顺序是( )。

A. 12345ABCDEB. EDCBA54321C. ABCDEl2345D. 54321 EDCBA2. 下列叙述中正确的是( )。

A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D. 循环队列中元素的个数是由队头指针和队尾指针共同决定的3. 在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。

A. D(n)B. D(n2)C. D(log2n)D. D(nlog2n)4. 下列叙述中正确的是( )。

A. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B. 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C. 顺序存储结构能存储有序表,链式存储结构不能存储有序表D. 链式存储结构比顺序存储结构节省存储空间5. 数据流图中带有箭头的线段表示的是( )。

A. 控制流B. 事件驱动C. 模块调用D. 数据流6. 在软件开发中,需求分析阶段可以使用的工具是( )。

A. N-S图B. DFD图C. PAD图D. 程序流程图7. 在面向对象方法中,不属于“对象”基本特点的是( )。

A. 一致性B. 分类性C. 多态性D. 标识唯一性8. 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

A. 一对一B. 一对多C. 多对一D. 多对多9. 在数据管理技术发展的三个阶段中,数据共享最好的是( )。

A. 人工管理阶段B. 文件系统阶段C. 数据库系统阶段D. 三个阶段相同10. 有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为( )。

c语言国家二级考试真题及答案

c语言国家二级考试真题及答案

c语言国家二级考试真题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x123B. 123.0C. '123'D. 0123答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable name答案:B3. 若有定义:int a=3, b=4; 则表达式 a++ + b 的值是多少?A. 7B. 6C. 5D. 8答案:A4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A5. 以下哪个选项是C语言中的合法浮点数?A. 3.14e2B. 3.14E2C. 3.14eD. 3.14E答案:B6. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a[] = {1, 2, 3, 4};答案:B7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func();C. int func(int a, b);D. int func(int a, int);答案:A8. 若有定义:int x=10; 则表达式 x += 5 的值是多少?A. 10B. 15C. 5D. 20答案:B9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int age; char name[20]; };B. struct { int age; char name[20]; } Student;C. struct Student { int age; char name[20]; } student;D. struct { int age; char name[20]; };答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的数据类型?A. 整型(int)B. 浮点型(float)C. 字符型(char)D. 所有选项都是答案:D2. 下列哪个函数用于计算两个数的和?A. max()B. min()C. sum()D. pow()答案:C3. 在C语言中,以下哪个关键字用于定义一个函数?A. ifB. whileC. returnD. void答案:D二、填空题1. 在C语言中,用于定义一个整型变量的关键字是________。

答案:int2. 字符串在C语言中是以________字符结尾的字符数组。

答案:'\0'3. C语言中,用于循环结构的关键字有________和________。

答案:for 和 while三、编程题1. 编写一个C语言程序,计算并输出1到100之间所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串的反转。

```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```以上是全国计算机等级考试二级C语言题库及答案的部分内容,涵盖了选择题、填空题和编程题。

国家二级C语言(C语言程序设计)机试模拟试卷16(题后含答案及解析)

国家二级C语言(C语言程序设计)机试模拟试卷16(题后含答案及解析)

国家二级C语言(C语言程序设计)机试模拟试卷16(题后含答案及解析)题型有:1. 选择题选择题1.若以下选项中变量全部为整型变量,且己正确定义并赋值,则语法正确的switch语句是A.switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b;}B.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}C.switch(a+9){case c1:y=a-b;case c2:y=a+b;}D.switch a*b{case10:x=a+b;default:y=a-b;}正确答案:B解析:本题考查switch的使用。

选项A)中的ca$e0和ca$e4没有break语句;选项B)正确;选项C)中的case后面不是常量,错误;选项D)中switch后面没有括号。

知识模块:C语言程序设计2.有以下程序main( ){int x=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++:break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的运行结果是A.a=2,b=2B.a=1,b=1C.a=1,b=0D.a=2,b=1正确答案:D解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个switch(x)判断,进入case1中进行嵌套判断,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接着执行case2,a自加为2,b自加为1,遇到break,结束循环,此时a=2,b=1。

知识模块:C语言程序设计3.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是A.switch(a+b){case1:printf(“*\n”);case2+1:printf(“**\n”);}B.switch((int)x);{case1:printf(“*\n”);case2:pfintf(“**\n”);}C.switch(x){case1.0:printf(“*\n”);case2.0:printf(“**\n”);}D.switch(a+b){case1:printf(“*\n”);case c:printf(“**\n”);}正确答案:A解析:在C语言中switch( )后一对圆括号中的可以是整型表达式或字符表达式。

2022年计算机等级考试二级C语言模拟试卷及其答案

2022年计算机等级考试二级C语言模拟试卷及其答案
②循环链表中最终一种结点旳指针不是空,而是指向表头结点。
(2)【2】软件开发
评析:基于软件工程旳目旳,软件工程旳理论和技术性研究旳内容重要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发措施学、开发过程、开发工具和软件工程环境,其主体内容是软件开发措施学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
(5)A
评析:确认测试旳任务是验证软件旳功能和性能及其他特性与否满足了需求规格阐明中确实定旳多种需求,以及软件配置与否完全、对旳。
(6)D
评析:常见旳需求分析措施有:构造化分析措施和面向对象旳分析措施。构造化分析旳常用工具有:数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表等。
(7)C
评析:在软件设计过程中,必须遵照软件工程旳基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。
(8)B
评析:内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储构造与物理存取措施,如数据存储旳文献构造、索引、集簇及hash等存取方式与存取途径。
(9)D
评析:在关系数据库中,用二维表来表达实体之间元组所构成,因此关系可视为元组旳集合,将E-R图转换到关系模式时,实体与联络都可以表到达关系。
(7)【7】1.0/(i*i) 或 (double)1/(i*i)
评析:体现式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应旳C语言旳体现式s = s + 1.0/(i*i)。注:必须要写成1.0旳形式,否则 1/(i*i)返回值为其值截尾取整,即恒为0。

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。

例如,若N=3,有下列矩阵: 1 2 3 计算结果为7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main( )19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(‘‘\nThe original array:\n’’);21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(‘‘%2d”,t[i][j]);23 printf(‘‘\n’’);24 }25 fun(t);26 printf(‘‘\nThe result is:\n’’);27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(‘‘%2d’’,t[i][j]);29 printf(‘‘\n’’);30 }31 }正确答案:(1)0 (2)j-- (3)j解析:第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是“t[j][0]”,第一行元素是“t[0][N-j-1]”,故第一空处应为“0”。

全国计算机等级考试二级C语言真题库之选择题(16)

全国计算机等级考试等级考试真题库之选择题(16)1.下列叙述中正确的是A) 程序执行的效率与数据的存储结构密切相关B) 程序执行的效率只取决于程序的控制结构C) 程序执行的效率只取决于所处理的数据量D) 以上说法均错误参考答案:A【解析】程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。

2.下列与队列结构有关联的是A) 函数的递归调用B) 数组元素的引用C) 多重循环的执行D) 先到先服务的作业调度参考答案:D【解析】队列的修改是依先进先出的原则进行的,D正确。

3.A) DYBEAFCZXB) YDEBFZXCAC) ABDYECFXZD) ABCDEFXYZ参考答案:C【解析】前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

前序遍历描述为:若二叉树为空,则执行空操作。

否则:①访问根结点;②前序遍历左子树;③前序遍历右子树,C正确。

4.一个栈的初始状态为空。

现将元素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,A参考答案:C【解析】栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选C。

5.下面属于白盒测试方法的是A) 等价类划分法B) 逻辑覆盖C) 边界值分析法D) 错误推测法参考答案:B【解析】白盒测试法主要有逻辑覆盖、基本路径测试等。

逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖,选择B。

其余为黑盒测试法。

6.下面对对象概念描述正确的是A) 对象间的通信靠消息传递B) 对象是名字和方法的封装体C) 任何对象必须有继承性D) 对象的多态性是指一个对象有多个操作参考答案:A【解析】对象之间进行通信的构造叫做消息,A正确。

计算机二级《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语言模拟试题及答案

全国计算机等级考试二级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。

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