2020年计算机等级C语言考试巩固练习及答案
- 格式:docx
- 大小:17.84 KB
- 文档页数:3
2020年3月计算机二级C语言考试真题及答案一、选择题(1)下列关于栈叙述准确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中准确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)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)-369B)369C)0.369D)整数集合{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,234B)'\123'C)123D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:int a=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[20];int num;scanf("name=%snum=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中准确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)能够是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);程序运行后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ 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 34 5 0,则输出结果是A)6566456B)66656C)66666D)6666656(20)有以下程序段int i,n;for(i=0;i='0'&&s[i]='a'&&*c,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
2020年9月全国计算机等级考试二级C语言上机题库(共55套全)第一套1 程序填空给定程序的功能是:从键盘输入若干行文本(每行不得超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
第1处void WriteText(FILE*fw)第2处fputs(str,fw);fputs(“\n”,fw);第3处printf(“%s”,str);2 程序修改给定程序MODI1.C中函数fun的功能是:从低位开始取出长整形变量s中奇数位上的数,依次构成一个新数t中。
高位仍在高位,低位仍在低位。
/**found**/void fun(long s,long*t)/**found**/s1=s1*10;3 程序设计函数fun的功能是:将两个两位数的正整数a 、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c 数的十位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
void fun(int a,int b,long*c){*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);}第二套1 程序填空给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。
为便于统计,规定各单词之间用空格隔开。
第1处n++;flag=1;}第2处if(*s= =’’)flag=0;第3处s++;2 程序修改给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver 所指的存储单元中。
/**found**/t+=s[k];/**found**/*aver=ave;3程序设计请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元。
【导语】2020年3⽉计算机等级考试备考正在进⾏中,为了⽅便考⽣及时有效的备考,那么,为您精⼼整理了2020年3⽉计算机等级C语⾔考试经典练习及参考答案,希望对⼤家的复习有帮助。
如想获取更多计算机等级考试的模拟题及备考资料,请关注的更新。
1.下列关于⾯向对象概念的描述中,错误的是( )。
A.⾯向对象⽅法⽐⾯向过程⽅法更加先进 B.⾯向对象⽅法中使⽤了⼀些⾯向过程⽅法中没有的概念 C.⾯向对象⽅法替代了结构化程序设计⽅法 D.⾯向对象程序设计⽅法要使⽤⾯向对象的程序设计语⾔ 答案:C 2.下列各种⾼级语⾔中,不是⾯向对象的程序设计语⾔是( )。
A.C++ B.Java C.VB D.C 答案:D 3.下列关于类的描述中,错误的是( )。
A.类就是C语⾔中的结构类型 B.类是创建对象的模板 C.类是抽象数据类型的实现 D.类是具有共同⾏为的若⼲对象的统⼀描述体 答案:A 4.下列关于对象的描述中,错误的是( )。
A.对象是类的⼀个实例 B.对象是属性和⾏为的封装体 C.对象就是C语⾔中的结构变量 D.对象是现实世界中客观存在的某种实体 答案:C 5.下列关于C++程序中使⽤提取符和插⼊符的输⼊/输出语句的描述中,错误的是( )。
A.提取符是对右移运算符(>>)重载得到的 B.插⼊符是对左移运算符(<<)重载得到的 C.提取符和插⼊符都是双⽬运算符,它们要求有两个操作数 D.提取符和插⼊符在输⼊/输出语句中不可以连⽤ 答案:C 6.程序流程图中带有箭头的线段表⽰的是( )。
A.图元关系 B.数据流 C.控制流 D.调⽤关系 答案:C 7.⼀个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次⼊栈,然后再依次出栈,则元素出栈的顺序是( )。
A.12345ABCDE B.EDCBA54321 C.ABCDE12345 D.54321EDCBA 答案:B 8.下列叙述中正确的是( )。
2020c语言考试题库及答案一、选择题(每题2分,共20分)1. 下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. C语言中,哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. fprintf答案:A3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列哪个选项是正确的C语言注释?A. // this is a commentB. /* this is a comment */C. //* this is a commentD. /* this is a comment */答案:A5. C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2};D. int arr[] = {1, 2, 3, 4};答案:A7. 在C语言中,以下哪个选项用于定义一个指针?A. int *p;B. int *p = 0;C. int p = 0;D. int *p = 5;答案:A8. C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable!答案:B10. C语言中,哪个函数用于获取当前时间?A. timeB. localtimeC. mktimeD. strftime答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个枚举类型。
2020年9月全国计算机等级考试二级C语言上机题库(共60套全)第一套1 程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。
函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指出的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
第1处if (std[i].year==year)第2处k[n++]=std[i];第3处return (n);1程序修改给定程序MODI1.C中函数fun的功能是:读入一个整数k(2≤k≤10000)打印它的所有质因子(即所有为素数的因子)。
/**found**/IsPrime (int n)/**found**/if (!(n%i))2程序设计已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。
请编写给函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分),已给出函数的首部,请完成函数。
fun(STU a[],STU *s){int i, max = a[0]. s, j=0;for (i=1; i<N;i++){ if (max<a [i].s) {j=i;max =a[i].s;}*s=a[j];}第二套1程序填空给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。
例如:若N=3有下列矩阵:1 2 34 5 67 8 9交换后:3 2 14 5 69 8 7第1处void fun (int t [] [N], int n)第2处for (i=0; i<n; i++)第3处t [i] [n-i-1]=s;2 程序修改由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。
若找到,返回其下标值;反之,返回-1.折半查找的基本算法是:每次查找前先确定数组中待查的范围:low 和high(low﹤high),然后把m的值大于中间位置元素中的值,则下一次的查找范围落在中间位置之前的元素中。
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。
2020年全国计算机等级考试二级c语言上机精选题库(共80套)第1套试题第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。
注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。
例如,若N=3,有下列矩阵:1 2 34 5 67 8 9fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include <stdio.h>#define N 4fun(int t[][N], int n){int i, sum;___1___;for (i=0; i<n; i++)sum += ___2___;for (i=0; i<n; i++)sum += t[i][n-i-___3___];return sum;}main(){int i, j, t[][N] ={21, 2, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 3, 10};printf("\nThe original data:\n");for (i=0; i<N; i++){for (j=0; j<N; j++)printf("%4d", t[i][j]);printf("\n");}printf("The result is: %d", fun(t, N));}第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。
,11=A ,1112A +=A ,1123A +=A … ,111-A +=A n n 例如,若n=10,则应输出0.617978。
请改正程序中的错误,使它能得出正确的结果。
全国计算机等级考试二级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年计算机等级C++语⾔考试选择题强化练习及答案,供各位考⽣的查阅学习。
如想获取更多计算机等级考试的模拟习题及备考资料,请关注的更新。
(1)下⾯对静态数据成员的描述中,正确的是( )。
A)静态数据成员是类的所有对象共享的数据 B)类的每个对象都有⾃⼰的静态数据成员 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调⽤ 答案:A (2)如果类A被说明成类B的友元,则( )。
A)类A的成员即类B的成员 B)类B的成员即类A的成员 C)类A的成员函数不得访问类B的成员 D)类B不⼀定是类A的友元 答案:D (3)可以⽤P.a的形式访问派⽣类对象P的基类成员a,其中a是( )。
A)私有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)公有继承的公有成员 答案:D (4)建⽴派⽣类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、C(派⽣类)构造函数),这3种构造函数的调⽤顺序为( )。
A)abC B)aCb C)Cab D)Cba 答案:A (5)下⾯关于虚函数的描述,错误的是( )。
A)在成员函数声明的前⾯加上virtual修饰,就可把该函数声明为虚函数 B)基类中说明了虚函数后,派⽣类中对应的函数也必须说明为虚数 C)虚函数可以是另⼀个类的友元函数,但不能是静态成员函数 D)基类中说明的纯虚函数在其任何派⽣类中都必须实现 答案:B (6)下⾯关于模板的描述,错误的是( )。
A)函数模板和类模板的参数可以是任意的数据类型 B)类模板不能直接使⽤,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使⽤ C)函数模板不能直接使⽤,需要实例化为模板函数后才能使⽤ D)类模板的成员函数都是模板函数 答案:A (7)不能作为重载函数的调⽤的依据是( )。
A)参数个数 B)参数类型 C)函数类型 D)函数名称 答案:D (8)在c++语⾔中,数据封装要解决的问题是( )。
1.在黑盒测试方法中,设计测试用例的主要根据是( )。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图答案:B2.在软件设计中不使用的工具是( )。
A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图答案:C3.下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题答案:C4.在软件设计中,不属于过程设计工具的是( )。
A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图答案:D5、程序流程图中带有箭头的线段表示的是( )。
A.图元关系B.数据流C.控制流D.调用关系答案:C6、结构化程序设计的基本原则不包括( )。
A.多态性B.自顶向下C.模块化D.逐步求精答案:A7.能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。
A.循环链表B.双向链表C.二叉链表D.有序链表答案:A8.某二叉树共有730个结点,其中度为l的结点有30个,则叶子结点个数为( )。
A.不存在这样的二叉树B.351C.17D.350答案:A9.软件开发中需求分析的主要任务是()。
A.定义和描述目标系统“做什么”B.获取需求C.给出软件解决方案D.需求评审答案:A10.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是( )。
A.学生成绩管理系统B.ERP系统C.办公自动化系统D.UNIX系统答案:D。
2020年计算机等级C语言考试巩固练习及答案
1.以下叙述中错误的是( )。
A.C程序在运行过程中所有计算都以二进制方式进行
B.c程序在运行过程中所有计算都以十进制方式进行
C.所有c程序都需要编译链接无误后才能运行
D.c程序中字符变量存放的是字符的ASCIl码值
答案:B
2.以下选项中关于C语言常量的叙述错误的是( )。
A.经常被使用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量.
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
答案:A
3.下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
答案:C
4.在软件设计中,不属于过程设计工具的是( )。
A.PDL(过程设计语言)
B.PAD图
C.N-S图
D.DFD图
答案:D
5、程序流程图中带有箭头的线段表示的是( )。
A.图元关系
B.数据流
C.控制流
D.调用关系
答案:C
6、结构化程序设计的基本原则不包括( )。
A.多态性
B.自顶向下
C.模块化
D.逐步求精
答案:A
7.能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。
A.循环链表
B.双向链表
C.二叉链表
D.有序链表
答案:A
8.某棵树中共有25个结点,且只有度为3的结点和叶子结点,其中叶子结点有7个,则该树中度为3的结点数为( )。
A.不存在这样的树
B.7”
C.8
D.6
答案:A
9.某二叉树共有730个结点,其中度为l的结点有30个,则叶子结点个数为( )。
A.不存在这样的二叉树
B.351
C.17
D.350
答案:A
10.以下叙述中错误的是( )。
A.C程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.NN数NNN值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
答案:D。