9年联发科技手机软件开发笔试题
- 格式:docx
- 大小:16.68 KB
- 文档页数:7
Android开发基础(习题卷4)说明:答案和解析在试卷最后第1部分:单项选择题,共71题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]甲说:我赞成小王和小李都去参加演出。
乙说:我不同意你的看法。
以上如果为真,请问下面哪项一定不符合乙的意见?( )A)小王和小李都不参加B)小王参加,但是小李不参加C)小王不参加。
但是小李参加D)小王和小李都参加2.[单选题]下列选项中,属于原子能的和平开发利用的是( )。
A)中国第一颗原子弹爆炸成功B)中国第一颗氢弹爆炸成功C)导弹核武器试验成功D)秦山核电站和大亚湾核电站相继建成投产3.[单选题]下列选项中与“锦上添花一雪上加霜”的言语关系一致的是( )。
A)美不胜收-目不暇接B)耀武扬威-弃甲曳兵C)水滴石穿-磨棒成针D)雨后春笋-每况愈下4.[单选题]关于SQLite3数据库的操作,下面说法不正确的是( )A)Context 对象调用openOrCreateDatabase 方法打开或者创建数据库B)SQLiteDatabase 类的静态方法openOrCreateDatabase 方法打开或者创建数据库C)Context 对象closeDatabase 方法关闭数据库。
D)SQLiteDatabase类的静态方法deleteDatabase 方法删除数据库5.[单选题]Android 项目工程下面的assets 目录的作用是什么A)放置应用到的图片资源。
B)主要放置多媒体等数据文件C)放置字符串,颜色,数组等常量数据D)放置一些与UI 相应的布局文件,都是xml 文件6.[单选题]若将多个按钮组合在一起,使用哪个控件可以实现分组?A)RadioGroupB)RadioC)RadioButtonD)Group7.[单选题]当使用EdifText控件时,能够将文本框设置为多行显示的属性是( )。
A)android:linesB)android:layout_heightC)android:textcolorD)android:textsize8.[单选题]可可在滑滑梯时不小心把腿给蹭了,当时只是蹭破一点皮,因此放学时老师也就没有告诉家长,可第二天可可的爷爷说孩子的腿都淤青了,问老师是怎么回事。
软件开发企业招聘笔试题及答案(四十)1.在web页面中不论显示器的分辨率的大小是800×600,还是1024×768使得页面都显示在屏幕中间。
2.请利用正则表达式验证一个字符串是否为数字串(请用javascript或csharp)。
function RegExp(nstr){var REstr = /^\d+$/g;return REstr.test(nstr);}System.Text.RegularExpressions.Regexreg=new ystem.Text.RegularExpressions.Regex(@"/^\d+$/g ");System.Text.RegularExpressions.MatchCollection item=reg.Matches(str); 3.请用HTML在客户端画出一个5行4列的表格,并用Javascript访问表格第1行的2列的内容<table id = tableNode><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></table>tableNode.firstchild.firstchild.childNodes[1].firstchild4.请用javascript脚本实现弹出无边框窗口显示a.htm页答:<script laguage="JavaScript">var win=window.open("PPA.htm","","fullscreen=1")</script>5.运用的输出缓冲来存储动态页面答:@OutputCache列<%@ OutputCache Duration="60" VaryByParam="None" %>6.本地计算机上有SQL 2000登录密码式password 请用CSharp 创建与SQL 的连接并把Northwind数据库中的sysusers表中的数据读出放入Table数答:string stconnString = “ provider=SQLOLEDB;Data Source=localhost;Initial Catalog=Northwind;UserID=sa;Password=password;”;System.Data.Sqlclient.SqlConnection myconn= newSystem.Data.Sqlclient.SqlConnection(stconnString);myconn.Open();string stselString = “select * from Northwind”;System.Data.Sqlclient.SqlDataAdapter myadapter= new System.Data.Sqlclient.SqlDataAdapter(stselString,myconn);System.Data.Sqlclient.DataTable mydt = new System.Data.Sqlclient.DataTable();myadapter.Fill(mydt);7.请用javascript或csharp设计一个算法,实现将数字转化为字符。
临界区指并发进程中访问共享变量的(C)A.管理信息段B.数据段C.程序段D.信息存储段“软件危机”是指什么?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
它包含两个方面的问题:一是如何开发软件,以满足对软件日益增长的需求;另一个是如何维护数量不断膨胀的已有软件。
一个完整的软件具备哪些软件=程序+数据+文档,也就是说,一个完整的软件除了程序以外,还必须知道你程序应该运行哪些数据,这个程序在开发过程中所有的文档,这些文档包括:需求分析、概要设计、详细设计、编码及单元测试、系统集成及系统测试、用户测试等过程中产生的文档资料,这样才能够成一个完整的软件。
求数组马鞍点:本题是关于数组马鞍点的。
大家看看自己能够独立编一个求解数组马鞍点的程序吗。
(马鞍点:如果m[j]为数组中第i行的最小值,第j列的最大值,那么称m[j]为数组的马鞍点)#include<stdio.h>int main(){int n, m, i, j, k, l, minn, maxx, flag ;int a[256][256];while(1){printf("请输入矩阵的行列数:\n");scanf("%d %d",&n,&m);printf("请输入与行列数相符的矩阵:\n");for( i =0 ;i < n ;i++)for( j =0 ;j < m; j++)scanf("%d",&a[i][j]);flag = 0;printf("马鞍点输出(输出该点所在的行数与列数):\n");for( i = 0; i < n ;i++){for( j = 0; j < m; j++){minn = a[i][j];for( k = 0 ;k < m; k++){if( minn > a[i][k])break;}if( k == m){maxx = a[i][j];for( l = 0; l < n; l++){if( maxx < a[l][j])break;}if( l == n){printf("%d %d %d\n",i , j ,a[i][j]);flag = 1;}}}}if( flag == 0)printf("此矩阵没有马鞍点");printf("\n");}return 0;}编程将正整数分解质因数。
1.已知a为[0,f]之间的16进制整数,n为a的个数,编写程序求出表达式:a+aa+aaa+……+a^^^a;其中最后一项有n个a;int Sum(int a,int n);/*函数声明*/这一题我用的是递归方法,因为Su m(a,n)=Sum(a,n-1)+a^^^a;(n个a);令T=0;则,for(i=0;i<n;i++)T=T*16+a;答:int Sum (int a,int n){if(n==1){return a;}else{return ((Sum (a,n-1)+1)*a);}}2求链表的节点个数;结构如下:typedef struct Link {int data;struct Link *next;}Link;其中链表可能有环,既尾指针不一定为NULL;答:int Count(Link *Head); /*函数声明*/{int count=0;Link *p = Head->next;if(p == NULL){return count;}else{while(p!=NULL&&P!= Head){count++;p=p->next;}}return count;}5)不利用库函数,编写一个函数将一个正整数转化为字符串!(应该是将10进制整数转化为字符串)答:void trans(const int a,char * &str) 0’面上有23个硬币,其中10个正面朝上,此刻要将你眼睛蒙住,将这些硬币分为两组,(假设硬币的正反面手指是摸不出来的),要求每组中正面朝上的硬币数量相同。
请你用最好的方式进行分组。
答案:分2堆,一堆10个,一堆13个,然后把10个的那堆翻过来和B两个人在一月份第一次去健身房时熟悉,A在一月份第一个礼拜的礼拜一去了健身房,然后每隔四天去一次(即第五天去),而B每隔三天去一次(即第四天去)。
一月份A和B只相遇了一次,即第一次熟悉的那天。
Android开发笔试题及答案一、选择题(20题,每题2分,共40分)1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:(),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(CG)A、输入流和输出流B、字节流和字符流C、节点流和处理流D、File streamE、Pipe streamF、Random streamG、Filter stream2.下列代码的执行结果是:(B)public class Test3{public static void main(String args[]){System.out.print(100%3);System.out.print(",");System.out.println(100%3.0);}}A、1,1B、1,1.0C、1.0,1D、1.0,1.03.以下程序的运行结果为( B )public class IfTest{public static void main(String args[]){int x=3;int y=1;if(x==y)System.out.println("Not equal");elseSystem.out.println("Equal");}}A、Not equalB、EqualC、无输出D、编译出错4.Java语言中字符串“学Java”所占的内存空间是(A)A. 6个字节B. 7个字节C. 10个字节D. 11个字节5.关于下列程序段的输出结果,说法正确的是:(D )public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A、有错误,变量i没有初始化。
B、nullC、1D、06.下列哪些语句关于内存回收的说明是正确的? ( B)A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象7. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(C).A、11 ,-11B、11 ,-12C、12 ,-11D、12 ,-128.下列程序段的输出结果是:( B)void complicatedexpression_r(){int x=20, y=30;boolean b;b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;System.out.println(b);}A、trueB、falseC、1D、09.activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D)A、onPause()B、onCreate()C、onResume()D、onStart()10.android 中下列属于Intent的作用的是(C)A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作11.下列属于SAX解析xml文件的优点的是(B)A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失12.下面的对自定style的方式正确的是(A)A、<resources><style name="myStyle"><item name="android:layout_width">fill_parent</item></style></resources>B、<style name="myStyle"><item name="android:layout_width">fill_parent</item></style>C、<resources><item name="android:layout_width">fill_parent</item></resources>D、<resources><style name="android:layout_width">fill_parent</style></resources>13.在SQL Server 2005中运行如下T-SQL语句,假定SALES表中有多行数据,执行查询之后的结果是(D)。
软件开发类岗位笔试题附答案1. 下列哪种方式可以用来实现线程继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池以上皆可以2. 在Java EE中,Servlet是在服务器端运行,以处理客户端请求而做出的响应的程序,下列选项中属于Servlet生命周期阶段的是加载与实例化初始化销毁以上皆是3. 下面哪个选项,“不属于”线程在执行过程中的状态就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行(Start):进程正在执行线程的代码。
睡眠中(Sleeping):线程被强制睡眠。
同步阻塞(Blocked on Synchronization):等待获取锁。
4. JavaBean是在Java中开发的可以跨平台的重用组件,JavaBean必须满足的要求中“不包括”以下哪个选项必须带有一个无参构造函数JavaBean内的成员属性都须定义为private或者public可通过setter、getter取得和设置属性JavaBean 类必须是一个公共类5. 关于throw和throws的区别,下列叙述“错误”的是throws出现在方法函数头;而throw出现在函数体。
throws一定抛出异常;throw则表示出现异常的可能性。
两者都是消极处理异常的方式以上都错误6. Java中,可通过Random类的nextInt方法生成一个随机数Random random = new Random();int i = random.nextInt(10);那么在以上代码中,“i”的值可能为-10100.57. 下列关于栈的叙述中正确的是?在栈中只能插入数据在栈中只能删除数据栈是先进先出的线性表栈是先进后出的线性表或数组8. 以下数据结构属于“非线性数据结构”的是?队列线性表二叉树栈9. 下面选项哪些“不是”Thread类的方法()start()exit()sleep()join()10. 关于JDBC的叙述中,以下“错误”的是JDBC使用步骤为:加载驱动,建立连接,创建执行Statement ,处理执行ResultSet ,释放资源ResultSet接口将执行SQL所生成结果的对象返回Statement接口可用于执行静态SQL语句Connection接口与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果11. 下列关于接口与抽象类的叙述中,“错误”的是抽象类可以有构造器;接口不能有构造器。
软件开发企业招聘笔试题及答案(十一)1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令和语句new 创建实例new 隐藏基类中方法答:1). using指令。
using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间。
2).using别名。
using + 别名= 包括详细命名空间信息的具体的类型。
当一个cs 引用多个命名空间时,而有相同的类型时可以这样做。
比如namespace1 和namespace2下面都有myClass类时,可以using class1 =namespace1.myClass;using class2 = namespace2.myClass。
3).using语句,定义一个范围,在范围结束时处理对象。
(1)new 运算符用于创建对象和调用构造函数。
(2)new 修饰符用于向基类成员隐藏继承成员。
(3)new 约束用于在泛型声明中约束可能用作类型参数的参数的类型。
4.谈谈类和结构的区别?类是引用类型、结构是值类型答:结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。
结构不能声明默认构造函数(没有参数的构造函数)或析构函数。
结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。
实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。
结构不能从类或其他结构继承。
结构是值类型-- 如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。
复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。
由于结构不使用引用,因此结构没有标识-- 具有相同数据的两个值类型实例是无法区分的。
C# 中的所有值类型本质上都继承自ValueType,后者继承自Object。
9年联发科技手机软件开发笔试题一:编程题(每题20分,共40分)1:编写两个函数,接口如下:第一个负责把一个ASCII字符串转换为一个带符号整数,第二个函数负责把一个带符号的整数转换为一个ASCII字符串。
(1) int StrToInt (c*****t char* pStr);解答:#include <>#include ""#include<>int StrToInt (c*****t char* pStr){int iResult = 0;bool bMinus = false;int itemp = 0;int i = 0;if(*(pStr+i) == '-'){bMinus = true;i++;}do{itemp = *(pStr+i) - 0x30;iResul t = iResult*10+itemp;i++;}while(*(pStr+ i) !='\0');if(bMinus == true)iResul t = 0-iResult;return iResult;}int main(){char s[] = "-456789";int iNum = StrToInt((char*)s);printf("%d\n", iNum);}(2) int IntToStr (int num, char* pStr);已知条件:传递给IntToStr函数的缓冲区的长度是能够容纳int整数范围内的数;传递给StrToInt的字符串只包含数字和‘-’(负号),是一个格式正确的整数值。
2:编程实现二分法搜索函数,该函数对一个排序好的整数数组进行二分搜索(binary Search),函数的原型如下:Int BinarySearch(c*****t int* array, int lower, int upper, int target);其中lower、upper分别是需要进行搜索的开始和结束的索引值,请分别使用递归和非递归两种方法实现该函数。
软件开发企业招聘笔试题及答案(七)可以使用任何你所熟悉的编程语言来实现以下算法题:一、写一个函数将输入的任意正整数转换为它所对应的二进制编码并输出。
答:private static string str = string.Empty;public string f(int m){string sb = string.Empty;if (m == 0){sb = "0";}if (m > 0){f(m / 2);sb = (m % 2).ToString();}str += sb;return str;}二、有两个数值变量分别为a与b试写算法,实现a与b值的交换,在程序中只能出现a,b两个变量。
答:a=a+b;b=a-b;a=a-b;三、有一组无序排列的整数数组如{1,5,7,9,2} 通过算法实现对该数组按从大到小的顺序进行排序,输出排序后的结果同时输入原始数组的数组索引下标,如输出排序结果为{9,7,5,2,1},输出原始数组索引下标为{3,2,1,4,0}。
答:用另一个数组ary_index记录原始数组的下标int i,j,t;for(i=0;i<ary_value.Length-1;i++){for(j=i+1;j<ary_value.Length;j++){if(ary_value[i]<ary_value[j]){t=ary_value[j];ary_value[j]=ary_value[i];ary_value[i]=t;t=ary_index[j];ary_index[j]=ary_index[i];ary_index[i]=t;}}}四、已知有一长度为100的无序随机整型数组,且数值范围是[1,100],写一算法,判断数组中是否有存在重复值,要求,不得嵌套循环,不得使用递归。
答:int[] intlist = new int[100] { };int t;int c = 0;while (c < intlist.Length){t = intlist[c];if (t < intlist.Length){if (intlist[t] == t){if (t == c){c++;}else{Response.Write("true");break;}}else{intlist[c] = intlist[t];intlist[t] = t;}}五、用算法实现Round函数效果,这里仅要求将所输入的任意数值型变量保留两位小数后输出(四舍五入),以代码实现,不得使用Printf(“%.2f”,&d)或是.NET中的Round(double value, int digits)函数。
软件开发企业招聘笔试题及答案(三十九)第一部分:智力测试(说明:此部分考察应聘者综合能力)1、小明一家过一座桥,过桥时是黑夜,所以必须有灯。
现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。
每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。
问小明一家如何过桥?答:可以背着过去啊。
2、100美元哪去了?三个朋友住进了一家宾馆。
结帐时,帐单总计3000美元。
三个朋友每人分摊1000美元,并把这3000美元如数交给了服务员,委托他代到总台交帐,但在交帐时,正逢宾馆实施价格优惠,总台退还给服务员500美元,实收2500美元,服务员从这500美元中扣下了200美元,只退还了三位客人300美元,三人平分了这300美元,每人取回了100美元。
这样,三个客人每人实际支付900美元,共支付2700美元,加上服务员扣的200美元,共计2900美元。
那么这100美元的差额到哪里去了呢?答:实付的900*3里面包含了服务员的200了,实付900*3=2700,2700+每人收回的100*3=原来的3000第二部分:知识面考察(说明:此部分为考察应聘者知识面广度,包含了25条判断题。
每一个应聘技术岗位的面试者都要回答本部分问题)1、目前市面上最新的PC机仍旧是基于数十年前提出的冯。
诺伊曼体系计算机系统。
2、Unix操作系统和WindowsXP系统一样都是多任务系统,但不是实时操作系统。
3、设计模式(design pattern)是一种用于解决模式匹配设计时的通用算法。
4、UML(Unified Modeling Language)只能描述系统要实现什么,而不能描述系统应该如何实现。
5、SOAP是一种新型的ROC的规范,他是由XML RPC发展演进过来的。
6、一个域名唯一对应着一个IP地址。
7、在现行的网络结构下,VOLP技术主要基于UDP协议来传输媒体流。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==软件研发工程师笔试题目及答案分享导读:笔试之前先找些相关公司的笔试题目来练练手吧,做到心里有数总不会错的。
以下是由小编J.L为您整理推荐的笔试题目和笔试经验,欢迎参考阅读。
请在60分钟内作答一、选择题1、哪个类是所有异常的基础类 CA.StringB.ErrorC.ThrowableD.RuntimeException2、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:(A)A. 3.5B. 3C. 4D. 53、下列说法正确的是(B )A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法4、根据下面的程序代码,哪些选项的值返回truepublic class Square {long width;public Square(long l) {width = l;}public static void main(String arg[]) {Square a, b, c;a = new Square(42L);b = new Square(42L);c = b;long s = 42L;}}A.a == b;B.s == a;C.b == c;D.a.equals(s)equals() 是Object类的一个方法,指示某个其他对象是否与此对象“相等”。
由于类 Object 是类层次结构的根类。
所以它是每个类的超类。
所示每个类都可以重写equals()方法,如String类。
如果没有重写(override)新类的 equals(),则该方法和 == 操作符一样在两个变量指向同一对象时返回真,但是Java推荐的是使用equals()方法来判断两个对象的内容是否一样。
安卓笔试题及答案一、单选题1. 安卓操作系统是基于哪个内核开发的?A. Windows内核B. Linux内核C. MacOS内核D. FreeBSD内核答案:B2. 下列哪个不是安卓应用开发中常用的布局?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. GridBagLayout答案:D3. 在安卓开发中,哪个类是所有Activity的基类?A. ActivityB. ContextC. ViewD. Application答案:A4. 以下哪个不是安卓开发中常用的数据存储方式?A. SharedPreferencesB. SQLite数据库C. File存储D. XML文件答案:D二、多选题1. 安卓应用开发中,以下哪些是常用的网络请求库?A. RetrofitB. VolleyC. OkHttpD. Picasso答案:ABC2. 在安卓开发中,下列哪些是Activity生命周期中的方法?A. onCreate()B. onStart()C. onResume()D. onPause()答案:ABCD三、判断题1. AndroidManifest.xml文件是安卓应用的配置文件,用于定义应用的组件和权限。
答案:正确2. 在安卓开发中,所有的Activity都必须继承自Activity类。
答案:正确3. Android Studio是谷歌官方推荐的安卓开发IDE。
答案:正确4. 安卓应用的最小SDK版本可以在build.gradle文件中设置。
答案:正确四、简答题1. 请简述安卓应用开发中Activity和Fragment的区别。
答案:Activity是安卓应用的四大组件之一,它提供了一个用户界面,用户可以与之交互。
Fragment是Activity的一部分,它可以被添加到Activity中,用来管理用户界面的一部分。
Fragment可以被重复使用,并且可以在不同的Activity之间共享。
软件开发企业招聘笔试题及答案(四)1.面向对象的思想主要包括什么?答:任何事物都可以理解为对象,其主要特征:继承。
封装。
多态。
特点:代码好维护,安全,隐藏信息2.什么是中的用户控件答:扩展名为*.ascx,跟*.aspx在结构上相似,是指页面中加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用户控件中使用。
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?答:应用程序域应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。
应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。
应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。
托管代码使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
装箱和拆箱装箱和拆箱使值类型能够被视为对象。
对值类型装箱将把该值类型打包到Object 引用类型的一个实例中。
这使得值类型可以存储于垃圾回收堆中。
拆箱将从对象中提取值类型。
重载每个类型成员都有一个唯一的签名。
方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。
当定义两种或多种具有相同名称的方法时,就称作重载。
CTS通用类型系统(common type system)一种确定公共语言运行库如何定义、使用和管理类型的规范。
CLR公共语言运行库.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。
CLS公共语言规范要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。
9年联发科技手机软件开发笔试题
一:编程题(每题20分,共40分)
1:编写两个函数,接口如下:第一个负责把一个ASCII字符串转换为一个带符号整数,第二个函数负责把一个带符号的整数转换为一个ASCII字符串。
(1) int StrToInt (c*****t char* pStr);
解答:
#include <iostream.h>
#include "string.h"
#include<stdio.h>
int StrToInt (c*****t char* pStr)
{
int iResult = 0;
bool bMinus = false;
int itemp = 0;
int i = 0;
if(*(pStr+i) == '-')
{
bMinus = true;
i++;
}
do
{
itemp = *(pStr+i) - 0x30;
iResult = iResult*10+itemp;
i++;
}while(*(pStr+i) !='\0');
if(bMinus == true)
iResult = 0-iResult;
return iResult;
}
int main()
{
char s[] = "-456789";
int iNum = StrToInt((char*)s);
printf("%d\n",iNum);
}
(2) int IntToStr (int num, char* pStr);
已知条件:传递给IntToStr函数的缓冲区的长度是能够容纳int整数范围内的数;传递给StrToInt的字符串只包含数字和‘-’(负号),是一个格式正确的整数值。
2:编程实现二分法搜索函数,该函数对一个排序好的整数数组进行二分搜索(binary Search),函数的原型如下:
Int BinarySearch(c*****t int* array, int lower, int upper, int target);
其中lower、upper分别是需要进行搜索的开始和结束的索引值,请分别使用递归和非递归两种方法实现该函数。
二:问答题(每题6分,10题,共60分)
1:下面这个程序执行后会有什么错误或者效果
#define MAX 255
int main(void)
{
unsigned char I;
unsigned char A[MAX];
for(i=0; i<=MAX; i++)
{
A = i;
}
Return 0;
}
2:在32位小端字节序系统里,
char array[16] ={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
char* cp = array;
int* ip = (int*)array;
问:(1)*(cp+2)=?
(2)*(ip+2)=?
3:c是一个char类型的变量,c的取值范围是多少?如果c的值是0xF0,那么c>>3=? 请给出10进制的答案。
4:调用函数时,请列举不使用函数原型潜在的风险。
5:下面函数实现有问题吗?如果有问题,实际运行中调用下面函数结果正确,并没有出现问题,为什么?
int Exchange Value(int* pa, int* pb)
{
int* pt;
if(pa == NULL || pb == NULL)
return 0;
*pt = *pa;
*pa = *pb;
*pb = *pt;
return 1;
}
6: int i1;
C*****t char* p1 = “AAA”;
int main()
{
static int i2;
int i3;
int* i4 = malloc(sizeof(int));。
}
上面程序中的变量(i1,p1,i2,i3,i4)分别存在于哪些内存存贮位置(数据段、堆栈或队)?
i1,i2,i3,*i4的值是什么?
7:下面哪组语句没有编译和运行的错误?如果有错误的组,请说明哪些语句是错误的,为什么?
A. c*****t int a; (1)
B. char* pa = “AAA”(1)
c*****t char* pb = “BBB”; (2)
pb = pa; (3)
C. char* pa = “AAA”; (1)
Char* c*****t pb = “BBB”; (2)
Char* c*****t pc = (char*) malloc(4); (3)
*pb = ‘A’; (4)
*(pc+1) = ‘A’;(5)
Pb = pa; (6)
D. char* pa; (1)
c*****t char* c*****t pb = ”BBB”; (2)
char* c*****t pc; (3)
pa = “AAA”;(4)
pc = pa;(5)
8:用变量a给出下面的定义:举例一个整型数 int a;
(1) 一个指向指针的指针,它指向的指针是指向一个整型数 int **p
(2) 一个有10个整型数的数组 int *p[10]
(3) 一个有10个指针的数组,该指针是指向一个整型数 int **a[10]
(4) 一个指向有10个整型数组的指针int *a[10][]
(5) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数
int *a(int )
(6) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数int **a[10](int)
9:请编写一个函数,将2个16位有符号数分别放入一个32位有符号数的高16位和低16位,请不要使用函数的返回值传递数据。
10:下面是一个用来删除单向链表头节点的函数,请找出其中程序的漏洞并加以纠正。
void RemoveHead (node* head)
{
free(head); /* Line1 */
head = head->next; /Line2 */
}。