二级C语言模拟考试题模拟4
国家二级(C语言)机试模拟试卷100(题后含答案及解析)
国家二级(C语言)机试模拟试卷100(题后含答案及解析)题型有:1. 选择题 2. 程序填空题 3. 程序修改题 4. 程序设计题选择题1.下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除正确答案:A解析:栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。
栈底元素最先人栈却最后被删除。
所以选择A。
2.下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确正确答案:C解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7正确答案:D解析:根据二叉树的基本性质3:在任意一棵二义树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二义树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统正确答案:A解析:软件按功能町以分为:应用软件、系统软件、支撑软件。
操作系统、编译程序、汇编程序、网络软件、数据库管理系统部属于系统软件。
所以B、C、D都是系统软件,只有A是应用软件。
5.结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOTO跳转C.选择(分支)结构D.重复(循环)结构正确答案:B解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(四)
全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(四)一、选择题(1)通常所说的主机主要包括A)CPU B)CPU和内存C)CPU、内存与外存 D)CPU、内存与硬盘(2)在微机系统中,最基本的输入输出模块BIOS存放在A)RAM中 B)ROM中 C)硬盘中 D)寄存器中(3)一个24*24点阵的汉字字形信息所占的字节数为A)2 B)24 C)32 D)72(4)bit的意思是A)字 B)字长 C)字节 D)二进制位(5)某学校的工资管理程序属于A)系统程序 B)应用程序C)工具软件 D)文字处理软件(6)与十六进制数BB等值的十进制数是A)187 B)188 C)185 D)186(7) 设一张软盘已染上病毒,能清除病毒的措施是A)删除该软盘上的所有文件 B)格式化该软盘C)删除该软盘上的所有可执行文件 C)删除该软盘上的所有批处理文件(8)一张3.5英寸双面高密度软盘片的容量为A)360KB B)720KB C)1.44MB D)1.2MB(9)与二进制小数0.1等值的十六进制小数为A)0.1 B)0.2 C)0.4 D)0.8(10)DOS系统的热启动与冷启动的不同之处为热启动时A)不检测键盘、处设接口与内存 B)不提示用户输入日期与时间C)不用装入文件 D)不能从软盘启动(11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令A)COPY K1+K2+K3 K4 B)COPY K1+K2+K3+K4C)COPY K1+K2+K3+K4 K4 D)COPY K4+K1+K2+K3(12)下列文件名中可以作为批处理文件名的是A)AUTOEXC.C B)AUTOEXECC)ATX.BAT D)AUTO.TXT(13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令A)DIR \ PRN B)TYPE \ PRNC)DIR PRN C)TYPE PRN(14)设可执行文件 ABC.EXE 所需要的本该由键盘输入的数据已经按格式存放在文件XYZ 中,并要求执行结果放在文件 XYZ 中输入数据的后面. 下列命令中正确的是A) ABC XYZ B) ABC XYZC) ABC <XYZ(15)设当前盘中某一目录路径为 \A\B\C,当前目录为\A.下列命令中肯定出错的是A)MD \A\C B) CD C) MD \A\B\A D) MD \A\B(16)设 A 盘的目录结构如下:根目录│┌─────┬┴──┬───┬───┬────┐│ │ │ │ │ │ABC D1子目录 DX.C Q.DAT D2子目录A.FOR│ │┌────┬─┴──┬───┐┌───┬───┐│ │ │ │ │ │ │B.PAS D3子目录 Y.BAS A.C A1.C D4子目录XYZ.C│┌────┬────┬────┐│ │ │ │QR.C NA.C A.TXT B.C如果当前盘为 C 盘,A 盘的当前目录为\D2,则下列对 A 盘上文件QR.C 的指定中,合法的是A)\D2\D4\QR.C B)D4\QR.CC)A:D4\QR.C D)A:D2\D4\QR.C(17)下列DOS命令中,有错误的是A)TYPE AAB.FORCON B)TYPE ?AB.FORC)COPY *.C CON D)COPY CON PRN(18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C 盘根目录下的文件XYZ.TXT的后面,正确的命令是A)COPY C:\XYZ.TXT+AB1.TXTB)COPY AB1.TXTC:\XYZ.TXTC)TYPE AB1.TXTC:\XYZ.TXTD)AB1.TXT+C:\XYZ.TXTC:\XYZ.TXT(19)下列命令中合法的是A)DISKCOPY A: A: B)DISKCOPY A: C:C)DISKCOPY C: A: D)DISKCOPY C: D:(20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A.要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令A)COPY \*.C *.FOR B)COPY *.C \A\*.FORC)COPY *.FOR \*.C D)COPY \A\*.C *.FOR(21)下列不正确的转义字符是A)'\\' B)'\" C)'074' D)'\0'(22)若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(23)表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)(24)设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3 C) 2 D) 1(25)设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A) 10 B) 20 C) 40 D) 30(26)下列可作为C语言赋值语句的是A) x=3,y=5 B) a=b=6C) i--; D) y=int(x);(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A) 不定值 B) 2 C) 1 D) 0(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100y=765.12(29)设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y<=50;y++){ if(x=10))break;if (x%2==1){ x+=5; continue;}x-=3;}A) 2 B) 4 C) 6 D) 8(30)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度(31)以下叙述中不正确的是A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(32)假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a; a++; }while (b--<0);A) 9 B) -2 C) -1 D) 8(33)设j为int型变量,则下面for循环语句的执行结果是for( j=10;j3;j--){ if(j%3)j--;--j; --j;printf("%d ",j);}A) 6 3 B) 7 4 C) 6 2 D) 7 3(34)设有以下宏定义:#define N 3#define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为A) 出错 B) 42 C) 48 D)54(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int 型变量,则不能正确执行的语句是A)k=*P1+*P2; B)p2=k;C)P1=P2; D)K=*P1 * (*P2);(36)设有如下定义:int arr[]={6,7,8,9,10};int * ptr;则下列程序段的输出结果为ptr=arr;* (ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));A)8,10 B)6,8 C)7,9 D)6,10(37)以下程序的输出结果是main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)23(38)执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A) 15 B) 14 C) 13 D) 12(39)有以下程序段char arr[]="ABCDE";char *ptr;for(ptr=arr;ptr<arr+5;ptr++)printf("%s\n",ptr);输出结果是A) ABCD B) A C) E D)ABCDEB D BCDEC C CDED B DEE A E(40)有以下程序main(){ int x,i;for(i=1;i<=50;i++){ x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf("%d,i);}}输出结果是A) 28 B) 27 C) 42 D) 41(41)有下列程序#include<stdio.hmain(){ union{ int k;char i[2];} *s,a;s=&a;s-i[0]=0x39; s-i[1]=0x38;printf("%x\n",s-k);}输出结果是A) 3839 B) 3938 C) 380039 D) 390038(42)有以下程序#include <stdio.hmain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A) 2,1 B) 3,2 C) 4,3 D) 2,-1(43)设有如下定义:int (*ptr)*();则以下叙述中正确的是A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是一个函数名,该函数的返回值是指向int型数据的指针(44)有以下程序#include <stdio.hstruct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n",(*p).name); }main(){struct stu students[3]={ {9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18} };fun(students+2);}输出结果是A) Zhang B)Zhao C) Wang D) 18(45)设有以下说明和定义:typedef union{ long i; int k[5]; char c; }DATE; struct date{ int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A) 26 B) 30 C) 18 D) 8(46)有以下程序main(){ char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));}输出结果是A) gm B) rg C) or D) ga(47)有以下程序viod fun (int a,int b,int c){ a=456; b=567; c=678;}main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d\n",c,d);}输出结果是A)30,20,10 B)10,20,30C)456,567,678 D)678,567,456(48)有以下程序int fun(int x,int y,int *cp,int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是A)50,30 B)30,J50 C)80,-20 D)80,20(49)有以下程序main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i<j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11(50)有以下程序#include "atdio.h"int abc(int u,intv);main (){ int a=24,b=16,c;c=abc(a,b);printf('%d\n",c);}int abc(int u,int v){ int w;while(v){ w=u%v; u=v; v=w }return u;}输出结果是A) 6 B) 7 C) 8 D) 9二、填空题(1)自动批自理文件名为_______.(2)DOS命令分为内部命令与外部命令,COMP命令属于_______命令.(3)设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容.这一条DOS命令应为__ _ (4)要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为__ _(5)设DOS外部命令文件所在的路径均已用PATH命令打通.现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为___(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___ 1.0+x/y(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___for(i=0,j=10;i<=j;i++,j--) k=i+j;(8)设有以下定义的语句:int a[3][2]={10,20,30,40,50,60}, (*p)[2];p=a;则 *(*(p+2)+1)值为___(9)以下程序的输出结果是___#include <stdio.hint fun(int x,int y){ static int m=0,i=2;i+=m+1;m=i+x+y;return m}main(){ int j=4,m=1,k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}(10)函数fun的功能是:使一个字符串按逆序存放,请填空void fun (char str[]){ char m; int i,j;for(i=0,j=strlen(str);i<____;i++,j--){ m=str[i];str[i]=__ _;str[j-1]=m;}printf("%s\n",str);}(11)以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空.#include"ctype.h"#include"stdio.h"main(){ char str[81],*sptr;int i;for(i=0;i<80;i++){ str[i]=getchar();if(str[i]=='\n') break;}str[i]=____;sptr=str;while(*sptr) putchar(*sptr____(13));}(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1.请填空.#includemain(){ char str[100],str2[100],c;int i,s;printf("\n input string 1:\n"); gest(str1);printf("\n input string 2:\n"); gest(str2);i=0;while((strl[i]==str2[i]&&(str1[i]!=____))i++;s=____;printf("%d\n",s);}(13)以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请填空.#include<stdio.hmain(){ FILE *fp;char str[100]; int i=0;if((fp=fopen("text.txt",__ __))==NULL){ printf("can't open this file.\n");exit(0);}printf("input astring:\n"); gest(str);while (str[i]){ if(str[i]='a'&&str[i]<='z')str[i]=___ _;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("test.txt",____);fgets(str,100,fp);printf("%s\n",str);fclose(fp);}(14) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空.#include.<stdio.hmain(){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int c[64],d,i=0,base;long n;printf("enter a number:\n"); scanf("%ld",&n);printf("enter new base:\n"); scanf("%d",&base);do{ c[i]=____;i++; n=n/base;} while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c",b____;}}_答案一、选择题(1)B (2)B (3)D (4)D (5)B(6)A (7)B (8)C (9)D (10)A(11)D (12)C (13)A (14)B (15)D(16)C (17)B (18)A (19)A (20)A(21)C (22)D (23)A (24)D (25)B(26)C (27)C (28)B (29)C (30)C(31)D (32)D (33)B (34)C (35)B(36)D (37)B (38)A (39)D (40)D(41)A (42)A (43)C (44)B (45)B(46)D (47)A (48)C (49)B (50)C二、填空题(1)AUTOEXEC.BAT(2)外部(答外部命令不扣分)(3)COPY A:*.DAT PRN(在 COPY 后面与A:*.DAT后面都至少要有一个空格)(4)RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR(在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格) (5)ATTRIB+R WST.TXT(在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIBWST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)(6)1.0或1(7)10(8)60(9)8,17(10)strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1str[j-1]或*(str+j-1)(11)'\0' 或0++(12) '\0'或0strl[i]-str2[i](13) "w"或"w+"或"wt"或"w+t"或"""wt+"str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'"r"或"r+"或"r+t"或"rt+"(14)n%base[d]。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机C语言是学计算机设计的根底语言,同学们学得怎么样了呢?为同学分享最新的C语言考试题库,希望能帮助到大家学习!1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
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.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
下半年计算机二级考试C语言模拟试题及答案四
下半年计算机二级考试C语言模拟试题及答案四2015年下半年计算机二级考试C语言模拟试题及答案(四)一、选择题1.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是(B)。
A、一个存储区,存放要读的数据项B、一个指针,指向要读入数据的存放地址C、一个文件指针,指向要读的文件D、一个整数,代表要读入的数据项总数2.结构体类型的定义允许嵌套是指(A)。
A、成员是已经或正在定义的结构体型B、定义多个结构体型C、成员可以重名D、结构体型可以派生3.对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(B)。
A、&B、.C、*D、->4.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。
A、&t[1]B、t[3]C、&t[3][2]D、t[2]5.若有说明:int *p,m=5,n;以下正确的程序段是(D)。
A、scanf("%d",&n);*p=n;B、p=&n;scanf("%d",*p)C、p=&n;scanf("%d",&p);D、p=&n;*p=m;6.若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为(D)。
A、无确定值B、a的地址C、512D、5117.下列说法中正确的是(B ).A、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.C语言程序中,若对函数类型未加声明,则函数的类型系统默认为(C)。
A、voidB、doubleC、intD、char8.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(A)。
青少年软件编程(C语言)等级考试试卷(二级)202312
青少年软件编程(C语言)等级考试试卷(四级)2023-12202312C语言四级真题编程题1.移动路线桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。
小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。
蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。
对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:-------------------|(2,1)|(2,2)|(2,3)|-------------------|(1,1)|(1,2)|(1,3)|-------------------蚂蚁共有3种移动路线:路线1:(1,1) → (1,2) → (1,3) → (2,3)路线2:(1,1) → (1,2) → (2,2) → (2,3)路线3:(1,1) → (2,1) → (2,2) → (2,3)时间限制:1000内存限制:65536输入输入只有一行,包括两个整数m和n(0输出输出只有一行,为不同的移动路线的数目。
样例输入2 3样例输出32.公共子序列我们称序列Z = < z1, z2, ..., zk >是序列X = < x1, x2, ..., xm >的子序列当且仅当存在严格上升的序列< i1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。
比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。
全国计算机等级考试二级C语言笔试模拟试卷四及答案解析
全国计算机等级考试二级C语言笔试模拟试卷四及答案解析一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行算法需要的内存空间(2)在结构化程序设计中,模块划分的原则是A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中,不属于测试的特征的是A)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)测试的经济性(4)下面关于对象概念的描述中,错误的是A)对象就是C语言中的结构体变量B)对象代表着正在创建的系统中的一个实体C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的(5)下列关于队列的叙述中正确的是A)在队列中只能插入数据B)在队列中只能删除数据C)队列是先进先出的线性表D)队列是先进后出的线性表(6)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为A)n+1C)2nD)n/2(8)设有如下三个关系表R S TA B C A B Cm 1 3 m 1 3n n 1 3下列操作中正确的是A) T=R∩SB) T=R∪SC) T=R×SD) T=R/S(9)下列叙述中,正确的是A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B)用E-R图只能表示实体集之间一对一的联系C)用E-R图只能表示实体集之间一对多的联系D)用E-R图表示的概念数据模型只能转换为关系数据模型(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后(12)以下叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)下列选项可以正确表示字符型常量的是A)′\r′B)"a"D)296(14)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)C函数定义的格式是K&R格式(15)设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
计算机二级《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语言五套模拟卷及答案模拟试题一一、选择题(本大题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语言)模拟考试题试题1(每小题3分,共12分)阅读下列程序说明和程序,在没小题提供的若干可选答案中,挑选一个正确答案.【程序说明】求1-2/3+3/5-4/7+5/9-…的前20项之和.运行示例:sum = 0.386453【程序】#includevoid main(){int i,b=1;double s;(1)for(i=1;i<=20;i++){if(i%2)s=s+ (2) ;elses=s- (2) ;(3)}printf("(4)",s);}【供选择的答案】(1)A、S=0 B、S=1C、S=-1D、S=2(2)A、i/b B、double(i)/double(b)C、b=b+2;D、(double)i/(double)b(3)A、; B、b=2*i-1;C、b=1.0*b;D、b=b+2;(4)A、"sum=%d\n" B、"s=%c\n"C、"sum=%f\n"D、"s=%s\n"试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题供的若干可选答案中,挑选一个正确答案.【程序说明】下列程序运行时,输入n个学生的姓名和3门功课成绩,然后根据3门功课的平均成绩从高分到低分显示每个学生的姓名,3门功课成绩以及平均成绩.【程序】#include(5)void main(){ struct student { char name[9]; int a[3]; float v; } temp,*s;int i,j,k;scanf("%d",&n);s=(student*)malloc(n*sizeof(student));for( (6) ) {scanf("%s",s[i].name); s[i].v=0;for(j=0;j<3;j++) { scanf("%d",&s[i].a[j]); (7) ; }}for(i=0;is[k].v) k=j;temp=s[i]; s[i]=s[k]; s[k]=temp;}for(i=0;i s[i].name,s[i].a[0],s[i].a[1],s[i].a[2],s[i].v);}(5) A,#include B,#includeC,#include D,#include(6) A,i=1;i<=n;i++ B,i=1;i C,i=0;i0;--i(7) A,s[i].v=s[i].v+s[i].a[j] B,s[i].v+=s[i].a[j]/3C,s+i->v=s+i->v+s+i->a[j]/3 D,s+i->v+=s+i->a[j]/3(8) A,j=i-1;j C,j=i+1;j试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题供的若干可选答案中,挑选一个正确答案.【程序说明】从键盘输入一批以 -1结束的整数,将其中的奇数写入当前目录下的文本文件res.txt. #include#includevoid main(){ int x;(9) ;if((fp=fopen("res.txt","w"))==NULL) {printf("不能打开文件");exit(0);}scanf("%d", &x);while( (10) ){if(x%2!=0) (11) ;(12) ;}fclose(fp);}(9) A,FILE fp B,FILE *fpC,file fp D,file *fp(10) A,x == -1 B,feof(fp)C,!feof(fp) D,x!=-1(11) A,fprintf(fp, "%d ", x) B,printf( "%d ", x)C,fprintf("%d ", x, fp) D,break(12) A,printf("%d ", x) B,fscanf(fp,"%d", &x)C,fprintf("%d ", x, fp) D,scanf("%d", &x)试题4(每小题3分,共12分)阅读下列程序并回答问题,在每个小题提供的若干可选答案中,挑选一个正确的答案. 【程序】#include "stdio.h"void main( ){ int j, k, n, s, a[6][6];scanf("%d",&n);for(k=0; k for(j=0; j a[k][j]=j*n+k;printf("a[0][1]=%d\n", a[0][1]);s=0;for (k=0; k s +=a[k][k];printf("sum1=%d\n", s);for (k=0; k s +=a[n-k-1][k];printf("sum2=%d\n", s);for (k=0; k s +=a[k][2];printf("sum3=%d\n", s);}(13)程序运行时,输入3后,第一行输出____A a[1][0]=6B a[0][1]=6C a[1][0]=3D a[0][1]=3(14) 程序运行时,输入3后,第二行输出______A sum1=22B sum1=21C sum1=12D sum1=11(15) 程序运行时,输入6后,第一行输出______A sum2=210B sum2=211C sum2=200D sum2=120(16) 程序运行时,输入6后,第二行输出______A sum3=279B sum3=927C sum3=297D sum3=277试题5(每小题3分,共12分)阅读下列程序并回答问题,在每个小题提供的若干可选答案中,挑选一个正确的答案. 【程序】#includevoid main(){int i=0,n;char s[10]="95682h01";n=0;for(i=0;s[i]!=’\0’;i++)if(s[i]=’0’){n=n*10+(s[i]-’0’);printf("%d\n",n);}elsebreak;}(17)程序运行时,第2行输出____(17)____.A,9 B,95 C,5 D,59(18)程序运行时,第3行输出____(18)____.A,956 B,659 C,965 D,96(19)程序运行时,第4行输出____(19)____.A,9586 B,5896 C,5698 D,9568(20)程序运行时,第5行输出____(20)____.A,92568 B,95682 C,68295 D,58629试题6(每小题3分,共12分)#includestruct student{char * name;char *sex;int age;float score;};void initial(struct student st[], char *xm[ ], char *xb[ ],int nl[],float cj[]){ int i;for (i=0; i<4; i++){st[i].name = xm[(i+3)%4];st[i].sex = xb[(i+3)%4];st[i].age = nl[(i+3)%4];st[i].score = cj[(i+3)%4];}}void show(struct student st[]){ int i;printf("学生信息如下:\n");for (i=0; i<4; i++)printf("姓名:%s\t性别:%s\t年龄:%d\t成绩:%f\n",st[i].name,st[i].sex,st[i].age,st[i].score); }void main( ){ struct student st[4];char * xm[ ]={"张三", "李四","小周","小吴"};char *xb[ ]={"男", "男","女","女"};int nl[]={18,17,17,18};float cj[]={85,86,80,84};initial(st, xm, xb,nl,cj);show (st);}(21)程序运行时,第1行输出____(21)____.A,姓名:小吴性别:女年龄:18 成绩:84.000000B,姓名:李四性别:男年龄:17 成绩:86.000000C,姓名:张三性别:男年龄:18 成绩:85.000000D,姓名:小周性别:女年龄:17 成绩:80.000000(22)程序运行时,第2行输出____(22)____.A,姓名:小吴性别:女年龄:18 成绩:84.000000B,姓名:李四性别:男年龄:17 成绩:86.000000C,姓名:张三性别:男年龄:18 成绩:85.000000D,姓名:小周性别:女年龄:17 成绩:80.000000(23)程序运行时,第3行输出____(23)____.A,姓名:小吴性别:女年龄:18 成绩:84.000000B,姓名:李四性别:男年龄:17 成绩:86.000000C,姓名:张三性别:男年龄:18 成绩:85.000000D,姓名:小周性别:女年龄:17 成绩:80.000000(24)程序运行时,第4行输出____(24)____.A,姓名:小吴性别:女年龄:18 成绩:84.000000B,姓名:李四性别:男年龄:17 成绩:86.000000C,姓名:张三性别:男年龄:18 成绩:85.000000D,姓名:小周性别:女年龄:17 成绩:80.000000试题7 (14分)编写程序,求出数组a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出.试题8 (14分)编写程序,找出100~999之间所有的Armstrong数.所谓Armstrong数是指这个3位数各位上数字的立方和等于自身.例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数.。
国家二级C语言机试(操作题)模拟试卷404(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷404(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。
例如,主函数中给出了4名学生的数据,则程序运行的结果为:学号:N1002 学号:N1006 共有2位学生有不及格科目请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 typedef struct3 {char num[8];4 double score[2];5 /**********found**********/6 }_(1)__;7 int fun(STU std[],int n)8 { int i,k=0;9 for(i=0;i<n;i++)10 /**********found**********/11 if( std[i].score[0]<60__(2)__std[i].score[1]<60)12 { k++;printf (‘‘学号:%s’’,std[i].num);}13 /**********found**********/14 return __(3)__;15 }16 main( )17 {STU std[4]={ ‘‘N1001’’,76.5,82.0,’’N1002’’,53.5,73.0,’’N1005’’,80.5,66.0,’’N1006’’,81.0,56.0};18 printf(‘‘\n共有%d位学生有不及格科目\n’’,fun(std,4) };19 }正确答案:(1)STU (2)‖(3)k解析:第一空:“{……}(1);”这一空出现在定义结构体时,这里使用了typedef就是很明显地要声明结构体类型,而这里则是要填写结构体类型名。
全国计算机二级C语言考试模拟题
全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。
A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。
A、!B、&&C、||D、<3、求字符串长度的函数是( D )。
A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。
char x[5]=“ab\0c\0”;printf("%s",x);说明:“\0”中的“0”是数字零。
A、abB、abcC、ab\0D、ab\0c\05、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是( D )。
A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。
A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。
A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是( D )。
#include<stdio.h>#define F(y) 8-yvoid main(void){int x,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。
#include<stdio.h>struct{int x,y;} a;void main(void){int x,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60 B 、10 C、0 D、2010、语句fopen(“file.dat”,”r”); 的功能是(A)。
A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是( D )。
《二级C语言》模拟考试题+参考答案
《二级C语言》模拟考试题+参考答案1、设二叉树如下:则前序遍历为()。
A、ABDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH答案:A2、下面概念中,不属于面向对象方法的是()。
A、继承B、类C、对象D、过程调用答案:D3、下列叙述中正确的是()。
A、break语句只能用于switch语句B、break语句必须与switch语句中的case配对使用C、在switch语句中,不一定使用break语句D、在switch语句中,必须使用default答案:C4、以下程序段中,循环次数不超过10的是()。
A、int i=10do{i=i+1}whilei<0B、int i=6do{i-=2}whilei!=1C、int i=int i=5do{i+=1}whilei>0D、int i=1do{i+=2}whilei!=10答案:A5、对图书进行编目时,图书有如下属性:ISBN书号,书名,作者,出版社,出版日期。
能作为关键字的是()。
A、ISBN书号B、书名C、作者,出版社D、出版社,出版日期答案:A6、下列不属于数据库设计任务的是()。
A、设计数据库物理结构B、设计数据库概论结构C、设计数据库逻辑结构D、设计数据库应用结构答案:D7、一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出的顺序是()。
A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA答案:B8、以下不能用于实型数据的运算符是()。
A、+B、%C、*D、/答案:B9、若要实现total=1+2+3+4+5求和,以下程序段错误的是()。
A、int i=0,total=0whilei<5 { i+=1total+=i}B、int i=1,total=0whilei<=5 { total+=ii+=1}C、int i=0,total=0whilei<=5 { total+=ii+=1}D、int i=1,total=1whilei<5 { total+=ii+=1}答案:D10、有以下定义 inta; long b; double x,y; 则以下选项中正确的表达式是()。
国家二级C语言机试(C语言基础知识)模拟试卷4(题后含答案及解析)
国家二级C语言机试(C语言基础知识)模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.以下叙述中错误的是A.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B.用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中C.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D.C语言源程序经编译后生成后缀为.obj的目标程序正确答案:C解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。
由高级语言编写的程序称为”源程序”,把由二进制代码表示的程序称为”目标程序”。
C语言编写的源程序就是一ASCⅡ的形式存放在文本文件中的。
c源程序经过c编译程序编译之后生成一个后缀为.obi的二进制文件(称为目标文件),然后由称为”连接程序”(Link)的软件,把此,obi文件与C语言提供的各种库函数连接起来生成一个后缀为.ExE的可执行文件。
知识模块:C语言基础知识2.以下叙述中错误的是A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输入C.算法正确的程序可以有零个输出D.算法正确的程序对于相同的输入一定有相同的结果正确答案:C解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。
一个算法应该具有以下5个特征:①有穷性。
一.爪算法包含的操作步骤应该是有限的。
也就是说,在执行若T个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。
②确定性。
算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。
③可行性。
算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。
④有零个或多个输入。
在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。
⑤有一个或多个输出。
算法的目的是为了求”解”,这些”解”只有通过输出才能得到。
历年全国计算机等级考试二级C语言笔试模拟题及答案
(11)以下叙述中正确的是A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所⽤数据结构C.程序设计的任务就是确定所⽤算法D.以上三种说法都不完整(12)以下选项中,能⽤作⽤户标识符的是A.voidB.8_8C._0_D.unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输⼊2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产⽣错误,其出错原因是A.定义语句出错,case是关键字,不能⽤作⽤户⾃定义标识符B.定义语句出错,printF不能⽤作⽤户⾃定义标识符C.定义语句⽆错,scanf不能作为输⼊函数使⽤D.定义语句⽆错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A.0B.3C.4D.5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A.-20B.-10C.0D.10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运⾏后的输出结果是A.0,0B.1,0C.3,2D.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)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,C.;}程序运⾏后的输出结果是A.3B.5C.7D.9(19)以下程序段中,与语句: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;D.if(a>B. k=1;else if(b>C.k=1;else k=0;20)有以下程序#includemain(){ 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(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运⾏后的输出结果是A.0 2B.1 3C.5 7D.1 2(22)有以下定义语句,编译时会出现编译错误的是A.char a=’a’;B.char a=’\n’;C.char a=’aa’;D.char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运⾏后的输出结果是A.E,68B.D,69C.E,DD.输出⽆定值(24)有以下程序#includep=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运⾏后的输出结果是A.32B.12C.21D.22(25)以下函数findmax拟实现在数组中查找值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i{ max=MIN;if(maxreturn max;}造成错误的原因是A.定义语句int i,max;中max未赋初值B.赋值语句max=MIN;中,不应给max赋MIN值C.语句if(maxD.赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ 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,2B.1,2,2,1C.2,1,2,1D.2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A.p=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运⾏后的输出结果是A.9,One*WorldB.9,One*DreamC.10,One*DreamD.10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A.3 3 4 4B.2 0 5 0C.3 0 4 0D.0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运⾏后的输出结果是A.7,4B.4,10C.8,8D.10,10(31)下⾯是有关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.viod *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运⾏以后的输出结果是A.7B.8C.9D.10(35)有以下程序#include#define f(x) x*x*xs=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运⾏后的输出结果是A.10,64B.10,10C.64,10D.64,64(36)下⾯结构体的定义语句中,错误的是A.struct ord {int x;int y;int z;}; struct ord a;B.struct ord {int x;int y;int z;} struct ord a;C.struct ord {int x;int y;int z;} a;D.struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向⼀个字符串的是A.char str[ ]=”string”;c=str;B.scanf(“%s”,C.;C.c=getchar();D.*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.C.;}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运⾏后的输出结果是A.1001,ZhangDa,1098.0B.1001,ZhangDa,1202.0C.1001,ChangRong,1098.0D.1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A.16B.8C.4D.2(40)下列关于C语⾔⽂件的叙述中正确的是A.⽂件由⼀系列数据依次排列组成,只能构成⼆进制⽂件B.⽂件由结构序列组成,可以构成⼆进制⽂件或⽂本⽂件C.⽂件由数据序列组成,可以构成⼆进制⽂件或⽂本⽂件D.⽂件由字符序列组成,其类型只能是⽂本⽂件⼆、填空题(每空2分,共30分)(1)某⼆叉树有5个度为2的结点以及3个度为1的结点,则该⼆叉树中共有【1】个结点。
全国计算机等级考试2019年二级C语言程序设计模拟试题4_真含答案与解析)-交互96
全国计算机等级考试2019年二级C语言程序设计模拟试题4(总分100, 做题时间120分钟)选择题(每题 1 分,共 40 分)1.设栈的顺序存储空间为 S(0: 49),栈底指针 bottom=49,栈顶指针top=30(指向栈顶元素)。
则栈中的元素个数为()。
SSS_SINGLE_SELA30B29C20D19分值: 1答案:C栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。
在内存中,栈的增大方向是递减,元素依次存储在单元 30: 49 中,个数为: 49-30+1=20 个。
2.设数据元素的集合 D={1, 2, 3, 4, 5} ,则满足下列关系 R 的数据结构中为线性结构的是()。
SSS_SINGLE_SELAR={(1, 2),(3, 4),(5, 1) }BR={(1, 3),(4, 1),(3, 2),(5, 4) }CR={(1, 2),(2, 3),(4, 5) }DR={(1, 3),(2, 4),(3, 5) }分值: 1答案:B一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构。
不同时满足以上两个条件的数据结构就称为非线性结构。
A 项中有两个根节点 3 和 5,错误; B 项根节点为 5,排列顺序为 54132,正确; C 项有两个根节点 1 和4,错误; D 项有两个根节点 1 和 2,错误。
3.下列叙述中错误的是()。
SSS_SINGLE_SELA在带链队列中,队头指针和队尾指针都是在动态变化的B在带链栈中,栈顶指针和栈底指针都是在动态变化的C在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D在带链队列中,队头指针和队尾指针可以指向同一个位置分值: 1答案:B带链的队列就是用一个单链表来表示队列,队列中的每一个元素对应链表中的一个节点,在入队和退队过程中,队头指针和队尾指针都是在动态变化的,A 项叙述正确,循环队列中当队列满或者空时,队头指针和队尾指针指向同一个位置, D 项叙述正确。
计算机二级C语言模拟考试题
计算机二级C语言模拟考试题2016年计算机二级C语言模拟考试题为帮助同学们更好复习C语言,yjbys店铺汇集了计算机二级C语言的考试题及答案,希望能帮助到大家!函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1,c2,c3返回主函数。
例如:当n=123114350时,结果应该为: c1=3 c2=1 c3=2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#includeint c1,c2,c3;void fun(long n){ c1 = c2 = c3 = 0;while (n) {switch(___1___){case 1: c1++;___2___;case 2: c2++;___3___;case 3: c3++;}n /= 10;}}main(){ long n=123114350L;fun(n);printf("\nThe result :\n");printf("n=%ld c1=%d c2=%d c3=%d\n",n,c1,c2,c3);}解题思路:第一处:取个位数上的数,所以n%10就可以得到个位数。
第二处:switch条件判断中,满足条件做好后,必须使用break 语句跳出选择体,所以应填: break。
第三处:同第二处。
***************************************************给定程序MODI1.C中函数fun的功能是: 统计一个无符号整数中各位数字值为零的个数, 通过形参传回主函数;并把该整数中各位上最大的.数字值作为函数值返回。
例如, 若输入无符号整数30800, 则数字值为零的个数为3, 各位上数字值最大的是8。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
国家二级C语言(C语言程序设计)机试模拟试卷4(题后含答案及解析)
国家二级C语言(C语言程序设计)机试模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.以下能正确定义且赋初值的语句是A.int n1=n2=10:B.char c=32;C.float f+1.1:D.double x=12.3E2.5;正确答案:B解析:本题主要考查变量的定义和赋值,C语言中变量的定义形式为:类型说明符变量名=初始值:选项A)中。
n1和n2只能单独赋初值;选项B)正确,定义了一个字符变量c,初值为32;选项C错误,初值设置自身不能参与运算;选项D)中字母E后面的指数必须是整数。
知识模块:C语言程序设计2.以下选项中,合法的是A.char name[10];name=“char”;B.char strl[5]=”pass”,str2[6];str2=str1;C.char str3[]:{‘d’,’e’,’b’,’u’,’g’,’\0’};D.char str4;str4:”hello world”;正确答案:C解析:本题考查字符数组。
选项A)定义了一个字符数组name,接下来直接给name赋值字符串是错误的;选项B)定义了两个字符串数组str1和str2.str1和str2表示两个字符串的首地址,直接把str1赋值给str2错误;选项C)是正确的;选项D)定义了一个字符变量str4,给字符变量赋值字符串是错误的。
知识模块:C语言程序设计3.有以下程序段int k=0,a=1,b=2,c=3;k:a<b?b:a;k=k>c?c:k;执行程序段后,k的值是A.3B.2C.1D.0正确答案:B解析:本题主要考查条件表达式。
k=a<b?b:a中a<b为真,因此k的值为b,即k=2。
k=k>c?c:k中k>c为假,k的值为2,知识模块:C语言程序设计4.有如下程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);其输出结果是A.123.141593B.12,3.141593C.123.1415930D.123.141593正确答案:D解析:本题考查printf语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试 二级C 模拟试题4一、选择题(每题2分,共计70分)1.在深度为5的满二叉树中,叶子结点的个数为A )32B )31C )16D )15A B C D2.若某二叉树的前序遍历访问顺序是abdgcefh ,中序遍历访问顺序是dgbaechf ,则其后序遍历的结点访问顺序是A )bdgcefhaB )gdbecfhaC )bdgaechfD )gdbehfcaA B C D3.一些重要的程序语言(如C 语言和Pascal 语言)允许过程的递归调用。
而实现递归 调用中的存储分配通常用A )栈B )堆C )数组D )链表A B C D4.软件工程的理论和技术性研究的内容主要包括软件开发技术和A)消除软件危机B)软件工程管理C)程序设计自动化D)实现软件可重用A B C D5.开发软件时对提高开发人员工作效率至关重要的是A)操作系统的资源管理功能B)先进的软件开发工具和环境C)程序人员的数量D)计算机的并行处理能力A B C D6.在软件测试设计中,软件测试的主要目的是A)实验性运行软件B)证明软件正确C)找出软件中全部错误D)发现软件错误而执行程序A B C D7.数据处理的最小单位是A)数据B)数据元素C)数据项D)数据结构A B C D8.索引属于A)模式B)内模式C)外模式D)概念模式A B C D9.下述关于数据库系统的叙述中正确的是A)数据库系统减少了数据冗余B)数据库系统避免了一切冗余C)数据库系统中数据的一致性是指数据类型一致D)数据库系统比文件系统能管理更多的数据A B C D10.数据库系统的核心是A)数据库B)数据库管理系统C)模拟模型D)软件工程A B C D11.C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后A B C D12.下列数据中,不合法的C语言实型数据的是A)0.123B)123e3C)2.1e3.5D)789.0A B C D13.下面4个选项中,均是不合法的用户标识符的选项是A)AP_0doB)floatla0_AC)b-agotointD)_123tempintA B C D14.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)intB)floatC)doubleD)不确定A B C D15.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是A)a>=10 or a<=0B)a>=0|a<=10C)a>=10 &&a<=0D)a>=10‖a<=0A B C D16.设以下变量均为int类型,表达式的值不为7的是A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)A B C D17.若有说明:int *p,m=5,n;以下正确的程序段是A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p)C)scanf("%d",&n);*p=n;D)p=&n;*p=m;A B C D18.若变量a是int类型,并执行了语句:a=′A′+1.6;,则正确的叙述是A)a的值是字符CB)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符′A′的ASCII值加上1A B C D19.有如下程序main(){int a=2,b=-1,c=2;if(a<b)if(b<0)c=0;else c++;printf("%d\n",c);}该程序的输出结果是A)0B)1C)2D)3A B C D20.有如下程序main(){int x=23;do{ printf("%d",x--);} while(!x);}该程序的执行结果是A)321B)23C)不输出任何内容D)陷入死循环A B C D21.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,在划线处应填入的选项是#include <stdio.h>main(){int i;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if()printf("%d",i);}A)i%9=5B)i%9!=5C)(i-5)%9!=0D)(i-5)%9==0A B C D22.若变量c为char类型,能正确判断出c为小写字母的表达式是A)′a′<=c<=′z′B)(c>=′a′)||(c<=′z′)C)(′a′<=c)and(′z′>=c)D)(c>=′a′)&&(c<=′z′)A B C D23.下面程序段的运行结果是char a[]="lanuage",*p;p=a;while(*p!=′u′){printf("%c",*p-32);p++;}A)LANGUAGEB)languageC)LAND)langUAGEA B C D24.下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67B)0C)字符′C′的地址D)字符′C′A B C D25.以下不正确的定义语句是A)double x[5]={2.0,4.0,6.0,8.0,10.0};B)int y[5.3]={0,1,3,5,7,9};C)char c1[]={′1′, ′2′, ′3′, ′4′, ′5′};D)char c2[]={′\x10′, ′\xa′, ′\x8′};A B C D26.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))A B C D27.当说明一个结构体变量时系统分配给它的内存是A)各成员所需内存量的总和B)结构中第一个成员所需内存量C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量A B C D28.有以下程序fun(int x,int y,int z){ z=x*y;}main(){int a=4,b=2,c=6;fun(a,b,c);printf("%d",c);}程序运行后的输出结果是A)16B)6C)8D)12A B C D29.函数fun的返回值是fun(char *a,char *b){int num=0,n=0;while(*(a+num)!=′\0′)num++;while(b[n]){*(a+num)=b[n];num++;n++;} return num;}A)字符串a的长度B)字符串b的长度C)字符串a和b的长度之差D)字符串a 和b的长度之和A B C D30.以下叙述中不正确的是A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)宏替换不占用运行时间,只占编译时间D)在以下定义是正确的:#define PI 3.1415926;A B C D31.下列程序的输出结果是main(){int a[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}A)4B)22C)24D)46A B C D32.下面程序段的运行结果是char *p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD"))); A)8B)12C)4D)7A B C D33.下列函数的运行结果是main(){int i=2,p;int j,k;j=i;k=++i;p=f(j,k);printf("%d",p);}int f(int a,int b){int c;if(a>b)c=1;else if(a==b)c=0;else c=-1;return(c);}A)-1B)1C)2D)编译出错,无法运行A B C D34.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项A B C D35.有如下程序#define N2#define MN+1#define NUM2*M+1main(){int i;for(i=1;i<=NUM;i++)printf("%d\n",i);}该程序中的for循环执行的次数是A)5B)6C)7D)8A B C D二、填空题(每空2分,共计30分)1.在树形结构中,树根结点没有【1】。
2.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【2】的设计方法。
3.面向对象的模型中,最基本的概念是对象和【3】。
4.软件设计模块化的目的是【4】。
5.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【5】和物理数据模型。
main (){int a=2,b=3,c=4;a*=16+(b++)-(++c);printf("%d",a);}7.若变量n中的值为24,则print()函数共输出【7】行,最后一行有【8】个数。
void print (int n,int aa[]){int i;for (i=1; i<1;i++){printf ("%6d", aa[i]);if(!(i%5))printf ("\n");}printf ("\n");}8.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【9】。
for(i=0, j=10; i<=j; i++, j--)k=i+j;9.下面函数的功能是找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。