C语言自命题第二套

2024-08-29
| 4页
| 231人阅读
| 60人下载

内容正文:

一 . 给定一个已按照升序排列的整数数组number, 请从数组中找出两个数相加之和等于目标数target,函数以长度为2的整数数组的形式返回这两个数的下标值。 考点: 数组、指针、函数的综合运用,二分查找法的简单运用 难度: 中等 示例: 数组number[5]={1,2,4,6,10} ① 输入:5; 输出:0 2 解释:数组中1与4的和等于5,1的下标值为0,2的下标值为1。 ② 输入:8; 输出:1 3 解释:数组中2与6的和等于8,2的下标值为1,6的下标值为3。 #include<stdlib.h> #include<stdio.h> int *twoIndex(int *number,int numsize,int target,int *index) { int left,right; left=0, right=numsize-1; /*************start*************/ /*************end*************/ return index; } int main(){ int i,target,numsize; int *p; int index[2]; int numbers[]={1,2,4,6,10}; numsize=sizeof(numbers)/sizeof(int); scanf("%d",&target); p=twoIndex(numbers,numsize,target,index); printf("数组中和为target的两个数的下标值分别为: "); for(i=0;i<2;i++){ printf("%d ",*(p+i)); } } 答案 : while(left<right){ if(number[left]+number[right]==target){ index[0]=left; index[1]=right; break; } else if(number[left]+number[right]<target){ left++; } else{ right--; } } 样张1: 样张2: 二 . 给定一个非负整数X,计算并返回x的平方根,即实现int sqrt(int x)函数 (平方根有两个,但只输出其中的正数平方根,如果平方根不是整数,只输出整数部分,小数部分舍去。 考点: 二分查找法以及相关注意事项,函数的简单运用(二分法必须使用long,否则越界) 难度: 简单 示例: 输入: 64 输出: 8 输入: 63 输出: 7 #include<stdlib.h> #include<stdio.h> long mySqrt(int x){ long mid; long left=1; long right=x; /*************start*************/ while(left<=right) { mid=left+((right-left)/2); if(mid*mid<x){ left=mid+1; }else if(mid*mid>x){ right=mid-1; } else{ return mid; } } return right; /*************end*************/ } int main(){ int n; scanf("%d",&n); n=mySqrt(n); printf("n的?正y平?方?根ù为a%d ",n); } 样张1 : 样张2 : 学科网(北京)股份有限公司 $$

资源预览图

C语言自命题第二套
1
C语言自命题第二套
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。