国家二级C语言机试(C语言程序设计)模拟试卷30

合集下载

国家二级C语言机试(操作题)模拟试卷301(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷301(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷301(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.下列给定程序中,函数fun的功能是计算下式直到≤10-3,并将计算结果作为函数值返回。

例如,若形参e的值为1e一3,函数的返回值为2.985678。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>double fun(double e) { int i;double s,x;/*********found*********/s=0;i=【1】;x=1.0;while(x>e){ /*********found*********/【2】;/*********found*********/x=(2.0*i—1)/((【3】)*(2.0*i));s=s+x;} return s;} main( ) { double e=1e一3;printf(“\nThe result is:%f\n”,fun(e));}正确答案:(1)0(2)i++或++i或i+=1或i=i+1(3)2.0*i解析:填空1:循环变量i从1开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。

填空2:循环变量i自增1运算。

填空3:根据公式确定表达式通项。

注意x为double型,故应将i变为double型再进行运算。

程序修改题2.下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

例如,程序运行后,输入0.0001,则程序输出3.1414。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<math.h>#include<stdio.h>float fun(float num){ int s;float n,t,pi;t=1;pi=0;n=1;s=1;/*********found*********/while(t>=num) { pi=pi+t;n=n+2;s=-s;/*********found*********/t=s%n;} pi=pi*4;return pi;}void main( ){ float n1,n2;system(“CLS”);printf(“Enter a float numbet:”);scanf(“%f”,&n1);n2=fun(n1);printf(“%6.4 f\n”,n2);}正确答案:(1)while(fabs(t)>=num)(2)t=s/n;解析:(1)函数fun中while语句的作用是,当新的一项大于给定参数时,循环累计计算s的值。

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)

国家二级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。

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。

第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。

/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

函数fun中给出的语句仅供参考。

void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。

例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。

计算机等级《二级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语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。

A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。

答案选择B选项。

[单选题]4.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。

制定软件集成测试计划属于概要设计阶段的任务。

答案选择D选项。

[单选题]5.结构化程序的三种基本控制结构是()。

A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。

答案选择A选项。

[单选题]6.构成计算机软件的是()。

A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

答案选择D选项。

[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。

全国计算机c语言程序设计二级考试真题

全国计算机c语言程序设计二级考试真题

1、在C语言中,若需定义一个标识符以表示一个常量,通常使用:
A. const 关键字
B. #define 预处理指令
C. enum 关键字
D. typedef 关键字
(答案)B
2、以下哪个选项正确地描述了C语言中数组的内存分配?
A. 数组元素在内存中连续存储
B. 数组元素在内存中随机存储
C. 数组名代表数组第一个元素的值
D. 数组大小可以在运行时动态改变
(答案)A
3、在C语言中,关于指针的下列说法中,哪一个是正确的?
A. 指针变量的值可以是一个整数
B. 指针变量可以进行算术运算
C. 所有指针类型的大小都相同,但与所指向的数据类型有关
D. 一个指针变量只能指向一个固定类型的变量
(答案)B
4、在C语言中,若要在函数内部修改一个全局变量的值,需要:
A. 使用extern关键字声明该变量
B. 直接使用全局变量名,无需特别声明
C. 通过指针传递全局变量的地址
D. 将全局变量作为函数参数传递
(答案)B
5、以下哪个不是C语言的基本数据类型?
A. int
B. float
C. string
D. char
(答案)C
6、关于C语言中的结构体(struct),以下说法错误的是:
A. 结构体可以包含不同类型的数据成员
B. 结构体变量可以通过.运算符访问其成员
C. 结构体成员在内存中的顺序是固定的
D. 结构体类型的大小等于其所有成员大小之和
(答案)D。

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。

作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。

选择题部分只能进入一次,退出后不能再次进入。

选择题部分不单独计时。

)1.下列叙述中正确的是()。

A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。

所以没有根结点或没有叶子结点的数据结构一定是非线性结构。

AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。

答案选择D选项。

2.以下叙述中错误的是()。

A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。

C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。

答案选择A选项。

3.C语言主要是借助以下()功能来实现程序模块化的。

A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。

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

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

国家二级(C语言)笔试模拟试卷31(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.算法的空间复杂度是指( )。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间正确答案:D解析:一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。

一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。

2.数据的存储结构是指( )。

A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据正确答案:B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。

数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

3.有下列二叉树,对此二叉树前序遍历的结果为( )。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI正确答案:C解析:对二叉树的前序遍历是指;先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左,右子树时,先访问根结点,再依次访问其左,右子树。

4.下列描述中正确的是( )。

A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据和相关文档的集合正确答案:D解析:软件是运行在计算机硬件之上的逻辑实体,包括程序,数据和相关的文档。

软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。

5.两个或两个以上模块之间联系的紧密程度称为( )。

A.耦合性B.内聚性C.复杂性D.数据传输特性正确答案:A解析:耦合性是模块间互相连接的紧密程皮的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。

国家二级C语言机试模拟试卷130_真题无答案

国家二级C语言机试模拟试卷130_真题无答案

国家二级(C语言)机试模拟试卷130(总分86, 做题时间90分钟)1. 选择题1.下列叙述中正确的是( )。

SSS_SINGLE_SELA 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性2.下列叙述中正确的是( )。

SSS_SINGLE_SELA 栈是一种先进先出的线性表B 队列是一种后进先出的线性表C 栈与队列都是非线性结构D 以上三种说法都不对3.软件测试的目的是( )。

SSS_SINGLE_SELA 评估软件可靠性B 发现并改正程序中的错误C 改正程序中的错误D 发现程序中的错误4.在软件开发中,需求分析阶段产生的主要文档是( )。

SSS_SINGLE_SELA 软件集成测试计划B 软件详细设计说明书C 用户手册D 软件需求规格说明书5.软件生命周期是指( )。

SSS_SINGLE_SELA 软件产品从提出、实现、使用维护到停止使用退役的过程B 软件从需求分析、设计、实现到测试完成的过程C 软件的开发过程D 软件的运行维护过程6.面向对象方法中,继承是指( )。

SSS_SINGLE_SELA 一组对象所具有的相似性质B 一个对象具有另一个对象的性质C 各对象之间的共同性质D 类之间共享属性和操作的机制7.层次型、网状型和关系型数据库划分原则是( )。

SSS_SINGLE_SELA 记录长度B 文件的大小C 联系的复杂程度D 数据之间的联系方式8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

SSS_SINGLE_SELA 一对一B 一对多C 多对多D 多对一9.数据库设计中反映用户对数据要求的模式是( )。

SSS_SINGLE_SELA 内模式B 概念模式C 外模式D 设计模式10.有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。

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

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

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序: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=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序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)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

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

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

国家二级(C语言)机试模拟试卷301(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。

当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANKl.C中。

不得增行或删行,也不得更改程序的结构!#include &lt;stdio.h&gt;double f1(double x){ return x*x;}double f2(double x,double y){ Eeturn x*y;}/**************found**************/【1】fun(int i,double x,double y){ if (i==1)/**************found**************/ Eeturn 【2】(x);else/**************found**************/ reLurn【3】(x,y);}main( ){double x1=5,x2=3,r;r=fun(1,x1,x2);r+=fun(2,x1,x2);printf(“\nx1=%f,x2=%f,x1*x1+x1*x2=%f\n\n”,x1,x2,r);}正确答案:(1)double (2)f1 (3)f2解析:第一空:主函数内fun函数的调用形式是“r=fun(1,x1,x2):”,r 是double型变量,因此fun函数的返回值是double型,故第一空处应为“double”。

第二空:“return 2(x);”被调用的函数只有一个参数,故第二空出为“n”,返回x的平方值。

第三空:“return 3(x,y);”被调用的函数有2个参数x和y,故第三空处应为“f2”,返回x和y的积。

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

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

国家二级(C语言)机试模拟试卷100(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.请补充main 函数,该函数的功能是:先以只写方式打开文件“out99.dat”,再把字符串str中的字符保存到这个磁盘文件中。

注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在main 函数的横线上填入所编写的若干表达式或语句。

试题程序:#include “stdio. h”#include “conio.h”#define N 80 main ( ) { FILE *fp; int i=0; char ch; char str[N]=“I’m a student!”; clrscr( ); if ( (fp=fopen (【】) ) ==NULL) {printf(“cannot open out99. dat\n”);exit(0); } while (str[i]) {ch=str[i];【】; putchar(ch); i++; }【】; }正确答案:“out99.dat”,“w”fpnte (ch,fp)fclose (fp)解析:第一空:本题考查对文件操作的掌握。

打开一个文件的调用方式是,fp==fopen (文件名,使用文件方式);,题目要求以只写的方式打开文件“out 99.dat”,所以文件使用方式为“w”。

第二空;fputc ( )函数用于将一个字符写到磁盘文件上去,调用形式为:fputc (要输出的字符,文件指针)。

第三空:对一个文件进行操作后,应该关闭它,以防它再被误用。

调用形式为:fclose (文件指针);程序修改题(30分)2.下列给定程序中,函数fun( )的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

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

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

历年全国计算机等级考试二级C语言笔试模拟题及答案(11)以下表达中正确的选项是A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所用数据构造C.程序设计的任务就是确定所用算法D.以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A.voidB.88C.0D.unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f ”,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 ”,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 ”,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);}程序运行后的输出结果是A.0B.2C.3D.5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d ”,k,n);}程序运行后的输出结果是A.0 2B.1 3C.5 7D.1 2(22)有以下定义语句,编译时会出现编译错误的选项是A.char a=’a’;B.char a=’ ’;C.char a=’aa’;D.char a=’x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d ”,c1,c2);}字母A的ASCII码为65,程序运行后的输出结果是A.E,68B.D,69C.E,DD.输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d ”,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 ”,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 ”,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]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);}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 ”,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)!=’’) {a++,b++;} }A.将a所指字符串赋给b所指空间B.使指针b指向a所指字符串C.将a所指字符串和b所指字符串进展比拟D.检查a和b所指字符串中是否有’’(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 ”,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*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d ’,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=get);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 ”,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 ”,r>>1);输出结果是A.16B.8C.4D.2(40)以下关于C语言文件的表达中正确的选项是A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由构造序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,那么该二叉树中共有【1】个结点。

全国计算机二级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语言程序设计试题及答案

计算机二级考试C语言程序设计试题及答案

计算机二级考试C语言程序设计试题及答案计算机二级考试C语言程序设计试题及答案计算机二级考试采用全国统一命题、统一考试的形式。

下面店铺整理了计算机二级考试C语言程序设计试题及答案,希望对大家有帮助!一、选择题((1)--(40)每小题1分, (41)--(50)每小题2分, 共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。

(1) 下列述叙中正确的是A) 显示器和打印机都是输出设备 B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格(2) 微型计算机中运算器的主要功能是进行A) 算术运算 B) 逻辑运算 C) 算术和逻辑运算 D) 初等函数运算(3) COMMAND。

COM是DOS系统的最外层模块,通常称之为A) 引导程序 B) 输入输出系统 C) 命令处理系统 D) 文件管理系统(4) 电子邮件是A)网络信息检索服务B)通过Web网页发布的公告信息C)通过网络实时交互的信息传递方式D)一种利用网络交换信息的非交互式服务(5) 和十进制数225相等的二进制数是A) 11101110 B) 11111110 C) 10000000 D) 11111111(6) 下列叙述中正确的是A) 指令由操作数和操作码两部分组成B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集(7) 计算机的内存储器比外存储器A) 价格便宜 B) 存储容量大 C) 读写速度快 D) 读写速度慢(8) 设当前盘为C盘,执行DOS命令"COPY B:A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件(9) 要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:WSB1.TXT B:.TXTC) COPY A:X1.TXT+C:WSB1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT(10) 下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON(11) 设当前目录为D:BB,现要把D:AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL AAA.TXTC) DEL AAA*.TXT D) DEL AAA?.TXT(12) 在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标B) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标(13) 在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框(14) 在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中 B) ROM中 C) 硬盘中 D) 寄存器中(15) 使计算机病毒传播范围最广的媒介是A) 硬磁盘 B) 软磁盘 C) 内部存储器 D) 互联网(16) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(17) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d ", d*y);}(18) 下列程序执行后的输出结果是(小数点后只写一位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f ", i,l,f,d);}(19) 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;(20) 设 int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1 C) 2 D) -1(21) 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1; B) if(x)else if(x<0)y=-1; if(x>0)y=1;else y=0; else if(x<0)y=-1;else y=0;C) y=-1 D) y=0;if(x) if(x>=0)if(x>0)y=1; if(x>0)y=1;else if(x==0)y=0; else y=-1;else y=-1;(22) 以下循环体的执行次数是A) 3 B) 2 C) 1 D) 0main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d ",i);}(23) 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。

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

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

国家二级(C语言)机试模拟试卷30(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.字符串str由数字字符组成(长度不超过5个字符),可看作任意进制的数,请补充函数fun( ),该函数的功能是:把str字符串转换成任意进制的数,结果保存在数组xx中,由函数返回转换后数组腆的实际长度。

其中x表示str 原来的进制,y表示要转换成的进制。

例如,输入str=“1111”,x=2,y=10,结果输出:15。

如果输入str=“15”, x=10,Y=2,结果输出:1111。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun( )的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>#include<stdlib.h>#include<string.h>#define N 8 int xx[N]; int fun(char *str,int x,int y) { int sum; int i=0; char *p=str; for(i=0; i<N; i++)xx[i]=0; sum=*p-’0’; p++; while (*p) { sum=【】; p++; } i=0; while(sum!=0) {xx[i]=【】;【】;i++; } return i; } main ( ) { char str[6]; int i; int n; int x; int y; printf(“Enter a string made up of ‘0’ to ‘9’ digits character:”); gets(str); if(strlen (str) &gt;5) {printf(“Error:string too longer!, please input again!\n\n”);exit(0); } for(i=0;str[i];i++)if(str[i]<’0’||str[i]>’9’){ printf(“Error:%c not is ‘0’ to ‘9’ digits character!\n\n”, str[i]); exit(0);} printf(“The original string: “); puts(str); printf(“\nINPUT x= “); scanf(“%d”,&x); printf(“\nINPUT y= “); scanf(“%d”,&y); n=fun(str,x,y); printf(“\n%s is convered to”,str); for (i=n-1; i&gt;=0; i--)printf(“%d”,xx[i]); }正确答案:sum*x+*p-’0’sum%y sum=sum/y解析:第一空:为了进行数字运算,必须要将字符串中的数字字符转换为数字,用数字字符减去字符’0’的ASCII码,就得到对应的数字。

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

国家二级C语言机试(C语言程序设计)模拟试卷30
(总分:52.00,做题时间:90分钟)
一、选择题(总题数:26,分数:52.00)
1.有以下程序 main(){int a=3; do{printf("%d,",a-=2);}while(!(--a)); printf("\n");} 程序运行后的输出结果是
(分数:2.00)
A.1,
B.1,-2,√
C.3,0,
D.1,0
解析:解析:循环体执行两次。

首先输出a=1,然后判断表达式!(-a),a为0,循环条件表达式值为1,执行第二次循环体,输出a=-2。

判断循环条件表达式值为0,循环退出。

2.若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是
(分数:2.00)
A.循环体执行两次
B.循环体执行一次
C.循环体一次也不能执行
D.构成无限循环√
解析:解析:本题考查for循环。

本题的for循环初始条件为i=0,k=-1;循环结束条件为k=1永远为真(k不为0),因此循环不能结束。

3.若k是int类型变量,且有以下for语句1 for(k=-1;k
(分数:2.00)
A.循环体执行两次
B.循环体执行一次√
C.循环体一次也不执行
D.构成无限循环
解析:解析:本题考查for循环的使用。

在程序中,for循环的初始值k=-1,循环结束条件是k<0,每次循环k增加1,第一次进入循环的时候k为-1,k小于0,执行打印,然后k的值变成0,下次进入循环k 不小于0,循环结束,因此循环只能执行一次。

4.有以下程序段 int i,n; for(i=0;i
(分数:2.00)
A.当产生的随机数n为4时结束循环操作
B.当产生的随机数n为1和2时不做任何操作
C.当产生的随机数n为0时结束程序运行√
D.for循环语句固定执行8次
解析:解析:rand()函数功能为产生一个随机数,rand()%5,则产生0~4之间的任意随机数,当产生的随机数n为0时,执行“case 0:exit(0)”这条语句,结束程序的运行。

5.有以下程序 #include main() {int y=9; for(;y>0;y--) if(y%3==0)printf("%d",--y);} 程序的运行结果是
(分数:2.00)
A.963
B.852 √
C.741
D.875421
解析:解析:v的值的初值为9,所以在for循环中,当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式一y的值。

因为自减符号在y的前面,所以首先y的自减1,然后再输出y的值,故输H{结果为8 5 2。

6.有以下程序 #include main() {int i,j,m=1; for(i=1:i0;j--) { if(i*j>3)break; m*=i*j; }} printf("m=%d\n",m);} 程序运行后的输出结果是
(分数:2.00)
A.m=2
B.m=4
C.m=5
D.m=6 √
解析:解析:这道题考查了for循环的嵌套应用。

对于外层for循环来说,变量i从1增到2,循环执行2次。

当变量i的值等于1时,对于内层for循环来说,变量i从3减到1,求得变量m的值等于6。

当变量i的值等于2时,第一遍执行内层for循环,变量i的值等于3,那么i*i的值等于6,其值大于3,这时执行break语句,退出内层for循环的执行。

所以程序输出变量m的值为6。

7.有以下程序 #include void main() {int c=0,k; for(k=1;k。

相关文档
最新文档