下面就是我们帮你搜集整理的有关《计算机二级c语言题库及答案,9月计算机二级《C语言》上机试》的问答

本文目录一览

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

计算接二级c语言题库我建议大家去百度搜索:原创力文档

原创力文档大概收纳了100套计算机二级c语言试题,这100套题基本上涵盖了计算机二级c语言所有的题目和知识点。一共480多页pdf,这么多试题我们应该如何使用呢?

1,首先我们做题要有针对性地做,做的时候多加思考,为什么要操作这一步?为什么要输入这个代码?然后根据我们不明白不理解的地方对着答案多加练习。

2,然后我们要善于反思,善于总结。我们要学会归类,这一类题目怎么做?这一类题目用哪个函数?然后对于我们不理解的题目或者是错题要及时整理下来,随时翻阅查看。

3,我们一定要多加练习,熟悉各种公式,看到一个题目能马上在脑海中想到用什么公式,如何用,这就需要我们多加练习,而且要认真地练习。

4,第四点就是在考前一周左右,我们就要停止做题,开始回顾知识点,查看自己整理的错题,总结做题方法。然后要注意对于题库我们是不可能全做完的,100套题我们时间和精力是不允许的。我们要选择历年考的比较多的题目去做去练习。

总结一下:计算机二级c语言题库和答案,原创力文档整理的还算比较齐全的。

标签: 二级c语言题库面试题

返回目录

9月计算机二级《C语言》上机试题及答案

(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。 A.12345ABCDE B.EDCBA54321 C.ABCDEl2345 D.54321EDCBA (2)下列叙述中正确的是( )。 A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定的 (3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。 A.0(n) B.D(n2) C.O(1092n) D.0(nl092n) (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,则所使用的运算为( )。 A.笛卡尔积 B.交 C.并 D.自然连接 (11)下列叙述中错误的是( )。 A.C程序可以由多个程序文件组成 B.一个c语言程序只能实现一种算法 C.c程序可以由一个或多个函数组成, D.一个C函数可以单独作为一个C程序文件存在(12)以下选项中,能用作数据常量的是( )。 A.115L B.0118 C.1.5el.5 D.0115 (13)按照c语言规定的用户标识符命名规则,不能出现在标识符中的是( )。 A.大写字母 B.下划线 C.数字字符 D.连接符 (14)设变量已正确定义并赋值,以下正确的表达式是( )。 A.X=Y+z+5,++Y B.int(15.8%5) C.X=Y*5=X+Z D.X=25%5.0 (15)设有定义:int X=2;,以下表达式中,值不为6的是( )。 A.2*x.x+=2 B.x++,2*x C.x*=(1+x) D.x*!x+1 (16)有以下程序: 程序运行后的输出结果是( )。 A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 (17)有以下程序: 已知字母A的ASCIl码为65,程序运行后的输出结果是( )。 A)E.68B. B)D,69 C.E,D D.输出无定值 (18)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x—y)?(x++):(y++)中的条件表达式(x—Y)等价的是( )。 A.(x—Y《01Ix—Y》O) B.(x—y《0) C.(x—Y》0) D.(x—Y==0) (19)有以下程序: 程序运行后的输出结果是( )。 A.3 B.2 C.1 D.0 (20)若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。

返回目录

计算机二级C语言选择题及答案(2)

}

printf("%d\n",num);

}

程序执行后的输m结果是( )。

A.35

B.37

C.39

D.3975

32.以下程序的’输出结果是( )。

main()

{char st="hello\0\t\\\";

printf("%d%d\n",strlen(st).sizeof(st));

}

A.9 9

B.5 20

C.13 20

D.20 20

33.若有以下的定义:‘int t;”,能正确表示t数组元素地址的表达式是( )。

A.&t

B.t

C.t

D.t

34.函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是( )。

A.文件开始

B.文件末尾

C.文件当前位置

D.以上都不对

35.下述程序的输出结果是( )。

#include

main()

{ int i;

for(i=l;i《=10;i++)

{if(i*i》=20)&&(i*i《=100))

break;

}

printf("%d\n",i*i);

}

A.49

B.36

C.25

D.64

36.若有定义“int b,*p=b;”,则p+6表示( )。

A.数组元素b的值

B.数组元素b的地址

C.数组元素b的地址

D.数组元素b的值加上6

37.设变量已正确定义,则以下能正确计算f=n!的程序是( )。

A.f=0:

for(i=1;i《=n;i++)f*=i:

B.F=1:

for(i=l;i《2n;i++)f*=i:

C.f=l:

for(i=n;i》1;i++)f*=i:

D.f=1;

for(i=n;i》=2;i--)f*=i:

38.下述程序执行的输出结果是( )。

#include

main()

{ char a;

strcpy(a,"are");strcpy(a,"you");

a=’&’;

printf("%s\n",a):

}

A.are&you

B.you

C.are

D.&

39.设x=011050,则x=x&01252的值是( )。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

40.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是( )。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索

C.仅仅搜索源程序所在目录

D.仅仅搜索当前目录

【答案与解析】

1.D。【解析】算法的空间复杂度,是指执行这个算法所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间、算法执行过程中所需要的额外空间。

2.D。【解析】数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。

3.D。【解析】所谓的交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序通过相邻元素的交换,逐步将线性表变成有序是一种最简单的交换排序方法。

4.C。【解析】结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。

5.D。【解析】文件系统所管理的数据文件基本上是分散、相互独立的。相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的依赖性强。

6.C。【解析】面对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。

7.D。【解析】所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。

8.B。【解析】软件的过程设计是指系统结构部件转换成软件的过程描述。

9.A。【解析】①对软,牛开发的进度和费用估计不准确:②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度远远跟不上计算机应用迅速普能及深入的趋势。

10.C。【解析】对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

11.C。【解析】数据库系统由如下5个部分组成:数据库(DB)、数据库管理系统fDBMS)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。其中 DB(DataBase)即数据库,是统一管理的相关数据的集合;DBMS即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问DB的方法。由以上可知,选C为正确答案。

12.A。【解析】标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C 选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。

13.D。【解析】本题考查逻辑运算符的使用。当“&&”的两个运算对象都是逻辑1时,表达式返回值才是1;“||” 的两个运算对象至少有一个是逻辑1时,表达式返回值也是1,x 14.C。【解析】第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%0”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或0);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数,也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。

15.C。【解析】函数fun(int x,int y)的功能是返回x+y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此,逗号表达式“a++,b++,aq b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。

16.D。【解析】在x=2,y=x+3/2中,3/2=1。2+1= 3,因此表达式的值为3,因为x,y为double型变量,故选择D选项。

17.A。【解析】当x为1时,执行case 1,a自加等于1,因为case 1后没有break,接着执行case 2,此时a的值为2,b自加为1,故选择A选项。

18.D。【解析】本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。

19.A。【解析】本题考查switch语句。当i一1时,执行case 1,因为没有遇到break语句,所以依次往下运行,“a=a+ 2=2,a=a+3=5”;当i=2时,执行case 2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3= 10”;当i=3时,执行case 3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。

20.C。【解析】只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。

21.A。【解析】循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a=3+4+5+6+0=18。

22.A。【解析】在程序语句中,k的初始值为5,进行第l次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出k,此时k的值变为1。程序执行第2次循环时,k 自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。

23.A。【解析】通过地址来引用数组元素的方法有下列5种:

(1)aq-3*i+j)。故A正确。

24.C。【解析】选项A、B的空间不够;字符串存储要有结束符’\0’,且要占用一个空间,printf用来输出字符,不能输入字符串。

25.D。【解析】由题目ee线性链表的定义可知,要将q 和r所指的结点交换前后位置,只要使q指向r的后一个结点,p指向r结点,r指向q结点即可。而在选项D由,r-》 next=q,这时r指向的节点为q;p-》next r,这时p指向的节点为r;q-》next=r-》next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。

26.B。【解析】在第1次外层for循环中,首先x++得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x++,得到x=4。在进入执行第2次外层for循环中,首先x++得到x=5。进入到内层for循环,只有循环变量j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量X的值自加1两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。

27.C。【解析】子函数fun1(double a)的功能是返回a的平方值的整数部分。子函数fun2(double x,double y)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2) 的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.O。

28.C。【解析】在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

29.A。【解析】本题在函数int fun(int n)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量x时,递归调用的过程为

fun(10)=10…fun(9)=104-94-fun(8)=104-9+84- fun(7)

=10+9++8++7++fun(6)=10+9++8+7+6+fun (6)

=10+9++8+7+6+5+fun(4)

=10+9++8+7+6+5+4+fun(3)

=10+9++8+7+6+5+4+3+fun(2)

=10+9++8+7+6+5+4+3+2+fun(1)

=10+9++8+7+6+5+4+3+2=55

返回目录

c语言二级考试题及答案

2011年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分) 一、 选择题(1-10,21-40每题2分,11-20每题1分,共70分) (1)下列关于栈叙述正确的是 A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种说法都不对 (2)下列叙述中正确的是 A)有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构 C)循环链表是非线性结构 D)双向链表是非线性结构 (3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) A)3 B)4 C)6 D)7 (4)在软件开发中,需求分析阶段产生的主要文档是 A)软件集成测试计划 B)软件详细设计说明书 C)用户手册 D)软件需求规格说明书 (5)结构化程序所要求的基本结构不包括 A)顺序结构 B)GOTO跳转 C)选择(分支)结构 D)重复(循环)结构 (6)下面描述中错误的是 A)系统总体结构图支持软件系统的详细设计 B)软件设计是将软件需求转换为软件表示的过程 C)数据结构与数据库设计是软件设计的任务之一 D)PAD图是软件详细设计的表示工具 (7)负责数据库中查询操作的数据库语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系 (9)有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是 A)自然连接 B)交 C)除 D)并 (10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是 A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5} (11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是 A)C语言程序仅可以编译执行 B)C语言程序仅可以解释执行 C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对 (12)以下叙述中错误的是 A)C语言的可执行程序是由一系列机器指令构成的 B)用C语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件 (13)以下选项中不能用作C程序合法常量的是 A)1,234 B)’123’ C)123 D)"\x7G" (14)以下选项中可用作C程序合法实数的是 A).1e0 B)3.0e0.2 C)E9 D)9.12E (15)若有定义语句:inta=3,b=2,c=1;,以下选项中错误的赋值表达式是 A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); (16)有以下程序段 char name; int num; scanf("name=%s num=%d",name;#); 当执行上述程序段,并从键盘输入:name=Lili num=1001《回车》后,name的值为 A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001 (17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 A)必须是逻辑值 B)必须是整数值 C)必须是正数 D)可以是任意合法的数值 (18)有以下程序 #include main() { int x=011; printf("%d\n",++x); } 程序运行后的输出结果是 A)12 B)11 C)10 D)9 (19)有以下程序 #include main() { int s; scanf("%d",&s); while(s》0) { switch(s) { case1:printf("%d",s+5); case2:printf("%d",s+4); break; case3:printf("%d",s+3); default:printf("%d",s+1);break; } scanf("%d",&s); } } 运行时,若输入1 2 3 4 5 0《回车》,则输出结果是 A)6566456 B)66656 C)66666 D)6666656 (20)有以下程序段 int i,n; for(i=0;i《8;i++) { n=rand()%5; switch (n) { case 1: case 3:printf("%d\n",n); break; case 2: case 4:printf("%d\n",n); continue; case 0:exit(0); } printf("%d\n",n); } 以下关于程序段执行情况的叙述,正确的是 A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作 C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行 (21)有以下程序 #include main() { char s="012xy\08s34f4w2"; int i,n=0; for(i=0;s!=0;i++) if(s《=’9’) n++; printf("%d\n",n); } 程序运行后的输出结果是 A)0 B)3 C)7 D)8 (22)若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是 A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环 (23)有以下程序 #include main() { char b,c; int i; b=’a’; c=’A’; for(i=0;i《6;i++) { if(i%2) putchar(i+b); else putchar(i+c); } printf("\n"); } 程序运行后的输出结果是 A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef (24)设有定义:doublex,*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是 A)scanf("%f",&x); B)scanf("%lf",*(x+6)); C)scanf("%lf",p+6); D)scanf("%lf",p); (25)有以下程序(说明:字母A的ASCII码值是65) #include void fun(char *s) { while(*s) { if(*s%2) printf("%c",*s); s++; } } main() { char a="BYTE"; fun(a); printf("\n"); }程序运行后的输出结果是 A) BY B) BT C) YT D) YE (26)有以下程序段 #include main() { … while( getchar()!=’\n’); … } 以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中 C)当执行此while语句时,只有按回车键程序才能继续执行 D)当执行此while语句时,按任意键程序就能继续执行 (27)有以下程序 #include main() { int x=1,y=0; if(!x) y++; else if(x==0) if (x) y+=2; else y+=3; printf("%d\n",y); } 程序运行后的输出结果是 A)3 B)2 C)1 D) 0 (28)若有定义语句:chars,*p;,则以下赋值语句正确的是 A)p=s; B)p=k; C)p=s; D)k=s; (29)有以下程序 #include void fun(char *c) { while(*c) { if(*c》=’a’&&*c《=’z’) *c=*c-(’a’-’A’); c++; } } main() { char s; gets(s); fun(s); puts(s): } 当执行程序时从键盘上输入Hello Beijing《回车》,则程序的输出结果是 A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing (30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #include #define N 10 void fun(int x) { int i=0; while(i《》 } 在程序中下划线处应填入的是 A)x+i B)&x (31)有以下程序 #include main() { char a; scanf("%s",a); gets(b); printf("%s\n %s\n",a,b); } 程序运行时若输入: how are you? I am fine《回车》 则输出结果是 A)how are you? B)how I am fine are you? I am fine C)how are you? I am fine D)row are you? (32)设有如下函数定义 int fun(int k) { if (k《1) return 0; else if(k==1) return 1; else return fun(k-1)+1; } 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是 A)2 B)3 C)4 D)5 (33)有以下程序 #include int fun (int x,int y) { if (x!=y) return ((x+y);2); else return (x); } main() { int a=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是 A)3 B)6 C)8 D)12 (34)有以下程序 #include int fun() { static int x=1; x*=2; return x; } main() { int i,s=1; for(i=1;i《=3;i++) s*=fun(); printf("%d\n",s); } 程序运行后的输出结果是 A)0 B)10 C)30 D)64 (35)有以下程序 #include #define S(x) 4*(x)*x+1 main() { int k=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是 A)197 B)143 C)33 D)28 (36)设有定义:struct {charmark;int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是 A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2; (37)有以下程序 #include struct ord { int x,y;}dt={1,2,3,4}; main() { struct ord *p=dt; printf("%d,",++(p-》x));printf("%d\n",++(p-》y)); } 程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3 (38)有以下程序 #include struct S { int a,b;}data={10,100,20,200}; main() { struct S p=data; printf("%d\n",++(p.a)); } 程序运行后的输出结果是 A)10 B)11 C)20 D)21 (39)有以下程序 #include main() { unsigned char a=8,c; c=a》》3; printf("%d\n",c); } 程序运行后的输出结果是 A)32 B)16 C)1 D)0 (40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是 A)写操作结束后可以从头开始读 B)只能写不能读 C)可以在原有内容后追加写 D)可以随意读和写 二、填空题(1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。 (2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。 (3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】 测试。(4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。 (5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】 是关系A的外码。 (6)以下程序运行后的输出结果是 【6】。 #include main() { int a; a=(int)((double)(3/2)+0.5+(int)1.99*2); printf("%d\n",a); } (7)有以下程序 #include main() { int x; scanf("%d",&x); if(x》15) printf("%d",x-5); if(x》10) printf("%d",x); if(x》5) printf("%d\n",x+5); } 若程序运行时从键盘输入12《回车》,则输出结果为 【7】 。 (8)有以下程序(说明:字符0的ASCII码值为48) #include main() { char c1,c2; scanf("%d",&c1); c2=c1+9; printf("%c%c\n",c1,c2); } 若程序运行时从键盘输入48《回车》,则输出结果为 【8】 。 (9)有以下函数 void prt(char ch,int n) { int i; for(i=1;i《=n;i++) printf(i%6!=0?"%c":"%c\n",ch); } 执行调用语句prt(’*’,24);后,函数共输出了 【9】 行*号。 (10)以下程序运行后的输出结果是 【10】。 #include main() { int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf("%d %d\n",x,y); } (11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k》0)开始的后续元素全部向前移动一个位置。请填空。 void fun(int a,int k) { int i; for(i=k;i } (12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。 #include 【12】 ; main() { double x,y,(*p)(); scanf("%lf%lf",&x,&y); p=avg; printf("%f\n",(*p)(x,y)); } double avg(double a,double b) { return((a+b)/2);} (13)以下程序运行后的输出结果是 【13】。 #include main() { int i,n={0}; for(i=1;i《=4;i++) { n); } printf("\n"); } (14)以下程序运行后的输出结果是 【14】。 #include #include #include main() { char *p; int i; p=(char *)malloc(sizeof(char)*20); strcpy(p,"welcome"); for(i=6;i》=0;i--) putchar(*(p+i)); printf("\n-"); free(p); } (15)以下程序运行后的输出结果是 【15】。 #include main() { FILE *fp; int x={1,2,3,4,5,6},i; fp=fopen("test.dat","wb"); fwrite(x,sizeof(int),3,fp); rewind(fp); fread(x,sizeof(int),3,fp); for(i=0;i《6;i++) printf("%d",x); printf("\n"); fclose(fp); }2011年3月全国计算机等级考试二级笔试试卷C语言程序设计答案 一.选择题1-5 ABDDB6-10 ACDCB 11-15 ADBAA16-20 ADCAD 21-25 BDBCD26-30 CDCCC 31-35 BBBDB36-40 CDDCB二,填空题1) 顺序 2) DEBFCA 3) 单元测试 4) 主键 5) D 6) 3 7) 12178) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 1371514) e(E)moclew 15) 1234562010年9月全国计算机等级考试二级C笔试试卷答案一、选择题1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD二、填空 1.1DCBA2345 2.n-1 3.25 4.结构化 5.物理设计 6.20087.15 8.非0 9. 1 4 13 40 10.i 11.2 12.a 13.3 14.*s 15.FILE

返回目录

二级c公共基础题库

c语言总复习资料一 c语言的基本组成单位——函数。1.main();2库函数;3.自定义函数。Abc();二 函数的组成:1.函数的首部,函数的第一行语句(包括函数的返回值类型、函数名、函数参数类型及函数参数名)。()不可省略,例如:void main() 2.函数体,包括函数的声明部分(声明在该程序中所要用到的函数)、定义部分(定义函数可能要用到的变量)、执行部分(用于实现函数的功能)。三 函数必不可少的分号。四 输入输出所使用的函数:scanf、getchar、gets、printf、putchar、puts等。五 注释:不能嵌套。习题94页18题。六 大小写区分:printf与Printf之不一样。七 C语言上机过程:(.c)——》编译(.obj)——》连接(.exe)——》运行得结果。八 C程序执行是从main()函数开始,到main函数结束处结束。九 进制转换:着重掌握十、八、十六进制及相互转换,原补码(位运算中要用到)。十 用户自定义标识符:1.字母、数字、下划线。2第一个字母不能为数字。3.不能与c语言所定义的关键字相同,但可以与预定义标识符同。十一 常量:1整形常量 十进制、八进制(以0开头)、十六进制(以0x开头)后两种无负数。2实型常量 2.78(小数点两边至少有一边要有数字)5.48e-3(e前必有数字,e后必为整数)3字符型常量 a.一般字符’a’ ;b.转义字符:一般转义字符、八\十六进制转义字符。’\n’,’\\’,’\t’,’\”’,’\64’,’\82’,’\x42’,’\xff’,’a12’. 4字符串常量 “a” vs ’a’十二 变量 1.必须要先定义后使用;2变量三要素 变量类型 变量名 变量值 例1:下面不是c语言整形常量的是 A. 02 B. 0 C.038 D.0xAL 例2:合法的实型常量是A. 5E2.0 B.E-3 C.2E0 D 1.3E 例3:若有语句char a;并要将字符a赋值给变量a,则下列正确的赋值表达式是 A.a=”a” B.a=’a’ C.a=”97” D.a=’97’ 例4:以下合法的定义是:A. float _a=1.1e-1; B. double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 十三.求余原则:1.两边都要为整数;2.先取绝对值求余,余数与被除数符号相同。特别要注意’%’与’/’ 的区别。 -10/3 10/-3十四. 赋值运算符及表达式:运算顺序自右致左,左边必须要是一个变量(能够存放东西)。 a=b=c=10(定义处不能这样); x+y=10; x+1=10;十五. 逗号表达式:a=(b=5,b+10); b=(a=4*9,a*2),a-3; 要考虑优先级。十六. 类型转换 char a=’a’; int b=32; float c=32.5;double s,d=32; s=a+b+c+d;十七.强制类型转换 float b=3.5;int a; a=(int)b; 例5:设有int x=11;则表达式(x++*1/3)的值是 A 3 B 4 例6:设有int a=1,b=1,c=1;a=a+++b+++c; 最终a、b、c的值是:a=4;b=2;c=1; 例7:有以下定义和语句组:float x=1;int y=2;y+=++x*++x;则最终y的值为:11 例8:int x=2;printf(“%d”,((x=4*5,x*5),x+25)); 45 例9:若变量已正确定义并赋值,以下符合c语言语法的表达式是 A.a:=b+1 B.a=b=c+2 C. int 18.5%3 D.a=a+7=c+b十八 输入输出格式ch=getchar(); putchar(ch); scanf(“%d%f%c”,&a,&b,&c); printf(“%d,%d”,a,b); 例10:有以下程序,输出的结果是main(){int a;char c=10;float f=100.0;double x; a=f/=c*=(x=6.5);printf(“%d %d %3.1f %3.1f\n”,a,c,f,x);}1 65 1.5 6.5 (习题集2.13)十九.逻辑运算及其短路现象(对于逻辑与和逻辑或而言) 二十.关系运算符及表达式a》b》c 优先级要清楚(即关》逻辑)二十一.条件运算符及表达式a》b?a:c》d:c:d等价与a》b?a:(c》d?c:d) 设a=1,b=2,c=3,d=4; 4 例11:以下程序的输出是 A. d=0 c=50 B.d=0 c=2 C.d=1 c=50 D.d=1 c=2main(){int a=3,b=4,c=2,d; d=a《!b&&(c=50)》b; printf(“d=%d c=%d”,d,s);}二十二.if语句 例12:以下程序输出结果是int i=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k); 2,2,2 if-else语句注意:if后只能管一个语句 main(){int a=2,b=-1,c=2; if(a《b) if(b《0) c=0;else c++; printf(“%d\n”,c);}二十三.switch 语句 以下程序的输出是: 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=2,b=1二十四.while vs do-while main(){int i=0,n=0;while(n!=0){i++;++i} printf(“%d”,i);}main(){int i=0,n=0;do {i++;++i} while(n!=0); printf(“%d”,i);} 二十五 break vs continue 注意:break语句只能出现在循环体和switch语句中而continue只出现在循体环中。main(){int sum,i;sum=0; for(i=10;i》0;i--) {if(i》5) continue;sum=sum+i;} printf("%d\n",sum);}例13:以下程序的输出是: main(){int a,y;a=5;y=0; a=7 y=7do{ a+=2;y+=a;printf(“a=%d y=%d\n”,a,y);if(y》10) break; }while(a==7); }a=9 y=16例14:以下程序的输出是: main(){int k=4,n=0; for(;n《k;){n++;if(n%3!=0) continue;k--;}printf(“%d,%d\n”,k,n);} 3,3二十六.一维数组的定义、赋初值、引用。注意:int a={1,2,3};则下列描述正确的是:( )A. y并不代表数组元素 B.定义此数组时不指定数组的宽度,定义效果一样C.数组含有三个元素 D.a的值是3例16:以下程序的输出是: main(){int z,y;printf(“%d”,z);} 4例17:以下程序的输出是: main(){int p={11,13,14,15,16,17,18},i=0,k=0; while(i《7&&pi++}printf(“%d\n”,k);} 24例18:以下程序的输出是:main(){int n)} 0二十七.二维数组的定义、赋初值、引用例19:main(){int a={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i《3;i++)for(j=0;j《=i;j++) s+=a;printf(“%d\n”,s)} 18例20:以下不能正确定义二维数组的是:A int a={{1,2},{3,4}};例21:若a是一个m行n列的数组,则a是数组的第( )个元素A i*m+j B i*m+j+1 C i*n+j D i*n+j+1二十八 字符数组的定义、赋初值、引用1.char arr={‘h’,’e’,’l’,’l’,’o’,’\0’}; 3.char arr=”hello”;二十九 字符串输入输出 若char str=”me”;scanf(“%s”,str); printf(“%s”,str); gets(str); puts(str); strcpy(arr,str); strcmp(str,arr); strlen(str); strcat(str,arr);例22:以下程序的输出是:main(){char st=”hel\0lo\t”;printf(“%d%d\n”,strlen(st),sizeof(st))} 3,20例23:以下程序的输出是:char s=”\\141\141abc\t”;printf(“%d\n”,strlen(s));9三十 指针与字符串 char *a; a=”hello”; char a; a=”hello”;例24:以下选项中正确的语句组是:( ) A.char s;s={“Beijing”};B.char *s;s={“Beijing”}; C.char s;s=”Beijing”; D.char *s;s=”Beijing”; 三十一 有参函数的声明、定义、与调用。float add(float x,float y);/*函数的声明*/mai() {int a=3.5,b=4.0,d;d=add(a,b);/*函数的调用*/}float add(float x,float y)/*函数的定义*/{return x+y;} 三十二 函数的嵌套调用与递归调用double fun1(double a) {return a*=a;}double fun2(double x,double y){ double a=0,b=0; a=fun1(x);b=fun1(y); return (int)(a+b);}main(){double w;w=fun2(1.1,2.0); printf("%f\n",w);} /*嵌套调用*/long fib(int n) {if(n》2) return (fib(n-1)+fib(n-2));else return 2;}main(){printf(“%d\n”,fib(3));}/*递归调用*/ 三十三 函数中的值传递与地址传递(不管是传递什么,实质都是传值,只不过一个是传递地址值而已)func(int a){a=100;} func(int a=100;}main(){int a=10;func(a);printf(“%d”,a);} main(){int a);} 三十四 局部变量与全局变量:局部变量的存储类型分为自动型(auto)、寄存器型(register)、静态类型(static),其中auto型和register型的变量的存储空间是动态的,程序一结束,其值就消失。而static类型的变量,程序结束后其值仍然存在。全局变量是静态的变量。int a=5;fun(int b) {static int a=10;a+=b++;printf(“%d”,a);}main(){int c=20;fun(c);a+=c++;printf(“%d\n”,a);} 3025 如果在main中再加一个fun(c)呢?305025三十五 宏命令与文件包含#define N 10#define S(x) x*x/*只要把这三个define语句放到一个文件hong.h里面*/#define f(x) (x*x)/*再在主函数前加一个#include “hong.h”,程序运行结果一样*/main(){int i1,i2; i1=1000/S(N); i2=1000/f(N); printf(“%d %d”,i1,i2);}1000 10 三十六 指针变量的定义、初始化、运算 main(){int n=5,*p=&nprintf(“the address is :%d\n”,p);printf(“the data is:%d\n”,*p);printf(“&*p is:%d\n”,&*p);printf(“*⋼:%d\n”,*&n);} 例24:设有定义int n=0,*p=&n则正确的赋值语句是:A. p=1; B.*p=&n A选项不行,因p中应存放一个地址值对于B选项,因p已经指向了n这个存储单元,实际上相当于n=5 。三十七 指针与一维数组 int a,*p;/*a与p是不同的,a是数组名是常量,不能执行a++;a+=1的操作,p则可以*/p=&ap=a;/*这两个语句等价,都是让p指针指向这个数组*/ 执行上述语句后:p;*(p+i)等价于*(a+i)三十八 指针与二维数组:下面给出了引用二维数组第i行第j列元素的不同方式1. a;2. 因a+j)表示第i行第j列的值。3. 又因a可以写成*(a+i),所以2中的表达式又可以写成*(*(a+i)+j)。4. 把1中的a。 三十九 通过行指针引用二维数组int a;p=a;四十 通过指针数组引用二维数组元素int *p; 以上两个知识点,像以上这样赋值后,要引用第i行第j列元素时,只需要把a改成p即可。四十一 函数指针与指针函数int f(int x) {……} main() {int (*p)(); int a,b=2;p=f;a=(*p)(b); a=f(b);a=p(b);……}函数指针:返回值是指针(地址)的函数。 int *func(int a,int b);例25:int a={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0《=i《=9,下列对数组引用不正确的是:A. a例 26:若定义int a例28:以下程序输出结果是:A. 69825 B.63825 C.6385 D.693825 main(){char ch;for(i=0;i《2;i++) for(j=0;p-‘0’; printf(“%d\n”,s); }四十二 结构体的定义、赋初值struct student {int num;char name={{123,”zhang”},{124,”li”}};p=stu;typedef struct student {} STU; 在这个语句后就可以用STU来定义结构体变量了。例:STU a,*p;等价于 struct student a,*p;四十三 结构体变量的引用printf(“%d”,stu-》num); printf(“%d”,p-》name); printf(“%d”,stu);则不对四十四 malloc、calloc、free函数及链表的操作 链表操作见书p120 int *p,*pint; float *q; p=(int*)malloc(sizeof(int)); q=(float*)malloc(sizeof(float)); pint=(int*)calloc(10,sizeof(int)); free(p); 习题集12章16题。例29:下列赋值语句正确的是 struct worker {int num;char *name;}*p,a;A. worker.num=1; B.p.num=1; C.*p.num=1; D.a.num=1;例30:在16位pc环境下,下列程序运行的结果是:(此题大家有印象即可,不必深究)struct worker {int num;char *name;}a; main(){printf(“%d”,sizeof(a))} 4(若32位则是8)例31:设有如下定义:struct ss{char name,*p=std;下面各输入语句错误的是:( )A. scanf(“%d”,&(*p).age); B.scanf(“%s”,&std.name); C.scanf(“%c”,&std.sex); D.scanf(“%c”,&(p-》sex));因为std是表示是地址,而地址表示不应该是这样的,应该是&(std-》name);四十五 位运算 ~、《《、》》、|、& 、^、例5.4四十六 文件的打开及对文件的操作 FILE *fp;char str=”hello”;int a,b;1. if((fp=fopen(“in.dat”,”rb”))==NULL) printf(“Unable to open the file!”);/*重点注意打开文件的方式,特别注意以”w”,”r+”,”w+”,”a”方式打开,对文件的影响。*/2. fclose(fp);/*关闭文件*/ feof(fp);/*测试文件是否结束,如到了则返回1,否则返回0*/3. fseek(fp,12,SEEK_SET) /*将文件指针移动到文件起始位置后面的第12个字节处*/4. fseek(fp,12,SEEK_END)/* 将文件指针移动到文件倒数第12个字节处*/ 5. fseek(fp,0,SEEK_SET) /*将文件指针移动到文件起始位置同rewind(fp)函数*/6. fseek(fp,12,SEEK_END)/* 将文件指针移动到文件末尾*/ 7. ftell(fp); ch=fgetc(fp); putc(ch,fp); fgets(str,n,fp); fputs(str,fp);8. fscanf(fp,”%d%d”,&a,&b);/*从fp所指向的文件中取出的两数分别存放在a和b中*/9. fprintf(fp,”%d%d”,a,b);/*把a和b中所存放的数据输出(存放)到fp所指向的文件中*/10. fread(str,size,count,fp);/*从fp所指向的文件中取出size*count个字节存放到str数组中*/11. fwrite(str,size,count,fp);/*把str数组中的size*count个字节存放到fp所指向的文件中*/你有相关的书吗?这是我当年考试用过的一些资料呀!希望对你有帮助!!

返回目录

计算机二级c语言考试题目类型

全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。单选题中1~10题为二级公共基础知识,单选题的11~40题是C语言的内容。操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。

程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。二级C语言程序设计考试涉及公共基础知识和C语言两块。公共基础知识内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。考10个单选每个1分。

C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。

返回目录

2018年计算机二级考试C语言试题及答案(2)

2018年计算机二级考试C语言试题及答案(2)

选择题(每小题1分,共40分)

1 若有定义语句:double a,* P=&a以下叙述中错误的是( )。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P

参考答案:A

参考解析:在变量定义double a,* P=&a中,*号是一个指针运算符,而非间址运算符,所以A错误。

6 若有定义语句:int x=10;,则表达式x-=x+x的值为( )。

A.0

B.-20

C.-10

D.10

参考答案:C

参考解析:算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C。

2 若有定义语句:double x,y,*px,*py;执行了px=&xpy=&y之后,正确的输入语句是( )。

A.scanf(”%If%le”,px,py);

B.scanf(”%f%f”&x,&y);

C.sceanf(”%f%f”,x.y);

D.scanf(”%If%If’’,x,y);

参考答案:A

参考解析:因为x,y都是double型数据,所以输入时的格式字符应为%lf,所以B与C错误。D选项中scanf("%lf%If",x,y);应为scanf(“%If%If"”,&x,&y);。

3 下列数据结构中,属于非线性结构的是( )。

A.循环队列

B.带链队列

C.二叉树

D.带链栈

参考答案:C

参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。

4 对于循环队列,下列叙述中正确的是( )。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

参考答案:D

参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。

5 若变量已正确定义,在if(W)printf(”%d\n”,k);中,以下不可替代w的是( )。

A.a《》b+c

B.ch=getchar()

C.a==b+c

D.a++

参考答案:A

参考解析:选项A是非法的表达式,C语言中没有《》运算符。

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

A.冒泡排序

B.简单选择排序

C.直接插入排序

D.堆排序

参考答案:D

参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。

7 数据库管理系统是( )。

A.操作系统的一部分

B.在操作系统支持下的系统软件

C.一种编译系统

D.一种操作系统

参考答案:B

参考解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。

8 以下选项中,能用作用户标识符的是( )。

A._0_

B.8_8

C.void

D.unsigned

参考答案:A

参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字void与unsigned,所以错误。

9 以下叙述中错误的是( )。

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

参考答案:A

参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

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

A.栈是“先进先出”的线性表

B.队列是“先进后出”的线性表

C.循环队列是非线性结构

D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

参考答案:D

参考解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。

11 以下不构成无限循环的语句或语句组是( )。

A.n=0:

do{++n;}while(n《=0);

B.n=0;

while(1){n++;}

C.n=10;

while(n);{n--;}

D.for(n=0,i=1;;i++)n+=i;

参考答案:A

参考解析:选项A中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以wilile(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。

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

A.1

B.0

C.2

D.不知道a的值,不能确定

参考答案:A

参考解析:逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。

13 下列选项中不属于结构化程序设计原则的是( )。

A.可封装

B.自顶向下

C.模块化

D.逐步求精

参考答案:A

参考解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

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

A.10

B.8

C.6

D.4

参考答案:C

参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。

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

A.栈

B.树

C.队列

D.二叉树

参考答案:A

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

返回目录

下半年计算机二级c语言基础试题

下半年计算机二级c语言基础试题

任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读!

下半年计算机二级c语言基础试题1

一、选择:

1.给出以下定义:

char acX= "abcdefg";

char acY= {’a’,’b’,’c’,’d’,’e’,’f’,’g’};

则正确的叙述为( )

A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同

C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度

答案:C

2.

void example(char acHello)

{

printf("%d", sizeof(acHello));

return;

}

void main()

{

char acHello = "hello";

example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节

return;

}

的输出是

A 4 B 5 C 6 D不确定

答案:A

3. 有以下程序段

char acArr= "ABCDE";

char *pcPtr;

for(pcPtr = acArr; pcPtr 《 acArr + 5; pcPtr++)

{

printf("%s/n", pcPtr);

}

return;

输出结果是( )

A) ABCD B) A C) E D) ABCDE

B D BCDE

C C CDE

D B DE

E A E

答案:D

4.在中断中,不能同步获取信号量,但是可以释放信号量。

A.正确 B.错误

答案:A

5.以下叙述中不正确的是( )

A) 在不同的函数中可以使用相同名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

答案:D

6.设有如下定义:

unsigned long pulArray = {6, 7, 8, 9, 10};

unsigned long *pulPtr;

则下列程序段的输出结果为( )

pulPtr = pulArray;

*(pulPtr + 2) += 2;

printf ("%d,%d/n", *pulPtr, *(pulPtr + 2));

A)8,10 B)6,8 C)7,9 D)6,10

答案:D

7. 定义结构体时有下面几种说法,请指出正确的(多选):______

A、结构体中的每个部分,最好进行四字节对齐;

B、结构体的总长度最好是四字节对齐;

C、结构中成员的存放不用考虑字节对齐情况;

答案:A、B

8.void example()

{

int i;

char acNew;

for(i = 0; i 《 10; i++)

{

acNew = ’0’;

}

printf("%d/n", strlen(acNew));

return;

}

的输出为( )

A 0 B 10 C 11 D不确定

答案:D

9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )

A. 正确 B. 错误

答案:B

10. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是

大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

A. 正确 B.错误

答案:A

二、 填空题

1、 C语言函数返回类型的默认定义类型是

2、 函数的实参传递到形参有两种方式: 和

3、在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式

4、C语言变量按其作用域分为 和

5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为

三、 看程序写结果

1、#include

Int abc(int u,int v);

Void main()

{int a=24,b=16,c;

c=abc(a,b);

printf(“value=%d”,c);

}

Int abc(int u, int v)

{int w;

While(v)

{w=u%v;

u=v;

v=w;

}

Return u;

}

2、#include

int x1=30,x2=40;

main()

{int x3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf(“%d,%d,%d,%d ”,x3,x4,x1,x2);

}

sub(int x,int y)

{x1=x;x=y;y=x1;}

3、#include

Main()

{int i=5;

Printf(“%d ”,sub(i));

}

sub(int n)

{int a;

If(n==1) return 1;

a=n+sub(n-1);

return (a);

}

4、#include

Void fun()

{static int m;

m+=2;

printf(“%d ”,m);

}

Main()

{int a;

For(a=1;a《=4;a++) fun();

Printf(“ ”);

}

四、 编程题

1、 编写一个函数,判断任一整数是否为素数,用main()函数调用并测试之。

2、 用递归方法求n!

3、 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分

下半年计算机二级c语言基础试题2

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

A. 所有数据结构必须有根结点

B. 所有数据结构必须有终端结点(即叶子结点)

C. 只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构

D. 没有根结点或没有叶子结点的数据结构一定是非线性结构

【答案】D

【解析】D项正确,线性结构的特点是:

①集合中必存在“第一个元素"且惟一;

②集合中必存在“最后一个元素”且惟一;

③除最后一个元素外,其他数据元素均有惟一的“后继;

④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。

2. 以下叙述中错误的是( )。

A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D. C语言源程序经编译后生成后缀为.obj的目标程序

【答案】A

【解析】A项错误,注释语句不会被翻译成二进制的’机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。

3. C语言主要是借助以下( )功能来实现程序模块化的。

A. 定义函数

B. 定义常量和外部变量

C. 三种基本结构语句

D. 丰富的数据类型

【答案】A

【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。

4. 有以下程序段:

char ch;

int k;

ch=’a’;

k=12;

print("%c,%d,",h,ch,k);

printf("k=%d ",k);

已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。

A. 因变量类型与格式描述符的类型不匹配输出无定值

B. 输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D. a,97,k=12

【答案】D

【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch=’a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。

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

A. 栈是“先进先出”的线性表

B. 队列是“先进后出"的线性表

C. 循环队列是非线性结构

D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

【答案】D

【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。

答案选择D选项。

6. 某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为( )。

A. 5

B. 40

C.3

D. 2

【答案】B

【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。

7. 设有定义:struct{intn;floatx;}s={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是( )。

A. s;

B. s=m;

C.s.n=m.n;

D. s.x;

【答案】A

【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s数组越界,D项错误。答案选择A选项。

8. 关于C语言标识符,以下叙述错误的是( )。

A. 标识符可全部由数字组成

B. 标识符可全部由下划线组成

C. 标识符可全部由小写字母组成

D. 标识符可全部由大写字母组成

【答案】A

【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。

9. 以下程序段中的变量已定义为int类型,则

sum=pAd=5;

pAd=sum++,++pAd,pAd++;

printf("%d ",pAd);

程序段的输出结果是( )。

A. 6

B. 4

C. 5

D. 7

【答案】D

【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。

;

返回目录

c语言计算机二级考试选择题如图

全国计算机二级考试试题题库(附答案)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。(1) 应用软件是指A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件(2) 下列述叙中错误的是A) 计算机要经常使用不要长期闲置不用B) 为了延长计算机的寿命,应避免频繁开关计算机C) 在计算机附近应避免磁场干扰D) 计算机用几小时后,应关机一会儿再用(3) 下列字符中,ASCII码值最小的是A) A B) a C) Z D) x(4) 用晶体管作为电子器件制成的计算机属于A) 第一代 B) 第二代 C) 第三代 D) 第四代(5) 下列各不同进制的四个无符号数中,最小的数是A) ()2 B) (37)8 C) (75)10 D) (2A)16(6) 二进制数转换成十六进制数是A) B) C) D)(7) 下列各无符号十进制数中,能用八位二进制表示的是A) 296 B) 333 C) 256 D) 199(8) 计算机的软件系统可分类为A) 程序与数据 B) 系统软件与应用软件D) 操作系统与语言处理程序 D) 程序、数据与文档(9) 486机中的CPU同时能处理的二进制位数为A) 8 B) 16 C) 32 D) 64(10) 在使用计算机的过程中,需要重新启动DOS,则要A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是A) CD.. B) RD \A\C\BC) TYPE \A\C\B\ D) TYPE C\B\(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件的内容,应使用命令A) TYPE \AB B) TYPE \AB\C) TYPE \ D) DIR \AB\(14) 自动批处理文件必须放在A) C盘根目录中 B) A盘根目录中C) 启动盘的任一个目录中 D) 启动盘的根目录中(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正确执行的是A) RD C:\USER\XY\P B) RD USER\XY\PC) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y(16) 下列DOS命令中,合法的是A) DISKCOMP B) TYPE 》》C) COMP A: B: D) COMP A: A:(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错误的是A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:(18) 下列DOS命令中错误的是A) TYPE 》PRN B) TYPE PRNC) COPY *.TXT PRN D) COPY CON PRN(19) 下列四组DOS命令中,互相等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY +与TYPE 》》C) COPY + 与COPY +D) TYPE *.FOR》CON与COPY *.FOR CON(20) 设C盘目录结构如下:且C盘根目录下文件的内容为CD FORTRANCD \TC如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是A) COPY A:\*.C B) COPY A:\*.C TCC) COPY A:\*.C FORTRAN D) CD USER(21) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(22) 在C语言中,合法的长整型常数是A) 0L B) 4962710 C) D)(23) 表达式:10!=9的值是A) true B) 非零值 C) 0 D) 1(24) 合法的C语言中,合法的长整型常数是A) ’\t’ B) "A" C) 65 D) A(25) 若有说明和语句:int a=5;a++;此处表达式a++的值是A) 7 B) 6 C) 5 D) 4(26) 在下列选项中,不正确的赋值语句是A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;(27) 若有说明:int i,j=7, *p=&i,则与i=j;等价的语句是A) I= *P; B) *P=*&J C) i=&j D) i=* *p;(28) 不能把字符串:Hello!赋给数组b的语句是A) char b={’H’,’e’,’l’,’l’,’o’,’!’};B) char b;b="Hello!";C) char b;strcpy(b,"Hello!");D) char b="Hello!";(29) 若有以下说明:int a={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是A)a(30) 若有以下说明:int a={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是A) *p+6 B) *(p+6) C) *p+=5 D) p+5(31) 若有以下说明:int wo={{0,1},{2,4},{5,8}};int(*p)=w;则数值为4的表达式是A) *w(32) 若程序中有下面的说明和定义struct abc{int x;char y;}struct abc s1,s2;则会发生的情况是A) 编译进错 B) 程序将顺利编译`连接`执行C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错(33) 能正确表示a≥10或a≤0的关系表达式是A)a》=10 or a《=0 B)a》=10│a《=0C)a》=10││a《=0 D)a》=10 ││a《=0(34) 下面程序的输出是main(){ int x=3,y=6,a=0;while(x++!=(y+=o1)){ a+o=1;if(y#includemain(){ char ss="12345";strcat(ss,"6789");gets(ss);printf("%s\n",ss);}A) ABC B) ABC9 C) 123456ABC D) ABC456789(35) 下面程序的输出是main(){ char *a="";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;s;k++)switch(s){ default:v4++;case ’1’: v1++;case ’3’: v3++;case ’2’: v2++; }printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8(36) 下面程序的输出是main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b(37) 若有以下程序段,w和k都是整型变量:┆w=k;LB: if(w==0) go to LE;w--;printf("*");goto LB;LE: ┆则不能与上面程序段等价的循环语句是A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");C)w=k; D)w=k;while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);(38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);C) p=&ascanf("%lf",a); D)p=&a scanf("%le",p);(39) 当执行下面程序且输入:ABC时,输出的结果是#include#includemain(){ char ss="12345";gets(ss);printf("%s\n",ss); }A) ABC B) ABC9 C) 123456ABC D) ABC456789(40) 若有以下的说明和语句:main(){int t,k;fpr(k=o; k《3;k++)pt;}则以一选项中能正确表示t数组元素地址的表达式是A) &t(41) 下面程序输出数组中的最大值,由s指针指向该元素.main(){ int a={6,7,2,9,1,10,5,8,4,3,},*p,*s;flr(p=a, s=a; p-a《10; p++)if(---?---)s=p;printf("The max:%d",*s):}则在if语句中的判断表达式应该是A) p》s B) *p》*s C) a D) p-a》p-s(42) 下面程序的输出是#includemain(){ char*a="abcdefgh";fun(a);puts(a); }fun (char * s){ int x=0,y;char c;for(y=strlen(s)-1;xA)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是A)3 B)4 C)5 D)6(44) 下面程序的输出是main(){ int t=1; fun(fun(t));}fun(int h){ static int a={1,2,3};int k;for(k=0;k《3;k++) a-h;for(k=1;k《3;k++) printf("%d",a);printf("\n"); return(a);}A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,1,5,9, 1,3,5, 0,4,8, -1,3,7,(45) C语言中,函数的隐含存储类别是A)auto B)static C)extern D)无存储类别(46) 下面程序的输出是int w=3;main(){ int w=10; printf("%d\n",fun(5)*w); }

返回目录

计算机二级C语言笔试题和面试题答案目

如下这份计算机二级C语言笔试题目对于要考基计算机二级证书的朋友来说,应该会很有帮助,需要的朋友赶紧收藏吧! 一、选择题((1)-(10),(21)-(40)每题2分,(11)-(20)每题1分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 1. 下列叙述中正确的是 A 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D 上述三种说法都不对 答案:B 2. 下列叙述中正确的是 A 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D 上述三种说法都不对 答案:C 3. 软件测试的目的是 A 评估软件可靠性 B 发现并改正程序中的错误 C 改正程序中的错误 D 发现程序中的错误 答案:B 4. 下面描述中,不属于软件危机表现的是 A 软件过程不规范 B 软件开发生产率低 C 软件质量难以控制 D 软件成本不断提高 答案:A 5. 软件生命周期是指 A 软件产品从提出、实现、使用维护到停止使用退役的过程 B 软件从需求分析、设计、实现到测试完成的过程 C 软件的开发过程 D 软件的运行维护过程 答案:A 6. 面向对象方法中,继承是指 A 一组对象所具有的相似性质 B 一个对象具有另一个对象的性质 C 各对象之间的共同性质 D 类之间共享属性和操作的机制 答案:D 7. 层次型、网状型和关系型数据库划分原则是 A 记录长度 B 文件的大小 C 联系的复杂程度 D 数据之间的联系方式 答案:D 8. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是 A 一对一B 一对多C 多对多D 多对一 答案:C 9. 数据库设计中反映用户对数据要求的模式是 A 内模式B 概念模式C 外模式D 设计模式 答案:C 10. 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是 A 自然连接B 交C 投影D 并 答案:A 11. 以下关于结构化程序设计的叙述中正确的是 A 一个结构化程序必须同时由顺序、分支、循环三种结构组成 B 结构化程序使用goto语句会很便捷 C 在C语言中,程序的模块化是利用函数实现的 D 由三种基本结构构成的程序本文由论文联盟 A 整数:1,200 B 实数:1.5E2.0 C 字符斜杠:‘\’ D 字符串:"\007" 答案:C 16. 表达式a+=a-=a=9的值是 A 9 B _9 C 18 D 0 答案:D 17. 若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是 A a《》b+c B ch=getchar() C a==b+c D a++ 答案:A 18. 有以下程序 #include main() {inta=1,b=0; if(!a) b++; elsEif(a==0)if(a)b+=2; elseb+=3; printf(”%d\n”,b); } 程序运行后的输出结果是 A 0 B 1 C 2 D 3 答案:C 20. 有以下程序 #include main() {int a=1,b=2; while(a《6){b+=a;a+=2;b%二10;} printf(”%d,%d\n”,a,b); } 程序运行后的输出结果是 A 5,11 B 7,1 C 7,11 D 6,1 答案:D 21. 有以下程序 #include main() {int y=10; while(y--); printf(”Y=%d\n”,Y); } 程序执行后的输出结果是 A y=0 B y= -1 C y=1 D while构成无限循环 答案:B 22. 有以下程序 #include main() {char s[」=”rstuv"; printf(”%c\n”,*s+2); } 程序运行后的输出结果是 A tuv B 字符t的ASCII码值 C t D 出错 答案:D 23. 有以下程序 #include #include main() {char x=”STRING”; x[0」=0;x=’\0’;x[2」=’0’; printf(”%d%d\n”,sizeof(x),strlen(x)); } 程序运行后的输出结果是 A 61 B 70 C 63 D 71 答案:B 24. 有以下程序 #include Int f(intx); main() {intn=1,m; m=f(f(f(n)));printf(”%d\n”,m); } intf(intx) {returnx*2;} 程序运行后的输出结果是 A 1 B 2 C 4 D 8 答案:D 25. 以下程序段完全正确的是 A int *p;scanf("%d",&p); B int *p;scanf(“%d”,p); C int k, *p=&kscanf("%d",p); D int k, *p:;*p= &k scanf(“%d”,p); 答案:D 26. 有定义语句:int *p;以下选项中与此语句等价的是 A intp; B int**p; C int*(p「4」); D int (*p)「4」; 答案:D 27. 下列定义数组的语句中,正确的是 A B C intx; 答案:B 28. 若要定义一个具有5个元素的整型数组,以下错误的定义语句是 A inta; 答案:A 29. 有以下程序 #include voidf(int *p); main() {inta={1,2,3,4,5},*r=a; f(r);printf(”%d\n”;*r); } void f(int *p) {p=p+3;printf(”%d,”,*p);} 程序运行后的输出结果是 A 1,4 B 4,4 C 3,1 D 4,1 答案:D 30. 有以下程序(函数fun只对下标为偶数的元素进行操作) # include void fun(int*a;int n) {int i、j、k、t; for (i=0;i

返回目录

总结:以上问题和解答均搜集整理自互联网,内容仅供参考,希望对你有所帮助。