资源描述:
《c算法提高训练题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C提高题二题1:高精度加法 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使longlong型,一般也只能表示到-263到263。要想计算更加规模的数,就要用软件来扩展了,比如用数组或字符串来模拟更多规模的数及共运算。 现在输入两个整数,请输出它们的和。输入格式 两行,每行一个整数,每个整数不超过1000位输出格式 一行,两个整数的和。样例输入15464315464465465482321654151样例输出15464797786119616数据规模和约定 每个整数不超过1000位题2:6-9
2、删除数组中的0元素 编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。 输入时首先读入数组长度,再依次读入每个元素。 将调用此函数后得到的数组和函数返回值输出。样例输入72043005样例输出24354 题3:3-2字符串输入输出函数 编写函数GetReal和GetString,在main函数中分别调用这两个函数。在读入一个实数和一个字符串后,将读入的结果依次用pri
3、ntf输出。 两次输入前要输出的提示信息分别是"pleaseinputanumber:”和"pleaseinputastring:"样例输入9.56hello样例输出pleaseinputanumber:pleaseinputastring:9.56hello题4: 进制转换 程序提示用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出。 输入格式:输入只有一行,即三个字符。 输出格式:输出只有一行,包括三个整数,中间用空格隔开。 输
4、入输出样例样例输入FFF样例输出FFF40957777题5:c++_ch06_02 编写并测试如下函数: voidAdd(inta[],intm,intb[],intn); 该函数将数组b的前n个元素追加到数组a的前m个元素后,假定数组a具有至少存放m+n个元素的空间。例如,如果数组a为{22,33,44,55,66,77,88,99},数组b为{20,30,40,50,60,70,80,90},则调用Add(a,5,b,3)后,将把数组a变为{22,33,44,55,66,20,30,40}。注意数组b并没有改变,而且数组a中
5、只需改变n个元素。测试 输入:4行。第一行为两个整数:m,n,并以空格隔开,分别表示将要输入的数组a和数组b的元素的个数。第二行为m个整数,为数组a的元素;第三行为n个整数,为数组b的元素。第四行为两个整数m1,n1,表示把数组b的前n1个元素追加到数组a的前m1个元素后。 输出:1行。第一行为最后数组a中的元素,两个元素之间以逗号隔开。最后一个元素输出后,输出一个空行。参考程序#include #include usingnamespacestd; voidDisp(inta[],in
6、tn) { for(inti=0;i>m>>n; a=newint[m+n]; b=newint[n]; for(i=0;i>a[i]; for(i=0;i7、) cin>>b[i]; intm1,n1; cin>>m1>>n1; //请补充完整 return0; }题6:c++_ch03_02 PASCAL三角是形状如下的三角矩阵: 1 11 121 1331 14641 在PASCAL三角中的每个数是一个组合C(n,k)。 C(n,k)=(((((((n/1)(n-1))/2(n-2))/3)***(n-k+2))/(k-1))(n-k+1))/k 公式中交替使用乘法和除法,每次将从n开始递减的一个值相乘,然后除以下一个从1开始递增的值。 如果对行和列从0开
8、始计数,则数字C(n,k)在n行k列。例如C(6,2)在第6行第2列。编程输出指定阶数的PASCAL三角矩阵。例如下面给出的是12阶PASCAL三角形矩阵。 编写程序,使运行结果为: 1 11 121 1331