二级C语言笔试模拟319

合集下载

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

全国计算机等级考试二级C语言笔试试题及答案
常将有日思无日,莫待无时思有时。——《增广贤文》
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}

计算机二级C语言考试模拟题包括答案.doc

计算机二级C语言考试模拟题包括答案.doc

2019 年 12 月计算机二级 C 语言考试模拟题及答案A.用户自己定义的函数只能调用库函数B. 实用的 C语言源程序总是由一个或多个函数组成C.不同函数的形式参数不能使用相同名称的标识符D.在 C语言的函数内部,能够定义局部嵌套函数参考答案: B参考解析: A 选项中,”用户自己定义的函数只能调用库函数”描述是不准确的,也能够调用自定义函数 ;C 选项中,对于不同函数的形式参数能够使用相同名称的标识符 ;D 选项中,关于函数的定义不能够嵌套,但函数的调用能够嵌套。

所以 B 选项准确。

2[ 单选题 ] 以下关于 C语言数据类型使用的叙述中错误的是( ) 。

A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型D.整数类型表示的自然数是准确无误差的参考答案: C参考解析: C语言中没有逻辑类型,所以 c 错误。

若要保存带有多位小数的数据,能够用单精度类型也能够用双精度类型。

处理包含不同类型的相关数据能够定义为结构体类型。

整数类型能够无误差的表示自然数。

3[ 单选题 ] 下面选项中关于编译预处理的叙述准确的是A.预处理命令行必须使用分号结尾B.凡是以 #号开头的行,都被称为编译预处理命令行C.预处理命令行不能出现在程序的最后一行D.预处理命令行的作用域是到最近的函数结束处参考答案: B参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A 选项错误,预处理命令行能够出现在程序的最后一行,预处理命令行作用域是整个文件。

4[ 单选题 ] 设--X 树共有 150 个结点,其中度为 l 的结点有 l0 个,则该---X 树中的叶子结点数为 ( ) 。

A.71B.70C.69D. 不可能有这样的二叉树参考答案: D参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中的度称为树的度。

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

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

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

计算机二级C语言模拟练习题

计算机二级C语言模拟练习题

计算机二级C语言模拟练习题计算机二级C语言模拟练习题在学习和工作的日常里,我们最熟悉的就是试题了,借助试题可以更好地考核参考者的知识才能。

你所了解的试题是什么样的呢?下面是店铺整理的计算机二级C语言模拟练习题,希望能够帮助到大家。

计算机二级C语言模拟练习题篇1(1)程序流程图中带有箭头的线段表示的是( )。

A.图元关系B.数据流C.控制流D.调用关系(2)结构化程序设计的基本原则不包括( )。

A.多态性B.自顶向下C.模块化D.逐步求精(3)软件设计中模块划分应遵循的准则是( )。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划(5)算法的有穷性是指( )。

A.算法程序的运行时问是有限的。

B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n 一1)/2的排序方法是( )。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序(7)下列关于栈的叙述正确的是( )。

A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据(8)在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段(9)有三个关系R、s和T如下:由关系R和s通过运算得到关系T,则所使用的运算为( )。

A.并B.自然连接C.笛卡尔积D.交(10)设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为( )。

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩参考答案:(1)C【解析】在数据流图中,用标有名字的箭头表示数据流。

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

国家二级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语言程序设计模拟试题及答案解析(最终)

二级C语言程序设计模拟试题及答案解析(最终)

二级C语言程序设计模拟试题及答案解析〔9〕(1/2) 程序填空题第1 题程序通过定义学生布局体变量,存储了学生的学号、姓名和三门课的成就。

所有学生数据均以二进制方式输出到文件中。

函数fun 的功能是重写形参filename 所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生本来的数据,其他学生的数据不变。

请在程序的下划线处填入正确的内容,使程序得出正确的成果。

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

!不得增行或删行,也不得更改程序的布局试题程序:#include<>#define N 5typedef struct student{long sno;char name[10];float score[3];}STU;void fun(char*filename,STU n)(FILE*fp;/**********found**********/fp=fopen(______,"rb+");/**********found**********/fseek(______,-(long)sizeof(STU),SEEK_END);/**********found**********/fwrite(&n,sizeof(STU),1,______);fclose(fp);}main()(STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"Fa ngFang",90,82,87},{10005,"ZhangSan",95,80,88}};STU n={10006,"ZhaoSi",55,70,68},ss[N];inti,j; FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf("\nThe original data:\n\n");for(j=0; j <N; j++){printf("\nNo:%ld Name:%-8s Scores:",ss[j]. sno,ss[j].name);for(i=0;i <3;i++)printf("%6.2f"ss[j].score[i]);}fun("student.dat",n);printf("\nThe data after modifing:\n\n");fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for (j=0; j <N;j++){printf("\nNo:%ld Name:%-8s Scores:",ss[j]. sno,ss[j].name);for(i=0; i <3;i++)printf 〔““. ss[j].score[i];printf(:\n");}}下一题(2/2) 程序填空题第2 题给定程序中,函数fun 的功能是:判定形参 a 所指的N×N(规定N 为奇数)的矩阵是否是“幻方〞,假设是,那么函数返回值为1;假设不是,那么函数返回值为0。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《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模拟试卷.doc

二级C模拟试卷.doc
8.设有定义语句struct ( int x; int y;} d[2] = ({1, 3), {2, 7}};,则printf ("%d\n”, d[0]. y/d[0]. x*d[l]. x);的输出结果是()。
(A)0(B)l (03(D) 6
9.若有以下说明和语句,则下列引用方式不正确的是()。
18.若程序中需要表示关系xN y 3 z,应使用C语言表达式为()o
(A) (x>=y) && (y>=z)(B) (x>=y) AND(y>=z)
(C) (x>=y>=z)(D) (x>=y) & (y>=z)
19.以下程序运行后,输出结果是()o
#include<stdio. h>
#define PT 5. 5
(
wh i1e (*sl)
%1;//sl++;
while((*sl++=*s2++)!=' \0')
%1//;
2.下面程序用于计算1+(1+2) + (1+2+3)+……+(1+2+3+……+10),请填空完善程序。#include<stdio.h> void niainO {
int total, sum, m, n;
struct worker
tint no;
char * name ;
}work, *p=&work;
(A)work, no (B)(*p). no (0)p->no (D)work->no

国家二级(C语言)笔试模拟试卷100(题后含答案及解析)

国家二级(C语言)笔试模拟试卷100(题后含答案及解析)

国家二级(C语言)笔试模拟试卷100(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.在计算机中,算法是指______ 。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法正确答案:C解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。

2.栈和队列的共同点是______。

A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点正确答案:C解析:栈和队列是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。

二者的区别是:栈是一种“后进先出”的线性表;而队列是一种“先进先出”的线性表。

3.已知二叉树BT的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。

A.cedbaB.acbedC.decabD.deabc正确答案:A解析:二叉树BT的后序遍历序列为dabec,故BT的根结点为c;而BT的中序遍历序列是debac,即遍历序列中最后一个结点为跟结点,说明BT的右子树为空。

由BT的的后序遍历序列和中序遍历序列可知BT的左子树(LST)的后序遍历序列和中序遍历序列分别为dabe和deba(树是递归定义的);故LST的根结点是e,在由LST的中序遍历序列可知其左子树为d。

因此BT的前序遍历序列为cedba。

4.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序正确答案:D解析:快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。

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

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

国家二级C语言机试(操作题)模拟试卷319(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。

例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:123543ausdfghdf。

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

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

不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>char*fun(char*s){ int i,j,k,n;char*P,*t;n=strlen(S)+1;t=(char*)malloc(n*sizeof(char));P=(char*)malloc(n*sizeof(char));j=0;k=0;for(i=0;i<n;i++) {if(isdigit(s[i])) { /*********found*********/P[【1】]=s[i];j++;} else {t[k]=s[i];k++;) }/*********found*********/for(i=0;i<【2】;i++) P[j+i]=t[i];P[j+k]=0;/*********found*********/return 【3】;}main( ){ char s[80];printf(“Please input:”);scanf(“%s”,s);printf(“\nThe result is:%s\n”,fun(s));}正确答案:(1)j (2)k (3)p或(p)解析:填空1:函数中申请了两个内存空间,其中p存放数字字符串,t存放非数字字符串,根据条件可知,p依次存放数字字符串,其位置由j来控制,所以应填j。

国家二级(C语言)笔试模拟试卷120(题后含答案及解析)

国家二级(C语言)笔试模拟试卷120(题后含答案及解析)

国家二级(C语言)笔试模拟试卷120(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.下列选项中,不是一个算法的基本特征的是( )。

A.完整性B.可行性C.有穷性D.拥有足够的情报正确答案:A解析:作为一个算法,一般应该具有下列4个特征:①可行性,即考虑到实际的条件能够达到一个满意的结果;②确定性,算法中的第一个步骤都必须是有明确定义的;③有穷性,一个算法必须在有限的时间内做完;④拥有足够的情报。

2.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法。

A.对象B.数据结构C.数据流D.目标正确答案:C解析:结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

3.下列工具中为需求分析常用工具的是( )。

A.PADB.PFDC.N-SD.DFD正确答案:D解析:需求分析常用的工具有数据流图(DFD) 、数据字典(DD) 、判定树和判定表。

PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

4.对线性表进行二分法检索,其前提条件是( )。

A.线性表以顺序方式存储,并按关键码值排好序B.线性表以顺序方式存储,并按关键码的检索频率排好序C.线性表以链式方式存储,并按关键码值排好序D.线性表以链式方式存储,并按关键码的检索频率排好序正确答案:A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

5.下列选项中不属于结构化程序设计方法的是( )。

A.自顶向下B.逐步求精C.模块化D.可复用正确答案:D解析:结构化程序设计的主要原则概括为自顶向下、逐步求精和限制使用GOTO语句。

2020年全国计算机等级考试二级C语言全真模拟试卷及答案(三)

2020年全国计算机等级考试二级C语言全真模拟试卷及答案(三)

2020年全国计算机等级考试二级C语言全真模拟试卷及答案(三)2020年全国计算机等级考试二级C语言全真模拟试卷及答案(三)一、选择题1.软件是指程序、数据与相关文档的完整集合。

2.检查软件产品是否符合需求定义的过程称为确认测试。

3.不属于对象的基本特点的是分类性。

4.在设计程序时,应采纳的原则之一是程序结构应有助于读者理解。

5.程序执行的效率与数据的存储结构密切相关。

6.数据结构中,与所使用的计算机无关的是数据的逻辑结构。

7.线性表的顺序存储结构和线性表的链式存储结构分别是顺序存取的存储结构、随机存取的存储结构。

8.树是结点的集合,它的根结点数目是有且只有1.9.数据库是一个结构化的数据集合。

10.数据库系统包括数据库和数据库管理系统。

11.不能看作一条语句的是if(a<5)。

12.不合法的用户标识符的选项是floatla0____。

13.不属于字符常量的是′\xCC′。

14.正确的表达式是a+b*c和(a+b)*c。

二、改写后的文章:以下是2020年全国计算机等级考试二级C语言全真模拟试卷的选择题部分。

请在A、B、C、D四个选项中选择正确答案,并将其涂写在答题卡上。

1.软件是指程序、数据与相关文档的完整集合。

2.检查软件产品是否符合需求定义的过程称为确认测试。

3.不属于对象的基本特点的是分类性。

4.在设计程序时,应采纳的原则之一是程序结构应有助于读者理解。

5.程序执行的效率与数据的存储结构密切相关。

6.数据结构中,与所使用的计算机无关的是数据的逻辑结构。

7.线性表的顺序存储结构和线性表的链式存储结构分别是顺序存取的存储结构、随机存取的存储结构。

8.树是结点的集合,它的根结点数目是有且只有1.9.数据库是一个结构化的数据集合。

10.数据库系统包括数据库和数据库管理系统。

11.不能看作一条语句的是if(a<5)。

12.不合法的用户标识符的选项是floatla0____。

13.不属于字符常量的是′\xCC′。

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计【打印】【字体:大中小】【关闭】一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列选项中不符合良好程序设计风格的是A)源程序要文档化B)数据说明的次序要规化C)避免滥用goto语句 D)模块设计要保证高耦合、高聚(2)从工程管理角度,软件设计一般分为两步完成,它们是A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是A)软件测试B)概要设计C)软件维护D)详细设计(4)在数据库系统中,用户所见的数据模式为A)概念模式B)外模式C)模式D)物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段D)物理设计(6)设有如下三个关系表R S T下列操作中正确的是A)T=R∩S B)T=R∪SC)T=R×S D)T=R/S(7)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7(9)数据库技术的根本目标是要解决数据的A)存储问题B)共享问题C)安全问题D)保护问题(10)对下列二叉树进行中序遍历的结果是A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG(11)下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在(12)下列叙述中正确的是A)每个C程序文件中都必须要有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是A)int _int; B)double int_; C)char For; D)float US$; (14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1 B)只能是整数0或非0整数C)可以是结构体类型的数据D)可以是任意合法的表达式(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)(17)有以下程序main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1(18)设有定义:int a; float b; 执行scanf("%2d%f",&a,&b); 语句时,若从键盘输入876 543.0<回车>,a和b的值分别是A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000(19)有以下程序main(){ int a=0, b=0;a=10; /* 给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b); /* 输出计算结果*/}程序运行后的输出结果是A)a+b=10 B)a+b=30 C)30 D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序main(){ int k=5;while(--k) printf("%d",k -= 3);printf("\n");}执行后的输出结果是A)1 B)2 C)4 D)死循环(23)有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A)5 B)24 C)32 D)40(24)以下选项中,值为1的表达式是A)1 –'0' B)1 - '\0' C)'1' -0 D)'\0' - '0'(25)有以下程序fun(int x, int y){ return (x+y); }main(){ int a=1, b=2, c=3, sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是A)6 B)7 C)8 D)9(26)有以下程序main(){ char s[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错(27)有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;main(){ int j=1, m=1, k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}执行后的输出结果是A)5, 5 B)5, 11 C)11, 11 D)11, 5(28)有以下程序fun(int x){ int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;main(){ printf("%d\n",fun(7)); }执行后的输出结果是A)7 B)3 C)2 D)0(29)在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(30)有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)4(31)若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)(32)若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n); B)int fun(double , int );C)int fun(double *x, int n); D)int fun(double *, int *);(33)有以下程序void change(int k[ ]){ k[0]=k[5]; }main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n<=4 ) { change( &x[n]) ; n++; }for(n=0; n<5; n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5(34)有以下程序main(){ int x[3][2]={0}, i;for(i=0; i<3; i++) scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运行时输入:2 4 6<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(35)有以下程序int add( int a,int b){ return (a+b); }main(){ int k, (*f)(), a=5,b=10;f=add;…}则以下函数调用语句错误的是A)k=(*f)(a,b); B)k=add(a,b);C)k= *f(a,b); D)k=f(a,b);(36)有以下程序#includemain( int argc, char *argv[ ]){ int i=1,n=0;while (iprintf("%d\n",n);}该程序生成的可执行文件名为:proc.exe。

国家二级(C语言)笔试模拟试卷50(题后含答案及解析)

国家二级(C语言)笔试模拟试卷50(题后含答案及解析)

国家二级(C语言)笔试模拟试卷50(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.算法一般都可以用_____控制结构组合而成。

A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环正确答案:D解析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。

一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。

2.数据的存储结构是指_____。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据正确答案:B解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。

3.设有下列二叉树:对此二叉树中序遍历的结果为_____。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA正确答案:B解析:中序遍历是指首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右了树的一种二叉树遍历算法。

4.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_____。

A.调用语句B.命令C.口令D.消息正确答案:D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。

消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。

5.检查软件产品是否符合需求定义的过程称为_____。

A.确认测试B.集成测试C.验证测试D.验收测试正确答案:A解析:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。

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

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

国家二级C语言机试(操作题)模拟试卷313(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。

即若原链表结点数据域从头至尾的数据为10,4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。

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

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

不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<stdlib.h>#define N 6typedef struct node{ int data;struct node*next;}NODE;void fun(NODE*h){ NODE*p,*q;int t ;p=h;while(P){/*********found*********/q=【1】;/*********found*********/while(【2】) {if(P->data>q->data) {t=P->data;P->data=q ->data ;q->data=t;) q=q->next;}/*********found*********/p=【3】;} } NODE*creatlist(int a[]) { NODE*h,*p,*q;int i;h=NULL;for(i=0;i<N;i++) { q=(NODE *)malloc(sizeof (NODE));q->data=a[i];q->next=NULL;if(h==NULL)h=P=q;else{P->next=q;P=q;) } return h;} void outlist(NODE*h) { NODE*P;p=h;if(P==NULL) printf(“The list is NULL!\n”);else { printf(“\nHead”);do {printf(“->%d”,P->data);p=p->next;) while(p!=NULL);printf(“->End\n”);} } main( ){ NODE*head;int a[N]={0,10,4,2,8,6);head=creatlist(a);printf(“\nThe original list:\n”);outlist(head);fun(head);printf(“\nThe list after inverting:\n”);outlist(head);}正确答案:(1)p->next(2)q(3)p->next解析:填空1:从第2个while循环可知,q的初值应该为p的next,故此空应该填写p->next。

国家二级(C语言)笔试模拟试卷80(题后含答案及解析)

国家二级(C语言)笔试模拟试卷80(题后含答案及解析)

国家二级(C语言)笔试模拟试卷80(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.在数据结构中,从逻辑上可以把数据结构分为______。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构正确答案:C解析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。

2.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。

A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1正确答案:C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进栈,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。

3.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。

A.希尔排序B.冒泡排序C.插入排序D.选择排序正确答案:A解析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。

4.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为______。

A.2B.3C.4D.5正确答案:C解析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。

本题中,与11比较的关键码分别为15,8,10,12四个。

5.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。

A.n-1B.nC.n+1D.2n正确答案:C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

C语言程序设计二级考试模拟题库

C语言程序设计二级考试模拟题库

C程序设计计算机二级考试模拟题库(精编版)——WORD文档,下载后可编辑修改——一、单项选择题(25道小题,共50分)1、以下说法中正确的是(C)(2分)A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性3、以下选项中,不合法常量的是 (B)(2分)A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e04、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型5、能正确表示逻辑关系:“10?=a?=0”的C语言表达式是 (D)(2分) A、10>=a>=0 B、 a>=0 and a<=10C、 a>=0||a<=10D、 a>=0&&a<=106、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6C、 5.500000D、 6.0000007、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)A、 INPUT x、y、z;B、 scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z); D、 read("%d%d%d",&x,&y,&z);8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分) A、 0 B、 0.5C、 1D、 210、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。

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

二级C语言笔试模拟319一、选择题1、下列数据结构中,属于非线性结构的是( )。

A.循环队列 B.带链队列C.二叉树 D.带链栈2、下列数据结构中,能够按照“先进后出”原则存取数据的是( )。

A.循环队列 B.栈C.队列 D.二叉树3、对于循环队列,下列叙述中正确的是( )。

A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针4、算法的空间复杂度是指( )。

A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时丁作单元数5、软件没计中划分模块的一个准则是( )。

A.低内聚、低耦合 B.高内聚、低耦合C.低内聚、高耦合 D.高内聚、高耦合6、下列选项中不属于结构化程序设计原则的是( )。

A.可封装 B.自顶向下C.模块化 D.逐步求精7该图是( )。

A.N-S图 B.PADC.程序流程图 D.E-R图8、数据库管理系统是( )。

A.操作系统的一部分 B.在操作系统支持下的系统软件C.一种编译系统 D.一种操作系统9、在E-R图中,用来表示实体联系的图形是( )。

A.椭圆形 B.矩形C.菱形 D.三角形10R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为( )。

A.选择 B.投影C.交 D.并11、以下叙述中正确的是( )。

A.程序设计的任务就是编写程序代码并上机调试 B.程序设计的任务就是确定所用数据结构C.程序设计的任务就是确定所用算法 D.以上三种说法都不完整12、以下选项中,能用做用户标识符的是( )。

A.void B.8 8C._0_ D.unsigned13、阅读以下程序:#include<stdio.h>main(){ int case;float printF;printf("请输入2个数:");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}该程序在编译时产生错误,其出错原因是( )。

A.定义语句出错,case是关键字,不能用做用户自定义标识符B.定义语句出错,printF不能用作用户自定义标识符C.定义语句无错,scanf不能作为输入函数使用D.定义语句无错,printf不能输出case的值14、表达式:(int)((double)9/2)-(9)%2的值是( )。

A.0 B.3C.4 D.515、若有定义语句:int x=10;,则表达式x-=x+x的值为( )。

A.-20 B.-10C.0 D.1016、有以下程序:#include<stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2+b);}程序运行后的输出结果是( )。

A.0,0 B.1,0C.3,2 D.1,217、设有定义“int a=1,b=2,c=3;”,以下浯句中执行效果与其他三个不同的是( )。

A.if(a>b)c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;}C.if(a>b)c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;}18、有以下程序:#include<stdio.h>main(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是( )。

A.3 B.5 C.7 D.919、以下程序段中,与语句“k=a>b?(b>c?1:0):0;”功能相同的是( )。

A.if(a>b)&&(b>c)k=1;else k=0;B.if(a>b)||(b>c))k=1;else k=0;C.if(a<=b)k=0;else if(b<=c)k=1;else k=0;D.if(a>b)k=1;else if(b>c)k=1;20、有以下程序:#include<stdio.h>main(){ char s[]-{"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a'&&s[i]<='z')n++;printf("%d\n",n);}程序运行后的输出结果是( )。

A.0 B.2 C.3 D.521、有以下程序:#include<stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf("%d%d\n",k,n);}程序运行后的输出结果是( )。

A.02 B.13 C.57 D.1222、以下定义语句中,编译时会出现编译错误的是( )。

A.char a='a'; B.char a='\n'C.char a='aa'; D.char a='\xgd';23、有以下程序:#include<stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是( )。

A.E,68 B.D,69 C.E,D D.输出无定值24、有以下程序:#include<stdio.h>void fun(int D){ int d=2;p=d++;printf("%d",p);}main(){ int a=1;fun(a);printf("%d\n",a);}程序运行后的输出结果是( )。

A.32 B.12 C.21 D.2225、以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

#define MIN-2147483647int findmax(int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i])max=x[i];}return max;}造成错误的原因是( )。

A.定义语句“int i,max;”中,max未赋初值B.赋值语句“max=MIN”;中,不应给max赋MIN值C.语句“if(max<x[i]max=x[i])”中,判断条件设置错误D.赋值语句“max=MIN;”放错了位置26、有以下程序:#include<stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是( )。

A.1,2,1,2 B.1,2,2,1 C.2,1,2,1 D.2,1,1,227、若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是( )。

A.p=a B.q[i]=a[i]C.p=a[i] D.p=&a[2][1]28、有以下程序:#include<stdio.h>#include<string.h>main(){ char str[][20][("One*world","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是( )。

A.9,One*World B.9,One*Dream!C.10,One*Dream! D.10,One*World29、有以下程序:#include<stdio.h>main(){ int a[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case0:switch(a[i]%2){ case0:a[i]++;break;case1:a[i]--;} break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是( )。

A.3344 B.2050 C.3040 D.030430、有以下程序:#include<stdio.h>#include<string.h>main(){ char a[10]="abed";printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是( )。

A.7,4 B.4,10 C.8,8 D.10,1031、下面是有关C语言字符数组的描述,其中错误的是( )。

A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串32、下列函数的功能是fun(char*a,char*b){while((*b=*a)!='\0'){a++;b++;)}A.将a所指字符串赋给b所指空间B.使指针b指向a所指字符串C.将a所指字符串和b所指字符串进行比较D.检查a和b所指字符串中是否有'\0'33、设有以下函数:void fun(int n,char*s){……)则下面对函数指针的定义和赋值均正确的是( )。

A.void(*pf)( );pf=fun; B.void*pf( );pf=funC.void*pf( );*pf=fun; D.void(*pf)(int,char);pf=&fun;34、有以下程序:#include<stdio.h>int f(int n):main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}mt f(int n){ static int a=1;n+=a++;return n;}程序运行后的输出结果是( )。

相关文档
最新文档