- 相关推荐
东南融通的笔试题
最新东南融通的笔试题(一)
一、
int main()
{
char *a="Hello";
char *b="world\n";
strcpy(a,b);
printf("%s,%s",a,b);
}
程序运行的结果是什么?
解析:这道题看上去很简单,第一想到的就是strcpy的地址越界问题,所以认为结果可能是
world
world
或者是运行错误,因为出现了地址越界,对于越界后的地址我们并不知道存的是什么,有可能是很重要的内容。
第二想到的是\n在结果中怎么输出呢,这个问题考虑的多余,\\n才是输出\n,而\n直接以回车形式输出。
第三真正上机运行会发现,即使地址不发生越界,运行也会错误,仔细分析原因,得出如下结论
char *a="Hello";
其中的"Hello"是字符串常量,存放在常量存储区(具体存放在内存什么位置,还有待于验证),但有一点是肯定的,常量是不允许修改的。
改正:char a[6]="Hello";
或者是char *a=(char *)malloc(sizeof(char)*6);
strcpy(a,"Hello");
二、下面这道题很简单,但刚看到时也思考了一会儿,考虑怎么做会更好一些呢
输入16进制数,编写程序将其以10进制数形式输出
代码:已经上机运行通过,只要输入的16进制数合法,就能输出正确结果,如果有不对的地方,还希望明白的朋友给予指正
#include
int convert(char *p){
int i=0;
int sum=0;
while(p[i]!='\0'){
if(p[i]>='0'&&p[i]<='9')
sum=sum*16+p[i]-'0';
else
sum=sum*16+p[i]-55;
i++;
}//while
return sum;
}//convert
int main()
{
char a[4];
gets(a);
printf("16进制 %s 转换为 10进制 %d\n",a,convert(a));
return 0;
}
最新东南融通的笔试题(二)
1:下列运算符中,优先级最高的是
A.[]
B.++
C.%
D.&&
2:以“只读”方式打开文本文件 a: \ aa.dat, 下列语句中哪一个是正确的
A.fp=fopen( ” a: \ aa.dat ” , ” ab ” )
B.fp=fopen( ” a: \ aa.dat ” , ” a ” )
C.fp=fopen( ” a: \ aa.dat ” , ” wb ” )
D.fp=fopen( ” a: \ aa.dat ” , ” r ” )
3:设 int a[ ]={1,2,3,4,5},*p=a;则数组元素的正确表示是
A.a[2]
B.&(a+1)
C.a[5]
D.&p
4:C语言中计算a的3次方,正确的表达是
A.a^3
B.pow(a,3)
C.a**3
D.power(a,3)
5:c语言对文件的操作提供了提供了若于个标准库函数,其中对格式化读函数fscanf的函数调用正确格式是
A.fscanf(文件指针,格式控制字符串,输入项表);
B.fscanf(格式控制字符串,输入项表,文件指针);
C.fscanf(格式控制字符串,文件指针,输入项表);
D.fscanf(文件指针,输入项表,格式控制字符串);
6:对于while语句,错误的说法是
A.用条件控制循环体的执行次数
B.循环体至少要执行一次
C.循环体有可能一次也不执行
D.循环体中可以包含若干条语句
7:设有程序
#include
main()
{
int i,j;
for (i=0,j=1;i <=j+1;i+=2,j--)
printf("%d\n",i);
}
在运行上述程序时,for语句中循环体的执行次数是
A.3
B.2
C.1
D.0
8:main()
{ int x=1,y=1;
y=x-- ;
printf( “ %d,%d\n ” ,x,y);
}运行结果为
A.0 , 0
B.0 , 1
C.1 , 0
D.1 , 1
9:函数调用语句“ f((e1,e2),(e3,e4,e5)) ”中参数的个数是
A.1
B.2
C.3
D.5
10:执行语句“ for(d=0;d!=60; d+=0.6) s+=d; ”时,
A.循环在 d 等于 60 时终止
B.循环在 d 大于 60 时终止
C.循环在 d 小于 60 时终止
D.循环在 d 大于 60 后继续
11:使用语句scanf(″a=%f, b=%f″, &a, &b);输入变量a、b的值(□代表空格),正确的是
A.1.25,2.4
B.1.25□2.4
C.a=1.25, b=2.4
D.a=1.25□b=2.4
12:全局变量的存储类型可以定义为
A.auto或static
B.extern或register
C.auto或extern
D.extern或static
13:调用函数时,若实参是一个数组名,则向函数对应的形参传送的是
A.数组的长度
B.数组的首地址
C.数组第一个元素的值
D.整个数组元素的值
14:若变量已正确定义并且指针p已经指向变量x, 则*&x相当于
A.x
B.p
C.&x
D.&*p
15:编译程序的功能是
A.将汇编语言程序转换为目标程序
B.将汇编语言程序转换为高级语言程序
C.将高级语言程序转换为目标程序
D.将高级语言程序转换为汇编语言程序
简答题
16:Write a program to count blanks, tabs, and newlines.
17:硬盘上保存有一个密码表,文本文件格式,文件名为“code.txt”,内容如下:
abcdefghijklmnopqrstuvwxyz
ushecginpaywdqmlxbozrtfvjk
试编写程序实现一个简单的加密程序,循环读取用户输入,按此密码表将字符进行替换,
并直接打印输出;例如“baidu”将被替换成“super”。
18:int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];
则a[q-p]=?
19:下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的错误。
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
20:程序填空
把文本文件 d1.dat 复制到文本文件 d2.dat 中,要求仅复制 d1.dat 中的英文字符。
#include
void main()
{ _______ char ch;
fpd1=fopen( ″ d1.dat ″ , ″ r ″ );_______
while(fscanf(fpd1, ″ %c ″ ,&ch)_______)
if(_______||ch>= ′ a ′ &&ch <= ′ z ′ )fprintf(fpd2, ″ %c ″ ,ch);
fclose(fpd1);fclose(fpd2);
}
21:在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
22:请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。
23:C/C++源代码中,检查花括弧“(”与 “)”,“{”与“}”)是否匹配,若不匹配,则输出不匹配花括弧所在的行与列。
【东南融通的笔试题】相关文章:
东南融通面经11-29
迅雷2011.10.21笔试题08-10
中兴2015笔试题08-02
笔经:加强型试题07-22
海尔04年笔试题及答案07-31
银行2014笔试题目及经验分享03-16
网宿科技研发类2011笔试题07-18
广州本田(Honda)09年笔试题目12-11
阿里巴巴非技术类笔经及试题08-13
交通银行2014笔试题题目分享08-10