2018计算机二级C语言考试真题汇总课件.docx

合集下载

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

2018年3月全国计算机等级考试二级C语言上机题库100套(从光碟拷贝出来的最完整版)(可以拷贝在U盘里,然后ctrl+F搜索,百分百有答案,祝考试成功)第一套1. 程序填空给定程序中,函数fun的功能是:计算下式前n 项的和作为函数值返回。

例如:当形参n的值为10 的时,函数返回:9.6125588。

第一处s=0;第二处for(i=1;i<=n;i++)第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t);2. 程序修改给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。

/**found**/for(i=0;str[i];i++)/**found**/if(substr[k+1]==’\0’)3. 程序设计请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14…。

double fun(double eps){ double s=1,t=1./3;int n=1;while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

2018年全国计算机等级考试二级C 语言真题及答案1

2018年全国计算机等级考试二级C 语言真题及答案1
D)用C程序实现的算法可以既没有输入也没有输出
(14)下列不能定义的用户标识符是()。
A)MainB)_0
C)_intD)sizeof
(15)下列选项中,不能作为合法常量的是()。
A)1.234e04B)1.234e0.4
C)1.234e+4D)1.234e0
(16)数字字符0的ASCII值为48,运行下列程序的输出结果是()。
A)1B)2
C)3D)4
(23)下列程序的输出结果是()。
main( )
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j);
}
A)42B)45
C)56D)60
(24)下列程序的输出结果是()。
main( )
{chara[7]="a0\0a0\0"; inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
A)22B)76
C)72D)62
(25)下列能正确定义一维数组的选项是()。
A)inta[5]={0,1,2,3,4,5};B)chara[ ]={0,1,2,3,4,5};
main( )Байду номын сангаас
{inti=1,j=2,k=3;
if(i++==1&&(++j==3‖k+ +==3)) printf("%d%d %d\n",i,j,k);

2018年全国计算机等级考试C语言二级公共基础复习资料

2018年全国计算机等级考试C语言二级公共基础复习资料

一级公共基础知识总结第一章数据结构与算法1.1算法算法:是指解题方案的准确而完整的描述。

算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。

算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。

特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。

指令系统:一个计算机系统能执行的所有指令的集合。

基本运算包括:算术运算、逻辑运算、关系运算、数据传输。

算法的控制结构:顺序结构、选择结构、循环结木算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。

算法复杂度:算法时间复杂度和算法空间复杂度。

_算法时间复杂度是指执行算法所需要—算法空间复杂度是指执行这个算法所需要的内存空间。

1.2数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;_(3)对各种数据结构进行的运算。

数据结构是指相互有关联的数据元素的集合。

数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。

数据的存储结构有顺序、链接、索引等。

线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。

非线性结构:不满足线性结构条件的数据结构。

1.3线性表及其顺序存储结构(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。

结点个数n称为线性表的长度,当n=0时,称为空表。

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)4)下列叙述中正确的是()。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间5)数据流图中带有箭头的线段表示的是()。

A)控制流 B)事件驱动 C)模块调用 D)数据流6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同(10)有三个关系R、S 和T 如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由关系R 和S 通过运算得到关系T,则所使用的运算为()。

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。

此解决方案的项目中包含一个源程序文件blank1.c。

函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。

该串长度最大不超过15。

例如,若表示二进制数的字符串为:”10011”,则运行结果应为:10011﹣>19请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#pragma warning(disable:4996)#define N16/*********found*********/int fun(char【1】){int i,n=0;/*********found*********/for(i=0;【2】;++i)/*********found*********/rl=n*2+(s[i]﹣【3】);return n;}main( ){char num[]=“10011”;int n;n=fun(num);printf(“%s﹣﹣>%d\n”,num,n);}正确答案:(1)s[](2)s[i]!=‘\0’&&i<N(3)48解析:填空1:该函数所接受的参数为字符数组,所以形参也为字符数组,根据函数内所用的字符数组s[i],所以该空填s[]。

答案为s[]。

填空2:访问一个字符数组的所有元素时,当该元素不为字符串结束符’\0’时,继续访问,当访问到字符串结束符’\0’时,表示该字符串结束了,结束循环返回计算结果,因为串的长度最大不超过15,所以定义了一个常量N为16,在for循环的第二个表达式中i<N用来控制其不超过15,当其超过了15位时后面的不做计算,所以该空填s[i]!=‘\0’&&i<N。

C语言全国计算机二级等级考试教程循环结构章节带习题PPT课件

C语言全国计算机二级等级考试教程循环结构章节带习题PPT课件
n++; } printf(“%d\n”,s); }
while(n<=100) 问:循环体共执行了几次?
18
第2页/共18页
5.2 do-while语句和用do-while语句构成的循 环结构
5.2.1 do-while语句构成的循环结构
do-while循环结构的一般形式:
关键字
do 循环体
while(表达式);
C 26 68
D 39 81
第13页/共18页
习题
二.填空题 5.11 当执行以下程序段后,i的值是____5___.j的值是____4__.k的值是____6___. int a,b,c,d,i,j,k; a=10;b=c=d=5;i=j=k=0; for( ;a>b;++b) i++; while(a>++c) j++; do k++; while(a>d++); 5.12 以下程序段的输出结果是___1_0_2_4____. int k,n,m; n=10;m=1;k=1; while(k++<=n) m*=2; printf("%d\n",m); 5.13 以下程序的输出结果是____-1____. #include <stdio.h> main() {int x=2; while(x--); printf("%d\n",x); }
}
printf("%d\n",s);
程序段的输出结果是
A9
B1
C 11
5.2 有以下程序段: C
int i,j,m=0;

二级C语言机试(操作题)2018年3月真题汇编2及答案解析

二级C语言机试(操作题)2018年3月真题汇编2及答案解析
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
{
Struct BITS res;
/*在这里将函数代码补充完整*/
}
main()
{struct BITS a;
void NONO();
int i=0,n=0;
for(i=32;i<100;i++)
{n=i*i;
a=fun(n);
if(a.m3<a.m2&&a.m2<a.m1&&a.m1<a.m0)
printf("No.is%d\n",n);
例如,若表示二进制数的字符串为:"10011",则运行结果应为:10011﹣>19
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
如果一个4位正整数等于其各个数字的4次方之和,则称该数为四叶玫瑰数。
例如,1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4,因此1634就是一个四叶玫瑰数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1[i]!=´\0´)&&(s2[i]!=´\0´);i++,j=j+1)
{s3[j]=s1[i];
s3[j+1]=s2[i];
}
if(s2[i]!=´\0´)
(for(;s2[i]!=´\0´;i++,
j++)
/*********found*********/
s3[i]=s2[j];
}
else if(sl[i]!=´\0´)
(for(;s1[i]!=´\0´;i++,j++)
s3[j]=s1[i];

2018年国家计算机二级C语言笔试真题及答案解析7

2018年国家计算机二级C语言笔试真题及答案解析7

2018年国家计算机二级C语言笔试真题及答案解析72018年国家计算机二级C语言笔试真题及答案解析1.以下选项中不符合良好程序设计风格的是什么?A)源程序应该文档化B)数据说明的顺序应该规范化C)避免滥用goto语句D)模块设计应该保证高耦合、高内聚2.从工程管理角度,软件设计一般分为两步完成,它们是什么?A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计3.下列选项中不属于软件生命周期开发阶段任务的是什么?A)软件测试B)概要设计C)软件维护D)详细设计4.在数据库系统中,用户所见的数据模式是什么?A)概念模式B)外模式C)内模式D)物理模式5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和什么?A)编码设计B)测试阶段C)运行阶段D)物理设计6.设有如下三个关系表,下列操作中正确的是什么?7.下列叙述中正确的是什么?A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对8.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为什么?A)63B)64C)6D)79.数据库技术的根本目标是要解决数据的什么问题?A)存储问题B)共享问题C)安全问题D)保护问题10.对下列二叉树进行中序遍历的结果是什么?A)ACBDFEGB)ACBDFGEC)ABDCGEFD)FCADBEG11.下列叙述中错误的是什么?A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在12.下列叙述中正确的是什么?A)每个C程序文件中都必须有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序可以由一个或多个函数组成D)在C程序的函数中不能定义另一个函数13) 错误的是B)double int_。

2018年C语言二级考试及答案

2018年C语言二级考试及答案

2018年C语言二级考试及答案一、选择题1. 下列关于C语言中变量的描述,错误的是:A. 变量必须先声明后使用B. 变量的声明可以放在程序的任何位置C. 变量的类型决定了它所占用的内存大小D. 变量的声明必须在函数的开始处完成答案:B2. 在C语言中,以下哪个选项不是合法的标识符?A. _sumB. sum$C. 2valueD. sum答案:C3. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "Hello";B. char str[] = "Hello";C. char str[6] = "Hello";D. char str = "Hello";答案:B4. 关于C语言中的数组,以下哪个说法是错误的?A. 数组名代表数组的首地址B. 数组的大小在定义后不能改变C. 数组的元素可以是不同类型的D. 数组的下标从0开始答案:C5. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b);B. int add();C. int add(int a, int b) {}D. int add(int a, int b) { return a + b; }答案:D二、填空题1. 在C语言中,使用____关键字可以定义一个整型变量。

答案:int2. 字符串"Hello"在内存中所占的字节数是____。

答案:63. 若定义一个二维数组int arr[3][4],则该数组的元素总数为____。

答案:124. 在C语言中,使用____运算符可以实现逻辑与操作。

答案:&&5. 若变量a的值为5,b的值为10,则表达式a++ + b的值为____。

答案:15三、编程题1. 编写一个C语言程序,实现计算并输出两个整数的和。

```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两数之和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现判断输入的年份是否为闰年,并输出结果。

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%d\n",result[i]);
fclose(fp);
}
_______
上一题交卷
交卷
答题卡
答案及解析
(1/1)程序填空题
第1题
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1[i]!=´\0´)&&(s2[i]!=´\0´);i++,j=j+1)
{s3[j]=s1[i];
例如,当s1为:"123456789",s2为:"abcdefghijk"时,
输出结果应该是:1a263c4d5e6t7g8h9ijk
请改正函数fun中指定部位的错误,使它能得出正确的结果。

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案一、选择题1. 在C语言中,下面哪个选项是正确的定义一个整型变量的语句?A. int a;B. int a[];C. int a[10];D. int a(10);答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以有多个参数D. 函数可以嵌套定义答案:D二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是______。

答案:&&2. 若有定义 int a[10], *p=a; 则*(p+5)表示数组的第______个元素。

答案:6三、编程题1. 编写一个C语言程序,实现输入一个整数,输出该整数的绝对值。

```c#include <stdio.h>#include <stdlib.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num < 0) {num = -num;}printf("该整数的绝对值是:%d\n", num);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出该字符串的逆序。

```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");gets(str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```四、简答题1. 请简述C语言中指针和数组的关系。

2018计算机二级C语言考试真题汇总

2018计算机二级C语言考试真题汇总

模拟卷11[填空题]下列给定程序中,函数fun得功能就是:在形参S所指字符串中寻找与参数C相同得字符,并在其后插入一个与之相同得字符,若找不到相同得字符则不做任何处理。

例如,若s所指字符串为"baacda",c中得字符为a,执行后S所指字符串为"baaaacdaa"请在程序得下画线处填入正确得内容并将下画线删除,使程序得岀正确得结果。

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

不得增行或删行,也不得更改程序得结构试题程序:linclLid^ < std丄Q-忆工vOid iurL* 5char ciI int n;/*****.*•屮found *********,for (i 5;. k .! = [1】;i >if taf 1] ^ = C)I£ou n-d •••****** ’Mfhile (s[ i + 1 4-fl] !n ;[2(J -i + A +■ 1;\ > 1;j 一}13rfj +1]J4$ f ou *****>**•/15辛[i十丄]=UJ J16 17i + 1 ;\19main()20{ that s[001 - "baaccia™, c;忆Frintt ("Wihe22printf (*\n input a character:");卞24fun 啓“);屮:訓pcintfresult in:和'23726参考解析:【参考答案】([厂2 {2)0 {3)[-【解题思路】填空1: for语句循环条件就是判断就是否到达字符串结尾,即当前字符就是否为’\0 '。

填空2:while语句用以确定字符串得长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同得字符,就在后面插入一个相同得字符,且找到后应该给数组元素赋值,本题目给岀参数为c。

二、程序修改题2 [简答题]下列给定程序中函数fun得功能就是:逐个比较p、q所指两个字符串对应位置上得字符,并把ASCII值大或相等得字符依次存放到c所指得数组中,形成一个新得字符串。

(完整word版)2018年全国计算机二级考试C语言常考知识点归纳,推荐文档

(完整word版)2018年全国计算机二级考试C语言常考知识点归纳,推荐文档

总体上必须清楚的1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。

3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。

byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。

概念常考到的1)、编译预处理不是C语言的一部分,不再运行时间。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2)、每个C语言程序中main函数是有且只有一个。

3)、在函数中不可以再定义函数。

4)、算法的是一定要有输出的,他可以没有输入。

5)、break可用于循环结构和switch语句。

6)、逗号运算符的级别最低。

第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了。

关键字不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。

考试口诀:e前e后必有数,e后必为整数。

.3)字符数据的合法形式::'1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。

碰到这种情况,不要去管,一样做题。

掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。

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

模拟卷1
1 [填空题]
下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。

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

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

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。

填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题
2 [简答题]
下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为"Abcd",则c中的字符串应为“aBcdeFgH”。

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

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)int k=0;
(2)while(*p||*q)
【考点分析】
本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】
(1)变量k存放数组e的下标,因此应初始化为0。

(2)while循环语句的循环条件是判断两个字符串是否到达结尾。

三. 程序设计题
3 [简答题]
规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。

在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考解析:
【参考答案】
【考点分析】
本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。

【解题思路】
对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘\0’。

具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号‘\0’。

模拟卷2
一、程序填空题
1 [填空题]
下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。

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

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

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)N
(2)k
(3)ss[i]
【考点分析】
本题考查:for循环语句;if语句条件表达式;字符串拷贝函数strepy的使用。

【解题思路】
填空l:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i
填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。

填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。

【解题宝典】
字符串拷贝函数strcpy,其格式为:strepy(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组l中。

字符串结束标识‘\0’也一同拷贝。

字符数名2,也可以是一个字符串常量。

这时相当于把一个字符串赋予一个字符数组。

二、程序修改题
2 [简答题]
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。

若是,则输出所有可能的序列,否则输出“不能分解”。

例如:当输入100时,输出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:
参考解析:
【参考答案】 (1)m=n;
(2)m=m-c;c++;
(3)if(m==0)
【解题思路】
(1)每次循环,程序需要对n执行减去连续的正整数序列来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。

另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。

(2)语法错误。

C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c++;。

(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m==0)。

3 [简答题]
请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。

移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。

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

请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即
W[j-1]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。

模拟卷3
一、程序填空题
1 [填空题]
给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

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

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

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:由语句fopen("filel.txt","r")可知,fp应该是文件类型指针,因此本空应该填写FILE *。

填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。

填空3:putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。

二、程序修改题
2 [简答题]
给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C 所指的数组的尾部。

例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应该为“192f3e4dcba”。

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

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:【参考答案】
【解题思路】
(1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i
(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。

三. 程序设计题
3 [简答题]
请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。

本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx 中。

相关文档
最新文档