2011年6月福建C语言材料含答案
- 格式:ppt
- 大小:3.03 MB
- 文档页数:26
2024年6月青少年软件编程C语言等级考试试卷四级真题分数:100 题数:41.人以群分(25分)。
社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。
要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。
输入:第一行给出一个正整数N(2≤N≤105)。
随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。
题目保证这些数字以及它们的和都不会超过231。
输出:按下列格式输出:,其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。
2.那就别担心了(25分)。
下图转自“英式没品笑话百科”的新浪微博——所以无论有没有遇到难题,其实都不用担心。
博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。
现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。
例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有3条不同的推理路径。
输入:首先在一行中给出两个正整数N(1<N≤500)和M,分别为命题个数和推理个数。
这里我们假设命题从1到N编号。
接下来M行,每行给出一对命题之间的推理关系,即两个命题的编号S1 S2,表示可以从S1推出S2。
题目保证任意两命题之间只存在最多一种推理关系,且任一命题不能循环自证(即从该命题出发推出该命题自己)。
最后一行给出待检验的两个命题的编号A B。
输出:在一行中首先输出从A到B有多少种不同的推理路径,然后输出Yes如果推理是“逻辑自洽”的,或No如果不是。
题目保证输出数据不超过109。
3.凑零钱(25分)。
韩梅梅喜欢满宇宙到处逛街。
2024年6月青少年机器人技术等级考试理论综合试卷四级真题(含答案)分数:100分题数:30一、单选题(共20题,共80分)。
1.题Arduino C语言中,描述符byte表示的是()。
A.整型B.字符型C.单精度浮点型D.字节型标准答案:D。
2.题Arduino UNO/Nano主控板的MCU中,通常用于保存程序运行时数据的是()。
A.B.C.D.标准答案:C。
3.题Arduino C程序如下,当变量num的值为0时,该段程序运行后,串口监视器输出结果是()。
A.无输出B.1C.4D.1234标准答案:C。
4.题Arduino UNO/Nano主控板,通过按键开关切换高低电平,电路搭设如下,该电路属于()。
A.外部上拉电阻电路B.外部下拉电阻电路C.内部上拉电阻电路D.内部下拉电阻电路标准答案:B。
5.关于光敏电阻,下列选项中描述错误的是()。
A.光敏电阻的阻值随着光照强度的增大而减小。
B.光敏电阻的阻值随着光照强度的减小而增大。
C.使用光敏电阻,读取环境光的返回值,通常需要并联一个分压电阻。
D.光敏电阻的感光元件采用半导体材料制作而成。
标准答案:C。
6.关系表达式0xF>15的结果是()。
A.0B.1C.0xFD.15标准答案:A。
7.题Arduino UNO/Nano主控板,电路搭设及部分程序如下,当按键开关按下LED 点亮时,程序块中A和B的值分别是()。
A.HIGH/HIGHB.HIGH/LOWC.LOW/HIGHD.LOW/LOW标准答案:B。
8.题NPN三极管标识如下图,图中A对应的引脚是()。
A.基极B.集电极C.发射极D.漏极标准答案:A。
9.读取当前环境光数据,电路如下图所示,当光照强度增大时,analogRead(A0)的返回值是()。
A.增大B.减小C.不变D.不确定标准答案:A。
10.题Arduino C语言中,用于表示当两个条件都成立,整个条件才成立的逻辑运算符是()。
2024年3月GESP编程能力认证C++五级真题(含答案)一、单选题(每题2分,共30分)。
1.唯一分解定理描述的内容是()。
A. 任意整数都可以分解为素数的乘积B. 每个合数都可以唯一分解为一系列素数的乘积C. 两个不同的整数可以分解为相同的素数乘积D. 以上都不对2.贪心算法的核心思想是()。
A. 在每一步选择中都做当前状态下的最优选择B. 在每一步选择中都选择局部最优解C. 在每一步选择中都选择全局最优解D. 以上都对3.下面的C++代码片段用于计算阶乘。
请在横线处填入(),实现正确的阶乘计算。
A. return n * factorial(n - 1);B. return factorial(n - 1)/ n;C. return n * factorial(n);D. return factorial(n / 2)* factorial(n / 2);4.下面的代码片段用于在双向链表中删除一个节点。
请在横线处填入(),使其能正确实现相应功能。
A. if(current->next !=nullptr)current->next->prev =current->prev;B. current->prev->next =current->next;C. delete current->next;D. current->prev =current->next;5.辗转相除法也被称为()。
A. 高斯消元法B. 费马定理C. 欧几里德算法D. 牛顿迭代法6.下面的代码片段用于计算斐波那契数列。
该代码的时间复杂度是()。
int fibonacci(int n){if(n <=1){return n;}else{return fibonacci(n - 1)+fibonacci(n - 2);}}A. O(1)B. O(n)C. O(2n)D. O(log n)7.下面的代码片段用于将两个高精度整数进行相加。
2024年3月青少年软件编程C语言等级考试试卷一级真题(答案)分数:100 题数:5一、编程题(共5题,共100分)。
1.倒序输出。
依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
时间限制:1000。
内存限制:65536。
输入:一行4个整数a、b、c、d,以空格分隔。
0<a,b,c,d<108。
输出:一行4个整数d、c、b、a,整数之间以一个空格分隔。
样例输入:样例输出:参考答案:2.足球联赛积分。
在足球联赛里,一个球队赢下一场比赛得到3个积分,打平一场比赛得到1个积分,输掉比赛得到0分。
现已知一个球队在整个联赛里的比赛情况,求该球队最终的积分。
时间限制:1000。
内存限制:65536。
输入:三个整数x,y,z,以空格分开,分别表示这个球队赢下的比赛场数,打平的比赛场数,输掉的比赛场数。
(0≤x,y,z≤40)。
输出:一个整数,表示该球队最终的积分。
样例输入:样例输出:提示:63=19*3+6*1+4*0。
参考答案:3.苹果和虫子。
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。
虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?时间限制:1000。
内存限制:65536。
输入:输入仅一行,包括n,x和y(均为整数)。
输出:输出也仅一行,剩下的苹果个数。
样例输入:样例输出:提示:是要求完整的苹果数。
参考答案:4.整数的个数。
给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。
写程序计算给定的k个正整数中,1,5和10出现的次数。
时间限制:10000。
内存限制:65536。
输入:输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出:输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
样例输入:样例输出:参考答案:5.求满足条件的3位数。
2011年3月计算机二级考试c 语言试题及答案详细解析2011年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(1-10,21-40每题2分,11-20每题1分,共70分)(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言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=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name 的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A) BY B) BT C) YT D) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
C语言程序设计_习题大全(含答案) C语言程序设计_习题大全(含答案)C语言程序设计是计算机科学与技术领域中非常重要的一门课程,对于学习和掌握程序设计的基本原理和方法具有重要意义。
在学习这门课程过程中,习题的练习和掌握是至关重要的一环。
本文将向大家介绍一份包含答案的C语言程序设计习题大全,帮助读者拓宽思路,加深对C语言程序设计的理解。
第一章:基础知识练习习题1:请编写一个C程序,输出"Hello, World!"。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题2:请编写一个C程序,将两个整数相加并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```第二章:条件语句练习习题3:请编写一个C程序,判断某年份是否为闰年。
答案:```c#include <stdio.h>int main() {int year;printf("请输入年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年不是闰年\n", year);}return 0;}```习题4:请编写一个C程序,判断用户输入的整数是否为正数、负数或者零。
2023年9月青少年软件编程C语言等级考试试卷五级(含答案)分数:100 题数:4一、编程题(共4题,共100分)第1题.红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。
你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。
请写一个程序,计算你总共能够到达多少块黑色的瓷砖。
时间限制:1000内存限制:65536输入:包括多个数据集合。
每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。
W和H都不超过20。
在接下来的H行中,每行包括W个字符。
每个字符表示一块瓷砖的颜色,规则如下:(1)‘.’黑色的瓷砖;(2)‘#’白色的瓷砖;(3)‘@’黑色的瓷砖,并且你站在这块瓷砖上。
该字符在每个数据集合中唯一出现一次。
当在一行中读入的是两个零时,表示输入结束。
输出:对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。
样例输入:6 9....#......#..............................#@...#.#..#.0 0样例输出:45参考答案:#include <iostream>#define xa x+a[i]#define ya y+b[i]using namespace std;int graph[21][21];int w=0,h=0;int X1=0,Y1=0,cnt=0;const int a[]={-1,0,1,0},b[]={0,-1,0,1};void dfs(int x,int y){graph[x][y]=0;cnt++;for(int i=0;i<4;i++){if(graph[xa][ya]==1 && xa>0 && xa<=w && ya>0 && ya<=h)dfs(xa,ya);}}void get(){for(int i=1;i<=w;i++){for(int j=1;j<=h;j++){char a;cin>>a;if(a=='#') graph[i][j]=0;else if(a=='.') graph[i][j]=1;else if(a=='@'){X1=i,Y1=j;graph[i][j]=1;}}}dfs(X1,Y1);cout<<cnt<<endl;cnt=0;}int main(){while(1){cin>>h>>w;if(h==0 && w==0) break;get();}return 0;}第2题.装箱问题一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1,2*2,3*3,4*4,5*5,6*6。