❶ 简单的算法题c语言的
这道题是把后一半的数插到前一半数的中间,就是说一个数如果是在前半部分他在第几位,就有多少个数插到他的前面。例如2一开始在第2位,那么就要2个数将插到他的前面。那么他的位置就变成原来的2倍。即代码中的i*=2。当第一个数经过一轮操作后回到原来的位置,这时所有的数都回到原来的位置了。 后半部分的位置是插到前半部分相同位置的数的前面,就是2*(i-n)-1。
❷ c语言算法选择题
选c,假如编程错误怎么运行出来。。。
❸ C语言算法题
这是一个探索规律题,分析如下:
1级台阶只有一种方法;2级台阶也只有2种方法;3个台阶有3种方法(3=2+1);4个台阶有5种方法(5=3+2);5个台阶有8种方法(8=5+3);6个台阶有12种方法(12=8+4);以此类推:得出一个通式:An=An-2 + An-1
所以代码很容易出来了:
#include<stdio.h>
#include<stdlib.h>
intmain(void)
{
inti,j,N;
inta[30];
a[0]=1,a[1]=2;
while(1)
{
printf("输入楼梯台阶数: ");
scanf("%d",&N);
if(N>30||N<1)
printf("楼梯台阶数输入错误,请重新输入! ");
else
break;
}
for(i=2;i<N;i++)
a[i]=a[i-1]+a[i-2];
printf("%d级楼梯的走法共有%d种。 ",N,a[N-1]);
system("pause");
return0;
}
❹ 全国计算机等级考试二级c语言考的是题库里的题吗都是历年的题库吗题库在哪买,会考原题吗
全国计算机等级考试二级c语言考的不都是题库里的题,笔试题基本不是题库里面的,上机题目都是从题库里抽取,题库有100套。
笔试没有所谓的题库,一般参考书都是往年例题 ,可以从网上买来做练习。
《全国计算机等级考试二级C语言》可以作为参加全国计算机等级考试——二级C语言考试的复习用书,也可作为学习C语言的参考书。
上机题目全部是从最近的一年的《C语言题库》中抽取的。考题大部分是C语言,少部分是算法与数据结构里面的东西。
拓展资料:
全国计算机等级考试(National Computer Rank Examination,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。
其中c语言程序设计的考试内容包括:
(1)单项选择题,40题,40分(含公共基础知识部分10分);
(2)程序填空题,2~3个空,18分;
(3)程序改错题,2~3处错误,18分;
(4)程序设计题,1题,24分。
完全采取上机考试形式。各科上机考试时间均为 120 分钟,满分 100 分。
获证条件:总分不低于 60 分。
❺ C语言一道算法问题
❻ 帮我解决一道C语言算法的问题
这是一个最大子序列和问题。通常用动态规划法解。至于动态规划的数学模型,懒得去查了,直接给你找了一个算法,你凑合看吧。
从整数序列头部开始扫描,假设现扫描到的位置为i,求取从0到i所有元素的和sum[i],sum[i]取最大值的地方即为最大子序列的结束位置,设为a。从结束位置a向前扫描,找到第一个小于零的位置b,b+1就是最大子序列的开始位置。求从b+1到a位置的值即可得到最大子序列和。按此思路该算法时间复杂度为O(m+n),其中m, n分别为最大子序列的长度、给定整数序列的长度。
改进:根据对上述算法的进一步分析,可以知道,最大子序列和中必然不存在前缀子序列小于0的情况,于是设一ThisSum用于指示当前子序列和。改进算法描述如下:从整数序列头部开始扫描,累加序列元素和ThisSum,若ThisSum<0,则停止累加子序列和,将ThisSum清零,并从下一位置重新开始累加ThisSum,否则将ThisSum与当前MaxSum比较,并更新MaxSum。此改进算法时间复杂度仅为O(n),n为给定整数序列的长度。
int MaxSubsequenceSum3(const int A[], int N)
{
int ThisSum, MaxSum, i;
ThisSum = MaxSum = 0;
for(i = 0; i < N; i++)
{
ThisSum += A[i];
if(ThisSum > MaxSum)
MaxSum = ThisSum;
else if(ThisSum < 0)
ThisSum = 0;
}
return MaxSum;
}
❼ C语言经典算法100例
第一行宏定义改为
#define PI 3.14159f
或者变量定义的时候改为 double r, area, c;
两种改法都可以。你出现的也不是错误,是警告,因为常量 3.14159 默认是double类型,而你的变量是float类型,从double转换为float的时候会损失精度。
❽ C语言 算法题
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std;
int data[100000];
int dp[100000];
int num;
bool Change(string s)
{
for(int i=0;i<s.size()+1;)
{
if(s[i]<='9'&&s[i]>='0')
{
int t=0;
while(s[i]<='9'&&s[i]>='0')
{
t=t*10+s[i]-'0';
i++;
}
data[num++]=t;
}
else if(s[i]==' '||i==s.size())
{
i++;
continue;
}
else{
return false;
}
}
return true;
}
int main()
{
string s;
while(getline(cin,s))
{
num=0;
bool flag=Change(s);
if(!flag)
{
cout<<"ERROR"<<endl;
continue;
}
/* for(int i=0;i<num;i++)
{
cout<<data[i]<<" ";
}*/
memset(dp,0,sizeof(dp));
int sum=0;
for(int i=0;i<num;i++)
{
sum+=data[i];
}
int half=sum/2;
// cout<<half<<endl;
for(int i=0;i<num;i++)
{
for(int j=half;j>=data[i];j--)
{
dp[j]=max(dp[j],dp[j-data[i]]+data[i]);
}
}
cout<<sum-dp[half]<<" "<<dp[half]<<endl;
}
}
❾ C语言算法模拟题 目标柏林
#include<stdio.h>
#include<string.h>
#defineLEN1000+10
voidturn_right(char*c,int*a,intk)//顺时针旋转
{
inti;
chartemp;
temp=c[a[k-1]];
for(i=0;i<k-1;i++)
c[a[k-1-i]]=c[a[k-2-i]];
c[a[0]]=temp;
}
voidturn_left(char*c,int*a,intk)//逆时针旋转
{
inti;
chartemp;
temp=c[a[0]];
for(i=0;i<k-1;i++)
c[a[i]]=c[a[i+1]];
c[a[k-1]]=temp;
}
charc[LEN];
inta[LEN][LEN]={0};
intmain()
{
intlen;
inti,j,k=0;
for(i=1;i<=1000;i++){//这里把1-n的所有倍数都处理出来,不用每次循环都求,节省时间
k=0;
for(j=0;j<1000;j++){
if((j+1)%i==0)
a[i][k++]=j;
}
}
while(gets(c))
{
len=strlen(c);
for(i=len;i>=1;i--)
{
k=len/i;
if(k==1)
continue;
if(i%2==0)
turn_right(c,a[i],k);
else
turn_left(c,a[i],k);
}
puts(c);
}
return0;
}
参考下这个AC代码哈。
❿ 求C语言上机题库 另求计算机二级考试看那本书好 以前没学过C语言, 上机题库是不是考试时一定能考到里面的
笔试的:
公共基础知识
基本要求
1.掌握算法的基本概念。
2.掌握基本数据结构及其操作。
3.掌握基本排序和查找算法。
4.掌握逐步求精的结构化程序设计方法。
5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
6.掌握数据库的基本知识,了解关系数据库的设计。
考试内容
一、基本数据结构与算法
1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。
4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5.线性单链表、双向链表与循环链表的结构及其基本运算。
6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
二、程序设计基础
1.程序设计方法与风格
2.结构化程序设计。
3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。
三、软件工程基础
1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3.结构化设计方法,总体设计与详细设计。
4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5.程序的调试,静态调试与动态调试。
四、数据库设计基础
1.数据库的基本概念:数据库,数据库管理系统,数据库系统。
2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。
3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理 论。
4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
考试方式
1.公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计或Access数据库程序设计)的笔试部分合为一张试卷,公共基础知识部分占全卷的30分。
2.公共基础知识有l0道选择题和5道填空题。
C语言程序设计
基本要求
1.熟悉TURBO C集成环境。
2.熟练掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法。
4.TURBO C的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。
考试内容
一、C语言的结构
1.程序的构成,MAIN函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1.表达式语句,空语句,复合语句。
2.数据的输入与输出,输入输出函数的调用。
3.复合语句。
4.GOTO语句和语句标号的使用。
四、选择结构程序设计
1.用IF语句实现选择结构。
2.用SWITCH语句实现多分支选择结构。
3.选择结构的嵌套。
五、循环结构程序设计
1.FOR循环结构。
2.WHILE和DO WHILE循环结构。
3.CONTINUE语句和BREAK语句。
4.循环的嵌套。
六、数组的定义和引用
1.一维数组和多维数组的定义、初始化和引用
2.字符串与字符数组。
七、函数
1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值的传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
8.内部函数与外部函数。
八、编译预处理
1.宏定义:不带参数的宏定义;带参数的宏定义。
2.“文件包含”处理。
九、指针
1.指针与指针变量的概念,指针与地址运算符。
2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。
3.用指针作函数参数。
4.返回指针值的指针函数。
5.指针数组,指向指针的指针,MAIN函数的命令行参数。
十、结构体(即“结构”)与共用体(即“联合”)
1.结构体和共用体类型数据的定义方法和引用方法。
2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。
十一、位运算
1.位运算符的含义及使用。
2.简单的位运算。
十二、文件操作
只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1.文件类型指针(FILE类型指针)。
2.文件的打开与关闭(FOPEN,FCLOSE)。
3.文件的读写(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF函数),文件的定位(REWIND,FSEEK函数)。