c语言面试题12/8
2017-12-08 18:22
337 查看
1、有一百个整数,其中有负数,找出连续三个数之和最大的部分.
示例:
输入:2 ,-8 ,3,-2 ,4,-10
输出: 5 ({3, -2, 4})
#include <stdio.h>
int max_num(int kongjian[], int n)
{
int secMax = 0, max = kongjian[0]+kongjian[1]+kongjian[2], flag = 1;
int i = 0;
int maxi=0;
for(i = 0; i < n-2; i++)
{
if(kongjian[i]+kongjian[i+1]+kongjian[i+2] > max)
{
secMax = max;
max = kongjian[i]+kongjian[i+1]+kongjian[i+2];
maxi=i;
}
}
printf("连续三个数之和最大的部分为:\n");
printf("%d({%d, %d, %d})\n", max, kongjian[maxi],kongjian[maxi+1],kongjian[maxi+2]);
return 0;
}
int main(void)
{
int n = 0, i = 0;
int kongjian[1000]={0};//申请空间
printf("请输入想要比较大小的元素个数(1~100):");
scanf("%d", &n);
printf("请输入%d个数: \n", n);
for(i = 0; i < n; i++)
scanf("%d", kongjian + i);
max_num(kongjian, n);
printf("\n");
return 0;
}
2、用<<,>>,|,&实现一个unsigned short型变量(2个字节)的高低位交换!!
例如:0x1234 交换后 0x3412
函数原型:void func(unsigned short *a)
#include <stdio.h>
void func(unsigned short *a)
{
unsigned short tmp = *a >> 8;
*a <<= 8;
*a |= tmp;
}
int main(void)
{
unsigned short a = 0x1234;
func(&a);
printf("0x%x\n", a);
return 0;
}
3、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
#include <stdio.h>
int main(void)
{
int *ptr;//申请指针
ptr = (int*)0x67a9;//绝对地址
*ptr=0xaa55;//变量值(不知道为什么变成0xaa55)
return 0;
}
示例:
输入:2 ,-8 ,3,-2 ,4,-10
输出: 5 ({3, -2, 4})
#include <stdio.h>
int max_num(int kongjian[], int n)
{
int secMax = 0, max = kongjian[0]+kongjian[1]+kongjian[2], flag = 1;
int i = 0;
int maxi=0;
for(i = 0; i < n-2; i++)
{
if(kongjian[i]+kongjian[i+1]+kongjian[i+2] > max)
{
secMax = max;
max = kongjian[i]+kongjian[i+1]+kongjian[i+2];
maxi=i;
}
}
printf("连续三个数之和最大的部分为:\n");
printf("%d({%d, %d, %d})\n", max, kongjian[maxi],kongjian[maxi+1],kongjian[maxi+2]);
return 0;
}
int main(void)
{
int n = 0, i = 0;
int kongjian[1000]={0};//申请空间
printf("请输入想要比较大小的元素个数(1~100):");
scanf("%d", &n);
printf("请输入%d个数: \n", n);
for(i = 0; i < n; i++)
scanf("%d", kongjian + i);
max_num(kongjian, n);
printf("\n");
return 0;
}
2、用<<,>>,|,&实现一个unsigned short型变量(2个字节)的高低位交换!!
例如:0x1234 交换后 0x3412
函数原型:void func(unsigned short *a)
#include <stdio.h>
void func(unsigned short *a)
{
unsigned short tmp = *a >> 8;
*a <<= 8;
*a |= tmp;
}
int main(void)
{
unsigned short a = 0x1234;
func(&a);
printf("0x%x\n", a);
return 0;
}
3、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
#include <stdio.h>
int main(void)
{
int *ptr;//申请指针
ptr = (int*)0x67a9;//绝对地址
*ptr=0xaa55;//变量值(不知道为什么变成0xaa55)
return 0;
}
相关文章推荐
- 【我解C语言面试题系列】008 去除数组中重复数字问题
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 16道嵌入式c语言面试题
- 【C语言】几道C/C++面试题解析
- 【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcmp函数
- 16道经典嵌入式C语言面试题(转)
- C语言:【面试题】在二维数组中,每行每列都按照递增的顺序排序,判断数组中是否包含一个数。
- C语言面试题总汇(上)
- C语言面试题大汇总之华为面试题
- (网络视频监控)面试题12
- 剑指offer 面试题12—打印1到最大的n位数
- 12个有趣的C语言面试题及答案
- 剑指Offer系 4000 列-面试题12:打印1到最大的n位数
- 12个有趣的C语言面试题
- 面试题12:打印1到最大的n位数
- 【转载】12个有趣的C语言面试题
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcpy函数
- 12个有趣的C语言面试题
- 面试题12:打印1-3位的数字