- 相关推荐
软件工程师software engineer笔试题
选择题
1:执行下列程序
#define R 0.5
#define AREAx R*x*x
main
{int a=1, b=2;
printf ″%5。1f ″, AREAa+b;
}
后输出的结果是
执行下列程序
#define R 0.5
#define AREAx R*x*x
main
{int a=1, b=2;
printf ″%5。1f ″, AREAa+b;
}
后输出的结果是
A.0.0
B.0.5
C.3.5
D.4.5
2:过程与函数中的形式参数种类有
A.整型、实型,字符型,布尔型四种参数
B.标准型,自定义型,构造型,指针型四种参数
C.值参型,变量参数型,过程参数型和函数参数型四种
D.无参型,变量参数型,过程参数型和函数参数型四种
3:在C语言中,有值函数的数据类型是指
A.函数形式参数的数据类型
B.函数返回值的数据类型
C.调用该函数时的实参的数据类型
D.任意指定的数据类型
4:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)c计算结果不一致的是
A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)
5:若定义了int a,x,y;,则下列语句中不正确的是
A.x=3,y=5;
B.++x;
C.x=y+=x*30;
D.a=y+x=30;
6:对语句“ int a [ 10 ] ,*p=a; ”,下列表述中哪一个是正确的
A.*p 被赋初值为 a 数组的首地址
B.*p 被赋初值为数组元素 a [ 0 ]的地址
C.p 被赋初值为数组元素 a [ 1 ]的地址
D.p 被赋初值为数组元素 a [ 0 ]的地址
7:正确的C语言用户自定义标识符是
A.print
B.float
C.when
D.random﹪2
8:表达式 !x 等效于
A.x==1
B.x==0
C.x!=1
D.x!=0
9:设有程序
#include
main()
{
int i,j;
for (i=0,j=1;i<=j+1;i+=2,j--)
printf("%d ",i);
}
在运行上述程序时,for语句中循环体的执行次数是
A.3
B.2
C.1
D.0
10:( ) 不是合法的 C 语句。
A.{int j;j++;}
B.{int j;j++;;}
C.{int j;;j++;}
D.{float j=0;j++;}
11:设有以下程序段:int a=1, b=10, c=1, x; x=a&&b||++c;printf(″%d, %d ″,x,c);执行后输出的结果是
A.0,0
B.0,1
C.1,0
D.1,1
12:设char ch,str[4],*strp;,则正确的赋值语句是
A.ch=″MBA″;
B.str=″MBA″;
C.strp=″MBA″;
D.*strp=″MBA″;
13:设typedef char *POINT;POINT p,q[3],*r;,则p、q和r分别是字符型的
A.变量、一维数组和指针变量
B.变量、二维数组和指针变量
C.指针变量、一维数组指针和二级指针变量
D.指针变量、一维指针数组和二级指针变量
14:设int x;,则以下语句中错误的输入是
A.scanf (″%d″,x);
B.scanf (″%d″,&x);
C.scanf (″%o″,&x);
D.scanf (″%x″,&x);
15:下列不正确的转义字符是
A.′\′
B.′″
C.′86′
D.′′
16:以下属于C语言保留字的是
A.fopen
B.include
C.get
D.unsigned
17:下列错误的是
A.char s[]=″China″;
B.char s[10]={″China″};
C.char s[10]; s=″China″;
D.char s[10]={′C′, ′h′, ′i′,;′n′, ′a′};
简答题
18:字符串A是由n个小写英文字母(a ~ z)构成的,定义为char A[n]。你能用更少的空间表示这个字符串吗?请写出从char A[n]到你的新的储存格式的转换函数。
19:命令tail用来打印文件中最后n行。命令格式为:
tail [-n] filename
其中
-n: n表示需要打印的行数,当省略此参数时,n的缺省值为10。
filename: 给定文件名。
例如,命令tail –20 example.txt表示打印文件example.txt的最后20行。
请用C语言实现该程序,该程序应具有一定的错误处理能力,例如能处理非法命令参数和非法文件名。
提示1:使用命令行参数;
提示2:可以使用下面的C库函数:
- int atoi(char *s)将数字串转换为相应整数;
- fopen, fclose, printf, fprintf, exit;
- fgets(char *s, int n, FILE *fp)从文件中读入一行;
- void *malloc(unsigned size), free申请和释放内存;
- strlen计算字符串长度;
- strcpy将一个字符串拷贝到另一个字符串中。
除此之外,不允许使用其它库函数。
20:链表排序(从小到大)
节点定义为:
struct Node{
int nValue;
struct Node* pNext;
};
最后一个节点的pNext = NULL.
Node* SortChain( Node* pHead );
返回值:链表头
21:何谓全局变量 ? 为什么它能用于函数数据传递 ?
22:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个学号,如果链表中的结点包括该学号,则输出该结点内容后,并将其结点删去。
23:下面的代码有什么问题?
char *_strdup( const char *strSource )
{
static char str[MAX_STR_LEN];
strcpy(str, strSource);
return str;
}
24:在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
25:公元4046年,人类科学高度发达,绝大部分人都已经移居至浩瀚的宇宙,在上千颗可居住的星球上留下了人类的印记。然而,此时人类却分裂成了两个联盟:正义联盟和邪恶联盟。两个联盟之间仇恨难解,时有战争。
现在,邪恶联盟通过不正当贸易积聚了大量宇宙财富。因此,正义联盟计划要破坏邪恶联盟的非法贸易网络,从而影响邪恶联盟的经济状况,为下一次战争作好准备。邪恶联盟由数百颗星球组成,贸易通过星球间的运输航道来完成。一条运输航道是双向的且仅连接两个星球,但两个星球之间可以有多条航道,也可能没有。两个星球之间只要有运输航道直接或间接的相连就可以进行贸易。正义联盟计划破坏邪恶联盟中的一些运输航道,使得邪恶联盟的星球分成两部分,任一部分的星球都不能与另一部分的星球进行贸易。但是为了节省破坏行动所需的开支,正义联盟希望破坏尽量少的运输航道来达成目标。请问正义联盟最少需要破坏多少条运输航道呢?
【软件工程师software engineer笔试题】相关文章:
via笔试题(software engineer)08-10
2003 Software Engineer笔试题02-18
威盛Embeded Software Engineer 笔试题08-10
威盛的Software tools Engineer笔试题11-06
Software Engineer软件工程师英文简历模板11-08
Senior Software Engineer resume01-16
威盛07年10月Embeded Software Engineer 笔试题!!11-06
面试美国国家仪器Software Engineer Intern11-19