5637
- 收藏
- 点赞
- 分享
- 举报
(华为)C语言面试题
找错
Void test1()
{
char string[10];
char* str1="0123456789";
strcpy(string, str1);
}
Void test2()
{
char string[10], str1[10];
for(I=0; I<10;I++)
{
str1 ='a';
}
strcpy(string, str1);
}
Void test3(char* str1)
{
char string[10];
if(strlen(str1)<=10)
{
strcpy(string, str1);
}
}
2. 找错
#define MAX_SRM 256
DSN get_SRM_no()
{
static int SRM_no;
int I;
for(I=0;I{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}
3. 写出程序运行结果
int sum(int a)
{
auto int c=0;
static int b=3;
c+=1;
b+=2;
return(a+b+C);
}
void main()
{
int I;
int a=2;
for(I=0;I<5;I++)
{
printf("%d,", sum(a));
}
}
4.
int func(int a)
{
int b;
switch(a)
{
case 1: 30;
case 2: 20;
case 3: 16;
default: 0
}
return b;
}
则func(1)=?
5:
int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];
则a[q-p]=?
6.
定义 int **a[3][4], 则变量占有的内存空间为:_____
7.
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12
月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
参考答案:
test1 数组空间不够大 会导致缓冲区溢出
test2 a 变量名大小写混用,且不知是否已定义为全局
b 1的错误仍然存在
c 字符串要以\0结束
test3 同1
2 楼主有没有把题目拷错,'('和')'的数量不一致,
这个错误 哎 我不说了
3 这个程序有错 把C改成c
8,10,12,14,16
因为 c是局部变量 所以每次都初始化为0,再++就是 1了
b是全局变量 每次递增2,所以5次结果为
2+1+5 2+1+7 2+1+9 2+1+11 2+1+13
8 10 12 14 16
4 楼主是想考验大家是不是能看出来每次switch都会执行default
但是 1 default:0 后面没';'语法错误
2 整个函数没对b赋值,所以b的值不可预测
5 2
p - q = &a[2] - &a[0] = 2;
a[2] = 2;
6 a是指针 占4字节,但是变量a指向的空间为3*4*4
Void test1()
{
char string[10];
char* str1="0123456789";
strcpy(string, str1);
}
Void test2()
{
char string[10], str1[10];
for(I=0; I<10;I++)
{
str1 ='a';
}
strcpy(string, str1);
}
Void test3(char* str1)
{
char string[10];
if(strlen(str1)<=10)
{
strcpy(string, str1);
}
}
2. 找错
#define MAX_SRM 256
DSN get_SRM_no()
{
static int SRM_no;
int I;
for(I=0;I{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}
3. 写出程序运行结果
int sum(int a)
{
auto int c=0;
static int b=3;
c+=1;
b+=2;
return(a+b+C);
}
void main()
{
int I;
int a=2;
for(I=0;I<5;I++)
{
printf("%d,", sum(a));
}
}
4.
int func(int a)
{
int b;
switch(a)
{
case 1: 30;
case 2: 20;
case 3: 16;
default: 0
}
return b;
}
则func(1)=?
5:
int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];
则a[q-p]=?
6.
定义 int **a[3][4], 则变量占有的内存空间为:_____
7.
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12
月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
参考答案:
test1 数组空间不够大 会导致缓冲区溢出
test2 a 变量名大小写混用,且不知是否已定义为全局
b 1的错误仍然存在
c 字符串要以\0结束
test3 同1
2 楼主有没有把题目拷错,'('和')'的数量不一致,
这个错误 哎 我不说了
3 这个程序有错 把C改成c
8,10,12,14,16
因为 c是局部变量 所以每次都初始化为0,再++就是 1了
b是全局变量 每次递增2,所以5次结果为
2+1+5 2+1+7 2+1+9 2+1+11 2+1+13
8 10 12 14 16
4 楼主是想考验大家是不是能看出来每次switch都会执行default
但是 1 default:0 后面没';'语法错误
2 整个函数没对b赋值,所以b的值不可预测
5 2
p - q = &a[2] - &a[0] = 2;
a[2] = 2;
6 a是指针 占4字节,但是变量a指向的空间为3*4*4
我来回答
回答1个
时间排序
认可量排序
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2008-08-18 21:38:09
-
2008-08-18 21:40:43
-
2008-09-20 14:59:37
-
122008-09-05 20:15:43
-
12008-08-02 00:51:41
-
2008-07-19 13:45:06
-
2008-07-12 19:10:50
-
2008-07-31 02:03:07
-
2008-09-20 15:03:27
-
22008-11-09 10:08:54
-
2008-09-20 15:00:55
-
2008-08-02 00:45:28
-
2013-12-01 22:54:44
-
2008-08-07 18:38:46
-
2013-11-20 18:55:19
-
2008-08-25 18:12:00
-
02008-08-08 14:38:05
-
2008-09-05 20:16:57
-
2013-12-02 21:46:57
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认