第四套二级C语言模拟题
国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!试题程序:1 #include<Stdio.H>2 #define N 53 typedef struct student {4 long sno;5 char name[10];6 float score[3];7 }STU;8 void fun(char*filename,STU n)9 {FILE*fp;10 /*********found*********/11 fp=fopen(【1】,”rb+”);12 /*********found*********/13 fseek(【2】,-(long)sizeof(STU),SEEK END);14 /*********found*********/15 fwrite(&n,sizeof(STU),1,【3】);16 fclose(fP);17 }18 main( )19 {STU t[N]={{10001,”MaChao”,91,92,77},{10002,”CaoKai”,75,60,88},{10003,”LiSi”,85,70,78),{10004,”FangFang”,90,82,87},{10005,”ZhangSan”,95,80,88)};20 STU n={10006,”ZhaoSi”,55,70,68},SS[N];21 int i,j;FILE*fP;22 fp=fopen(“student.dat”,”wb”);23 fwrite(t,sizeof(STU),N,fp);24 fclose(fp);25 fp=fopen(“student.da”,”rb”);26 freacl(ss,sizeof(STU),N,fp);27 fclose(fp);28 print;f(“\nThe original data:\n\n”);29 for(j=0;j<N;j++)30 {printf(“\nNo:%ld Name:%一8s Scores:”,ss[j].sno,ss[j].name);31 for(i=0;i<3;i++)32 printf(“%6.2f”,ss[j].score[i]);33 printf(“\n”);34 }35 fun(“student.dat”,n);36 printf(“\nThe data after modif-ing:\n\n”);37 fp=fopen(“student.dat”,”rb”);38 fread(ss,Sizeof(STU),N,fp);39 fclose(fp);40 for(j=0;j<N;j++)41 {printf(“\nNo:%ld Name:%-8s Scores:”,ss[j].sno,ss[j].name);42 for(i=0;i<3;i++)43 printf(“%6.2f”,ss[j].score[i]);44 printf(“\n”);45 }46 }正确答案:(1)filename(2)fp(3)fp解析:填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开,因而本空填写filename。
国家二级(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语言(数组)机试模拟试卷4(题后含答案及解析)
国家二级C语言(数组)机试模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)正确答案:D解析:没有A选项的引用形式。
*与&放在一起作用抵消,但x[10]下标10超出了数组下标范围,所以B选项错误。
最大只能引用到x[9],而*(pt+i)表示引用指针pt所指元素后的第i个元素,所以C选项错误,最大只能为*(pt+9)。
D 选项正确。
知识模块:数组2.有以下程序:#include<stdio.h>main( ){int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是( )。
A.20B.25C.45D.36正确答案:B解析:统计1~9这9个数中的奇数和,此题考查指向数组的指针。
C语言规定数组名代表数组的首地址,也就是第一个元素的地址,因此*(t+i)代表数组的第i+1个元素。
程序的运行结果是1+3+5+7+9=25。
知识模块:数组3.有以下程序:#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++)e[s[i]]++;for(i=1;i <5;i++)printf(“%d”,c[i]);printf(“\n”);}程序的运行结果是( )。
A.2 3 4 4B.4 3 3 2C.1 2 3 4D.1 1 2 3正确答案:B解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2,因此B选项正确。
知识模块:数组4.下列定义数组的语句中正确的是( )。
全国计算机二级C语言考试模拟题第四套
全国计算机二级C语言考试模拟题第四套(1)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A)log2n B)n2C)O(n1.5)D)n(n-1)/2(2)算法分析的目的是A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进(3)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是A)每个元素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件(4)在单链表中,增加头结点的目的是A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现(5)软件工程的出现是由于A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(6)软件开发离不开系统环境资源的支持,其中必要的测试数据属于A)硬件资源B)通信资源C)支持软件D)辅助资源(7)在数据流图(DFD)中,带有名字的箭头表示A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向(8)分布式数据库系统不具有的特点是A)数据分布性和逻辑整体性C)分布性B)位置透明性和复制透明性D)数据冗余(9)关系表中的每一横行称为一个A)元组B)字段C)属性D)码(10)下列数据模型中,具有坚实理论基础的是A)层次模型B)网状模型C)关系模型D)以上3个都是(11)在算法正确的前提下,评价一个算法的两个标准是【1】。
(12)将代数式转换成程序设计中的表达式为【2】。
(13)软件危机出现于60年代末,为了解决软件危机,人们提出了【3】的原理来设计软件,这就是软件工程诞生的基础。
(14)【4】是数据库设计的核心。
(15)在关系模型中,把数据看成一个二维表,每一个二维表称为一个【5】。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机二级《C语言》模拟试题及答案1、以下语句的输出结果是( )。
int a=-1,b=4,k;k=(+ +a<0)&&!(b - -<=0);printf("%d,%d,%d\n",k,a,b);A. 1,0,4B. 1,0,3C. 0,0,3D. 0,0,42、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A. xyabcABB. abcABzC. ABabczD. xycdBCD3、执行下面的程序后,a的值是( )。
#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a); }A. 10B. 1C. 9D. 04、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2B. P+(i-1)*2来源:考试大C. P+(i-1)D. P+i5、下列程序执行后输出的结果是( )。
int d=1;fun (int p){ int d=5;d + =p + +;printf("%d,",d); }main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d); }A. 8, 4B. 9, 6C. 9, 4D. 8, 56、表达式:10!=9的值是( )。
A. trueB. 非零值C. 0D. 17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
国家二级C语言机试(操作题)模拟试卷480(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷480(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。
ss所指字符串数组中共有M个字符串,且串长小于N。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构! 试题程序:#include <stdio.h >#include <string.h >#define M 5#define N 20int fun(char(*ss)[N],int*n){ int i,k=0,fen=N;/*********found*********/ for(i=0;i <【1】;i++) { fen=str1en(ss[i]);if(i==0) *n=1en;/*********found*********/ if(fen【2】*n) {*n=fen;k=i;} }/*********found*********/ return(【3】);} main( ) {char ss[M][N]={“shang hai”,”guangzhou”,”beijing”,”tianjirig”,”chongqing”);int n,k,i ;printf(“\nThe original strings aEe:\n”);for(i=0;i <M;i++)puts(ss[i]);k=fun(ss,&n);printf(“\nThe length ofshortest string is:%d\n”,n);printf(“\nThe shortest string is:%s\n”,ss[k]);}正确答案:(1)M(2)<(3)k解析:本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。
二级c语言器模考试题和答案
二级c语言器模考试题和答案**二级C语言模拟考试题和答案**一、选择题(每题2分,共40分)1. 下列哪个选项是C语言的关键字?A. intB. INTC. IntD. Integer**答案:A**2. C语言中,哪个函数用于输入一个字符?A. putchar()B. getc()C. scanf()D. getchar()**答案:D**3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!'"D. "Hello, World!"**答案:A**4. C语言中,以下哪个选项是合法的整型常量?A. 0x1AB. 1.2E3C. 0177D. 0b1010**答案:C**5. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. _variableD. variable-name**答案:B**6. C语言中,以下哪个选项是合法的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array;**答案:A**7. C语言中,以下哪个选项是合法的函数声明?A. void myFunction();B. int myFunction;C. int myFunction();D. void myFunction int x;**答案:C**8. C语言中,以下哪个选项是合法的循环语句?A. do { ... } while (condition);B. while { ... } (condition);C. for { ... } (condition);D. repeat { ... } until (condition);**答案:A**9. C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int ptr*;C. int *ptr[];D. int (*ptr)();**答案:A**10. C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI 3.14159**答案:A**二、填空题(每题2分,共20分)1. 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语言)等级考试试卷(二级)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语言》模拟试题及答案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语言程序设计)机试模拟试卷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语句。
C语言试题,二级C语言试题
二级 C 语言程序设计模拟试题(一)一、单项选择题。
(每小题 1 分,共 20 分)1、一个 C 语言程序是由( B )组成。
A) 一个函数 B) 一个或若干个函数 C) 一个过程D) 一个过程或若干个过程知识点: C 语言程序的结构2 、 C 语言用( D )表示逻辑真值。
A) true B) T C) 整型值 0 D) 非 0 整型值知识点:数据类型3、如果程序中有 #include " 文件名" 则意味着( A )。
A) 将"文件名 "所指的那个文件的全部内容,在此命令行出现的这一点上,插 入源程序B) 指定标准输入输出 C) 宏定义一个函数D) 条件编译说明 知识点:编译预处理4、为一个结构体变量分配存储空间时,其所占容量为(B )所占容量A) 结构体中第一个成员所占容量容量B) 结构体中所有成员所占C) 结构体中所有成员中所占容量最大者D) 结构体中最后一个成员知识点:结构体5、如果int *px ,*py ;则可用{temp=*px ;*px=*py ;*py 的交换。
其中temp 应该说明为( A )。
A) int temp B) int &temp C) int *temp知识点:指针6、于合法的 c 语言长整型常量是( A )。
A) 12L B) 6887273 C) 5E12 6887273知识点:数据类型7、下列程序输出正确的是( A )。
main (){ int a=-1 ,b=1 ,c;c= ( a++<=0 )&&!((b--<=0));printf( “%d,%d,%d ” ,a,b,c);}A) 0,0,1 B) -1,1,1 C) 0,0,0 知识点:逻辑运算符8、已知E的ASCII 码是69,则执行printf( “%c”,'D' 是( B )。
A) 66 B) A C) B 知识点:数据类型与自动转换9、段名访问的方式是( A ) *py=temp} 实现*px 和int **temp D)D) (long )D) 0,1,0 -‘8'+ '5');的结果D) EA) 结构名.位段名B) 位段名C) 结构名D) *& 位段名知识点:位段10 、有字符数组a,则正确的输入语句是( C )。
全国计算机二级C语言模拟测试【含详细解析】 (4)
全国计算机二级C语言模拟测试卷【附带详细解析】@乡村教师胡劲1.设循环队列为Q(1:m),其初始状态为front=rear=m。
经过一系列入队与退队运算后,front=20,rear=15。
现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为A. 5B. 6C. m-5D. m-6正确答案:D你的答案:解析:【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,比较次数为m-6次,D选项正确。
2.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为A. EFGDCBAB. DCBEFGAC. BCDGFEAD. DCBGFEA正确答案:D你的答案:解析:【解析】二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
二叉树的前序序列为ABCDEFG,A为根节点。
中序序列为DCBAEFG,可知DCB为左子树节点,EFG为右子树节点。
同理B为C父节点,C 为D父节点,且CD均为B的同侧子树节点。
同理E为F根节点,F为G根节点,且FG 为E同侧子树节点。
二叉树的后序序列为DCBGFEA,D选项正确。
3.下列叙述中正确的是A. 有两个指针域的链表一定是二叉树的存储结构B. 有多个指针域的链表一定是非线性结构C. 有多个指针域的链表有可能是线性结构D. 只有一个根结点的数据结构一定是线性结构正确答案:C你的答案:解析:【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,称为线性表。
全国计算机二级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语言 模拟题 第四套
第四套一、编程题:4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
# include <conio.h># include <stdio.h>void fun(char *tt, int pp[]){}main(){ char aa[1000];int bb[26], k, n;clrscr() ;printf("\nPlease enter a char string:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26 ; k++)printf("%d",bb[k]);printf("\n");}7.请编写一个函数int fun(int*s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:876 675 896 10l 30l 40l 980 43l 451 777 ,则输出结果为:6,980。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
# include <conio.h># include <stdio.h>void fun(int *s, int t , int *k){}main( ){int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;clrscr( ) ;fun(a,10,&k);printf("%d, %d\n", k, a[k]);}二、改错题:25.下列给定程序中函数fun的功能是:计算n!。
国家二级C语言机试(操作题)模拟试卷800(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷800(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.下列给定程序中,函数fun的功能是:将N×N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。
例如,若N=3,有下列矩阵:1 2 34 5 67 8 9交换后为:3 2 14 5 69 8 7请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#define N 4/* * * * * * found * * * * * */void fun(int____1____,int n)int i,s:/* * * * * * found * * * * * */for(____2____;i+ +){s=t[i][i];t[i][i]=t[i][n—i—1];/* * * * * * found * * * * * */t[i][n—1—i]=____3____;}}main( ){int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;printf(″\nThe origina array:\n″);for(i=0;i<N;i+ +)for(j=0;j<N;j+ +)printf(″%d″,t[i][j]);printf(″\n″);}fun(t,N);printf(″\nThe result is:\n″);for(i=0;i<N;i+ +){for(j=0;j<N;j+ +)printf(″%d″,t[i][j]);printf(″\n″);}正确答案:(1)t[][N] (2)i=0;i<N (3)s解析:本题考查:函数定义;for循环语句;数组元素的引用和赋值;变量值交换算法。
国家二级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语言(数据结构与运算)机试模拟试卷4(题后含答案及解析)
国家二级C语言(数据结构与运算)机试模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.下列各序列中不是堆的是A.(91,85,53,36,47,30,24,12)B.(91,85,53,47,36,30,24,12)C.(47,91,53,85,30,12,24,36)D.(91,85,53,47,30,12,24,36)正确答案:C解析:堆可以看成一棵完全二叉树:任一根节点>=左右孩子(或者<=),(大的叫大根堆,小的叫小根堆)。
注意一个堆中的这种性质有一致性,不能既有大于又有小于情况存在。
此题可以这么做,把结点按照完全二叉树画出来就一目了然了。
这个题目很明显91是最大的根,而选项C是“左根右”的排序,那么91的左边只有47,其他都在右边,而右边无法按照此顺序排列,所以选项C 不是堆。
知识模块:数据结构与运算2.深度为5的完全二叉树的结点数不可能是A.15B.16C.17D.18正确答案:A解析:对于满二叉树,叶子结点的数目等于2n-1,n为深度,这里就是2的5-1=4次方,就是16。
所以选项A为正确答案。
知识模块:数据结构与运算3.有二叉树如下图所示:则前序序列为A.ABDEGCFHB.DBGEAFHCC.DGEBHFCAD.ABCDEFGH正确答案:A解析:前序遍历首先访问根结点然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
故选项A正确,选项B为中序遍历,选项C为后序遍历,选项D不正确。
知识模块:数据结构与运算4.下列叙述中正确的是A.循环队列是顺序存储结构B.循环队列是链式存储结构C.循环队列是非线性结构D.循环队列的插入运算不会发生溢出现象正确答案:A解析:循环队列属于队列的特例和栈同属于线性结构,所以选项C不正确。
在顺序队列中,由于数组空间不够而产生的溢出叫真溢出;顺序队列因多次入队列和出队列操作后出现的有存储空间但不能进行入队列操作的溢出称为假溢出;假溢出是由于队尾rear的值和队头front的值不能由所定义数组下界值自动转为数组上界值而产生的,解决的办法是把顺序队列所使用的存储空间构造成一个逻辑上首尾相连的循环队列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国高等学校(安徽考区)计算机水平考试2016模拟题(二级C语言)第四套模拟一、单项选择题1:按照计算机应用领域分类,学校使用的成绩管理系统属于_______。
A. 实时控制B. 计算机辅助设计C. 数据处理D. 科学计算参考答案:C2:下面关于计算机系统的叙述中,完整的计算机系统是指______。
A. 计算机的硬件系统B. 计算机上配置的操作系统C. 计算机的软件系统D. 由硬件系统和软件系统组成参考答案:D3微型计算机的微处理芯片上集成的主要是______。
A. 控制器和运算器B. 内存和控制器C. 控制器和存储器D. 运算器和I/O接口参考答案:A4:Windows的对话框窗口不可以______。
A. 关闭B. 移动C. 任意改变大小D. 最小化参考答案:C5:某用户在域名为的邮件服务器上申请了一个账号,账号名为xing,那么该用户的电子邮件地址为______。
A. @xingB. %xingC. xing%D. xing@参考答案:D6:下列对C语言程序的描述中,正确的是_______。
A. C语言程序总是从第一个定义的函数开始执行B. C语言程序总是从最后一个定义的函数开始执行C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分参考答案:C7:设有char ch='\\';,则变量ch包含______个字符。
A. 1B. 2C. 3D. 4参考答案:A8:以下选项中合法的字符常量是____________。
A. '\101'B. '\97'C. '\xyz'D. '\019'参考答案:A9:下面用户标识符中合法的是____________。
A. iPhone#B. 13aC. charD. _int参考答案:D10:已知int c1=5,c2=2,c3;,则执行c3=c1/c2后,c3的值是_______。
A. 5B. 2.5C. 3D. 2参考答案:D11:设有定义int b=0;,表达式_______与其它表达式的值不相同。
A. b+=1B. b++D. b+1参考答案:B12:执行语句int a=8;a+=a-=a*a;后,变量a的值是______。
A. -240B. 64C. 112D. -112参考答案:D13:若a、i和j都是int型变量,则执行语句a=(i=4,j=16);后a的值为_______。
A. 4B. 16C. 20D. 12参考答案:B14:已知int x=10;float y=20;double z=30;,则表达式(int)(x+y)-z的数据类型是______。
B. floatC. doubleD. 无法确定参考答案:C15:下列运算符中优先级最高的是_______。
A. <B. +C. &&D. ||参考答案:B16:C语言中基本数据类型包括_______。
A. 整型、实型、逻辑型B. 整型、字符型、逻辑型C. 整型、实型、字符型D. 字符型、实型、逻辑型参考答案:C17:已知inta,b,c;,若有scanf("a=%d,b=%d,c=%d",&a,&b,&c);,为使变量a的值为1,b的值为2,c的值为3,从键盘输入数据的正确形式是_______。
A. 123B. 1,2,3C. a=1 b=2 c=3D. a=1,b=2,c=3参考答案:D18:下列程序的输出结果是______。
#include<stdio.h>int x=3,y=5;void main( ){int x=0;x=x+y;printf("%d",x);}A. 3B. 4C. 5D. 8参考答案:C19:有定义int x=1,y=2,z=3;,执行下列程序段后,输出的结果是_______。
if(x>y) z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);A. 1,2,3B. 2,3,3C. 2,3,1D. 2,3,2参考答案:B20:执行以下程序段后,则输出的结果是______。
int a=1;switch(a){case 1: printf("你好");case 2: printf("再见"); break;default : printf("晚安");}A. 你好B. 再见C. 晚安D. 你好再见参考答案:D21:在C语言中,用_______表示逻辑真。
A. 1B. 非0的数C. 非1的数D. 0参考答案:A22:若i为整型变量,则下列循环体执行次数是_______。
for(i=2;i==0;) printf("%d\n",i--);A. 2次B. 1次C. 0次D. 无限次参考答案:C23:while(leap)和下列_______等价。
A. while (leap!=0)B. while (5)C. while (leap==0)D. while (0)参考答案:A24:下列程序段中循环体语句_______。
int y=15;printf("%d",--y);do{printf("%d",--y);}while(!y);A. 一次也不执行B. 执行一次C. 有语法错误D. 执行无限次参考答案:B25:在C语言中,表示结束本层循环的语句是_______。
A. extern语句B. break语句C. continue语句D. end语句参考答案:B26:下列数组定义及初始化中,正确的是_______。
A. inta[]="string";B. inta[5]={0, 1, 2, 3, 4, 5};C. char a="string";D. inta[]={0, 1, 2, 3, 4, 5};参考答案:D27:若有int a[ ]={1,2,3,4,5,6,7};char c1= 'b',c2= '2';,则下列表达式值不等于2的是______。
A. a[1]B. 'd'-c1C. a['3'-c2]D. c2-0参考答案:D28:已知int a[3][2]={1,2,3,4,5,6};,则a[1][1]的值是_______。
A. 4B. 5C. 3D. 2参考答案:A29:若有定义int a[3][4];,则对数组元素引用正确是_______。
A. a[1][4]B. a[1,3]C. a(2)(1)D. a[2][0]参考答案:D30:下列程序段的运行结果是_______。
char c[5]={'a','b','\0','c','\0'};printf("%s",c);A. 'a''b'B. abC. ab cD. ab\0c\0参考答案:B31:如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含_______头文件。
A. math.hB. string.hC. ctype.hD. stdio.h参考答案:B32:_______是正确的函数声明语句。
A. float func( int a, int b);B. float func( int a, b );C. double func( a, int b );D. double func( a, b );参考答案:A33:C程序函数中的局部变量是指______。
A. 函数外部定义的变量B. 函数体内定义的变量C. 函数之间定义的变量D. 函数之间定义的static类型变量参考答案:B34:若用数组名作为函数调用的实参,传递给形参的是_______。
A. 数组元素的个数B. 数组第一个元素的值C. 数组全部元素的值D. 数组的首地址参考答案:D35:下列语句中,定义指针变量p的正确语句是_______。
A. intx,p=&x;B. intx,*p=x;C. intx,*p=&x;D. intx,*p=*x;参考答案:C36:若有定义语句int a[5]={0,1,2,3,4},*p=a;,则不是对a数组元素的正确引用是____________。
A. a[p-a]B. *(&a[2])C. *pD. *(*(a+2))参考答案:D37:若有int x[10],*p=x;,则*(p+5)表示______。
A. 数组元素x[5]的地址B. 数组元素x[5]的值C. 数组元素x[6]的地址D. 数组元素x[6]的值参考答案:B38:设有预处理命令#define d 2和定义int a=10;long b=20;char c='a';,则下列语句中错误的是_______。
A. a++;B. b++;C. c++;D. d++;参考答案:D39:设有定义语句:struct stu{int x;float y;}stutype;则下列的叙述不正确的是_______。
A. struct是定义结构体类型的关键字B. struct stu是用户定义的结构体类型C. x和y都是结构体成员D. stutype是用户定义的结构体类型名参考答案:D40:以读写方式打开一个已有的二进制文件cct.bin,下列函数调用方式正确的是______。
A. FILE *fp;fp=fopen("cct.bin","r");B. FILE *fp;fp=fopen("cct.bin","w");C. FILE *fp;fp=fopen("cct.bin","rb");D. FILE *fp;fp=fopen("cct.bin","rb+");参考答案:D二、程序改错题题目1:在屏幕上输出以下图形(字符之间没有空格)。
ABCDEBCDEACDEABDEABCEABCD参考答案:$1$:printf("%s\n",a);$2$:a[k]=a[k+1];$3$:a[4]=temp;题目2:统计及格的人数并输出及格学生的信息(说明:num域代表学号,name域代表姓名,score域代表成绩)。