2012国信蓝点杯 软件大赛c语言初赛真题高职组
NOIP2012普及组初赛及答案(C )
第十八届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意:●试题纸共有10页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。
A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。
A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。
A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。
A.四B.八C.十D.十二5.()不属于操作系统。
A.Windows B.DOS C.Photoshop D.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A.ABC B.CBA C.ACB D.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A.显示器B.CPU C.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。
A.0 B.5 C.10 D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。
如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。
A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(Vector Image)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。
第二届“国信蓝点”软件设计大赛_C语言模拟题(附程序题答案)
第二届“国信蓝点” C语言软件设计以下是简答题:1、代码填空形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。
请补充空白的部分。
char buf[] = "abcde11edcba";int x = 1;for(int i=0; i<strlen(buf)/2; i++)if(___________________){x = 0;break;}printf("%s\n", x ? "是":"否");(3分)2、代码填空下列代码把一个二进制的串转换为整数。
请填写缺少的语句;char* p = "1010110001100";int n = 0;for(int i=0;i<strlen(p); i++){n = __________________;}printf("%d\n", n);(4分)3、代码填空假设a,b,c是3个互不相等的整数。
下列代码取出它们中居中的数值,记录在m中。
其中的swap()函数可以交换两个变量的值。
请完善代码。
if(a>b) swap(&a, &b);if(b>c) swap(&b, &c);______________________;int m = b;(4分)4、代码填空下面函数的目的是求出某个日期是该年度的第几天。
试完善之。
如果传入:year=1980,month=1, day=1则返回 1如果传入:year=1980,month=2, day=1则返回32int getDayOfY ear(int year, int month, int day){int days _____________________;int flag =(year%4==0 && year%100!=0) || year%400 == 0 ? 1 : 0;int sum = day ;for(int i=0;i<month;i++) {sum += days[flag][i];}return sum;}(8分)5、代码填空计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。
NOIP2012初赛普及组C++题目及答案
第十八届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意:●试题纸共有10页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。
A.内存B.鼠标C. U盘D.摄像头2.()是一种先进先出的线性表。
A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。
A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。
A.四B.八C.十D.十二5.()不属于操作系统。
A.Windows B.DOS C.Photoshop D.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A.ABC B.CBA C.ACB D.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A.显示器B.CPU C.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列 5,4,3,2,1需要执行()次操作,才能完成冒泡排序。
A.0 B.5 C.10 D.159. 1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。
如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。
A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(Vector Image)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。
2关于举办第二届“国信蓝点杯”全样题
关于举办第二届“国信蓝点杯”全国软件专业人才设计与开发大赛的通知各有关院校:为了培养高等院校学生的自主创新意识和工程实践能力,激发大学生在软件开发领域的学习和研究兴趣,提高其软件编程能力和职业素质,推动高等院校计算机类专业教学创新与改革,促进计算机及软件专业学生创新能力的提高,教育部高等学校计算机科学与技术教学指导委员会、工业和信息化部人才交流中心决定联合举办第二届“国信蓝点杯”全国软件专业人才设计与开发大赛。
大赛分为JAVA软件开发和C语言程序设计两个项目,并分别设置本科组和高职高专组。
所有具有正式学籍的全日制本科及高职高专学生(以报名时状态为准)均可参加。
第二届全国软件专业人才设计与开发大赛具体事宜请参看大赛官方网站:,请各有关院校根据本校实际,积极组织学生参加。
大赛组委会秘书处:地址:北京市海淀区万寿路27号工业和信息化部万寿路机关18#信箱联系电话:010-/67/72电子邮箱:ncse@二〇一〇年十二月二十八日第二届全国软件专业人才设计与开发大赛报名费说明各参赛院校:现将第二届全国软件专业人才设计与开发大赛报名费相关问题说明如下:1、本届大赛报名费收费标准为200元/人次,选手在竞赛期间的食宿、交通等费用自理。
2、报名截止日期为2011年3月31日,以收到报名费为准。
3、全国组委会授权工业和信息化部人才交流中心下属国信世纪人才服务(北京)有限公司代收报名费,并为各参赛院校开具正式发票。
4、缴费方式:(1)在线缴费:点击大赛官网“在线支付”链接,按提示缴费即可,实时到账,无支付手续费。
(2)邮局汇款:通过邮局汇款,到账时间根据各地情况不同,为一至两周,邮局需收取相应汇款手续费。
汇款信息:北京市海淀区万寿路27号18信箱,刘静,。
请在汇款单附言中标注学校全称,以便核对查询。
(3)银行转账:只接受学校公对公转账,到账时间根据银行不同,为1至7天,银行需收取相应转账手续费。
银行账号:国信世纪人才服务(北京)有限公司开户银行:中国工商银行北京公主坟支行账户:5、查询汇款信息及发票事宜,请联系全国组委会刘静老师:010-。
2012年(上)全国信息技术水平考试计算机程序设计技术水平证书(C语言)考试试卷
考号:姓名:剩余时间:2012年(上)全国信息技术水平考试计算机程序设计技术水平证书(C语言)考试试卷第一大题:单选题(30 分)1. (1分)设有说明语句char *a="\123xyz";则变量a()。
(A) 包含7个字符(B) 包含6个字符(C) 包含5个字符(D) 包含4个字符2 . (1分)下列定义语句中错误的是()。
(A) int a[]={1,2}; (B) char *a[3]; (C) char s[10] ="test"; (D) int n=5,a[n];3. (1分) 下面程序的输出结果是()。
#define SU(X,Y) (X)*Yvoid main( ){ int a=3,b=4;printf("%d\n",SU(a++,b++));}(A) 12 (B) 15(C) 16 (D) 204. (1分) 下面程序的运行结果是()。
#include"stdio.h"#include"string.h"void main( ){char b[30],*chp;strcpy(&b[0],"CH");strcpy(&b[1],"DEF");strcpy(&b[2],"ABC");printf("%s \n",b);}(A) CDABC(B) DEFABC (C) ABCDE (D) ABCDEF5. (1分)下面程序的输出结果是()。
#include <stdio.h>int gcd(int m, int n){if(m==n)return m;else if(m>n)return gcd(m-n, n);elsereturn gcd(m, n-m);}void main( ){printf(″Gcd = %d\n″, gcd(24, 36)); }(A) Gcd=60(B) Gcd=24 (C) Gcd=12 (D) Gcd=366. (1分) 已知int a=20; a*=2; 则a的值为()。
全国软件专业人才设计与开发大赛软件大赛校内比赛C语言试题
“国信蓝点杯”全国软件大赛校内选拔赛C 语言程序设计试卷一、单项选择题1. C语言规定:在一个源程序中,main函数的位置( )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下面四个选项中,均是合法浮点数的选项是( )。
A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03. 若a=-14,b=3,则条件表达式a<b? a:b+1的值为( ) 。
A. -14B. -13C. 3D. 44. 已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是( ).A. 1,2B. 1,3C. 2,2D. 2,35. 为了判断两个字符串s1和s2是否相等,应当使用( )A. if (s1==s2)B. if(s1=s2)C. if (strcmp(s1,s2))D. if (strcmp(s1,s2)==0)6. 以下正确的描述是( )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套。
B. 函数的定义不可以嵌套,但函数的调用可以嵌套。
C. 函数的定义和函数的调用均不可以嵌套。
D. 函数的定义和函数的调用均可以嵌套。
7. 在C语言中,下面对函数不正确的描述是( )。
A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。
B. 允许函数递归调用。
C. 函数形参的作用范围只是局限于所定义的函数内。
D. 子函数必须位于主函数之前。
8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序范围内均有效D. 该变量为非法变量9. 以下正确的函数形式是( )。
A. double fun(int x,int y) { z=x+y;return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun( int x,int y) {double z; z=x+y; return z; }10. 以下程序的输出结果是( )。
国信蓝桥杯2012预赛_c++_高职
2012年预赛c/c++ 高职考生须知:考试时间为4小时。
参赛选手切勿修改机器自动生成的【考生文件夹】的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答。
参赛选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等身份信息或其它与竞赛题目无关的内容,否则成绩无效。
试题包含三种类型:“结果填空”、“代码填空”与“程序设计”,总计100分。
结果填空:2+3+5+6 = 16分代码填空:8+6+10 = 24 分程序设计:15+17+28 = 60分结果填空要求参赛选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
代码填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入【考生文件夹】下对应题号的“解答.txt”中即可。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果的时候才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个编程题目,要求考生把所有函数写在一个文件中。
调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或A TL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
结果填空(满分2分)题目在【考生文件夹】下对应题号的“题目.rar”中,请先解压该文件。
解压密码以考场公布为准。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
广州松田职业学院第三届“蓝桥杯”软件大赛校内选拔赛试卷
2012年蓝桥杯全国软件设计大赛-C语言校内选拔赛说明:本试卷包含三种题型:“代码填空”,“程序设计”。
填空题要求学生在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不多于一条语句(即不能出现分号),程序运行结果题目要求学生根据程序的功能,写出程序运行的结果。
编程题要求学生设计的程序对于给定的输入能给出正确的输出结果。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
编写的程序必须是通用的,不能只对试卷中给定的数据有效。
1.代码填空(满4分,每空2分)下面invert函数的功能是将一个字符串str的内容颠倒过来。
请填空。
#include <string.h>void main(){ int i,j;char str[100],k;gets(str);for(i=0,j= ; i<j; i++,j--){ k=str[i]; ; str[j]=k;}}2.代码填空(满2分)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。
当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:任何两条边相加都大于另一条边。
请填空。
void main(){ float a,b,c;scanf(“%f%f%f”,&a,&b,&c);if(__ __)printf(“YES\n”);/*a,b,c能构成三角形*/else printf(“NO\n”);/*a,b,c不能构成三角形*/}3.代码填空(满4分,每空2分)有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请填空。
main(){int day,x1,x2;day=0; x1=1020;while( ) {x2= ;x1=x2;day++;}printf(“day=%d\n”,day);}4.代码填空(满3分,每空1.5分)下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,请填空。
2012年软件大赛选拔试卷2C语言
while(p!=h) { prinf(“%d”,p->data); p=p->next; } }
填写结果题(每题 15 分,共 30 分)提示:可通过编写程序运行获得 结果 4. 如有一个正整数 n,其真因素之和等于 n,则 n 称为完美数。 如:完美数 28=1+2+4输入一个 0~2╳109之间的任意整数,用大写格式输出该数。如: 输入:13002 输出:壹万叁仟零貮 输入:13200 输出:壹万叁仟貮佰 输入:13015 输出:壹万叁仟零壹拾伍 输入:130001500 输出:壹亿叁仟万壹仟伍佰 试编写一个程序,实现上述功能。 提示:数字的大写汉字有, 壹、貮、叁、肆、伍、陆、柒、捌、玖、拾、零、佰、仟、万、亿
2012 年参加全国软件大赛第二次选拔试卷
南通职业大学电子信息工程学院 2012.2 填写代码题(每空 2 分,共 30 分) 1. str 是一个由数字和字母字符组成的字符串,由变量 num 传入字符串 长度。函数 fun(),该函数的功能是:把字符串 str 中的数字字符转换 成数字并存放到整型数组 bb 中,函数返回数组 bb 的长度。 例如:str=“Bcd123e456hui890”,结果为:123456890。 该程序读输入两个字符串, 求两个字符串中数字串所构成的整数之和。 例如:两个串,str1=”adf3dgf4dgs6”, str2=”sdgfdf51df9”, 计算结果为 864(即 346 与 519 之和) 源程序: #include<stdio.h> #define N 80 int bb[N]; int fun(char s[],int bb[],int num) { int i,k=0; for(i=0;i<num;i++) { if(【1】) { bb[k]=【2】; k++; } } return 【3】; } main() { char str[N]; int num=0,n,i; long a=0,b=0; printf("输入第一个字符串:\n"); gets(str); while(str[num]) num++; n=fun(str,bb,num); for(i=0;i<n;i++) a=【4】;
NOIP2012第十八届全国青少年信息学奥林匹克联赛初赛试题_提高组 C++语言
可达,则以下说法正确的有( ) 。 A. v1 到 v2 的最短路径可能包含一个环 B. d (v1 , v2 ) d (v2 , v1 ) C. d (v1 , v3 ) d (v1 , v2 ) d (v2 , v3 ) D.如果 v1 v2 v3 v4 v5 是 v1 到 v5 的一条最短路径,那么 v2 v3 v4 是 v2 到 v4 的一条最短路径 7.逻辑异或( )是一种二元运算,其真值表如下所示。 a False False True True b False True False True
一、单项选择题(共 10 题,每题 1.5 分,共计 15 分;每题有且仅有一个正确 选项) 1.目前计算机芯片(集成电路)制造的主要原料是() ,它是一种可以在沙子中 提炼出的物质。 A.硅 B.铜 C.锗 D.铝
2.( )是主要用于显示网页服务器或者文件系统的 HTML 文件内容,并让用户与 这些文件交互的一种软件。 A.资源管理器 B.浏览器 C.电子邮件 D.编译器
A.HTTP
10.以下关于计算复杂度的说法中,正确的有(
A.如果一个问题不存在多项式时间的算法,那它一定是 NP 类问题 B.如果一个问题不存在多项式时间的算法,那它一定不是 P 类问题 C.如果一个问题不存在多项式空间的算法,那它一定是 NP 类问题 D.如果一个问题不存在多项式空间的算法,那它一定不是 P 类问题 三、问题求解(共 2 题,每题 5 分,共计 10 分) 1.本题中, 我们约定布尔表达式只能包含 p,q,r 三个布尔变量, 以及 “与” (∧) 、 “或” (∨) 、 “非” (?)三种布尔运算。如果无论 p,q,r 如何取值,两个布尔表
int main() { cin>>s1; cin>>s2; n=s1.size() memset(lefts, memset(rights memset(father dfs(0,1); } 输入: ABCDEF BCAEDF 输出:_________ 五、完善程序(第 1 题第 2 空 3 分,其余每空 2.5 分,共计 28 分) 1.(排列数)输入两个正整数 n,m(1≤n≤20,1≤m≤n),在 1~n 中任取 m 个数, 按字典序从小到大输出所有这样的排列。例如 输入:3 2 输出:1 2 1 3 2 1 2 3 3 1 3 2 #include<iostream> #include<cstring> Using namespace std;
2012年蓝桥杯全国软件设计大赛-试题及参考答案
2012年蓝桥杯全国软件设计大赛-C语言校内选拔赛参考答案一、代码填空题(满分50分)1. strlen(str)-1;str[i]=str[j]2.a+b>c&&a+c>b&&b+c>a3.x1或x1!=0或x1>0;x1/2-24.num/100%10==3或num%1000/100==3;!num==0或者num!=05.j<=2或j<3;b[j][i]=a[i][j];i<=2或i<36.&a[i];i%4==0;printf(“\n”)7.x[i-1]+x[i-2];fabs((double)(x[i-1]-x[i]))或者fabs(x[i-1]-x[i])或者 abs(x[i-1]-x[i]);i+28.%;/;j=i,j>=1,j—或者 j=i,j>0;j--9.j=4;a[0]=k10.buf[i]!=buf[strlen(buf)-1-i]二、程序设计(满分50分)1题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j;while(1){printf("请从键盘上输入一个大于等于2的整数:");scanf("%d",&n);j=0;if(n<2){printf("输入的数不合法!");}else if(n==2){printf("%d\n",2);break;}else{for(i=2;i<=(int)sqrt(n);i++){if(n%i==0){j=1;break;}}if(j==0){printf("%d\n",n);break;}}}printf("\n");return 0;}2题参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N]={12,78,56,34,25,67,9,89,97,46};int i,j,temp;printf("排序前的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");for(i=0;i<N;i++){for(j=0;j<N-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}printf("排序后的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");return 0;}3题参考答案:#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv[]){int x,y,z;for(x=0;x<=10;x++){y=20-2*x;z=30-x-y;if(x+y+z==30){printf("%d\t%d\t%d\n",x,y,z);}}return 0;}杨辉三角参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N][N]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}};int i,j;for(i=1;i<N;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<N;i++){for(j=0;j<=i;j++){printf("%d\t",a[i][j]);}printf("\n");}return 0;}5.第五题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j,k;while(1){printf("请输入3到30之间的奇数:");scanf("%d",&n);if(n%2!=0 && n>=3 && n<=30){break;}else{printf("输入错误,");}}int m=n/2+1;for(i=1;i<=m;i++){for(j=i;j<m;j++){printf(" ");}for(k=1;k<=2*i-1;k++){printf("* ");}printf("\n");}for(i=1;i<m;i++){for(j=1;j<=i;j++){printf(" ");}for(k=1;k<=n-2*i;k++){printf("* ");}printf("\n");}return 0;}6题小孩报数参考答案:#include "stdafx.h"#include "stdio.h"#define N 30int main(int argc, char* argv[]) {int i;int a[N];int count,k=0;for(i=0;i<N;i++){a[i]=i+1;}do{count=0;for(i=0;i<N;i++){if(a[i]!=0){k++;}else{count++;}if(k==6){printf("%d\t",a[i]);a[i]=0;k=0;}}}while(count<N);return 0;}。
c语言全国各届信息技术大赛试题(值得计算机专业学习).doc
5有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡是数到3的人退出圈子,问最后留下的是原来的几号的那个人。
#include <stdio.h> void main(){int n, i, k, m;int array[50], *p;printf(M please input the number of persons: n = \n H);scanf("%d", &n);p = array;for (i 二0; i v n; i++)*(p+i) = i+1;i = 0; //i为每次循环计数变量k = 0; // k为按1,2,3报数时的计数变量m = 0; // m为退岀人数计数变量while(m < n-l) 〃当退出人数比n-1少时执行循环体{if( *(p+i) != 0 )k++;if(k == 3) //对退出的人编号置为0{*(p+i) = 0;k 二0;m++;}i++;if(i == n)i = 0;}while(*p == 0)p++; printf("The last one isNo. %d\n",*p);6编写一个函数求字符串的长度。
并在main 函数中输入字符串,并输出其长度。
#include <stdio.h> void main(){int strLen(char *str);intlen;char string[20];printf("please input a string: \n M);scanf(”%s”, string);len = strLen(string);printf("The length of the string is: %2d\n", len);}int strLen(char *str){char *p;int count = 0;p = str;while(水p){P++; count++;}return (count);}7有一个字符串,包含n个字符。
国信蓝点杯C试题
C语言程序设计上机编程试题一、倒序数是将一个阿拉伯数的各位上的数字以逆序的形式写成的数。
该阿拉伯数的第一位变成最后位,最后位变成第一位。
例如数1245被写成5421。
注意产生的新数字前边所有的数字0是被略去的。
倒序数的尾部无多余的数字0。
请将阿拉伯数转变为倒序数。
输入输入的第一行仅有一个正整数n,表示有n组测试数据。
接下来有n行,每一行是一组测试数据,长度不超过100。
每一行上的字符串表示一个非负整数,它是你需要转换的数。
输出对每一组测试数据在一行上输出倒序数,该倒序数中前导的数字0被略去了。
输入样例输出样例324 4243400 434305503 (25分)二、对一个正整数n,求出n!中末尾0的个数。
输入输入有若干行。
每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000)。
输出对输入行中的每一个数据n,输出一行,其内容是n!中末尾0的个数。
输入样例输出样例33 0100 241024 253 (25分)三、给定两个字符串a和b,定义式子a*b表示两个字符串的连接。
例如a=“abc”,b=“def”,则a*b=“abcdef”。
如果将连接看成乘法,则按照普遍的方法,一个非负整数的幂表示为:a0=“”(the empty string),a(n+1)=a*(a n)。
输入输入字符串s,每组样例一行,s为可打印字符。
s的长度在1—1000000之间。
最后一组数据后为句号(.)。
输出每个字符串s输出最大的n满足s=a n,其中a为任意字符串。
输入样例输出样例abcd 1aaaa 4ababab 3 (25分)四、若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。
现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。
蓝桥杯c语言初赛试题及答案
蓝桥杯c语言初赛试题及答案蓝桥杯C语言初赛试题及答案1. 题目一:字符串反转编写一个函数,实现字符串的反转。
要求使用指针操作,不使用库函数。
```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int len = strlen(str);char *start = str;char *end = str + len - 1;while (start < end) {char temp = *start;*start = *end;*end = temp;start++;end--;}}int main() {char str[] = "Hello World";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```答案:函数`reverseString`通过交换字符串的首尾字符来实现反转,直到首尾指针相遇。
2. 题目二:计算阶乘编写一个函数,计算并返回一个整数的阶乘。
要求使用递归。
```c#include <stdio.h>long factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}int main() {int num = 5;printf("Factorial of %d is %ld\n", num, factorial(num)); return 0;}```答案:函数`factorial`通过递归调用自身计算阶乘,当n为0时返回1,否则返回n乘以(n-1)的阶乘。
3. 题目三:寻找最大值编写一个函数,找出数组中的最大值。
2012普及组初赛试题与答案
一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选 项)
1. A. 2. A. C. 3. A. 4. A. 5. A. 6. A. 7. A. ( ( 栈 哈希表(散列表) 计算机如果缺少( 内存 ) ,将无法正常启动。 B. 鼠标 C. U盘 D. 摄像头
)是一种先进先出的线性表。 B. D. 队列 二叉树 ),它是一种可以在沙子中提炼 D. 铝
)市场占有率最靠前的厂商包括 Intel、AMD 等公司。 B. CPU C. 内存 D. 鼠标
CCF NOIP2012 初赛 普及组 C 1
8.
使用冒泡排序对序列进行升序排序, 每执行一次交换操作将会减少 1 个逆序对, 因此序 列 5, 4, 3, 2, 1 需要执行( A. 0 )次交换操作,才能完成冒泡排序。 B. 5 C. 10 D. )计算机。 15
四、完善程序(前 2 空每空 2 分,后 8 空每空 3 分,共计 28 分)
1. (坐标统计)输入 n 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方 的点(即 x、y 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每 个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输 出其中最大的编号)。
CCF NOIP2012 初赛 普及组 C 8
2 3 3 1 3 2 #include<stdio.h> #include<string.h> #define SIZE 25 int data[SIZE], used[SIZE]; int n, m, i, j, k; int flag; int main() { scanf("%d%d", &n, &m); memset(used, 0, sizeof(used)); for (i = 1; i <= m; i++) { data[i] = i; used[i] = 1; } flag = 1; while (flag == 1) { for (i = 1; i <= m-1; i++) printf("%d ", data[i]); printf("%d\n", data[m]); flag = { ② { used[j] = 1; data[i] = flag = 1; break; } ③ ; ; for (j = data[i]+1; j <= n; j++) if (!used[j]) ① ; for (i = m; i >= 1; i--)
蓝桥杯试题及答案c语言
蓝桥杯试题及答案c语言蓝桥杯试题及答案C语言1. 题目一:计算阶乘要求:编写一个程序,输入一个非负整数n,输出n的阶乘。
```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个非负整数:");scanf("%d", &n);for(i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘是:%lld\n", n, factorial);return 0;}```2. 题目二:寻找最大值要求:给定一个整数数组,找出数组中的最大值。
```c#include <stdio.h>int main() {int arr[5] = {10, 20, 30, 40, 50};int max = arr[0];for(int i = 1; i < 5; i++) {if(arr[i] > max) {max = arr[i];}}printf("数组中的最大值是:%d\n", max);return 0;}```3. 题目三:字符串反转要求:编写一个程序,输入一个字符串,输出其反转后的字符串。
```c#include <stdio.h>#include <string.h>int main() {char str[100], reversed[100];printf("请输入一个字符串:");scanf("%s", str);int len = strlen(str);for(int i = 0; i < len; i++) {reversed[i] = str[len - 1 - i];}reversed[len] = '\0';printf("反转后的字符串是:%s\n", reversed);return 0;```4. 题目四:素数判断要求:编写一个程序,输入一个正整数,判断其是否为素数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。
这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:
1. 如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。
2. 前三个数字相同,或后三个数字相同,都加3分。例如:4888,6665,7777都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了6分。
char* y[] = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
int n = year - 1984;
while(n<0) n += 60;
printf("%s%s\n", x[_______], y[_______]);
AB = 52.1
BC = 57.2
CD = 43.5
DE = 51.9
EA = 33.4
EB = 68.2
EC = 71.9
根据这些数据求五边形地块的面积。四舍五入到小数后两位。只写结果,不要源代码!
2.大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。
总之天干、地址都是循环使用,两两配对。
今年(2012)是壬辰年,1911年辛亥革命
下面的代码根据公历年份输出相应的干支法纪年。已知最近的甲子年是1984年。
void f(int year)
{
char* x[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
欧拉随便问:“卖了多少鸡蛋呢?”
不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。你猜猜看!”
欧拉猜不出。
另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。
身份证号码18位 = 17位 + 校验码
校验码的计算过程:
例如:身份证前17位 = ABCDEFGHIJKLMNOPQ
A~Q 每位数字乘以权值求和(每位数字和它对应的“权”相乘后累加)
17位对应的权值分别是:
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
{
for(int j=0; j<rank; j++)
{
printf("%4d", x[i][j]);
}
printf("\n");
}
return 0;
}
8.30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!
求出的总和再对11求模
然后按下表映射:
余数 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
下面的代码实现了校验过程,输入串为身份证前17位,返回了校验码。
}
int main(int argc, char* argv[])
{
f(1911);
f(1970);
f(2012);
return 0;
}
6.如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以!
因为有人的身份证最后一位是"X"
实际上,除了最后一位的X,不会出现其它字母!
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
void rotate(int* x, int rank)
{
int* y = (int*)malloc(___________________); // 填空
3. 符合AABB或者ABAB模式的加1分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了2分。
4. 含有:6,8,9中任何一个数字,每出现一次加1分。例如4326,6875,9918都符合加分标准。其中,6875被加2分;9918被加3分。
for(int i=0; i<rank * rank; i++)
{
y[_________________________] = x[i]; // 填空
}
for(i=0; i<rank*rank; i++)
{
x[i] = y[i];
}
free(y);
}
int main(int argc, char* argv[])
{
int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int rank = 4;
rotate(&x[0][0], rank);
for(int i=0; i<rank; i++)
尾号最终得分就是每条标准的加分总和!
要求程序从标准输入接收数据,在标准输出上输出结果。
输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。
输出格式为:n行整数。
例如,输入:
例如,如下的方阵:
1 3 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
1.造成高房价的原因有许多,比如土地出让价格。既然地价高,土地的面积必须仔细计算。遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。
一般需要把它划分为多个三角形来计算。
已知三边求三角形的面积需要用海伦定理,参见【2.jpg】
各条边长数据如下:
XC,90
XCIII,93
XCV,95
XCVIII,98
XCIX,99
C,100
CC,200
CCC,300
CD,400
D,500
DC,600
DCC,700
DCCC,800
CM,900
CMXCIX,999
本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。
欧拉想了想,说出了正确答案。
我们不是数学家,懒得列出公式来分析。但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!
请写出每人鸡蛋的数目(顺序不限),用逗号隔开。
3.福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
int sum = 0;
for(int i=0; i<17; i++)
{
sum += (______________) * weight[i]; // 填空
}
return map[____________]; // 填空
}
7.对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。比如:IX表示9 IV表示4 XL表示40 更多的示例参见下表,你找到规律了吗?
I,1
II,2
III,3
IV,4
V,5
VI,6
VII,7
VIII,8
IX,9
X,10
XI,11
XII,12
XIII,13
这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K
请你计算一下,小明最开始的时候手里牌的顺序是怎样的。
把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。
考场不提供扑克牌,你只能用计算机模拟了,撕碎草稿纸模拟扑克属于作弊行为!另外,你有没有把录像倒着放过?很有趣的!回去试试!
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
4.小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。魔术的内容是这样的:
XIV,14
XV,15
XVI,16
XVII,17
XVIII,18
XIX,19
XX,20
XXI,21
XXII,22
XXIX,29
XXX,30
XXXIV,34
XXXV,35
XXXIX,39
XL,40
L,50
LI,51
LV,55
LX,60
LXV,65
LXXX,80