C++练习题(摘自等级考试)
计算机等级考试(国家)-二级c语言笔试操作题分类模拟题1.doc

二级C语言笔试操作题分类模拟题1一、程序填空题1>下列给定程序中,函数fun的功能是计算下式:〜一I + 3 . 5 上.(2xn- 1)22 4、 6 (2xn)3(写n - 1)直到(2xn)2we,并将计算结果作为函数值返同。
例如,若形参e的值为le-3,函数的返回值为2.985678。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio. h>double fun(double e)int i;double s,x;found* **************s = 0 ; i=;x=l・ 0;while (x>e) (************** * found* ***************//★★****★**★** found* ************** x=(2.0*i-l)/(2.0*i);s=s+x;)return s;}main()double e=le-3;printf (,f\nThe result is : %f \n n , fun (e)); }二、程序改错题2、下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t 所指的数组中。
例如,当S所指字符串为、'ABCD〃时,t所指字符串中的内容应为''ABCDDCBA〃。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio • h>#include<string . h>/found* ***************/void fun(char s,char t){int i,d;d=strlen(s);for(i = 0;i<d;i + + )t [i]=s[i];for(i = 0;i<d;i + + )t[d+i]=s[d-l-i];/★★★★★★★★★★★★found火 *************t[2*d-l]='\0 ) main()char s [100] ,t [100];printf(n\nPlease enter string S:H); scanf("%s"z s);fun(s,t);printf(n\nThe result is:%s\n n,t);}三、程序设计题3、编写函数firn,其功能是:将s所指字符串中除了下标为奇数,同时ASC工工码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
二级C等级考试例题

C语言等级考试例题 1.将大于整数17且紧靠17的5个素数存入xx数组中。(应输出:19,23,29,31,37) 2.对指定字符在字符串a中出现的次数进行统计, 统计的数据存到b数组中。其中: 字符„a‟出现的次数存放到b[0]中,字符„b‟出现的次数存放到b[1]中,字符„c‟出现的次数存放到b[2]中,字符„d‟出现的次数存放到b[3]中,字符„e‟出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。例如, 当a中的字符串为: “bacd1b+ddep”,调用该函数后,b中存放数据应是:1、2、1、3、1、3。 3.读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。 例如, 若输入I am a student to take the examination., 则应输出“I aM A studenT tO takE thE examination.”。 4.已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。 计算并输出该数列前n项的平方根之和sum。 例如, 当n=10时, 程序的输出结果应为: 23.197745。 5.程序定义了N×N的二维数组, 编写函数: 使数组上半三角元素中的值全部置成0。 把a数组中的n个数和b数组中逆序的n个数一一对应相加, 结果存在c数组中。 从所读入的若干个字符串(用****作为结束输入的标志)中找出长度最大的一个字符串, 并输出该字符串。 例:将大于整数17且紧靠17的5个素数存入xx数组中。(应输出:19,23,29,31,37) #include "stdio.h" void main() { int i,j,k,n=0,xx[5]; for(i=18;n<5;++i) { k=sqrt(i); for (j=2;j<=k;j++) if (i%j==0)break; if (j>=k+1) { xx[n]=I; printf(“%d\n”,xx[n]); n=n+1; } } } 例:对指定字符在字符串a中出现的次数进行统计, 统计的数据存到b数组中。其中: 字符„a‟出现的次数存放到b[0]中,字符„b‟出现的次数存放到b[1]中,字符„c‟出现的次数存放到b[2]中,字符„d‟出现的次数存放到b[3]中,字符„e‟出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如, 当a中的字符串为: “bacd1b+ddep”,调用该函数后,b中存放数据应是:1、2、1、3、1、3。 #include "stdio.h" void main() { int i,b[6]={0}; char a[20]; gets(a); for(i=0;a[i]!='\0';++i) { if(a[i]=='a')b[0]++; else if(a[i]=='b')b[1]++; else if(a[i]=='c')b[2]++; else if(a[i]=='d')b[3]++; else if(a[i]=='e')b[4]++; else b[5]++; } for(i=0;i<6;i++) printf("b[%d]=%d\n",i,b[i]); printf("\n"); } 例:读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。 例如, 若输入I am a student to take the examination., 则应输出“I aM A studenT tO takE thE examination.”。 #include "stdio.h" #include "string.h" void main() { int i; char a[60]; gets(a); for(i=0;a[i]!='\0';++i) if(a[i]==' '&&(a[i-1]>='a'&&a[i-1]<='z'))a[i-1]-=32; puts(a); printf("\n"); } 例:从所读入的若干个字符串(用****作为结束输入的标志)中找出长度最大的一个字符串, 并输出该字符串。 #include "stdio.h" #include "string.h" void main() { int i,t=0,k=0; char a[30][20]; for(i=0;;i++) { gets(a[i]); if(strcmp(a[i],"****")==0)break; else if(t} puts(a[k]); printf("\n"); }
2024年6月青少年软件编程C语言等级考试试卷五级真题

2024年6月青少年软件编程C语言等级考试试卷五级真题分数:100 题数:41.列车调度(25分)。
火车站的列车调度铁轨的结构如下图所示。
两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。
每越列车从入口可以选择任意一条轨道进入,最后从出口离开。
在图中有9越列车,在入口处按照(8,4,2,5,3,9,1,6,7)的顺序排队等待进入。
如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?时间限制:5000。
内存限制:65536。
输入:第一行给出一个整数N(2≤N≤105),下一行给出从1到N的整数序号的一个重排列。
数字间以空格分隔。
输出:在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。
2.实验室使用排期(25分)。
受新冠疫情影响,当前大家的活动都必须注意保持充分的社交距离,国家实验室的使用也同样受到了严格的限制。
假设规定任何一个时间点上,实验室内最多只能有1个人,且每个人都必须提前申请实验室的使用,只有申请被批准后才能进入。
现给定一批第二天的实验室使用申请,你需要写个程序自动审批,使得能够被批准的申请数量最大化。
时间限制:7000。
内存限制:65536。
输入:输入第一行首先给出一个正整数N(≤2×103),为申请总量。
随后N行,每行按以下格式给出申请信息:hh:mm:ss hh:mm:ss其中hh:mm:ss表示一天内的时间点“小时:分钟:秒钟”,最早从00:00:00开始,最晚到23:59:59结束。
第一个时间点为进入实验室的时间,第二个是离开时间。
题目保证离开时间在进入时间之后。
注意所有时间都在一天之内。
时间按24小时显示。
输出:在一行中输出能够被批准的最大申请数量。
3.负载均衡(25分)。
负载均衡是指在一组后端服务器上有效地分配传入的网络流量。
负载均衡算法按照某种特定方法分配负载。
如果我们可以估算出最大的传入流量负载,则可以根据以下规则设计算法:(1)大小为S的传入流量负载将首先被分解为两块,并且每块可以再次被分解为两块,以此类推。
全国计算机等级考试C语言编程题(附答案)

C语言关键字速记(必考):enum char case const unsigned do default double else extern float for goto if int long register short signed struct switch typedef union void volatile while break return continue autoC语言的最小单位是函数。
C语言的结构有:顺序结构、循环结构和分支结构。
全国计算机等级考试c语言大题改错题(每小题10分,2小题/套)第1套1.程序Cmody021.c输出如下所示图形:*************************2.程序Cmody022.c的功能是求解百元买百鸡问题:设一只公鸡2元、一只母鸡1元、一只小鸡0.5元。
问一百元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少种分配方案?-------------------------Cmody021.c-------------------#include<stdio.h>void main(){/**/int i;j;/**/for(i=1;i<=5;i++){for(j=1;j<=5-i;j++)printf(" ");/**/ for(j=1;j<=5;j++)/**/printf("*");printf("\n");}}-------------------------Cmody022.c------------------- #include<stdio.h>#include<conio.h>/**/int fun();/**/{int hen,cock,chicken,n=0;clrscr();for(cock=0;cock<=50;cock+=1)for(hen=0;hen<=100;hen=hen+1){chicken=2*(100-hen-2*cock);/**/if(cock+hen+chicken=100)/**/{n++;printf("%d-->hen:%d,cock:%d,chicken:%d\n",n,hen,cock,chi cken);if(n==20)getch();}}return n;}void main(){int num;num=fun();printf("\nThere are %d solutions.\n",num);getch();}第2套1.程序Cmody031.c的功能是:从键盘上输入两个整数,及一个运算符(+、-、*、/或%),进行相应的运算后输出运算的结果。
全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析试题一:选择题1. 下列关于C语言的说法,错误的是()A. C语言是一种高级语言B. C语言具有跨平台性C. C语言编译器可以直接生成机器码D. C语言是一种解释型语言答案:D解析:C语言是一种高级语言,具有跨平台性。
编译器将C语言源程序编译成目标代码,然后通过链接器生成可执行文件,这个过程生成的机器码可以被计算机直接执行,因此C语言不是解释型语言。
2. 以下哪个选项不是C语言的基本数据类型?()A. intB. charC. floatD. string答案:D解析:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
string不是C语言的基本数据类型,而是由字符数组构成的一种自定义类型。
试题二:填空题1. 在C语言中,每个语句的结尾必须使用()符号。
答案:分号(;)解析:在C语言中,每个语句的结尾必须使用分号(;)作为结束符,表示一个语句的结束。
2. 以下程序的输出结果是()。
```c#include <stdio.h>int main() {int a = 5;int b = 3;printf("%d\n", a % b);return 0;}```答案:2解析:在C语言中,取模运算符(%)用于计算两个整数相除的余数。
在本题中,5除以3的余数为2,因此输出结果为2。
试题三:编程题1. 编写一个C程序,实现以下功能:从键盘输入10个整数,计算并输出这些整数的平均值。
```c#include <stdio.h>int main() {int i, num;float sum = 0.0, average;for (i = 0; i < 10; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &num);sum += num;}average = sum / 10;printf("这10个整数的平均值为:%.2f\n", average);return 0;}```解析:本题考查了循环语句、输入输出函数等基本知识。
计算机等级考试c语言试题及答案

计算机等级考试c语言试题及答案在计算等级C语言考试中,我们会遇到什么样的题目类型呢?下面是给大家整理的计算机等级考试c语言试题及答案,供大家参阅!计算机等级考试c语言试题一、基本操作题请补充main( )函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。
例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。
注意:部分源程序给出如下。
请勿改动main( )函数和其他函数中的任何内容,仅在main( )函数的横线上填人所编写的若干表达式或语句。
试题程序:#include#includevoid main( ){int a,b,numl,num2,t;system( CLS ):printf( \nInput two numbers:\nscanf( %d,%d ,numl,num2); if(numl {a=num2;b=numl:}else{a=numl;b=num2;)while(【1】){t= 【2】a=b;b=t:}printf( greatest common divisor: %d\n ,a);printf( least common multiple: %d\n ,【3】;}二、程序改错题下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。
例如,当s中的数为l23456789时,t中的数为2468。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include#include#include//****found****void proc(long S,long t){long sl=10;s/=10;*t=s%10;//****found****while(s { s=s/l00;*t=s%10*sl+*t;sl=sl*10;})void main( ){long S,t;system( CLS ):printf( \nPlease enter S:scanf( %ld ,proc(S, .printf( The result is:%ld\n ,t);}三、程序设计题请编写函数proc( ),其功能是:将str所指字符串中除下标为偶数、同时ASCIl码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
c语言等级考试试题
c语言等级考试试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef2. 下列哪个选项不是C语言的标准输入输出函数?A. printf()B. scanf()C. coutD. getchar()3. 在C语言中,全局变量的生命周期是?A. 只在定义它的函数中有效B. 从定义开始到程序结束C. 只在main函数中有效D. 只在定义它的代码块中有效4. C语言中,以下哪个操作符用于按位取反?A. !B. ~C. ^D. &&5. 下列哪个不是C语言中合法的赋值运算符?A. +=B. +=C. --D. ++6. 在C语言中,int类型的变量通常占用多少字节的内存空间?A. 1B. 2C. 4D. 87. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strncpy()D. strncat()8. 下列哪个是C语言中的条件运算符?A. ?B. ||C. &&D. ++9. 在C语言中,以下哪个类型用于表示字符?A. intB. charC. floatD. double10. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcat()C. strcpy()D. strncat()二、填空题(每题3分,共15分)11. 在C语言中,一个浮点数变量声明为 `float x;`,其默认的初始值是______。
12. 当使用 `scanf()` 函数读取字符串时,通常会使用占位符______。
13. 在C语言中,`sizeof` 运算符可以用来获取数据类型或变量的______。
14. 如果一个变量声明为 `static int count;`,那么它的生命周期是 ______。
15. C语言中的 `break` 语句通常用于 ______ 结构中,以提前退出循环。
青少年软件编程(C语言)等级考试试卷(三级)2023-12
青少年软件编程(C语言)等级考试试卷(三级)2023-12202312C语言3级真题编程题1.因子问题任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。
时间限制:10000内存限制:65536输入包括两个整数N、M。
N不超过1,000,000。
输出输出一个整数a,表示结果。
如果某个案例中满足条件的正整数不存在,则在对应行输出-1样例输入35 10样例输出52.MinecraftMinecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。
在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。
如果一张贴纸可以贴满小立方体的一个面。
那么,他需要用掉多少张贴纸呢?时间限制:1000内存限制:65536输入一个整数N,表示小明所拥有的小立方体的个数。
N不会超过1000。
输出一个整数,即小明最少用掉的贴纸有多少张。
样例输入9样例输出303.波兰表达式波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。
波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。
本题求解波兰表达式的值,其中运算符包括+ - * /四个。
时间限制:1000内存限制:65536输入输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出输出为一行,表达式的值。
可直接用printf("%f\n", v)输出表达式的值v。
样例输入* + 11.0 12.0 + 24.0 35.0样例输出1357.0000004.吃糖果2现有n(50 > n > 0)个糖果,每天只能吃2个或者3个,请计算共有多少种不同的吃法吃完糖果。
时间限制:1000内存限制:65536输入输入的每一行包括一组测试数据,即为糖果数n。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++练习题 (摘自全国计算机等级考试二级真题)
一、选择题 (1)对C++编译器区分重载函数无任何意义的信息是 A)参数类型 B)参数个数 C)返回值类型 D)常成员函数关键字const (2)有如下类定义和变量定义: class A{ publie: A(){data=0;} ~A(){} int GetData() const { return data;} void SetData(int n) {data=n;} private: int data; }; const A a; A b; 下列函数调用中错误的是 A)a .GetData(); B)a .SetData(10); C)b .GetData(); D)b .SetData(10); (3)有如下类定义和变量定义: class Parents{ public: int publicuata; private: int privateData; }; class ChildA: public Parents{/*类体略*/}; class ChildB: private Parents{/*类体略*/); ChildA a; ChildB b; 下列语句中正确的是 A)cout< C)cout< (4)运算符重载时不需要保持的性质是 A)操作数个数 B)操作数类型 C)优先级 D)结合性 (5)下列描述中, 不属于面向对象思想主要特征的是 A)封装性 B)跨平台性 C)继承性 D)多态性 (6)有如下程序段: int i=4, j=1; int main(){ int i=8, j=i; cout< } 运行时的输出结果是 A)4, 4 B)4, 1 C)8, 8 D)8, 1 (7)已知函数fun的原型为int fun(int, int, int);下列重载函数原型中错误的是 A) char fun(int, int); B) double fun(int, int, double); C) int fun(int, char*); D) float fun(int, int, int); (8)建立一个类对象时, 系统自动调用 A)析构函数 B)构造函数 C)静态函数 D)友元函数 (9)通过派生类的对象可直接访问其 A)公有继承基类的公有成员 B)公有继承基类的私有成员 C)私有继承基类的公有成员 D)私有继承基类的私有成员 (10)己知表达式++a中的“++”是作为成员函数重载的运算符, 则与++a等效的运算符函数调用形式为 A)a .operator++(1) B)operator++(a) C)operator++(a, l) D)a.operator++( ) (11)在定义一个类模板时, 模板形参表是用一对括号括起来的, 所采用的括号是 A)( ) B)[ ] C)< > D){ } (12)有如下程序: #include #include using namespace std; class XCD{ char* a; int b; public: XCD(char* aa, int bb){ a=new char[strlen(aa)+1]; strcpty(a, aa); b=bb; } Char* Geta () {return a;) int Getb() { return b;} }; int main(){ char *pl=“abcd”, *p2=“weirong”; int dl=6, d2=8; XCD x(pl, dl), y(p2, d2); cout< return 0; } 运行时的输出结果是 A)12 B)16 C)14 D)11 (13)有如下程序: #include #include using namespace std; class XCF{ int a; public: XCF(int aa=0):a (aa){cout<<“1”;} XCF(XCF& x){a=x .a; cout<<“2”;) ~XCF() {cout< int Geta() {return a;} }; int main(){ XCF dl(5), d2 (dl); XCF *pd=new XCF(8); cout