二级C模拟题8

合集下载

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析) 题型有:1. 选择题选择题1.有如下类定义:class AA{ int a:public:AA(intn=0):a(n){} };class BB:public AA{ public:BB(int n)____ };其中横线处缺失部分是( )。

A.:a(n){}B.:AA(n){}C.{a(n);}D.{a=n;}正确答案:B解析:根据派生类构造函数的一般格式:<派生类名>(<总参数表>):<基类名1>(<参数表1>),…<基类名n><参数表n>),<成员对象名1>(<参数表n+1>),<成员对象名m>(<参数表n+m>)<派生类构造函数体>。

在派生类BB的构造函数总参数表后面应该接上基类名AA和其参数。

知识模块:继承和派生2.有如下程序:#inc1ude <iostream>using namespace std;class Basel{ public:Basel(int d) {cout<<d;} ~Basel( ){} };class Base2{ public:Base2(int d) {cout<<d;} ~Base2( ){} };class Derived:public Basel,Base2{ public:Derived (int a,int b,int c,int d);Basel(b),Base2(a),bl(d),b2(c) {} Private:int b1;int b2;};int main( ){ Derived d(1,2,3,4);retum 0;} 运行时的输出结果是( )。

A.1234B.2134C.12D.21正确答案:D解析:程序在创建派生类对象d时,分别调用基类Basel和Basel的构造函数。

知识模块:继承和派生3.已知基类Employee只有一个构造函数,其定义如下:Employee::Employee(int n):id(n){} Manager是Employee的派生类,则下列对Manager 的构造函数的定义中,正确的是( )。

全国计算机等级考试二级C语言笔试模拟题

全国计算机等级考试二级C语言笔试模拟题

全国计算机等级考试二级C语言笔试模拟题I、计算机基础部分(30分)试题一、选择题1.当前构成计算机的主要逻辑部件是(1)。

(1)A、电子管B、小规模集成电路C、大规模和超大规模集成电路D、硬盘2.“计算机辅助设计”的英文缩写是(2)。

(2)A、CAD B、CAM C、CAI D、OA3、计算机内部对数值数据和非数值数据进行处理时,采用(3)。

(3)A、机内码B、二进制C、十进制D、八进制4.下列数据中,值最小的是(4)。

(4)A、二进制数100 B、八进制数100C、十进制数100D、十六进制数1005.目前,国际上广泛采用的西文字符编码是(5)。

(5)A、五笔字型码B、区位码C、国际码D、ASCII码6.计算机系统是由硬件系统和软件系统组成的,其中软件系统由(6)组成。

(6)A、程序设计语言、系统软件和应用软件B、系统软件C、系统软件和应用软件D、系统软件和程序设计语言7.CPU可以直接访问的存储器是(7)。

(7)A、内存B、硬盘C、软盘D、光盘8.Excel中的工作簿是指(8)。

(8)A、一本书B、一种记录方式C、Excel的文档D、Excel的归档方法9.Excel中的单元格中(9)。

(9)A、只能包含数字B、可以是数字、字符和公式等C、只能包含文字D、以上都不是10.在Excel中,自定义序列的自动填充,首先应通过菜单(10)来自定义序列。

(10)A、文件B、编辑C、格式D、工具11.计算机网络是计算机与(11)结合的产物。

(11)A、电话B、通信技术C、线路D、各种协议12.调制解调器用于完成计算机数字信号与(12)之间的转换。

(12)A、电话线上的数字信号B、同轴电缆上的音频信号C、同轴电缆上的数字信号D、电话线上的音频信号13.要想在网上查询WWW信息,必须安装并运行一个被称为(13)的软件。

(13)A、HTTP B、Y AHOO C、浏览器D、万维网14.计算机病毒是一种人为编制的计算机程序,其主要传染途径有(14)。

计算机等级《二级C语言程序设计》模拟题

计算机等级《二级C语言程序设计》模拟题

计算机等级《二级C语言程序设计》模拟题计算机等级《二级C语言程序设计》模拟题1.【单选题】2分| 有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。

A (!a==1)&&(!b==0)B (aC a&&bD a||(b+b)&&(c-a)2.【单选题】2分| 执行下面的程序后,a的值为()。

main(){inta,b;for(a=1,b=1;a=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A 7B 8C 9D 103.【单选题】2分| 若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A EOFB -lC 非零值D 04.【单选题】2分| 有以下程序:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d\n",a+b);//输出计算机结果}程序运行后的输出结果是()。

A a+b=10B a+b=30C 30D 出错5.【单选题】2分| 以下程序的输出结果是()。

main(){inta=3:printf("%d\n",(a+a-=a*a));}A -6B 12C 0D -126.【单选题】2分| 执行下列程序中的输出语句后,a的值是()。

main(){inta;printf("%d\n",(a=2*3,a*5,a+7));}A 17B 37C 6D 137.【单选题】2分| 下列关于栈的描述中错误的是()。

A 栈是先进先出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入删除操作中,不需要改变栈底指针8.【单选题】2分| 函数调用strcat(strcpy(str1,str2),str3)的功能是()。

A 将字符串str1复制到字符串str2中后再连接到字符串str3之后B 将字符串str1连接到字符串str2之后再复制到字符串str3之后C 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后D 将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中9.【单选题】2分| 对两个数组a和b进行下列初始化:charm[]1="l234567":charn[]={'1','2','3','4','5','6','7');则下列叙述正确的是()。

二级C语言试题总结(八套)

二级C语言试题总结(八套)

第一套1.若变量已正确定义并赋值,对库函数错误调用的是A) k=scanf("%d%d",&i,&j);B) printf("\\%d\\\n",k);C) getchar(ch);D) putchar(ch);2.要求定义一个返回值为double类型的名为mysum的函数,其功能为求两个double类型数的和值,正确的定义是:A) mysum(double a,b){ return (a+b); }B) mysum(double a, double b){ return a+b; }C) double mysum(int a, intb);{return a+b; }D) double mysum(double a, double b){ retrun (a+b); }3.以下是对fun函数的正确调用:fun(a+b,fun(a+b,(a,b)));则fun函数有______个形参。

4.若有以下函数定义:myfun(double a, int n){…… }则myfun函数值的类型是A) void B) doubleC) int D) char5.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值。

以下选项中错误的程序是A) double fun( int a,int b ){…… }main(){ ┇fun( i,k );┇}B) main(){printf( "%f\n",fun( 2,10 ));┇}double fun( int a,int b ){ …… }C) double fun( int, int );main(){ ┇x=fun( i,k );┇}double fun( int a,int b ){ …… }D) main(){ double fun(int i,int y);┇x=fun( i,k );┇}double fun(int a,int b){ ……}6.若有以下函数:int fun(int x){ return (1+x*x); }则语句printf(" %d\n",fun(fun(fun(fun( 1 )))) );的输出结果____________第二套1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是()A)switch(x){ case1.0∶printf("*\n");case2.0∶printf("**\n");}B)switch(int(x)){ case1∶printf("*\n");case2∶print f("**\n");}C)switch(a+b){ case1∶printf("*\n");case1+2∶printf("**\n");}D)switch(a+b){ case1∶printf("*\n");casec∶printf("**\n");}2.执行下面程序片段的结果是()int x=123;do{ printf("=\n",x--);}while(!x);A)打印出321 B)打印出123C)不打印任何内容 D)陷入死循环3.以下程序的输出结果是()# includemain(){ int i=0,a=0;while(i<20){ for(;;){ if((i)==0)break;else i--; }i+=11;a+=i;}printf("%d\n",a);}A)21 B)32 C)33 D)114.下列与表达式“b=(a<0?-1∶a>0?1∶0)”的功能等价选项是()A)b=0;if(a>=0)if(a>0) b=1;else b=-1;B)if(a>0)b=1;else if(a<0)b=-1;elseb=0C)if(a)if(a<0) b=-1;else if(a>0)b=1;else b=0;D) b=-1;if(a)if(a>0)b=1;else if(a==0)b=0;else b=-1;5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为()A)float B)intC)char D)double6.以下叙述中正确的是()A)在函数中必须要有return语句B)在函数中可以有多个return语句,但只执行其中的一个C)return语句中必须要有一个表达式D)函数值并不总是通过return语句传回调用处7.有以下程序float fun(int x,int y){ return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()A)编译出错 B)9C)21 D)9.08.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,则对a数组元素不正确的引用是()A)a[p-a] B)*(&a[i])C)p[i] D)a[10]9.以下叙述中正确的是()A)全局变量的作用域一定比局部变量的作用域大B)静态(static)类型变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值10.若有如下程序:main(){char a[][9]={"china","Japan","USA","France"};printf("\′%s\′\n",a[2]);}则程序运行后的输出结果是()A)′Japan′B)′USA′C)USA D)′inaJapanUSAFrance′第三套1.若变量c为char类型,能正确判断出c为小写字母的表达式是()A)′a′<=c<=′z′B)(c>=′a′)||(c<=′z′)C)(′a′=C)D)(c>=′a′)&&(c<=′z′)2.下面程序的输出结果是()main(){ int x=2,y=0,z;x+=3+2;printf("%d",x);x*=y=z=4;printf("%d",x); }A)728 B)无法计算C)7,4 D)8,43.有如下程序main(){int x=1,a=0,b=0;switch(x){case 0∶b++;case 1∶a++;case 2∶a++;b++;}printf("a=%d,b=%d\n",a,b);}程序运行后的输出结果是()A)a=2,b=1 B)a=1,b=1C)a=1,b=0 D)a=2,b=24.以下选项中,正确的if-else语句是()A)if(x!=0)printf("%d",x)elseprintf("%d",-x);B)if(x!=0){x=x+y;printf("%d",x); }elseprintf("%d",-x);C)if(x!=0)x=x+y;printf("%d",x);elseprintf("%d",-x);D)if(x!=0){x=x+y;printf("%d",x)};elseprintf("%d",-x);5.有以下程序段int n=0,p;do {scanf("%d",&p);n++;}while(p!=12345 &&n<3);此处do-while循环的结束条件是()A)p的值不等于12345并且n的值小于3B)p的值等于12345并且n的值大于等于3C)p的值不等于12345或者n的值小于3D)p的值等于12345或者n的值大于等于36.若有如下程序段:main(){ int n=0;while(printf("*")){ n++;if(n<3)break; }}则下列描述正确的是()A)其中循环控制表达式与0等价B)其中循环控制表达式与’0’等价C)其中循环控制表达式是不合法的D)以上说法都不对7.C语言中main函数参数的非法表示形式是()A)main(char *argv[],int argc)B)main(int a,char**b)C)main(int y,char *x[])D)main(int argv,char *argc[])8.设有如下枚举类型定义:enum language {Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举类型Fortran的值为()A)4 B)7C)102 D)1039.阅读下述程序段:y=-1;if (x!=0)if (x>0)y=1;elsey=0;该程序段所描述的数学关系是()A)y=-1(x<0)0(x=0)1(x>0)B)y=1(x<0)0(x=0)-1(x>0)C)y=0(x<0)-1(x=0)1(x>0)D)y=-1(x<0)1(x=0)0(x>0)10.设有数组定义:char array[]="China";蚴 閍rray所占的空间为()A)4个字节 B)5个字节C)6个字节D)7个字节第四套1.有以下程序:main(){intx=0xFFFF;printf("%d\n",x--);}执行后的输出结果是()A)32767 B)FFFEC)-1 D)-327682.以下程序的输出结果是()#include#includemain(){ char str[12]={′s′,′t′,′r′,′i′,′n′,′g′};printf("%d\n",strlen(str));}A)6 B)7C)11 D)123.若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是()A)ps+2 B)s[2]C)ps[2] D)ps+=2,*ps4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()A)for语句中的三个表达式可以同时省略B)for语句可以用于循环次数不确定的情况C)for语句中表达式2只能是关系表达式或逻辑表达式D)for语句中表达式1和表达式3可以是逗号表达式5.执行下面程序片段的结果是()int x=23;do{ printf("-",x--);}while(!x);A)打印出321 B)打印出23C)不打印任何内容 D)陷入死循环6.与y=(x>0?1∶x<0?-1∶0);的功能相同的if语句是()A)if(x>0)y=1;else if(x<0)y=-1;else y=0;B)if(x)if(x>0) y=1;else if(x<0) y=-1;else y=0;C)y=-1;if(x)if(x>0)y=1;else if(x==0) y=0;else y=-1;D)y=0;if(x>=0)if(x>0) y=1;else y=-1;7.标准库函数fgets(s,n,f)的功能是()A)从文件f中读取长度为n的字符串存入指针s所指的内存B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C)从文件f中读取n个字符串存入指针s所指的内存D)从文件f中读取长度为n-1的字符串存入指针s所指的内存8.若有如下函数调用语句:sub(a,1,fun(b,c),d+c,(a+d,c*f));则在该函数调用语句中含有实参的个数是()A)5 B)7C)10 D)69.若要定义a为3×4的二维数组,正确的定义语句是()A)float a(3,4); B)float a[3][4];C)float a(3)(4); D)float a[3,4];10.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for (i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()A)11 B)19C)13 D)20第五套1.以下程序的输出结果是()#includemain (){int a,b,d=241;a=d/100%9b=(-1)&&(+1);printf("%d,%d,a,d"); }A)6,1 B)2,1C)6,0 D)2,02.关于if后一对圆括号中的表达式,以下叙述中正确的是()A)只能用逻辑表达式B)只能用关系表达式C)既可用逻辑表达式也可用关系表达式D)可用任意表达式3.有以下程序main(){ int a,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}程序运行后的输出结果是()A)7 B)8C)9 D)104.C语言中()A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环5.当a=1、b=3、c=5、d=4时,执行下面一段程序:if(a if(c elseif(a if(b elsex=3;elesx=6;elsex=7;程序执行后,x的值为()A)1 B)2C)3 D)66.设有如下的函数funct(x)float x;{ x*=x;printf("\n%d",x);return(x);}则函数的类型()A)与参数x的类型相同 B)voidC)int D)无法确定7.在C语言中,不适用于局部变量的存储类说明符是()A)auto B)registerC)static D)extern8.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()A)15 B)10C)6 D)39.有以下程序intb=2;int func(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf("%d\n",res);}程序运行后的输出结果是()A)4 B)6C)8 D)10第六套1.下面叙述正确的是()A)define和auto都不能定义为用户标识符B)可以把define和auto定义为用户标识符C)可以把define定义为用户标识符,但auto是C语言的关键字D)可以把auto定义为用户标识符,但define是C语言的关键字2.以下的for循环()for(x=0,y=0;(y!=123)&&(x<4);x++)A)是无限循环 B)循环次数不定C)执行4次 D)执行3次3.下述对C语言字符数组的描述中错误的是()A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较4.设有定义:int a,*p=&a,**pp= &p;,则与a=100;等价的语句为()A)**p=100; B)**pp=100;C)&*p=100; D)*pp=10;5.有以下程序int x=3;do {printf("%d",x-=2);}while(!(--x));程序运行后的输出结果是()A)1 B)30C)1-2 D)死循环6.执行下面程序的正确结果是()main(){ float a=1.9;switch(a){ case 0∶printf("0000");case 1∶printf("1111");case 2∶printf("3333");}printf("%f",a);}A)1.900000 B)111133331.900000C)33331.900000 D)00001111233331.9000007.对下述程序,正确的判断是()main (){ int a, b;scanf("%d,%d",&a,&b);if(a>b)a=b;b=a;else a++;b++;printf("%d,%d",a,b);}A)有语法错误不能通过编译B)若输入4,5则输出5,6C)若输入5,4则输出4,5D)若输入5,4则输出5,58.若有如下程序:sub(int n){intt;if(n==1)returnt=5;else t=sub(n-1)+3;returnt;}main(){printf("%d\n",sub(5));}则程序运行后的输出结果是()A)17 B)18C)19 D)209.下面各被调用函数首部书写正确的是()A)void sub(float x;float y);B)void sub(float x,y)C)void sub(float x,float y)D)void sub(float x,float y);10.设有如下程序:#include"string.h"main(){static char s1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()A)$8 B)@10C)$9 D)@9第七套1.以下程序运行后,输出结果是()#includess(char *s){char *p=s;while(*p)p++;return(p-s);}main(){char*a="abded";inti;i=ss(a);printf("%d\n",i);}A)8 B)7C)6 D)52.若有如下程序:int sub(){static int n=1;int x=1;x*=n;n++;return x;}main(){int n,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}则程序运行后的输出结果是()A)15 B)120C)34560 D)-309763.在C语言中,函数的隐含存储类别是()A)static B)autoC)extern D)register4.有以下程序:intf1(doublea){returna*a; }intf2(doublex,doubley){doublea,b;a=f1(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);…}变量w中的值是()A)5.21 B)5C)5.0 D)0.05.下面被调用函数sub的函数值的类型是()sub(float a){float b;b=a*a+1;return b;}A)单精度型B)双精度型C)空类型 D)整型6.若有以下定义语句:doublea[5];inti=0;能正确给a数组元素输入数据的语句是()A)scanf("%lf%lf%lf%lf%lf",a);B)for(i=0;i<=5;i++)scanf("%lf",a+i);C)while(i<5)scanf("%lf",&a[i++]);D)while(i<5)scanf("%lf",a+i);7.以下程序的输出结果是()main(){ charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss));}A)4,16 B)7,7C)16,16 D)4,78.以下说法正确的是()A)宏定义是C语句,所以要在行末加分号B)可以使用#undef命令来终止宏定义的作用域C)在进行宏定义时,宏定义不能层层置换D)对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换9.以下程序的输出结果是()#includemain(){struct stru{int a,b;char c[6];};printf("%d\n",sizeof(stru));}A)2 B)4C)8 D)1010.若有如下定义:int s[3];则下面表达式中不能代表数组元素s[1]的地址的是()A)&s[1] B)&s[0]+1C)s+1 D)s++第八套1.若以下对fun函数的调用是正确的:x=fun(fun(a,b,c),(a+b,a+c),a+b+c);则fun函数的形参个数为()A)3 B)4C)5 D)62.若有说明:int*p, m=5; n;,以下正确的程序段是()A)p=&m;scanf("%d",&p)B)p=&n;scanf("%d",&p)C)scanf("%d",&p)p=&n;D)p=&n;p=&m;3.以下程序调用findmax函数返回数组中的最大值findmax(int*a,int n){ int*p,*s;for(p=a,s=a;p-a if()s=p;return(*s);}main(){ intx[5]={12,21,13,6,18};printf("%d\n",findmax(x,5));}在下划线处应填入的是()A)p>s B)*p>*sC)a[p]>a[s] D)p-a>p-s4.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是()A)p=2*(int*)malloc(sizeof(int));B)p=(int*)calloc(2*sizeof(int));C)p=(int*)malloc(2* sizeof(int));D)p=2*(int*)calloc(sizeof(int));5.下列程序的输出结果是()main(){char *p1,*p2,str[50]="xyz";p1="abcd";p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);}A)xyabcAB B)abcABzC)Ababcz D)XycdBCD6.以下叙述中不正确的是()A)一个变量的作用域完全取决于变量定义语句的位置B)全局变量可以在函数以外的任何部位进行定义C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用D)一个变量说明为static存储类是为了限制其他编译单位的引用7.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符()A)~ B)&C)^ D)|8.fscanf函数的正确调用形式是()A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);9.以下程序的运行结果是()# define MAX 10int a[MAX],i;main(){ printf("\n");sub1();sub3(a);sub2();sub3(a);}sub2(){ int a[MAX],i,max;max=5;for(i=0;i }sub1(){for(i=0;i }sub3(int a[]){ int i;for(i=0;i printf("\n");}A)0 2 4 6 8 10 12 14 16 180 1 2 3 4B)0 1 2 3 40 2 4 6 8 10 12 14 16 18C)0 1 2 3 4 5 6 7 8 90 1 2 3 4D)0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18第一套答案:1.C 2.D 3.2 4.C 5.B 6.677第二套答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.B 第三套答案: 1.D 2.A 3.A 4.B 5.D 6.B 7.A 8.C 9.C 10.C 第四套答案:1.C 2.A 3.A 4.C 5.B 6.A 7.B 8.A 9.B 10.B 第五套答案:1.B 2.D 3.B 4.D 5.B 6.C 7.D 8.B 9.B第六套答案:1.C 2.C 3.C 4.B 5.C 6.B 7.A 8.A 9.C 10.D 第七套答案:1.D 2.B 3.C 4.C 5.D 6.C 7.A 8.B 9.D 10.D 第八套答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.D 9.D。

计算机二级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【解析】在数据流图中,用标有名字的箭头表示数据流。

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

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

国家二级C语言机试编译预处理和指针模拟试卷8_真题-无答案

国家二级C语言机试编译预处理和指针模拟试卷8_真题-无答案

国家二级C语言机试(编译预处理和指针)模拟试卷8(总分52,考试时间90分钟)1. 选择题1. 以下叙述中正确的是A. 在C语言中,预处理命令行都以”#”开头B. 预处理命令行必须位于C源程序的起始位置C. #include必须放在C程序的开头D. C语言的预处理不能实现宏定义和条件编译的功能2. 有以下程序,程序运行后的输出结果是#define PT 3.5;#define S(x)PT*x*x;main(){int a=1,b=2;printf("%4.1 f\n",S(a+b));}A. 31.5B. 7.5C. 程序有错无输出结果D. 14.03. 以下关于宏的叙述中正确的是A. 宏定义必须位于源程序中所有语句之前B. 宏名必须用大写字母表示C. 宏调用比函数调用耗费时间D. 宏替换没有数据类型限制4. 有以下程序,程序运行后的输出结果是#include #define S(x)4*(x)*x+1 void main() {int k=5,j=2;printf("%d\n",S(k+j));}A. 197B. 143C. 33D. 285. 设有宏定义:#define IsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是A. 判断m是否能被5和7整除B. 判断m被5或者7整除是否余1C. 判断m被5和7整除是否都余1D. 判断m是否能被5或者7整除6. 有以下程序,程序运行后的输出结果是#include #define SUB(a)(a)-(a) main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c:printf("%d\n",d);}A. .12B. 0C. 10D. .207. 有以下程序,程序运行后的输出结果是#include #define fix)x*x*x main(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);} A. 10,10 B. 10,64C. 64,10D. 64,648. 有下列程序,程序的运行结果是#include #define N 5 #define M N+1 #define fix)(x*M) main() {int i1,i2;il=ff2);i2=f(1+1);printf("%d%d\n",i1,i2);}A. 12 7B. 12 12C. 11 11D. 11 79. 以下叙述中错误的是A. 预处理命令行的最后不能以分号表示结束B. C程序对预处理命令行的处理是在程序执行的过程中进行的C. #define MAX是合法的宏定义命令行D. 在程序中凡是以“#”开始的语句行都是预处理命令行10. 若程序中有宏定义行:#define N 100则以下叙述中正确的是A. 宏定义行中定义了标识符N的值为整数100B. 上述宏定义行实现将100赋给标示符NC. 在运行时用100替换标识符ND. 在编译程序对C源程序进行预处理时用100替换标识符N11. 若有以下程序,则程序的输出结果是#define S(x)x*x #define T(x)S(x)*S(x) main(){int k=5,j=2;printf("%d,%d\n",S(kI+j),T(k+j));}A. 17,37B. 49,2401C. 17,289D. 49,28912. 有以下程序,程序运行后的输出结果是#include<stdio.h>#define N 2 #define M N+1 #define NUM(M+1)*M/2 main(){printf("%d\n",NUM);}A. 4B. 8C. 9D. 613. 有以下程序,程序运行后的输出结果是#include #define SUB(X,Y)(X+1)*Y main(){int a=3,b=4;printf("%d\n",SUB(a++,b++));}A. 20B. 12C. 16D. 2514. 下面选项中关于编译预处理的叙述正确的是A. 凡是以≠}号开头的行,都被称为编译预处理命令行B. 预处理命令行必须使用分号结尾C. 预处理命令行不能出现在程序的最后一行D. 预处理命令行的作用域是到最近的函数结束处15. 有以下程序,程序的输出结果是#include<stdio.h>#define SQR(X)X*X main(){ int a=10,k=2,m:1;a|=SQR(k+m)/SQR(k+m);printf("%d\n",a);} A. 0 B. 1C. 9D. 1016. 以下叙述中正确的是A. 在包含文件中,不得再包含其他文件B. #include命令行不能出现在程序文件的中间C. 在一个程序中,允许使用任意数量的#include命令行D. 虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接17. 有以下程序,程序的运行结果是#include #include int fun(int n) main() {int*p;{int a;p=(int*)malloc(sizeof(int));a=fun(10);*p=n;return*p;printf("%d\n",a+fun(10));} }A. 10B. 20C. 0D. 出错18. 有以下程序,程序运行后的输出结果是#include #include main() {int*a,*b,*c;a=b:c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf("%d,%d,%d\n",*a,*b,*c);}A. 2,2,3B. 3,3,3C. 1,2,3D. 1,1,319. 有以下程序,程序运行后的输出结果是void fun(int*p1,int*p2,int*s) {s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);} main(){int a[2]={1,2},b[2]={10,20},*s=a;fun(a,b,s);printf("%d\n",*s);}A. 10B. llC. 2D. 120. 有以下程序段int*p;p=_________malloc(sizeof(int));若要求使p指向一个int型的动态存储单元,在横线处应填入的是A. (int*)B. intC. int*D. (*int)21. 有以下程序,程序的输出结果是void fun(double*p1,double*p2,double*s) {s=(double*)calloc(1,sizeof(double));*s=*p1+*(p2+1):} main(){double a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;fun(a,b,s);printf("%5.2f\n",*s);} A. 1.10 B. 11.10C. 12.10D. 21.1022. 设有以下函数:void fim(int n,char,*s){……}则下面对函数指针的定义和赋值均正确的是A. void*pf();pf=fun;B. void(*pf)(int,char*);pf=fun;C. void*Pf();*pf=fun;D. void(*pf)(int,char);pf=&fun;23. 设有定义语句int(*f)(int);则以下叙述正确的是A. f是基类型为int的指针变量B. f是指向int类型一维数组的指针变量C. f是指向函数的指针变量,该函数具有一个int类型的形参D. f是函数名,该函数的返回值是基类型为int类型的地址24. 以下叙述中正确的是A. 指针变量只能通过求地址运算符(&)来获得地址值B. 语句“p=NULL;”与“p=\0;”是等价的语句C. “int*p1;int**p2;int*p3;”都是合法的定义指针变量的语句D. 语句p=NULL;执行后,指针p指向地址为0的存储单元25. 以下叙述中正确的是A. 函数的类型不能是指针类型B. 函数的形参类型不能是指针类型C. 基类型不同的指针变量可以相互混用D. 设有指针变量为“double*p”,则“p+1”将指针p移动8个字节26. 设有某函数的说明为int*func(int a[10],int n);则下列叙述中,正确的是A. 说明中的a[10]写成a[]或*a效果完全一样B. 形参a对应的实参只能是数组名C. func的函数体中不能对a进行移动指针(如a++)的操作D. 只有指向10个整数内存单元的指针,才能作为实参传给a。

国家二级C语言机试数据库设计基础模拟试卷8_真题-无答案

国家二级C语言机试数据库设计基础模拟试卷8_真题-无答案

国家二级C语言机试(数据库设计基础)模拟试卷8(总分56,考试时间90分钟)1. 选择题1. 定义学生选修课程的关系模式为SC(S#,Sn,Sd,Sa,C#,G)(其属性分别为学号、姓名、所在系、年龄、课程号和成绩);C(C#,Cn,P#)(其属性分别为课程号、课程名、先选课)。

关系模式SC的主键是A. S#B. C#C. S#,C#D. Sn,C#2. 数据库管理系统的基本功能不包括A. 数据库访问B. 数据库定义C. 数据库的建立和维护D. 数据库和网络中其他系统的通信3. 由关系R1和R2得到关系R3的操作是A. 等值连接B. 并C. 笛卡尔积D. 交4. 某图书集团数据库中有关系模式R(书店编号,书籍编号,库存数量,部门编号,部门负责人),其中要求①每个书店的每种书籍只在该书店的一个部门销售;②每个书店的每个部门只有一个负责人;③每个书店的每种书籍只有一个库存数量。

则关系模式R最高是A. 2NFB. 1NFC. 3NFD. BCNF5. 下列叙述中正确的是A. 数据库系统减少了数据冗余B. 经规范化后的数据库系统避免了一切冗余C. 数据库系统比文件系统能管理更多的数据D. 数据库系统中数据的一致性是指数据类型一致6. 每个学校有一名校长,且不同学校的校长可以是同一人,则实体学校和实体校长间的联系是A. 多对一B. 多对多C. 一对一D. 一对多7. 定义部门关系模式:部门(部门号,部门名,部门成员,部门总经理),使它不满足第一范式的属性是A. 部门名B. 部门成员C. 部门总经理D. 部门号8. 在关系数据库中,描述全局数据逻辑结构的是。

A. 内模式B. 用户模式C. 概念模式D. 物理模式9. 学校的每个社团都有一名团长,且一个同学可同时担任多个社团的团长,则实体团长和实体社团间的联系是A. 一对多B. 多对多C. 多对一D. 一对一10. 在关系模式A(S,SN,D)和B(D,CN,NM)中,关系A的主键是S,关系B的主键是D,则属性D在关系A中称为A. 外键B. 主键C. 超键D. 候选键11. 将数据库的结构划分成多个层次,是为了提高数据库的逻辑独立性和A. 物理独立性B. 操作独立性C. 安全性D. 管理规范性12. 学院的每个系都有一名系主任,且一个教师可同时担任多个系的系主任,则实体系主任和实体系间的联系是A. 一对多B. 多对多C. 多对一D. 一对一13. 定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)。

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

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

国家二级(C语言)笔试模拟试卷8(题后含答案及解析)题型有: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.设有下列二叉树:对此二叉树先序遍历的结果为A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA正确答案:C解析:二叉树的遍历分为先序,中序、后序三种不同方式.本题要求先序遍历,其遍历顺序应该为:访问根结点->,先序遍历左子树->先序遍历右子树。

按照定义,先序遍历序列是ABDECF,故答案为C。

4.下面描述中,不符合结构化程序设计风格的是A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B.注重提高程序的可读性C.模块只有一个入口和一个出口D.使用goto语句正确答案:D解析:在结构化程序设计中,应严格控制使用GOTO语句,必要时才可以使用,故答案为D。

5.下列哪个是面向对象程序设计不同于其他语言的主要特点?A.继承性B.消息传递C.多态性D.静态联编正确答案:A解析:继承是一个子类直接使用父类的所有属性和方法。

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

下半年全国计算机二级C语言考前模拟试题及答案

下半年全国计算机二级C语言考前模拟试题及答案无论是在学校还是在社会中,我们最不陌生的就是试题了,试题是命题者根据一定的考核需要编写出来的。

什么样的试题才是好试题呢?以下是我收集整理的2023下半年全国计算机二级C语言考前模拟试题及答案,仅供参考,大家一起来看看吧。

下半年全国计算机二级C语言考前模拟试题及答案11). 关于C语言的变量,以下叙述中错误的是( )A.所谓变量是指在程序运行过程中其值可以被改变的量B.变量所占的存储单元地址可以随时改变C.程序中用到的所有变量都必须先定义后才能使用D.由三条下划线构成的符号名是合法的变量名正确答案:B答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。

在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。

变量命名要符合标识符的规定,其中下划线是标识符的组成字符。

程序中所有变量都必须先定义后使用。

2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )A.(c==2)||(c==4)||(c==6)B.(c>=2 选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。

9). 以下结构体类型说明和变量定义中正确的是( )A.typedefstruct { int n; char c; } REC; REC t1,t2;B.structREC ; { int n; char c; }; REC t1,t2;C.typedefstruct REC; { int n=0; char c=′A′; } t1,t2;D.struct{ int n; char c; } REC; REC t1,t2;正确答案:A答案解析:定义结构体类型的一般形式为:struct 结构体名{成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D 中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。

全国计算机等级考试二级C语言笔试模拟试卷八

全国计算机等级考试二级C语言笔试模拟试卷八

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

(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)算法执行过程中所需要的存储空间(2)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(3)设有下列二叉树:对此二叉树前序遍历的结果为A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPY(4)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(5)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(6)下列不属于软件工程的3个要素的是A)工具B)过程C)方法D)环境(7)软件开发离不开系统环境资源的支持,其中必要的测试数据属于A)硬件资源B)通信资源C)支持软件D)辅助资源(8)下述关于数据库系统的叙述中正确的是A)数据库系统减少了数据冗余B)数据库系统避免了一切冗余C)数据库系统中数据的一致性是指数据类型一致D)数据库系统比文件系统能管理更多的数据(9)下列数据模型中,具有坚实理论基础的是A)层次模型B)网状模型C)关系模型D)以上3个都是(10)相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和A)可重用性差B)安全性差C)非持久性D)冗余性(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。

这属于算法的A)正当性B)可行性C)确定性D)有穷性(12)下列关于标识符的说法中错误的是A)合法的标识符是由字母、数字和下划线组成B)C语言的标识符中,大写字母和小写字母被认为是两个不同的字符C)C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符D)用户标识符与关键字不同时,程序在执行时将给出出错信息(13)判断char型变量cl是否为大写字母的正确表达式是A)′A′<=cl<=′Z′B)(cl>=A)&&(cl<=Z)C)(′A′>=cl)||(′Z′<=cl)D)(cl>=′A′)&&(cl<=′Z′)(14)有以下程序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);(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;(16)下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d\n",d*y);}A)3B)3.2C)0D)3.07(17)设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(18)以下程序执行后x的值是main(){ int x,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x); }A)252B)1C)0D)运行时出错,x无定值(19)有如下程序main(){ float x=2.0,y;if(x<0.0)y=0.0;else if(x>10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.000000(20)以下程序的输出结果是#include<stdio.h>main(){int a=15,b=21,m=0;switch(a%3){case 0:m++;break;case 1:m++;switch(b%2){ default:m++;case 0:m++;break; } }printf("%d\n",m);}A)1B)2C)3D)4(21)如下程序的输出结果是#include<stdio.h>main(){ char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}A)69825B)63825C)6385D)693825(22)下面程序的运行结果是#include<stdio.h>main(){int a=28,b;char s[10],*p;p=s;do{b=a%16;if(b<10) *p=b+48;else *p=b+55;p++;a=a/5;}while(a>0);*p=′\0′;puts(s);}A)10B)C2C)C51D)\0(23)下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A)helloB)helC)hloD)m(24)以下程序的输出结果是#include <stdio.h>void prt (int *x, int*y, int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){int a=10,b=40,c=20;prt (&a,&b,&c);prt (&a,&b,&c);}A)11,42, 31 B)11,41,20 C)11,21,40 D)11,41,2112,22,41 12,42,20 11,21,21 12,42,22(25)下列二维数组初始化语句中,正确且与语句float a[][3]={0,3,8,0,9};等价的是A)float a[2][]={{0,3,8},{0,9}};B)float a[][3]={0,3,8,0,9,0};C)float a[][3]={{0,3},{8,0},{9,0}};D)float a[2][]={{0,3,8},{0,9,0}};(26)以下程序输出的结果是#include<stdio.h>#include<string.h>main(){ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++) printf("%s\n",&w[k][k]);}A)ABCDFGHKLB)ABCEFGIJMC)EFGJKD)FGHKL(27)下面能正确进行字符串赋值操作的是A)char s[5]={"ABCDE"};B)char s[5]={′A′,′B′,′C′,′D′,′E′};C)char *s; s="ABCDE";D)char *s;scanf("%s",s);(28)有以下程序main(){int i,s=0,t[]={l,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是A)45B)20C)25D)36(29)以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){ int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p); }A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量(30)阅读下列程序,则在执行后,程序的运行结果为#include "stdio.h"#include "string.h"main(){ char a[30]="nice to meet you!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}A)nice to meet you youB)nice toC)meet you youD)nice to you(31)若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;则对数组元素的错误引用是A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)(32)设有下面的程序段:char s[]="china"; char*p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相同C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等(33)若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是A)(*p)max(a,b)B)*pmax(a,b)C)p=max(a,b)D)*p=max(a,b)(34)以下程序的运行结果是#define MAX(A,B) (A)>(B)?(A):(B)#define PRINT(Y) printf("Y=%d\t",Y)main(){ int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t); }A)Y=3B)存在语法错误C)Y=7D)Y=0(35)以下程序的功能是进行位运算main(){ unsigned char a,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序运行后的输出结果是A) 4 3B) 7 3C) 7 0D) 4 0(36)请选出以下程序的输出结果#include<stdio.h>main(){ int a[]={1,2,3,4},i;int x=0;for(i=0;i<4;i++){ sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int *s,y;{ static int t=3;y=s[t];t--; }A)1 2 3 4B)4 3 2 1C)0 0 0 0D)4 4 4 4(37)以下程序的输出结果是#include<stdio.h>struct st{ int x;int *y;}*p;int dt[4]={10,20,30,40};struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main(){ p=aa;printf("%d\n",++(p->x));}A)10B)11C)51D)60(38)以下scanf函数调用语句中对结构体变量成员的引用不正确的是struct pupil{ char name[20];int ageint sex;} pup[5],*p;p=pup;A)scanf("%s",pup[0].name);B)scanf("%d",&pup[0].age);C)scanf("%dT",&(p->sex));D)scanf("%d",p->age);(39)fwrite函数的一般调用形式是A)fwrite(buffer,count,size,fp);B)fwrite(fp,size,count,buffer);C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp);(40)函数rewind 的作用是A)使文件位置指针重新返回文件的开始位置B)将文件位置指针指向文件中所要求的特定位置C)使文件位置指针指向文件的末尾D)使文件位置指针自动移至下一个字符位置二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

2014年9月二级C语言程序设计模拟(8)试题及答案

2014年9月二级C语言程序设计模拟(8)试题及答案

2014年9月二级C语言程序设计模拟(8)试题及答案单项选择题1.下列关于栈和队列的描述中,正确的是( )。

A:栈是先进先出B:队列是先进后出C:队列允许在队头删除元素D:栈在栈顶删除元素参考答案: D 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 栈实际也是线性表,只不过是一种特殊的线性表。

栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。

队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。

2.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是( )。

A: ABCDEB: ECABDC: EACDBD: CDEAB参考答案: C 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A)和D)选项。

由于中序遍历中,元素B在元素根结点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉树的前序遍历序列是EACDB。

3.在数据流图中,带有箭头的线段表示的是( )。

A:控制流B:数据流C:模块调用D:事件驱动详细解答: 数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。

4.结构化程序设计的3种结构是( )。

A:顺序结构,分支结构,跳转结构B:顺序结构,选择结构,循环结构C:分支结构,选择结构,循环结构D:分支结构,跳转结构,循环结构参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。

下半年全国计算机二级C++考试模拟题及答案

下半年全国计算机二级C++考试模拟题及答案

下半年全国计算机二级C++考试模拟题及答案在学习和工作的日常里,我们都不可避免地要接触到试题,试题是命题者根据测试目标和测试事项编写出来的。

什么类型的试题才能有效帮助到我们呢?以下是我为大家整理的2023下半年全国计算机二级C++考试模拟题及答案,欢迎大家借鉴与参考,希望对大家有所帮助。

下半年全国计算机二级C++考试模拟题及答案1一、选择题1.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为()A.12B.13C.14D.15【参考答案】B2.下列叙述中,不属于结构化程序设计方法的主要原则的是()A.自顶向下B.由底向上C.模块化D.限制使用goto语句【参考答案】B3.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()A.PAD图B.N-S图C.结构图D.数据流图【参考答案】B4.下列叙述中,不属于数据库系统的是()A.数据库B.数据库管理系统C.数据库管理员D.数据库应用系统【参考答案】B5.视图设计一般有3种设计次序,下列不属于视图设计的是()A.自顶向下B.由外向内C.由内向外D.自底向上【参考答案】B6.栈通常采用的两种存储结构是()A.线性存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构【参考答案】A7.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是()A.黑箱测试法B.白箱测试法C.错误推测法D.安装测试法【参考答案】A8.下列选项中,不属于模块间耦合的是()A.数据耦合B.同构耦合C.异构耦合D.公用耦合【参考答案】C9.为用户与数据库系统提供接口的语言是()A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言【参考答案】C10.需求分析阶段的任务是确定()A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能【参考答案】D11.派生类继承基类的方式有()A.publicB.privateC.protectedD.以上都对【参考答案】D12.有以下程序#includevoid ss(char *s,char t){ while(*s)?{ if(*s==t) *s=t-′a′+′A′;s++; } }void main(){ char str1[100]=″abcddfefdbd″,c=′d′;? ss(str1,c);coutb)return a;elsereturn b;}void main(){int m,n;m=10,n=5;int max=Max(m,n);cout>,是属于【9】输入。

计算机二级C语言五套模拟卷与答案

计算机二级C语言五套模拟卷与答案

计算机二级C语言五套模拟卷及答案模拟试题一一、选择题(本大题30分,每小题2分)1.下列说法正确的是。

E) main函数必须放在C程序的开头F) main函数必须放在C程序的最后G) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的H) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。

A)整型实型字符型 B)整型数组指针C)数组结构体共用体 D)指针逻辑型空类型3.若有说明语句:char c= ‘\64’ ; 则变量C包含:。

A)1个字符 B)2个字符C)3个字符 D)说明不合法,C值不确定4.设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 35.C语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和 \ D)**6.能正确表示x的取值围在[0,100]和[-10,-5]的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= 。

A)2 B)3 C)4 D)无结果8.下面有关for循环的正确描述是。

全国计算机二级C 语言考试模拟题第八套

全国计算机二级C 语言考试模拟题第八套

全国计算机二级C语言考试模拟题第八套(1)线性表若采用链式存储结构时,要求内存中可用存储单元的地址A)必须是连续的B)部分地址必须是连续的C)一定是不连续的D)连续不连续都可以(2)在待排序的元素序列基本有序的前提下,效率最高的排序方法是A)冒泡排序B)选择排序C)快速排序D)归并排序(3)下列叙述中,错误的是A)数据的存储结构与数据处理的效率密切相关B)数据的存储结构与数据处理的效率无关C)数据的存储结构在计算机中所占的空间不一定是连续的D)一种数据的逻辑结构可以有多种存储结构(4)希尔排序属于A)交换排序B)归并排序C)选择排序D)插入排序(5)下列叙述中,不属于结构化分析方法的是A)面向数据流的结构化分析方法B)面向数据结构的Jackson方法C)面向数据结构的结构化数据系统开发方法D)面向对象的分析方法(6)详细设计的结果基本决定了最终程序的A)代码的规模B)运行速度C)质量D)可维护性(7)下列不属于静态测试方法的是A)代码检查B)白盒法C)静态结构分析D)代码质量度量(8)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是A)多对多B)一对一C)多对一D)一对多(9)下列关系运算的叙述中,正确的是A)投影、选择、连接是从二维表行的方向进行的运算B)并、交、差是从二维表的列的方向来进行运算C)投影、选择、连接是从二维表列的方向进行的运算D)以上3种说法都不对(10)关系数据库管理系统应能实现的专门的关系运算包括A)排序、索引、统计B)选择、投影、连接C)关联、更新、排序D)显示、打印、制表(11)用链表表示线性表的突出优点是【1】。

(12)子程序通常分为两类:【2】和函数,前者是命令的抽象,后者是为了求值。

(13)软件的【3】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

(14)对软件是否能达到用户所期望的要求的测试称为【4】。

国家二级C%2b%2b机试(类和对象)模拟试卷8.doc

国家二级C%2b%2b机试(类和对象)模拟试卷8.doc

家二级C++机试(类和对象)模拟试卷8控制面板臂W0洒分分:全部题型 1.选择题罪28 5题里:选择题答题120 时分限:钟剩余时间:调整字号:I.下列程序段中包含4个函数。

其中具有隐含this指针的是()。

int funl();class Test (public:int fun2();friend int fun3();static int fun4():I12 14 16 1820 A.funlB.fun2C.fun3D- fun4正确答案:B解析:this指针是成员函数所属对象的指针,它指向类对象的地址。

成员函数通过这个指针知道自己属于哪一个对象o this指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确的地表示出了成员函数当前操作的数据所属的对象。

2.下列关于this指针的描述中,正确的是()。

A.类的成员函数都有this指针B.类的友元函数都有this指针C.任何与类相关的函数都有this指针答题卡I A B C D2A B C D3 A B C D4A B C D5 A B C D6A B C D7A B C D8A B C D9 A B C D10A B C DII A B C D12A B C D13A B C D14A B C D15A B C D16A B C D17A B C D18A B C D19A B C D20A B CD21A B CD24 A B C D 25 A B C D 26 A B C DD.类的非静态成员函数都有this 指针正确答案:D 解iff : this 是成员函数所属对象的指针,它 指向类对象的地址。

成员函数通过这个指针可以知道自己 属于哪一个对象。

它隐藏于每个类的非静态成员函数中。

3. 有如卜程序:#inc 1 udc < iostrcam > using namespace std ; class Test {public :Test() (n+=2; |〜Test 。

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

一、选择题1.结构化程序设计的三种基本结构是()。

A)函数结构、分支结构、判断结构B)函数结构、嵌套结构、平行结构C)顺序结构、分支结构、循环结构D) 分支结构、循环结构、嵌套结构2.以下()是正确的浮点数。

A)e3 B).62 C)2e4.5 D)1233.若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是()。

A)x=x*3=2 B)x=(y==1) C)i=float(x) D)i%(-3)4.若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()。

A)7 B)8 C)9 D)105.已有如下定义和输入语句int a,b;scanf(“%d,%d”,&a,&b);若要求a、b的值分别为10和20,正确的数据输入是()。

A)10 20 B)10,20 C)a=10,b=20 D)10;206.若有定义:int x=3,y=4,z=5:则值为0的表达式是()。

A)’x’&&’y’B)x<=y C)x||y+z&&y-z D)!((x<y)&&!z||1)7.若有定义:int b=7;float a=2.5,c=4.7;表达式a+(b/2*(int)(a+c)/2)%4的值是 ( ). A)2.5 B)3.5 C)4.5 D)5.58.以下程序的运行结果是()。

void main(){int n=’c’;swithc(n++){default:printf(”error”); break;case ’a’:case ’b’: printf(”good”);break;case ’c’: printf(”pass”);case ’d’: printf(”warn”);}}A)pass B)ward C)pass warn D)error9.以下程序的运行结果是()。

void main(){int sum=0,item=0;while(item<5){item++;sum+=item;if(sum>=6) break;}printf(”%d\n”,sum);}A)10 B)15 C)6 D)710.下面程序段的运行结果是()。

int i=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]> 5);for(i=0;i<6;i++) printf(”%d”,a[i]);A)9 7 9 5 10 5 B)9 5 9 3 10 3 C)9 5 7 3 8 3 D)7 5 7 3 8 311.以下数组定义中,正确的是()。

A)int a[2][]={1,2,3,4,5}; B)int a[][2]={{0},{}};C)int a[2][2]={{1,2},{3}}; D)int a[][]={1,2,3,4};12.以下程序段运行后屏幕输出为()。

char str[80];strcpy(str,”hello”); printf(”%d”,strlen(str));A)5 B)6 C)7 D)8013. 下面程序的输出结果是()。

#include<stdio.h>int global=100;fun(){int global=5;return ++global;}void main(){ printf(“%d\n”,fun());}A)100 B)101 C)5 D)614.下面程序的输出结果是()#include<stdio.h>#define ONE 1#define TWO ONE+1#define THREE TWO+1void main(){printf(” %d\n”,THREE-ONE);}A)产生错误B)1 C)2 D)315.在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;当执行p++;后下列叙述错误的是()。

A)p=向高地址移了一个字节B)p与a+1等价C)语句printf(”%d”,*p);输出20 D)p指向数组元素a[1]16.下面程序的输出结果是()#include<stdio.h>void main(){char *str=”12345”,*ps=str+4;printf(”%c \n”,ps[-4]);}A)1 B)2 C)3 D)错误17.以下程序的运行结果是()。

#include<stdio.h>union Utype{int i;float f;};struct{char ch[2];int i;union Utpye u;}a;void main(){printf(”sizeof(a):%d\n”,sizeof(a));}A)5 B)6 C)7 D) 818. 若有如下定义,函数fun的功能是( )。

其中head指向链表首结点,整个链表结构如下图:int data;struct node *next;};void fun(struct node *head){struct node *t=head;while(t!=NULL){ if(t->data%2==0) printf(“%d”,t->data);t=t->next; }}A)遍历链表head,输出表中值为偶数的元素B)建立一个只有表头结点的链表headC)删除链表head中的第一个结点D)插入一个元素到链表head中19.若有以下类型说明,叙述正确的是()。

typedef struct{int num;char *name;int score;}STU,*PSTU;A)STU是变量名B)PSTU是变量名C)PSTU是指向结构体类型STU的指针类型名D)类型说明语句有错误20.对下面程序正确的描述是()。

#include<stdio.h>#include<stdlib.h>void main(){FILE *in,*out;if((in=fopen(“infile.txt”,”r”))==NULL){ printf(“cannot open infile\n”);exit(0);}if((in=fopen(“outfile.txt”,”w”))==NULL){ printf(“cannot open infile\n”);exit(0);}while(!feof(in)) fputc(fgetc(in),out);fclose(in);fclose(out);}A) 程序实现在屏幕上显示磁盘文件infile.txt的内容B) 程序实现将两个磁盘文件infile.txt和outfile.txt的内容合二为一C) 程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txtD) 程序实现将两个磁盘文件合并并在屏幕上输出二、改错题(共2小题,每题10分)1.程序cmody081.c,其功能是求一堆零件的总数(100到200之间)。

如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

void main(){int i;/**/for(i=100;i<200;i++);/**/if((i-2)%4==0)if(!((i-3)%7))if(i%9==5) printf(”%d\n ”,/**/ &I /**/);getch();}2 如 输入:23 输出:Original:a=2 b=3 Result a=3 b=2#include<stdio.h>/**/ void swap(int p1,int p2)/**/{int temp;temp=*p1;/**/p1=p2;/**/*p2=temp;}void main(){int a,b;printf(”Please input 2 number: \n ”);scanf(”%d%d ”,&a,&b);printf(”\nOriginal:a=%d b=%d\n ”,a,b);swap(&a,&b);printf(”\nResult:a=%d b=%d\n ”,a,b);getch();}三、填空题(共3小题,每题8分)1.补充程序Ccon081.c ,根据输入的整数m(m>=0)值,计算1m i i =∑#include<stdio.h>unsigned sum(unsigned n){unsigned i, /**/ /**/for(i=1;i<=n;i++) sum+=i;/**/ /**/}void main(){int m;clrscr();printf(”Please input a unsigned integer:”);scanf(“%d ”,&m);while(m<0){printf(”Please input a unsigned integer:”);scanf(“%d ”,&m);}printf(”\nThe sum is %d\n ”, /**/ /**/); getch();}2.补充程序Ccon082.c ,使其实现将一个字符串str 的内容反向存储。

#include<stdio.h>#include<string.h>void main(){int i,j;char str[]=”1234567”,/**/ /**/;for(i=0,/**/ /**/;i<j;i++,j--){k=str[i];str[i]=str[j];str[j]=k;}clrscr();printf(“%s\n”,str);getch();}3.补充程序Ccon083.c,实现将结构体数组mystudent中存储的各学生信息按其学号的升序排列,并输出排序后各个学生的信息。

#include<stdio.h>#include<string.h>typedef struct{int num;char name[20],sex[2];int age,score;}STU;STU mystudent[]={{1111,”Zhangqiang”,”m”,20,80},{2104,”Liminghong”,”w”,18,82},{3121,”Wangxingda”,”m”,21,78},{1456,”Wuminghong”,”w”,35,86}};void sort(STU* ps,int size){int i,flag,pass;/**/ /**/for(pass=1;pass<size;pass++){flag=0;for(i=0;i<size-pass;i++)if(/**/ /**/){flag+=1;temp=ps[i];ps[i]=ps[i+1];ps[i+1]=temp;}if(/**/ /**/) break;}}void main(){int i,size=sizeof(mystudent)/sizeof(STU);clrscr();printf(”Students\’information before sort:\n\n”);printf(”Number Name Age Sex Score\n\n”);for(i=0;i<size;i++)printf(”%-7d%s%10d\t%s%8d\n”,(mystudent+i)->num, (mystudent+i)->name,(mystudent+i)->age, (mystudent+i)->sex, (mystudent+i)->score);sort(mystudent,size);printf(”\nStudents\’information after sort:\n\n”);printf(”Number Name Age Sex Score\n\n”);for(i=0;i<size;i++)printf(”%-7d%s%5d\t%s%7d\n ”,(mystudent+i)->num, (mystudent+i)->name,(mystudent+i)->age, (mystudent+i)->sex, (mystudent+i)->score);getch();}四、编程题(共2小题,每题8分)1.打开程序cprog081.c ,完成其中的f()函数,使其计算:()()()202ln 20x x e x f x x x x ⎧+<⎪=⎨+≥⎪⎩ 如:输入:-1.2输出:f(-1.200)=0.241 输入:2.4输出:f(2.400)=6.902输入:6输出:f(6.000)=19.879 #include<stdio.h>#include<math.h>double f(float x){/**//**/}void main(){ float x;double y;printf (”Please input a number: \n ”);scanf(”%f ”,&x);y=f(x);printf (”f(%.3f)=%.3f\n ”,x,y);getch();}2. 打开程序cprog082.c ,完成其中的fun()函数,该函数将以指针数组形式存放的n 个串升序排列后输出。

相关文档
最新文档