2020计算机二级C语言考试真题汇总
- 格式:doc
- 大小:22.50 KB
- 文档页数:7
2020年3月计算机二级C语言考试真题及答案一、选择题(1)下列关于栈叙述准确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中准确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面能够作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中准确的是A)C语言程序仅能够编译执行B)C语言程序仅能够解释执行C)C语言程序既能够编译执行又能够解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才能够运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234B)'\123'C)123D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中准确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)能够是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);程序运行后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;scanf("%d",&s);运行时,若输入1 2 34 5 0,则输出结果是A)6566456B)66656C)66666D)6666656(20)有以下程序段int i,n;for(i=0;i='0'&&s[i]='a'&&*c,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
2020年9月全国计算机等级考试二级C语言上机题库(共55套全)第一套1 程序填空给定程序的功能是:从键盘输入若干行文本(每行不得超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
第1处void WriteText(FILE*fw)第2处fputs(str,fw);fputs(“\n”,fw);第3处printf(“%s”,str);2 程序修改给定程序MODI1.C中函数fun的功能是:从低位开始取出长整形变量s中奇数位上的数,依次构成一个新数t中。
高位仍在高位,低位仍在低位。
/**found**/void fun(long s,long*t)/**found**/s1=s1*10;3 程序设计函数fun的功能是:将两个两位数的正整数a 、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c 数的十位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
void fun(int a,int b,long*c){*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);}第二套1 程序填空给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。
为便于统计,规定各单词之间用空格隔开。
第1处n++;flag=1;}第2处if(*s= =’’)flag=0;第3处s++;2 程序修改给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver 所指的存储单元中。
/**found**/t+=s[k];/**found**/*aver=ave;3程序设计请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元。
2020年下半年安徽省高校计算机水平考试二级C语言程序设计科目选择题汇编注:1、请尊重整理者的劳动成果与付出。
2、本试题还有大题部分,为pdf文件格式,方便大家打印。
3、事无巨细,百密一疏。
尽管经过校对可能还是会有问题。
如有题目重复出现或者题目显示不全,请大家以题库中出现的题目为准。
4、建议大家多上机操作,熟悉考试软件环境。
5、正式考试的题目不一定就从这里面出,考试院的题目很多,所以不要只记答案,而是要掌握这个题目所要考察的知识与方法,以不变应万变。
祝大家早日通过省二级C语言考试!2020/11/282020年下半年安徽省高校计算机等级考试二级C语言选择题题库第1套1、下列对C语言程序的描述中,正确的是______。
A. C语言程序总是从第一个定义的函数开始执行B. C语言程序总是从最后一个定义的函数开始执行C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分参考答案:C2、设有char ch='\\';,则变量ch包含______个字符。
A. 1B. 2C. 3D. 4参考答案:A3、以下选项中,可以作为C语言用户标识符的一组是______。
A. void、define、WORDB. a3_b3、_123、xyzC. For、_abc、caseD. 2a、Do、sizeof参考答案:B4、已知int c1=5,c2=2,c3;,则执行c3=c1/c2;后,c3的值是______。
A. 5B. 2.5C. 3D. 2参考答案:D5、下列运算符结合方式是自右向左的是______。
A. %B. <C. ++D. &&参考答案:C6、执行语句int a=2;a+=a*a;后,变量a的值是______。
A. 6B. 8C. 2D. 10参考答案:A7、设有int a;,执行语句a='A'+1.6;后,则正确的叙述是______。
2020计算机二级C语言程序设计真题及答案(网友版)【热点推荐】 | | |#include#includevoid proc(int num,int*b,int*c){int i,j,d,y;for(i=3;i<=num/2;i=i+2)//****found****{ y=0;for(j=2;j<=sqrt((double)i);j++)if(i%j==0)y=0;if(y==l)//****found****{ d=i-num;for(j=2;j<=sqrt((double)d); j++)if(d%j==0)y=0;if(y==l){*b=i;*c=d;)}}} void main(){ int mum,b,C;do{ printf("\nlnput num:");scanf("%d",&num);)while(num%2); ’proc(num,&b,&c);printf("\n\n%d=%d+%d\n",num,b,c);}}请编写函数proc(),其功能是:将str所指字符串中除下标为偶数,同时ASCII码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCII码值为偶数,所在元素的下标为奇数,所以必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,所以不理应删除。
依此类推,最后t所指的数组中的内容应是ACEG。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。
试题程序:#include#include#include#includevoid proc(char*str,char t[]){}void main(){char str[100],t[100];system("CLS"):printf("\nPlease enter string str:");scanf("%s",str);proc(str,t);printf("\nThe result is:%s\n",t);}请补充main()函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。
2020年9月全国计算机等级考试二级C语言上机题库(共60套全)第一套1 程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。
函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指出的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
第1处if (std[i].year==year)第2处k[n++]=std[i];第3处return (n);1程序修改给定程序MODI1.C中函数fun的功能是:读入一个整数k(2≤k≤10000)打印它的所有质因子(即所有为素数的因子)。
/**found**/IsPrime (int n)/**found**/if (!(n%i))2程序设计已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。
请编写给函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分),已给出函数的首部,请完成函数。
fun(STU a[],STU *s){int i, max = a[0]. s, j=0;for (i=1; i<N;i++){ if (max<a [i].s) {j=i;max =a[i].s;}*s=a[j];}第二套1程序填空给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。
例如:若N=3有下列矩阵:1 2 34 5 67 8 9交换后:3 2 14 5 69 8 7第1处void fun (int t [] [N], int n)第2处for (i=0; i<n; i++)第3处t [i] [n-i-1]=s;2 程序修改由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。
若找到,返回其下标值;反之,返回-1.折半查找的基本算法是:每次查找前先确定数组中待查的范围:low 和high(low﹤high),然后把m的值大于中间位置元素中的值,则下一次的查找范围落在中间位置之前的元素中。
2020年3月计算机二级C语言考试真题及答案一、选择题(1)下列关于栈叙述准确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中准确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面能够作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中准确的是A)C语言程序仅能够编译执行B)C语言程序仅能够解释执行C)C语言程序既能够编译执行又能够解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才能够运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234B)'\123'C)123D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中准确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)能够是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);程序运行后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;scanf("%d",&s);运行时,若输入1 2 34 5 0,则输出结果是A)6566456B)66656C)66666D)6666656(20)有以下程序段int i,n;for(i=0;i='0'&&s[i]='a'&&*c,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
全国计算机等级考试二级C语言100题work Information Technology Company.2020YEAR1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
模拟卷11 [填空题]下列给定程序中,函数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”。
1.在黑盒测试方法中,设计测试用例的主要根据是( )。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图答案:B2.在软件设计中不使用的工具是( )。
A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图答案:C3.下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题答案:C4.在软件设计中,不属于过程设计工具的是( )。
A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图答案:D5、程序流程图中带有箭头的线段表示的是( )。
A.图元关系B.数据流C.控制流D.调用关系答案:C6、结构化程序设计的基本原则不包括( )。
A.多态性B.自顶向下C.模块化D.逐步求精答案:A7.能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。
A.循环链表B.双向链表C.二叉链表D.有序链表答案:A8.某二叉树共有730个结点,其中度为l的结点有30个,则叶子结点个数为( )。
A.不存在这样的二叉树B.351C.17D.350答案:A9.软件开发中需求分析的主要任务是()。
A.定义和描述目标系统“做什么”B.获取需求C.给出软件解决方案D.需求评审答案:A10.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是( )。
A.学生成绩管理系统B.ERP系统C.办公自动化系统D.UNIX系统答案:D。
2020年度全国计算机等级考试二级C语言笔试试题及答案一、选择题(每题2分,共40分)1. 下面哪个选项是C语言的合法数据类型?A) floatB) integerC) charD) string答案:A2. 下面哪个选项是C语言的关键字?A) ifB) defineC) includeD) sizeof答案:A3. 在C语言中,以下哪个运算符用于取模?A) %B) /C)D) &答案:A4. 若变量a已定义为int类型,以下哪个选项是合法的赋值语句?A) a = 1,200;B) a = "hello";C) a = 1.23;D) a = 'a';答案:D5. 下面哪个选项表示C语言中的逻辑运算符?A) &&B) ||C) &&|D) |答案:A、B、C(以下题目1-5均为选择题,请根据题目要求选择正确答案)6. 在C语言中,以下哪个函数用于输出?A) printfB) scanfC) putcharD) gets答案:A7. 下面哪个选项表示C语言中的位运算符?A) &&B) ||C) <<D) ++答案:C8. 下面哪个选项表示C语言中的关系运算符?A) ==B) &&C) +D) |答案:A9. 在C语言中,以下哪个函数用于动态分配内存?A) mallocB) callocC) reallocD) free答案:A、B、C10. 下面哪个选项表示C语言中的结构体定义?A) structB) unionC) enumD) typedef答案:A11. 在C语言中,以下哪个函数用于动态释放内存?A) mallocB) callocC) reallocD) free答案:D12. 下面哪个选项表示C语言中的静态存储类别?A) autoB) staticC) registerD) extern答案:B13. 在C语言中,以下哪个函数用于输入字符串?A) scanfB) getsC) fgetsD) putchar答案:B、C14. 下面哪个选项表示C语言中的文件操作函数?A) fopenB) fcloseC) fprintfD) fgets答案:A、B、C、D15. 在C语言中,以下哪个选项表示预编译指令?A) #defineB) #includeC) #ifD) #ifdef答案:A、B、C、D二、填空题(每题3分,共30分)1. 在C语言中,每个程序都必须包含一个______函数。
2020年全国计算机等级考试二级c语言上机精选题库(共50套)第1套题一、填空题请补充main函数,该函数的功能是:计算每个学生科目的平均分,并把结果保存在数组bb中。
例如,当score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77 }}时,三个学生的平均分为:74.7 91.3 69.1。
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
#include <stdio.h>#define N 3#define M 5main(){int i, j;static float score[N][M] ={{78.5, 84, 83, 65, 63},{88, 91.5, 89, 93, 95},{72.5, 65, 56, 75, 77}};float bb[N];for (i=0; i<N; i++)___1___;for (i=0; i<N; i++){for (j=0; j<M; j++)___2___;bb[i] /= M;}for (i=0; i<N; i++)printf("\nstudent%d\taverage=%5.1f", i+1, bb[i]); } 二、 改错题下列给定程序中,函数fun 的功能是:根据整型行参m ,计算如下公式的值。
y=mm ⨯++⨯+⨯+⨯1300300120020011001001 例如,若m=2000,则应该输出:0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include <conio.h>#include <stdio.h>/********found********/fun(int m){double y = 0, d;int i;/********found********/for (i=100, i<=m, i+=100){d = (double)i*(double)i;y += 1.0/d;}return (y);}main(){int n = 2000;printf("\nThe result is %lf\n", fun(n));}三、编程题请编写函数fun,该函数的功能是:统计个年龄段的人数。
全国计算机c语言二级试题及答案全国计算机C语言二级试题及答案一、单选题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示方法?A. 0x1AB. 0.123C. 1.23e10D. 1.23E+10答案:A2. 下列关于C语言中数组的描述,错误的是?A. 数组可以存储相同类型的元素B. 数组的元素必须在编译时确定C. 数组的元素可以是任意数据类型D. 数组的大小在运行时可以改变答案:D3. 在C语言中,以下哪个关键字用于定义函数?A. classB. structC. functionD. void答案:D4. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 下列哪个选项不是C语言中的控制结构?A. 循环B. 选择C. 跳转D. 继承答案:D6. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. _variableD. variable$答案:C7. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A8. 在C语言中,以下哪个选项是正确的结构体定义?A. struct {int a;float b;};B. struct {int a;float b;} myStruct;C. struct {int a;float b;} myStruct;D. struct myStruct {int a;float b;};答案:D9. C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fwriteD. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针类型声明?A. int *p;B. *int p;C. int *p;D. int p*;答案:A二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是________。
2020年计算机二级考试试题:C语言程序设计试题1:第1题请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。
合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。
答案:void fun(int a,int b,long *c){*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}2:第2题请编写一个函数fun,它的功能使:计算n门课程的平均分,计算结果作为函数值返回。
答案:float fun(float *a,int n){float ave=0.0;int i;for(i=0;iave+=a;ave/=n;return ave;}3:第3题假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。
答案:void fun(char *a){int i=0;char *p,*q;p=q=a;while(*p)p++;p--;while(*p==‘*’)p--;while(qs;hy=h->next;}aver/=n;return aver;}6:第6题请编写函数fun,计算并输出给定10个数的方差。
答案:double fun(double x[10]){int i,j;double s=0.0,s1=0.0;for(i=0;i=aver}{*(b+j)=a;j++;}*n=j;return aver;}10:第10题请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).答案:sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n).double fun(int n){int i;double sn=0.0;for(i=1;i<=n;i++)sn+=(1.0/(2*i-1)-1.0/(2*i));return sn;}。
B.插入符是对左移运算符(=n;i--) a[i+1]=a[i];}main(){int i,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf(“%d“,a[i]);}程序运行后的输出结果是()A.10234B.12344C.12334D.12234参考答案:C8[单选题]有以下程序:#includeusingnamespacestd;classA{public:A(){cout<<“A“;}};classB{public:B(){cout<<“B“;}};classC:publicA{Bb;public:C(){cout<<“C“;}};intmain(){Cobj;return0;}执行后的输出结果是()。
A.CBAB.BACC.ACBD.ABC参考答案:D参考解析:本题考查的是类的继承和派生。
系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化,然后对派生类中的新增成员初始化。
9[单选题]设有如下说明typedef struct ST{long a;int b;char c[2];} NEW;则下面叙述中确凿的是()A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量参考答案:C10[填空题]数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于_______。
【答案】格式化模型解析:数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于格式化模型。
模拟卷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 中。