C语言自命题第一套

2024-08-29
| 5页
| 488人阅读
| 78人下载

内容正文:

一 . 比特位计数:从键盘输入一个非负整数n(n<100),请计算1到n之前的每个数字所对应的二进制表示中1的个数,存入到数组中并输出。 考点: 多重循环嵌套,十进制转二进制的方法及数组相关操作方法。 难度: 中等 示例: 输入 n=5 输出 1,1,2,1,2 解释: 1 => 1 2 => 10 3 => 11 4 => 100 5 => 101 #include<stdlib.h> #include<stdio.h> int main(){ int n,i,j,temp,count; int a[100]; j=0; /*********start********/ /*********end********/ printf("1~n之前各数字二进制表示所对应的1的个数为: "); for(i=0;i<j;i++) { printf("%d ",a[i]); } } 答案: scanf("%d",&n); for(i=1;i<=n;i++){ count=0; temp=i; while(temp>0){ if(temp%2==1){ count++; } temp/=2; } a[j++]=count; } 样张: 二 . 寻找元素的中心下标: 数组中心下标是数组中一个元素的下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 请输入数组元素,并输出该数组的中心下标,中心下标通过指针P返回。 示例1: 输入: num = [1,7,3,6,5,6] 输出: 3 解释: 第一个数字6左侧的元素和为:num[0]+num[1]+num[2]=1+7+3=11 右侧的元素和为: num[4]+num[5]=5+6=11 左侧元素和=右侧元素和,故中心元素为6,中心元素对对应的下标为3,故中心下标为3 示例2: 输入: num = [2,1,-1] 输出: 0 解释: 下标为0的数字左侧不存在元素,故左侧数之和为0,右侧数和为0。 所以中心下标为0 考点: 数组及函数和指针的综合运用。 难度: 难 #include<stdlib.h> #include<stdio.h> #define N 6 void centerIndex(int num[], int *p){ int i,j,k,sum1,sum2; /**********start*********/ /********** end *********/ } int main(){ int a[N]={1,7,3,6,5,6}; int n; centerIndex(a,&n); if(n==-1){ printf("该数组没有中心下标"); }else{ printf("该数组的中心下标为: %d",n); } } 答案: for(i=0;i<N;i++){ sum1=0,sum2=0; for(j=0;j<i;j++){ sum1+=num[j]; } for(k=j+1;k<N;k++){ sum2+=num[k]; } if(sum1==sum2){ *p=i; break; } } if(i==N) *p=-1; 示例1样张: 示例2样张: 学科网(北京)股份有限公司 $$

资源预览图

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