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

合集下载

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

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

全国计算机等级考试二级c语言题库及答案全国计算机等级考试二级C语言题库及答案1. 以下关于C语言的叙述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持模块化程序设计答案:B2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. forC. returnD. void答案:D3. 若有定义:int a=3, b=4; 则表达式 a+b 的值是:A. 7B. 6C. 3.4D. 43答案:A4. 在C语言中,以下哪个选项不是合法的变量名?A. _sumB. sum_C. 2valueD. sum$答案:C5. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array[2,3];答案:A6. 若有定义:char c1='a', c2='b'; 则表达式 c1-c2 的值是:A. -1B. 1C. 97D. 98答案:A7. 在C语言中,以下哪个选项不是合法的字符串字面量?A. "Hello"B. 'Hello'C. "123"D. "C\"Language"答案:B8. 若有定义:int x=10; 则表达式 x++ 的结果是:A. 10B. 11C. 9D. 无法确定答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. pointer答案:B10. 若有定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式 a[2] 的值是:A. 3B. 4C. 5D. 无法确定答案:A11. 在C语言中,以下哪个选项不是合法的循环控制语句?A. forB. whileC. do-whileD. repeat答案:D12. 若有定义:float x=3.14; 则表达式 (int)x 的值是:A. 3B. 3.14C. 4D. 无法确定答案:A13. 在C语言中,以下哪个选项不是合法的函数参数类型?A. intB. floatC. doubleD. void答案:D14. 若有定义:int a=5, b=10; 则表达式 a%b 的值是:A. 5B. 0C. 1D. 无法确定答案:B15. 在C语言中,以下哪个选项不是合法的输入输出函数?A. printfB. scanfC. coutD. getchar答案:C16. 若有定义:int a=2, b=4; 则表达式 a&b 的值是:A. 0B. 2C. 4D. 6答案:B17. 在C语言中,以下哪个选项不是合法的逻辑运算符?A. &&B. ||C. !D. <答案:D18. 若有定义:int a=3; 则表达式 a<<2 的值是:A. 6B. 12C. 9D. 无法确定答案:B19. 在C语言中,以下哪个选项不是合法的文件操作函数?A. fopenB. fcloseC. removeD. delete答案:D20. 若有定义:int a=6; 则表达式 a==6 的值是:A. 1B. 0C. 6D. 无法确定答案:A。

2020年全国计算机二级等级考试全真模拟试卷及答案(第六套)

2020年全国计算机二级等级考试全真模拟试卷及答案(第六套)

2020年全国计算机二级等级考试全真模拟试卷及答案(第六套)1.设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为A) BCAB) CBAC) ABCD) CAB参考答案:C2.下列叙述中正确的是A) 存储空间不连续的所有链表一定是非线性结构B) 结点中有多个指针域的所有链表一定是非线性结构C) 能顺序存储的数据结构一定是线性结构D) 带链的栈与队列是线性结构参考答案:D3.算法时间复杂度的度量方法是A) 算法程序的长度B) 执行算法所需要的基本运算次数C) 执行算法所需要的所有运算次数D) 执行算法所需要的时间参考答案:B4.设循环队列为Q(1: m),初始状态为front=rear=m。

现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为A) 1B) 2C) m-1D) 0或m参考答案:D5.计算机软件的构成是A) 源代码B) 程序和数据C) 程序和文档D) 程序、数据及相关文档参考答案:D6.下面不属于软件设计阶段任务的是A) 软件的详细设计B) 软件的总体结构设计C) 软件的需求分析D) 软件的数据设计参考答案:C7.下面属于黑盒测试方法的是A) 边界值分析法B) 基本路径测试C) 条件覆盖D) 条件-分支覆盖参考答案:A8.一名雇员就职于一家公司,一个公司有多个雇员。

则实体公司和实体雇员之间的联系是A) 1:1联系B) 1:m联系C) m:1联系D) m:n联系参考答案:B9.有关系R如下,其中属性B为主键:B C Da 0 k1b 1 n12 p1则其中最后一个记录违反了A) 实体完整性约束B) 参照完整性约束C) 用户定义的完整性约束D) 关系完整性约束参考答案:A10.在数据库系统中,用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是A) 概念数据模型B) 逻辑数据模型C) 物理数据模型D) 关系数据模型参考答案:A11.以下选项中可用作C语言中合法用户标识符的是A) _123B) voidC) -abcD) 2a参考答案:A12.以下选项中合法的C语言赋值语句是A) ++i;B) a=b=34C) a=3,b=9D) k=int( a+b );参考答案:A13.以下程序段中的变量已定义为int类型sum = pad = 5; pAd = sum++, pAd++, ++pAd; printf( "%d\n", pad );程序段的输出结果是A) 5C) 6D) 7参考答案:A14.有以下程序#include <stdio.h>#include <math.h>main(){int a=1, b=4, c=2;double x=10.5, y=4.0, z;z = ( a+b )/c + sqrt( y ) * 1.2 / c + x; printf("%f\n", z);}程序运行后的输出结果是A) 13.700000B) 14.000000C) 15.400000D) 14.900000参考答案:A15.有以下程序(字母A的ASCII代码为65)#include <stdio.h>{char c1 = 'A', c2 = 'Y';printf("%d, %d\n", c1, c2 );}程序运行后的输出结果是A) 65, 89B) A, YC) 65, 90D) 输出格式不合法,输出出错信息参考答案:A16.若变量已正确定义,则以下for循环for ( x=0,y=0; ( y!=123 ) && ( x<4 ); x++ );A) 执行4次B) 执行3次C) 执行次数不确定D) 执行123次参考答案:A17.若有说明语句:char c = '\72' ; 则变量c中存放的是A) 1个字符B) 2个字符C) 3个字符D) 说明语句不合法参考答案:A18.以下叙述正确的是A) do-while语句构成的循环,当while语句中的表达式值为0时结束循环B) do-while语句和while-do构成的循环功能相同C) while-do语句构成的循环,当while语句中的表达式值为非0时结束循环D) do-while语句构成的循环,必须用break语句退出循环参考答案:A19.有以下程序#include <stdio.h>main(){int a, b, c=241;a = c/100 % 9;b = ( -1 )&&( -1 );printf("%d, %d\n", a, b );}程序运行后的输出结果是A) 2,1B) 6,1C) 6,0D) 2,0参考答案:A20.有以下程序#include <stdio.h>main( ){int i ;for( i=1; i<= 5; i++ ){ if( i % 2 ) printf( "*" ); else continue;printf( "#" );}printf( "$\n" );}程序运行后的输出结果是A) *#*#*#$B) *#*#*$C) *#*#$D) *#*#*#*$参考答案:A21.若有说明语句: int *ptr[10]; 以下叙述正确的是A) ptr是一个具有10个指针元素的一维数组,每个元素都只能指向整型变量B) ptr是指向整型变量的指针C) ptr是一个指向具有10个整型元素的一维数组的指针D) ptr是一个指向10个整型变量的函数指针参考答案:A22.有以下程序#include <stdio.h>main(){printf("%d\n", NULL );}程序运行后的输出结果是A) 0B) 变量无定义,输出不确定C) -1D) 1参考答案:A23.函数调用语句:fun( ( exp1, exp2 ), ( exp1, exp2, exp3) ); 含有的实参个数是A) 2B) 4C) 5D) 1参考答案:A24.若有定义语句:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,以下选项中错误引用a数组元素的是(其中 0≤i<10)A) *(*(a+i))B) a[ p-a ]C) p[i]D) *( &a[i] )参考答案:A25.有以下程序#include <stdio.h>main(){int a[10] = { 11,12,13,14,15,16,17,18,19,20 },*p=a,i=9 ; printf( "%d,%d,%d\n",a[ p-a ], p[i],*( &a[i] ) );}程序运行后的输出结果是A) 11,20,20B) 12,20,20C) 11,19,19D) 12,19,20参考答案:A26.有以下程序#include <stdio.h>void fun( int *s, int t, int *k ){ int p;for( p=0, *k=p; p<t; p++ )if( s[p]>s[*k] ) *k = p;}main(){int a[10] = { 11,12,13,14,15,16,20,18,19,10 },k ; fun( a,10,&k );printf( "%d,%d\n",k, a[k] );}程序运行后的输出结果是A) 6,20B) 10,9C) 7,20D) 10,1027.有以下说明语句char *s = "\"Name\\Address\n";指针s所指字符串的长度是A) 14B) 15C) 17D) 说明语句不合法参考答案:A28.有以下程序#include <stdio.h>#include <string.h>main(){char str[12] = { 's','t' , 'r' , 'i' , 'n' , 'g'} ; printf("%d\n", strlen( str ) );}程序运行后的输出结果是A) 6B) 7C) 11D) 12参考答案:A29.有以下程序#include <stdio.h>main(){char *s[6] = { "ABCD", "EFGH","IJKL","MNOP","QRST","UVWX" }, **p ;int i;p = s;for( i = 0; i<4; i++ ) printf( "%s", p[i] );printf( "\n" );}程序运行后的输出结果是A) ABCDEFGHIJKLMNOPB) ABCDEFGHIJKLC) ABCDD) AEIM参考答案:A30.有以下程序#include <stdio.h>main(){int i=1, j=3;printf("%d," ,i++ );{ int i=0;i+=j*2;printf("%d,%d," ,i,j ); }printf("%d,%d\n" ,i,j ); }程序运行后的输出结果是A) 1,6,3,2,3B) 1,6,3,1,3C) 1,6,3,6,3D) 1,7,3,2,3参考答案:A31.有以下程序#include <stdio.h>int fun(int a,int b){static int m=0, i=2;i +=m+1; m = i + a + b; return m;}main(){int k=4, m=1, p;p = fun( k,m ); printf("%d,", p);p = fun( k,m ); printf("%d\n" ,p );}程序运行后的输出结果是A) 8,17B) 8,16C) 8,8D) 8,20参考答案:A32.若有以下程序段char str[4][12] = {"aaa","bbbb","ccccc","dddddd"},*strp[4];int i;for( i=0; i<4; i++) strp[i]=str[i];则以下错误引用字符串的选项是(其中0≤k<4)A) strpB) str[k]C) strp[k]D) *strp参考答案:A33.有以下程序#include <stdio.h>#define F(x) 2.84+x#define PR(a) printf("%d" ,(int)(a))#define PRINT(a) PR(a);putchar('\n')main(){PRINT( F(5)*2 );}程序运行后的输出结果是A) 12B) 13C) 15D) 11参考答案:A34.以下关于fclose(fp)函数的叙述正确的是A) 当程序中对文件的所有写操作完成之后,必须调用fclose(fp)函数关闭文件B) 当程序中对文件的所有写操作完成之后,不一定要调用fclose(fp)函数关闭文件C) 只有对文件进行输入操作之后,才需要调用fclose(fp)函数关闭D) 只有对文件进行输出操作之后,才能调用fclose(fp)函数关闭文件参考答案:A35.若有以下定义和语句struct st{ int n; struct st *next; };struct st a[3] = { 5,&a[0], 6,&a[1], 7,&a[2] }, *p; p=&a[0];则值为6的表达式是(提示:运算符->的优先级高于++)A) (++p)-> nB) p++ ->nC) p ->n++D) (*p).n++参考答案:A36.标准库函数fgets( s,n,f )的功能是A) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存B) 从文件f中读取长度为n的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取n-1个字符串存入指针s所指的内存参考答案:A37.有以下程序#include <stdio.h>{ char c='A';int x=36, b;b= (x>>2) && ( c<'a' );printf("%d\n", b );}程序运行后的输出结果是A) 1B) 0C) 2D) 4参考答案:A38.有以下程序#include <stdio.h>typedef struct{char name[10]; int age;} ST;main(){ ST stud[10]={ "Adum", 15, "Muty", 16, "Paul", 17,"Johu", 14,};┋}程序运行后不能输出字符u的语句是A) printf("%c\n", stud[0].name[3] );B) printf("%c\n", stud[3].name[3] );C) printf("%c\n", stud[2].name[2] );D) printf("%c\n", stud[1].name[1] );参考答案:A39.设有定义:int a=64,b=8;,则表达式(a&b)||(a&&b)和(a|b)&&(a||b)的值分别为A) 1和1B) 1和0C) 0和1D) 0和0参考答案:A40.有以下程序#include <stdio.h>main(){ FILE *fp;int i, a[6]={1,2,3,4,5,6},k;fp = fopen("data.dat", "w+"); fprintf(fp, "%d\n", a[0]);for (i=1; i<6; i++){ fseek(fp, 0L, 0);fscanf(fp, "%d", &k);fseek(fp, 0L, 0);fprintf(fp, "%d\n", a[i]+k); }rewind(fp);fscanf(fp, "%d", &k);fclose(fp);printf("%d\n", k);}程序的运行结果是A) 21B) 6C) 123456D) 11参考答案:A。

全国计算机等级考试2020年二级C语言程序设计模拟试题_真题含答案与解析)-交互6

全国计算机等级考试2020年二级C语言程序设计模拟试题_真题含答案与解析)-交互6

全国计算机等级考试2020年二级C语言程序设计模拟试题(总分100, 做题时间120分钟)选择题1.下列语句组中,正确的是SSS_SINGLE_SELAchar*s;s="Olympic";Bchar s[7];s="Olympic";Cchar*s;s={"Olympic"};Dchar s[7];s={"Olympic"};分值: 1答案:A字符型指针变量可以用选项 A 的赋值方法: char *s;s="Olympic",选项C 的写法: char*s;s={"Olympic"};是错误的。

字符数组可以在定义的时候初始化: chars[]={"Olympic"};或者 char s[]="Olympic",都是正确的,但是不可以在定义字符数组后再对数组名赋值(数组名是常量,代表数组首地址)。

所以 B、 D 选项都是错误的。

对于本例,选项 B、D 中字符数组 s 的大小至少为 8,才能存放下字符串。

(字符串的末尾都有结束标识'\0')。

所以选择 A 选项。

2.以下所列对结构类型变量 tdl 的声明中错误的是SSS_SINGLE_SELAtypedef struct aa{int n;float m;}AA;B#define AA struct aaAA{int n;float m;)tdl;AAtdl;C{int n; float m;)aa;Dstruct{int n;float m;}tdl;struct aa tdl;分值: 1答案:C3.以下程序运行后的输出结果是#include<stdjo.h>void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}mam(){int b[10]={10,9,8,7,6,5,4,3,2,1);int i,s=0; reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}SSS_SINGLE_SELA27B6C25D30分值: 1答案:B4.下列选项中,由 C 语言提供的合法关键字的是SSS_SINGLE_SELABcherCdefaultDCase分值: 1答案:C选项 A 和选项 B 为拼写错误,选项 D 中出现了大写字母。

全国计算机二级C语言全真模拟试卷(含答案解析)

全国计算机二级C语言全真模拟试卷(含答案解析)

(1)下列数据结构中,能用二分法进行查找的是( )。

A)无序线性表B)线性链表C)二叉链表D)顺序存储的有序表(1)D) [解析]二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

(2)下面说法正确的是( )。

A) 一个C程序可以有多个主函数B) 一个C语言的函数中只允许有一对花括号C)C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内D)在对C程序进行编译时,可以发现注释行中的拼写错误(2)c) 【解析】本题涉及c语言基本的3个知识点:①c语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②c程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释中的错误。

(3)设有如下关系表,由关系R和S通过运算得到关系T,则所使用的运算为( )A)T=R∩SB)T=R∪SC)T= R×SD)T=R/S(3)B) 【解析】,就是关系R中插入关系S,合并为,即并运算(U)。

(4)数据库的故障恢复一般是由( )来执行恢复。

A)电脑用户B)数据库恢复机制C)数据库管理员D)系统普通用户(4)C) 【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。

(5)设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为( )。

A)7B)8C)9D)10(5)B) 【解析】在具有11个结点的满二又树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去非叶子结点数。

本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=18。

(6)下列关于线性表的叙述中,不正确的是( )。

A)线性表可以是空表B)线性表是一种线性结构C)线性表的所有结点有且仅有一个前件和后件D)线性表是由n个元素组成的一个有限序列(6)C) 【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。

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

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

2020年全国计算机等级考试二级C语言全真模拟试卷及答案(共三套)2020年全国计算机等级考试二级C语言全真模拟试卷及答案(一)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(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)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A)log2n B)n2 C)O(n1..5)D)n(n-1)/2(8)在深度为5的满二叉树中,叶子结点的个数为A)32 B)31 C)16 D)15(9)数据库系统的核心是A)数据库B)数据库管理系统C)模拟模型D)软件工程(10)一个关系中属性个数为1时,称此关系为A)对应关系B)单一关系C)一元关系D)二元关系(11)下面各选项中,均是C语言合法标识符的选项组是A)33 we auto B)_23 me _3ew C)_43 3e_ else D)ER -DF 32(12)可在C程序中用作用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下对C语言函数的有关描述中,正确的是A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)函数必须有返回值,返回值类型不定(14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(15)现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:A)int B)double C)float D)char(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(17)有以下程序段int j;float y;char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0 (18)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i);其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(19)下列程序的运行结果是#include "stdio.h"main(){ int x=-9,y=5,z=8;if(x<y)if(y<0)z=0;else z+=1;printf("%d\n",z);}A)6 B)7 C)8 D)9(20)若程序执行时的输入数据是"2473",则下述程序的输出结果是#include<stdio.h>void main(){ int cs;while((cs=getchar())!=; '\n'){switch(cs-'2'){ case 0case 1: putchar(cs+4);case 2: putchar(cs+4);break;case 3: putchar(cs+3); default: putchar(cs+2); } } }A)668977B)668966C)6677877D)6688766(21)以下程序的输出结果是main(){ int a,i;a=0;for(i=1;i<5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5; }}printf("%d\n",a);}A)31 B)13 C)10 D)20(22)现有如下程序段#include "stdio.h"main(){ int k[30]={12,324,45,6,768,98,21,34,453,456};int count=0,i=0;while(k[i]){ if(k[i]%2==0||k[i]%5==0)count++;i++; }printf("%d,%d\n",count,i);}则程序段的输出结果为A)7,8 B)8,8 C)7,10 D)8,10(23)若有以下程序#include <stdio.h>int a[]={2,4,6,8};main(){ int i;int *p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的输出结果是A)6 B)8 C)4 D)2(24)有以下程序#include <stdio.h>main(){ int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2 的值是′D′。

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

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

2020年度全国计算机等级考试二级C语言笔试试题及答案一、选择题(每题2分,共40分)1. 下面哪个选项是C语言的合法数据类型?A) floatB) integerC) charD) string答案:A2. 下面哪个选项是C语言的关键字?A) ifB) defineC) includeD) sizeof答案:A3. 在C语言中,以下哪个运算符用于取模?A) %B) /C)D) &答案:A4. 若变量a已定义为int类型,以下哪个选项是合法的赋值语句?A) a = 1,200;B) a = "hello";C) a = 1.23;D) a = 'a';答案:D5. 下面哪个选项表示C语言中的逻辑运算符?A) &&B) ||C) &&|D) |答案:A、B、C(以下题目1-5均为选择题,请根据题目要求选择正确答案)6. 在C语言中,以下哪个函数用于输出?A) printfB) scanfC) putcharD) gets答案:A7. 下面哪个选项表示C语言中的位运算符?A) &&B) ||C) <<D) ++答案:C8. 下面哪个选项表示C语言中的关系运算符?A) ==B) &&C) +D) |答案:A9. 在C语言中,以下哪个函数用于动态分配内存?A) mallocB) callocC) reallocD) free答案:A、B、C10. 下面哪个选项表示C语言中的结构体定义?A) structB) unionC) enumD) typedef答案:A11. 在C语言中,以下哪个函数用于动态释放内存?A) mallocB) callocC) reallocD) free答案:D12. 下面哪个选项表示C语言中的静态存储类别?A) autoB) staticC) registerD) extern答案:B13. 在C语言中,以下哪个函数用于输入字符串?A) scanfB) getsC) fgetsD) putchar答案:B、C14. 下面哪个选项表示C语言中的文件操作函数?A) fopenB) fcloseC) fprintfD) fgets答案:A、B、C、D15. 在C语言中,以下哪个选项表示预编译指令?A) #defineB) #includeC) #ifD) #ifdef答案:A、B、C、D二、填空题(每题3分,共30分)1. 在C语言中,每个程序都必须包含一个______函数。

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

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

计算机二级证c语言试题及答案计算机二级证C语言试题及答案1. 以下关于C语言的描述中,错误的是()。

A. C语言是一种高级编程语言。

B. C语言是面向对象的编程语言。

C. C语言具有跨平台的特性。

D. C语言可以用于系统软件的开发。

答案:B2. 在C语言中,下列哪个选项不是合法的变量名?A. _nameB. name_2C. 2nameD. name答案:C3. 以下关于C语言中数组的描述,正确的是()。

A. 数组的大小在编译时确定。

B. 数组的大小在运行时确定。

C. 数组的元素可以是任意数据类型。

D. 数组的元素必须是相同的数据类型。

答案:A4. 在C语言中,下列哪个运算符用于执行加法运算?A. +B. -C. *D. /答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %=D. =答案:A6. 在C语言中,使用哪个关键字可以定义一个函数?A. classB. functionC. defD. int答案:D7. 以下关于C语言中指针的描述,错误的是()。

A. 指针可以存储变量的地址。

B. 指针可以存储函数的地址。

C. 指针可以存储数组的地址。

D. 指针本身没有地址。

答案:D8. 在C语言中,下列哪个选项不是控制语句?A. ifB. whileC. forD. switch答案:D9. 在C语言中,下列哪个选项用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A10. 下列哪个选项是C语言中预处理指令?A. #includeB. #defineC. #ifD. All of the above答案:D11. 在C语言中,下列哪个选项用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A12. 在C语言中,下列哪个选项用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B13. 在C语言中,下列哪个选项用于定义一个宏?A. #defineB. #includeC. #ifD. #define答案:A14. 在C语言中,下列哪个选项用于将字符串转换为字符数组?A. strcpyB. strcatC. strncatD. sprintf答案:A15. 在C语言中,下列哪个选项用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. printf答案:C。

2020年全国计算机等级考试二级c语言上机精选题库(共60套)

2020年全国计算机等级考试二级c语言上机精选题库(共60套)
r=(r*t+c)%m;
return((double)r/m);
}
main()
{
int age[N], i, d[M];
FILE *out ;
for(i=0; i<N; i++)
age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0; i<N; i++)
}
二、改错题
下列给定程序中,函数fun的功能是:根据整型行参m,计算如下公式的值。
y=
例如,若m=2000,则应该输出:0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include <conio.h>
#include <stdio.h>
/********found********/
fun(int m)
h= a[i];
*s =h;
}
main()
{
STU a[N] =
{
{"A01", 81}, {"A02", 89}, {"A03", 66}, {"A04", 87},
{"A05", 77}, {"A06", 90}, {"A07", 79}, {"A08", 61},
{"A09", 80}, {"A10", 71}
printf((i+1)%10==0?"%4d\n":"%4d",age[i]);

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

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

计算机二级c语言考试题及答案一、选择题1. 下列关于C语言的描述中,错误的是()。

A. C语言是一种高级编程语言B. C语言具有可移植性C. C语言可以直接在操作系统上运行D. C语言具有结构化编程的特点答案:C2. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是()。

A. 数组必须在程序的开始处定义B. 数组的大小在定义后可以改变C. 数组可以存储不同类型的数据D. 数组的下标从0开始答案:D二、填空题1. 在C语言中,使用________关键字可以定义一个函数。

答案:void2. C语言中,用于输入输出的库函数分别是________和________。

答案:scanf; printf3. 在C语言中,声明一个字符型数组可以使用________关键字。

答案:char三、编程题1. 编写一个C语言程序,计算并输出100以内的奇数和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("100以内的奇数和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现两个整数的交换。

```c#include <stdio.h>int main() {int a = 10, b = 20, temp;temp = a;a = b;b = temp;printf("交换后的值:a = %d, b = %d\n", a, b);return 0;}```四、简答题1. 简述C语言中指针的作用。

答案:指针在C语言中用于存储变量的内存地址,它允许程序间接访问内存中的数据。

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

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

2020年全国计算机二级等级考试全真模拟试卷及答案(共三套)2020年全国计算机二级等级考试全真模拟试卷及答案(第一套)1.下列叙述中正确的是A) 有且只有一个根结点的数据结构一定是线性结构B) 每一个结点最多有一个前件也最多有一个后件的数据结构一定是线性结构C) 有且只有一个根结点的数据结构一定是非线性结构D) 有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构参考答案:D2.下列叙述中错误的是A) 在双向链表中,可以从任何一个结点开始直接遍历到所有结点B) 在循环链表中,可以从任何一个结点开始直接遍历到所有结点C) 在线性单链表中,可以从任何一个结点开始直接遍历到所有结点D) 在二叉链表中,可以从根结点开始遍历到所有结点参考答案:C3.某二叉树共有13个结点,其中有4个度为1的结点,则叶子结点数为A) 5B) 4C) 3D) 2参考答案:A04.设栈的顺序存储空间为S(1: 50),初始状态为top=0。

现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为A) 30B) 29C) 20D) 19参考答案:C5.设栈的顺序存储空间为S(1: 50),初始状态为top=0。

现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为A) 30B) 29C) 20D) 19参考答案:C6.程序测试的目的是A) 执行测试用例B) 发现并改正程序中的错误C) 发现程序中的错误D) 诊断和改正程序中的错误参考答案:C7.下面属于系统软件的是A) 财务管理系统B) 数据库管理系统C) 编辑软件WordD) 杀毒软件参考答案:B8.在关系A(S,SN,D)和B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则D是A的A) 外键(码)B) 候选键(码)C) 主键(码)D) 元组参考答案:A9.有两个关系R,S如下,由关系R和S通过运算得到关系T,则所使用的操作为A) 并B) 自然连接C) 笛卡尔积D) 差参考答案:D10.在数据库管理系统提供的数据语言中,负责数据模式定义的是A) 数据定义语言B) 数据管理语言C) 数据操纵语言D) 数据控制语言参考答案:A11.流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。

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

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

计算机等级考试二级C语言笔试模拟题及答案是全国计算机(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机根底知识和使用一种高级计算机语言编写程序以及上机调试的根本技能。

那么计算机等级考试二级会怎么考?以下仅供参考!以下各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。

答在试卷上不得分。

(1) 二进制数101110 转换为等值的八进制数是()。

A.45B.56C.67D.78(2) CPU 是由()组成的。

A.内存储器和控制器B.控制器和运算器C.内存储器和运算器D.内存储器、控制器和运算器(3) DOS 是为IBM PC 系列微型计算机及其兼容机所配置的()磁盘。

A.多用户多任务B.单用户单任务C.分时D.分布式(4) 启动MS-DOS 操作系统后,()已驻留内存。

A.B.C.D.CCCC.EXE(5) 设驱动器B 中软盘上的目录构造如以下图所示。

设当前目录为F2,那么把A 盘根目录下的PROG.BAS 文件复制到B 盘F3 子目录中的命令是()。

A.COPY PROG.BAS B:B.COPY A:PROG.BAS B:C.COPY A:PROG.BAS B:F3D.COPY A:PROG.BAS B:F3(6) 下面四组DOS 命令中,意义完全相同的一组是()。

A.COPY 和DISKCOPYB.P 和DISKPC.DEL 和RDD.RENAME 和REN(7) 防止软盘感染病毒的有效方法是()。

A.不要把软盘和有毒软盘放在一起B.在写保护缺口上贴上胶条C.保持机房清洁D.定期对软盘格式化(8) 双面高密度5 英寸软磁盘的容量是()。

A.360KBB.720KBD.1.44MB(9) 在FOXBASE 中,可以使用的两类变量是()。

A.内存变量和字段变量B.全局变量和部分变量C.字段变量和简单变量D.内存变量和自动变量(10) 建立一个新子目录的DOS 命令是()。

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

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

2020年全国计算机二级等级考试全真模拟试卷及答案(共三套)2020年全国计算机二级等级考试全真模拟试卷及答案(一)(2020.9)1.面向对象方法中,实现对象的数据和操作结合于统一体中的是A) 结合B) 封装C) 隐藏D) 抽象参考答案:B2.在进行逻辑设计时,将E-R图中实体之间联系转换为关系数据库的A) 关系B) 元组C) 属性D) 属性的值域参考答案:A3.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有A) 节省存储空间B) 插入与删除运算效率高C) 便于查找D) 排序时减少元素的比较次数参考答案:B4.深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为A) 62B) 63C) 64D) 65参考答案:B5.下列叙述中正确的是A) 所谓有序表是指在顺序存储空间内连续存放的元素序列B) 有序表只能顺序存储在连续的存储空间内C) 有序表可以用链接存储方式存储在不连续的存储空间内D) 任何存储方式的有序表均能采用二分法进行查找参考答案:C6.参考答案:C7.计算机软件包括A) 算法和数据B) 程序和数据C) 程序和文档D) 程序、数据及相关文档参考答案:D8.下面描述中不属于软件需求分析阶段任务的是A) 撰写软件需求规格说明书B) 软件的总体结构设计C) 软件的需求分析D) 软件的需求评审参考答案:B9.当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的A) 逻辑独立性B) 物理独立性C) 应用独立性D) 空间独立性参考答案:A10.A) 并B) 投影C) 交D) 选择参考答案:A11.以下叙述正确的是A) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj 的二进制文件B) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe 的可执行文件C) C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件D) 链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe 的可执行文件参考答案:A12.以下叙述正确的是A) 循环结构、选择结构、顺序结构都是结构化程序的基本结构B) 计算机可以直接执行C语言程序,不需要做任何转换C) 过于复杂的算法不能使用N-S流程图描述D) 只有不超过20步操作步骤的算法才是简单算法参考答案:A13.有如下程序#include <stdio.h>main( ){int x = 072;printf("X=%d.\n", x+1);}程序运行后的输出结果是A) X=115B) X=73C) X=59.D) X=72.参考答案:C14.下面叙述正确的是A) 任何复杂任务都可以分解成简单子任务B) C语言程序的所有函数只能处于同一个源文件中WErC) 包含全部三种基本结构的程序才是结构化程序D) C语言程序可以定义多个不同内容的main函数参考答案:A15.以下叙述正确的是A) C程序总是以main()作为程序执行的起始行B) main()函数若不带参数,其后面的一对圆括号可省略C) 函数体内的定义语句和可执行语句允许任意穿插出现D) C语言中的语句之间必须用分号作为分隔符参考答案:A16.有以下程序#include <stdio.h>main( ){ char c;for(; (c=getchar()) != '#'; ) putchar(++c);}执行时如输入为:abcdefg##<回车> , 则输出结果是A) abcdefgB) bcdefgh$C) bcdefgh$$D) bcdefgh参考答案:D17. 有以下程序#include <stdio.h>main( ){ int a=1, b=0;for(; a<5; a++){ if (a%2 == 0) break; continue;b += a;}printf("%d \n", b);}程序运行后的输出结果是A) 0B) 1C) 10D) 4参考答案:A18.有以下程序#include <stdio.h>main( ){int x = 0x13;if (x = 0x12) printf("True"); printf("False\n");}程序运行后的输出结果是A) TrueB) TrueFalseC) FalseD) TrueFalseTrue参考答案:B19.为了避免在嵌套的if-else语句中产生二义性,C语言规定与else 子句配对是A) 与其在同一行上的if子句B) 在其之后最近的不带else的if子句C) 与其缩排位置相同的if子句D) 在其之前最近的不带else的同层if子句参考答案:D20.有以下程序#include <stdio.h>main( ){ int i,a;for (i=0; i<=10; i++) a=i; printf("%d,%d\n", i, a); }程序的运行结果是A) 11,10B) 10,10C) 10,11D) 11,11参考答案:A21.有以下程序#include <stdio.h>void fun(int a[ ], int n) { int i=0;for (i=0; i<n; i++){if (i % 2 == 0)a[i] += n;}}main( ){ int c[5] = {5,4,3,2,1}, i;fun(c, 5);for (i=0;i<5; i++) printf("%d,", c[i]); printf("\n");}程序运行后的输出结果是A) 10,-1,8,-3,6,B) 5,4,3,2,1,C) 10,2,8,4,6,D) 5,-1,3,-3,1,参考答案:A22.有以下程序#include <stdio.h>#define N 4void fun(int a[][N]){ int i;for(i=0; i<N; i++)a[0][i] = a[N-1][N-1-i];}main( ){ int x[N][N]={ {1, 2, 3, 4},{5, 6, 7, 8},{9,10,11,12},{13,14,15,16}}, i;fun(x);for (i=0; i<N; i++) printf("%d,", x[i][i]); printf("\n");printf("\n");}程序运行后的输出结果是A) 16,6,11,16,B) 1,6,11,16,C) 4,7,10,13,D) 17,17,17,17,参考答案:A23. 有如下程序#include <stdio.h>int convert(int* data) {return (*data) ++;}main( ){int data = 56;convert(&data);printf("%d,", data); data = convert(&data); printf("%d,\n", data); }程序运行后的输出结果是A) 56,57,B) 57,58,C) 57,57,D) 55,57,参考答案:C24.设有如下程序段int a[1] = {0};int b[] = {9};char c[3] = {"A", "B"}; char d = "12";以下叙述正确的是A) a, b的定义合法,c, d的定义不合法B) a,b,c,d的定义都是合法的C) a,b,c的定义是合法的,d的定义不合法D) 只有a的定义是合法的参考答案:A25.设有定义:int x=2,*p=&x;float y=3.0; char z='c';,则立即进行以下运算有安全隐患的是A) p++;B) x++;C) y++;D) z++;参考答案:A26.有以下程序#include <stdio.h>double fun(double a){ double x;x = a - (int)a;return x;}main( ){ double a = 3.1415;printf("%f\n", fun(a)); }程序的运行结果是A) 3.000000B) 3.141500C) 0.141500D) 0.000000参考答案:B27.有以下程序#include <stdio.h>#include <string.h>char *a = "you";char *b = "Welcome you to Beijing!"; main( ){ char *p;p = b;while (*p != *a) p++;p += strlen(a) + 1;printf("%s\n", p);}程序运行后的输出结果是A) Beijing!B) you to Beijing!C) Welcome you to Beijing!D) to Beijing!参考答案:D28. 有如下程序#include <stdio.h>#include <string.h>main( ){printf("%d\n", strlen("0\t\nA011\1")); }程序运行后的输出结果是A) 8B) 9C) 7D) 10参考答案:A29.有如下程序#include <stdio.h>int sum(int data){static int init = 1;return init += data;}main( ){int i;for (i=1; i<=1; i++) printf("%d,", sum(i));printf("\n");}程序运行后的输出结果是A) 2,B) 2,3,C) 3,D) 1,参考答案:A30.有以下程序#include <stdio.h>main( ){ char s1[] = "programe", s2[] = "Language"; char *p1 = s1, *p2 = s2;int k;for (k=0; k<8; k++)if (*(p1+k) == *(p2+k))printf("%s\n",(p1+k));}程序的运行结果是A) grame ame eeB) g a eC) programeD) 无输出字符参考答案:A31. 以下针对全局变量的叙述错误的是A) 全局变量的作用域是从定义位置开始至源文件结束B) 全局变量是在函数外部任意位置上定义的变量C) 用extern说明符可以限制全局变量的作用域D) 全局变量的生存期贯穿于整个程序的运行期间参考答案:C32. 有以下程序#include <stdio.h>#include <string.h>typedef struct stu {#include <string.h>typedef struct stu {char name[10];char gender;int score;} STU;void f(STU *c){ strcpy(c->name, "Qian");c->gender = 'f';c->score = 350;main( ){ STU a = {"Zhao", 'm', 290}, b;b = a;f(&b);printf("%s,%c,%d,", , a.gender, a.score); printf("%s,%c,%d\n", , b.gender, b.score);}程序运行后的输出结果是A) Zhao,m,290,Qian,f,350B) Zhao,m,290,Qian,m,290C) Zhao,m,290,Zhao,m,290d) Zhao,m,290,Qian,m,350参考答案:A33.下面关于编译预处理的命令行,正确的是A) #define PAI 3.14B) #Define Eps 0.00001C) ##DEFINE FALSE 0D) #define int INT参考答案:A34.有以下程序#include <stdio.h>#define D(x) 2*x+3 main( ){int i = 1, j = 2;printf("%d\n", D(i+j)); }程序运行后的输出结果是A) 7B) 6C) 9D) 2参考答案:A35.有以下程序#include <stdio.h>#include <string.h>struct S{char name[10];};void change(struct S *data, int value) {strcpy(data->name, "#");value = 6;}main( ){struct S input;int num = 3;strcpy(, "OK");int num = 3;strcpy(, "OK");change(&input, num);printf("%s,%d\n", , num); }程序运行后的输出结果是A) OK,6B) #,6C) OK,3D) #,3参考答案:D36.有如下定义struct st{ char name[12]; int age; char sex; } std[10],*p=std; 以下语句错误的是A) scanf("%d",p->age);B) scanf("%s",std[0].name);C) scanf("%d",&std[1].age)D) scanf("%c",&(p->sex));参考答案:A37. 有以下程序#include <stdio.h>#include <stdlib.h>void fun(int **s, int x[2][3]){ **s=*(x[1]+1); }main(){ int a[2][3] = {1,2,3,4,5,6}, *p; p = (int*)malloc(sizeof(int)); fun(&p,a);printf("%d\n",*p);}程序的运行结果是A) 6B) 2C) 5D) 3参考答案:C38.有如下定义struct st{ int a; float b; } x[10];FILE *fp;若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是A) for(i=0; i<10; i++)write(x,sizeof(struct st),1,fp);B) fwrite(x,10*sizeof(struct st),1,fp);C) fwrite(x,sizeof(struct st),10,fp);D) for(i=0; i<10 ;i++)fwrite(&x[i],sizeof(struct st),1,fp);参考答案:A39. 有以下程序#include <stdio.h>int disp(char* str){while (*str) putchar(*str++); putchar('#');return *str;}main(){printf("%d\n", disp("C##123")); }程序运行后的输出结果是A) C##123#0B) C##1230C) C##0D) C##123#\0参考答案:A40. 有以下程序#include <stdio.h>main( ){ int x[3][3] = {{2},{4},{6}}, i, *q = &x[0][0]; for(i=0; i<2; i++){if (i == 0)x[i][i+1] = *q+1;else++q;printf("%d ",*q);}printf("\n");}程序的运行结果是2020年全国计算机二级等级考试全真模拟试卷及答案(二)1.下列关于算法复杂度叙述正确的是A) 最坏情况下的时间复杂度一定高于平均情况的时间复杂度B) 时间复杂度与所用的计算工具无关C) 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的D) 时间复杂度与采用的算法描述语言有关参考答案:B(2020.9)2.设有栈S和队列Q,初始状态均为空。

全国计算机等级考试二级C语言程序设计真题精选6(含答案)

全国计算机等级考试二级C语言程序设计真题精选6(含答案)

全国计算机等级考试二级C语言程序设计真题精选6一、单项选择题1.有以下程序:#includ<stdio.h>#defin4voifun(ina[][N],inb[])ini; for(i=0;i<N;i++)b[i]=a[i][i];}main()inx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y); for(i=0;i<N;i++)printf("%d,",y[i]); printf("");}程序运行的结果是()。

A.1,2,3,4,B.1,0,7,0, √C.1,4,5,9D.3,4,8,0解析:数组x有4列。

fun函数中for循环的作用是将二维数组前4行的对角线元素赋给b[0],b[1],b[2],b[3]。

在主函数中,二维数组初始化为{1,2,3},{4},{5,6,7,8},{9,10},所以可以看出对角线元素为1,0,7,0,。

2.有以下程序:#includ<stdio.h>main()chaa=4; printf("%",a=a<<1);}程序运行的结果是()。

A.40B.16C.8 √D.4解析:左移一位相当于原数乘以2,右移一位相当于除以2。

a<<1结果为4*2=8,没有超过char类型的范围。

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

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

A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则出栈的顺序应为其逆序,即EDCBA54321。

4.有以下程序:#includ<stdio.h>strucstinx,y;data[2]={1,10,2,20};main ()strucs*p=data; printf("%d,",p->y);printf("%",(++p)->x);}程序运行的结果是()。

2020年全国计算机二级等级考试模拟试卷及答案(共五套)

2020年全国计算机二级等级考试模拟试卷及答案(共五套)

2020年全国计算机二级等级考试模拟试卷及答案(共五套)2020年全国计算机二级等级考试模拟试卷及答案(第一套)1. 下列关于栈叙述正确的是()。

A) 算法就是程序B) 设计算法时只需要考虑数据结构的设计C) 设计算法时只需要考虑结果的可靠性D) 以上三种说法都不对参考答案:D2. 下列叙述中正确的是()。

A) 有一个以上根结点的数据结构不一定是非线性结构B) 只有一个根结点的数据结构不一定是线性结构C) 循环链表是非线性结构D) 双向链表是非线性结构参考答案:B3. 下列关于二叉树的叙述中,正确的是()。

A) 叶子结点总是比度为2的结点少一个B) 叶子结点总是比度为2的结点多一个C) 叶子结点数是度为2的结点数的两倍D) 度为2的结点数是度为1的结点数的两倍参考答案:B4. 软件生命周期中的活动不包括()。

A) 市场调研B) 需求分析C) 软件测试D) 软件维护参考答案:A5. 某系统总体结构图如下图所示:该系统总体结构图的深度是()。

A) 7B) 6C) 3D) 2参考答案:C6. 程序调试的任务是()。

A) 设计测试用例B) 验证程序的正确性C) 发现程序中的错误D) 诊断和改正程序中的错误参考答案:D7. 下列关于数据库设计的叙述中,正确的是()。

A) 在需求分析阶段建立数据字典B) 在概念设计阶段建立数据字典C) 在逻辑设计阶段建立数据字典D) 在物理设计阶段建立数据字典参考答案:A8. 数据库系统的三级模式不包括()。

A) 概念模式B) 内模式.C) 外模式D) 数据模式参考答案:D9有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。

A) 自然连接B) 交C) 投影D) 并参考答案:A10. 下列选项中属于面向对象设计方法主要特征的是()。

A) 继承B) 自顶向下C) 模块化D) 逐步求精参考答案:A11.以下叙述中错误的是A) 算法正确的程序可以有零个输入B) 算法正确的程序最终一定会结束C) 算法正确的程序可以有零个输出D) 算法正确的程序对于相同的输入一定有相同的结果参考答案:C12. 以下叙述中正确的是A) C语句必须在一行内写完B) C程序中的每一行只能写一条语句C) C语言程序中的注释必须与语句写在同一行D) 简单C语句必须以分号结束参考答案:D13. 以下选项中关于C语言常量的叙述错误的是A) 经常被使用的变量可以定义成常量B) 常量分为整型常量、实型常量、字符常量和字符串常量C) 常量可分为数值型常量和非数值型常量D) 所谓常量,是指在程序运行过程中,其值不能被改变的量参考答案:A14. 以下选项中,不合法的C语言用户标识符是A) a_bB) AaBcC) a--bD) _1参考答案:C15. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是A) x=y==5;B) x=n%2.5;C) x+n=i;D) x=5=4+1;参考答案:A16. 设有定义:int a; float b;执行scanf("%2d%f", &a, &b);语句时,若从键盘输入876 543.0<回车>则a和b的值分别是A) 87和6.0B) 876和543.0C) 87和543.0D) 76和543.0参考答案:A17. 有以下定义语句,编译时会出现编译错误的是A) char a='\x2d';B) char a='\n';C) char a='a';D) char a="aa";参考答案:D18. 当变量c的值不为2、4、6时,值也为"真"的表达式是A) (c>=2 && c<=6)&&(c%2!=1)B) (c==2)||(c==4)||(c==6)C) (c>=2 && c<=6)&& !(c%2)D) (c>=2 && c<=6) || (c!=3) || (c!=5)参考答案:D19. 有以下计算公式若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是A) if(x>=0) y=sqrt(x);if(x<0) y=sqrt(-x);B) if(x>=0) y=sqrt(x);else y=sqrt(-x);C) y=sqrt(x);if(x<0) y=sqrt(-x);D) y=sqrt(x>=0?x :-x);参考答案:C20. 有以下程序#include <stdio.h>main(){ int y=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是A) y=-1B) y=0C) y=1D) while构成无限循环参考答案:A21. 有以下程序#include <stdio.h>main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A) 5B) 24C) 32D) 40参考答案:C22. 有以下程序#include <stdio.h>main(){ int s;scanf("%d", &s);while( s>0 ){ switch(s){ case 1: printf("%d", s+5);case 2: printf("%d", s+4); break;case 3: printf("%d", s+3);default: printf("%d", s+1); break;}scanf("%d", &s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A) 66656B) 6566456C) 66666D) 6666656参考答案:B23. 以下叙述中错误的是A) 用户定义的函数中可以没有return语句B) 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C) 用户定义的函数中若没有return语句,则应当定义函数为void类型D) 函数的return语句中可以没有表达式参考答案:B24. 有以下程序#include <stdio.h>void fun(char *c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){ char b='a',a='A';fun(&b,a);printf("%c,%c\n",b,a);}程序运行后的输出结果是A) b,B,b,AB) b,B,B,AC) a,B,B,aD) a,B,a,B参考答案:A25. 列选项中,能正确定义数组的语句是A) int num[0...2008];B) int num[];C) int N=2008;int num[N];D) #define N 2008int num[N];参考答案:D26. 以下函数实现按每行8个输出w所指数组中的数据#include <stdio.h>void fun( int *w, int n){ int i;for(i=0;i<n;i++){ ______________printf("%d ",w[i]);}printf("\n");}在横线处应填入的语句是A) if( i/8==0 ) printf("\n");B) if( i/8==0 ) continue;C) if( i%8==0 ) printf("\n");D) if( i%8==0 ) continue;参考答案:C27. 有以下程序#include <stdio.h>void fun (char *c){while(*c){if( *c >= 'a' && *c <= 'z')*c =*c - ('a' - 'A');c++;}}main(){char s[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A) hello beijingB) Hello BeijingC) HELLO BEIJINGD) hELLO Beijing参考答案:C28. 有以下程序#include <stdio.h>main(){int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};int i, j, k, t;for (i=0; i<4; i++)for (j=0; j<3; j++)for (k=j+1; k<4; k++)if (a[j][i] > a[k][i]){t=a[j][i];a[j][i] = a[k][i];a[k][i] = t;} /* 按列排序*/for (i=0; i<4; i++)printf("%d, ",a[i][i]);}程序运行后的输出结果是A) 1, 6, 2, 1,B) 8, 7, 3, 1,C) 4, 7, 5, 2,D) 1, 6, 5, 7,参考答案:D29. 有以下程序(strcat函数用以连接两个字符串)#include <stdio.h>#include <string.h>main(){char a[20]="ABCD\0EFG\0",b[]="IJK";strcat(a,b);printf("%s\n",a);}程序运行后的输出结果是A) IJKB) ABCDE\0FG\0IJKC) ABCDIJKD) EFGIJK参考答案:C30. 有以下程序段char name[20];int num;scanf("name=%s num=%d",name, &num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A) name=Lili num=1001B) name=LiliC) Lili num=D) Lili参考答案:D31. 有以下程序#include <stdio.h>main(){char ch[ ] ="uvwxyz",*pc;pc=ch;printf("%c\n", *(pc+5));}程序运行后的输出结果是A) zB) 0C) 元素ch[5]的地址D) 字符y的地址参考答案:A32. 有以下程序#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) 0B) 2C) 3D) 5参考答案:B33. 有以下程序#include <stdio.h>int fun(int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf("%d",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量x输入10,程序的输出结果是A) 55B) 54C) 65D) 45参考答案:A34. 有以下程序#include <stdio.h>int f ( int m ){ static int n=0;n+=m;return n;}main(){ int n=0;printf ( "%d,", f(++n) );printf ( "%d\n", f(n++) );}程序运行后的输出结果是A) 3,3B) 1,1C) 2,3D) 1,2参考答案:D35. 设有以下语句typedef struct TT{ char c; int a[4]; } CIN;则下面叙述中正确的是A) CIN是struct TT类型的变量B) TT是struct类型的变量C) 可以用TT定义结构体变量D) 可以用CIN定义结构体变量参考答案:D36. 有以下程序#include <stdio.h>struct ord{ int x,y; } dt[2]={1,2,3,4}; main(){struct ord *p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序运行后的输出结果是A) 3,4B) 4,1C) 2,3D) 1,2参考答案:C37. 有以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A) 0B) -12C) -20D) 10参考答案:C38. 有以下程序#include <stdio.h>main(){ int a=2, b;b = a<<2;printf ("%d\n", b );}程序运行后的输出结果是A) 2B) 4C) 6D) 8参考答案:D39. 下列关于C语言文件的叙述中正确的是A) 文件由一系列数据依次排列组成,只能构成二进制文件B) 文件由结构序列组成,可以构成二进制文件或文本文件C) 文件由数据序列组成,可以构成二进制文件或文本文件D) 文件由字符序列组成,其类型只能是文本文件参考答案:C40. 有以下程序#include <stdio.h>main(){ FILE *fp;int a[10]={1,2,3,0,0}, i;fp = fopen("d2.dat", "wb");fwrite(a, sizeof(int), 5, fp);fwrite(a, sizeof(int), 5, fp);fclose(fp);fp = fopen("d2.dat", "rb");fread(a, sizeof(int), 10, fp);fclose(fp);for (i=0; i<10; i++)printf("%d,", a[i]);}程序的运行结果是A) 1,2,3,0,0,0,0,0,0,0,B) 1,2,3,1,2,3,0,0,0,0,C) 123,0,0,0,0,123,0,0,0,0,D) 1,2,3,0,0,1,2,3,0,0,参考答案:D2020年全国计算机二级等级考试模拟试卷及答案(第二套)1.一个栈的初始状态为空。

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

2020年全国计算机等级考试二级C语言全真模拟试卷及答案(六)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(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如下:RB C Da0k1b1n1SB C Df3h2a0k1n2x1TB C Da0k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00(13)以下选项中不属于字符常量的是A)′C′ B)"C" C)′\xCC′ D) ′\072′(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,++y D)x=25%5.0(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=0.0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′; k=12;printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>=′A′&& kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isalpha(kk)&&(kk<91) (18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1: b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)有以下程序#include <stdio.h>main(){ int x=8;for( ; x>0; x--){ if(x%3) {printf("%d,",x--); continue;}printf("%d,",--x);}}程序的运行结果是A)7,4,2, B)8,7,5,2, C)9,7,6,4, D)8,5,4,2,(22)以下不构成无限循环的语句或语句组是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;(23)有以下程序#include <stdio.h>main(){ int a[ ]={1,2,3,4},y,*p=&a[3];--P; y=*p;printf("y=%d\n",y);}程序的运行结果是A)y=0 B)y=1 C)y=2 D)y=3(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)设有如下程序段char s[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s[0] B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相同(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s);D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是A)tupedef strct{int n; char c;}REC;REC t1,t2;B)tupedef strct{int n; char c;};REC t1,t2;C)tupedef strct REC;{int n=0; char c='A';}t1,t2;D)strct{int n; char c;}REC;REC t1,t2;(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序#include <stdio.h>main(){ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++;for(i=1;i<5;i++) printf("%d",c[i]);printf("\n");}程序的运行结果是A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3(32)有以下程序#include <stdio.h>void fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");}程序的运行结果是A)0987654321 B)4321098765C)5678901234 D)0987651234(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)有以下程序#include <stdio.h>void fun(char *a,char*b){ while(*a==′*′)a++;while(*b=*a){b++;a++;}}main(){ char *s="*****a*b****",t[80];fun(s,t); puts(t);}程序的运行结果是A)*****a*b B)a*b C)a*b**** D)ab(36)有以下程序#include <stdio.h>#include <string.h>typedef struct{ char name[9]; char sex; float score[2]; }STU; void f(STU a){ STU b={"Zhao",′m′,85.0,90.0}; int i;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];}main(){ STU c={"Qian",′f′,95.0,92.0};f(c); printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);}程序的运行结果是A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90(37)有以下程序#include <stdio.h>main(){ FILE *fp; int a[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++) fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的运行结果是A)12300 B)123 C)1 D)321(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。

相关文档
最新文档