习题练习 C语言(暑期第四弹)
自我小提升!
- 前言
- 一、数组
- 二、指针运算
- 三、统计每个月兔子的总数
- 四、双指针的应用
- 五、判断指针
- 六、珠玑妙算
- 七、两数之和
- 八、数组下标
- 九、指针
- 十、寻找峰值
- 十一、二级指针
- 十二、大端小端
- 十三、无符号参数
- 十四、数对
- 十五、截取字符串
- 总结
前言
重要的事说三遍!
学习!学习!学习!
一、数组
若有定义 int a[8]; ,则以下表达式中不能代表数组元素 a[1] 的地址的是( )
A: &a[0]+1
B: &a[1]
C:&a[0]++
D: a+1
题目解析:
D选项a计算时是首元素地址,再加1,就是a[1]的地址,AB明显对,C选项a[0]先和++结合,形成一个表达式,不能对表达式取地址,会报错
题目答案:
C
二、指针运算
以下选项中,对基本类型相同的两个指针变量不能进行运算的运算符是( )
A: +
B: -
C: =
D: ==
题目解析:
A错误,因为两个地址相加无意义也可能越界,所以规定不允许指针相加。B选项,可以求出两个数据元素储存位置之间的相
隔同数据类型的元素个数,C选项,赋值,没问题,D选项,判断两指针是否相同
题目答案:
A
三、统计每个月兔子的总数
题目链接:OJ链接
题目解析:
这道题的关键在于寻找数字之间的规律,如果细心的同学会发现这其实是一个斐波那契数列。第 n 个月的兔子数量实际上就是第 n-1 个斐波那契数。
题目答案:
#include int main() { int n; while (scanf("%d", &n) != EOF) { int sum1=1; int sum2=1; if(n for(int i=0;i int temp=sum1+sum2; sum1=sum2; sum2=temp; } } printf("%d",sum2); } return 0; } char *t = s; while(*t++); return(t-s); } int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p = a + 5, *q = NULL; *q = *(p+5); printf("%d %d\n", *p, *q); return 0; } *returnSize=2; static int arr[2]={0}; arr[0] = 0; arr[1] = 0;//静态空间不会进行二次初始化因此每次重新初始化,可以使用memset函数 int solu[26]={0};//26个字符位 solution 四种颜色数量统计 int gue[26]={0};//26个字符位 guess 四种颜色数量统计 for(int i=0;i if(solution[i]==guess[i])//位置和颜色完全一致则猜中数量+1 arr[0]++; else{ solu[solution[i]-'A']+=1;///统计同一位置不同颜色的两组颜色数量,伪猜中不需要对应位置相同,只需要有对应数量的颜色就行 gue[guess[i]-'A']+=1; } } for(int i=0;i//在两个颜色数量统计数组中查看颜色数量,取相同位置较小的一方就是为猜中数量 arr[1]+=(solu[i] * returnSize=2; static int arr[2]={0}; memset(arr, 0x00, sizeof(arr));//静态空间不会二次初始化,因此手动初始化 for(int i=0;i if (numbers[i] target)//一旦大于目标数,可以直接跳过 continue; for(int j=i+1;j//配对的数直接从i+1开始,防止出现重复配对,造成时间浪费 if(numbers[i]+numbers[j]==target){ arr[0]=i+1; arr[1]=j+1; return arr; } } } * returnSize=0; return NULL; } 1, 2, 3, 4, 5, 6}, *p[3]; p[0] = a[1]; //边界情况处理,1个元素前后都是负无穷 以及 0号位置大于1号位置,-1位置负无穷的情况 if (numsLen == 1 || nums[0] nums[1]) return 0; //末尾位置数据大于上一个位置数据,而nums[numsLen]负无穷的情况 if (nums[numsLen - 1] nums[numsLen - 2]) return numsLen - 1; int left = 0, right = numsLen - 1, mid; while (left
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。