T1

医学影像分割入门MRI关于T1、T2、Flair等概念 医学影像分割入门MRI关于T1、T2、Flair等概念 相关概念:医学影像分割,是深度学习与医学的结合,通过对医学影像的分析处理,实现对病灶部位的自动分割. MRI MRI是磁共振成像(Megnetic Resonace Imaging),原理是依据释放的能量(也可称信号)在物质内部不同结结构环境中有不同的衰减,通过外加的磁场检测所发射出的电磁波,可以得知构成该物体原子核的位置和种类,从而绘制物体内部的结构图像。 序列 在MRI成像的过程中,通过改变MR信号的影响因素,可以得到不同的影像,这些不同的影像就称 阅读详情

 一、请填写BOOL , float, 指针变量 和“零值”比较的 if 语句。(10分)
请写出 BOOL  flag 和“零值”比较的 if 语句。(3分)
标准答案:

    if ( flag )

    if ( !flag )
如下写法均属不良风格,不得分。
    if (flag == TRUE)   

    if (flag == 1 )     

    if (flag == FALSE)  

        if (flag == 0)      
请写出 float  x 和“零值”比较的 if 语句。(4分)
标准答案示例:

const float EPSINON = 0.00001;

if ((x >= - EPSINON) && (x

不可将浮点变量用“==”或“!=”和数字比较,应该设法转化成“>=”或“此类形式。
   

如下是错误的写法,不得分。
    if (x == 0.0)   

    if (x != 0.0)      

   


请写出 char  *p 和“零值”比较的 if 语句。(3分)
标准答案:

    if (p == NULL)

    if (p != NULL)
如下写法均属不良风格,不得分。
    if (p == 0)

    if (p != 0)     

    if (p)  

        if (!)      

二、以下为Windows NT下的32位C++程式,请计算sizeof的值(10分)

       char  str[] = “Hello” ;
       char   *p = str ;
int     n = 10;
请计算
sizeof (str ) =  6   (2分)

         

sizeof ( p ) =   4   (2分)

         

sizeof ( n ) =   4   (2分)
void Func ( char str[100])
{
请计算
sizeof( str ) =   4     (2分)

}


void *p = malloc( 100 );
请计算
sizeof ( p ) =  4      (2分)




三、简答题(25分)


1、头文档中的 ifndef/define/endif 干什么用?(5分)
答:防止该头文档被重复引用。


2、#include  filename.h>   和  #include  “filename.h” 有什么区分?(5分)
答:对于#include  filename.h> ,编译器从标准库路径开始搜索 filename.h

    对于#include  “filename.h” ,编译器从用户的工作路径开始搜索 filename.h


3、const 有什么用途?(请至少说明两种)(5分)
答:(1)能够定义 const 常量

(2)const能够修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,能够预防意外的变动,能提高程式的健壮性。


4、在C++ 程式中调用被 C编译器编译后的函数,为什么要加 extern “C”? (5分)
答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字和C语言的不同。假设某个函数的原型为: void foo(int x, int y);

该函数被C编译器编译后在库中的名字为_foo而C++编译器则会产生像_foo_int_int之类的名字。

C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。


5、请简述以下两个for循环的优缺点(5分)

for (i=0; ii++)

{

if (condition)

    DoSomething();

else

    DoOtherthing();

}

if (condition)

{

for (i=0; ii++)

    DoSomething();

}

else

{

    for (i=0; ii++)

    DoOtherthing();

}

长处:程式简洁



缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。


长处:循环的效率高



缺点:程式不简洁












四、有关内存的思考题(每小题5分,共20分)


void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)
{
char *str = NULL;

GetMemory(str);   

strcpy(str, "hello world");

printf(str);

}


请问运行Test函数会有什么样的结果?

答:试题传入GetMemory( char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完
char *str = NULL;
GetMemory( str );
后的str仍然为NULL;





char *GetMemory(void)

{   

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();   

printf(str);

}


请问运行Test函数会有什么样的结果?

答:可能是乱码。              char p[] = "hello world";      
     return p;  
的p[]数组为函数内的局部自动变量,在函数返回后,内存已被释放。这是许多程式员常犯的错误,其根源在于不理解变量的生存期。




void GetMemory2(char **p, int num)

{

*p = (char *)malloc(num);

}
void Test(void)

{

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello");   

printf(str);   

}
请问运行Test函数会有什么样的结果?

答:

(1)能够输出hello
(2 )Test函数中也未对malloc的内存进行释放。
(3)GetMemory避免了试题1的问题,传入GetMemory的参数为字符串指针的指针,但是在GetMemory中执行申请内存及赋值语句
*p = (char *) malloc( num );
后未判断内存是否申请成功,应加上:
if ( *p == NULL )
{
   ...//进行申请内存失败处理
 }

 







void Test(void)

{

char *str = (char *) malloc(100);

    strcpy(str, “hello”);

    free(str);      

    if(str != NULL)

    {

      strcpy(str, “world”);

printf(str);

}

}
请问运行Test函数会有什么样的结果?

答:执行
char *str = (char *) malloc(100);
后未进行内存是否申请成功的判断;另外,在free(str)后未置str为空,导致可能变成一个“野”指针,应加上:
str = NULL;









五、编写strcpy函数(10分)

已知strcpy函数的原型是
       char *strcpy(char *strDest, const char *strSrc);
       其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
char *strcpy(char *strDest, const char *strSrc);

{

    assert((strDest!=NULL) && (strSrc !=NULL));  // 2

    char *address = strDest;                   // 2

    while( (*strDest++ = * strSrc++) != \0 )    // 2

       NULL ;

    return address ;                          // 2

}


(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了实现链式表达式。                                              // 2

例如       int length = strlen( strcpy( strDest, “hello world”) );


六、编写类String的构造函数、析构函数和赋值函数(25分)

已知类String的原型为:
    class String

    {

      public:

        String(const char *str = NULL); // 普通构造函数

        String(const String &other);        // 拷贝构造函数

        ~ String(void);                     // 析构函数

        String & operate =(const String &other);    // 赋值函数

      private:

        char    *m_data;                // 用于保存字符串

    };

       请编写String的上述4个函数。
标准答案:


// String的析构函数
       String::~String(void)               // 3

{

    delete [] m_data;                     

// 由于m_data是内部数据类型,也能够写成 delete m_data;

       }


       // String的普通构造函数            
       String::String(const char *str)      // 6

{

    if(str==NULL)                          

    {

       m_data = new char[1];    // 若能加 NULL 判断则更好

       *m_data = \0;                     

    }                                          

    else

    {

       int length = strlen(str);           

       m_data = new char[length+1];  // 若能加 NULL 判断则更好      

       strcpy(m_data, str);               

    }

}   

// 拷贝构造函数

    String::String(const String &other)   // 3

    {   

    int length = strlen(other.m_data);

    m_data = new char[length+1];      // 若能加 NULL 判断则更好   

    strcpy(m_data, other.m_data);         

}

// 赋值函数

    String & String::operate =(const String &other)    // 13

    {   

       // (1) 检查自赋值                     // 4分

       if(this == &other)

           return *this;

   

// (2) 释放原有的内存资源            // 3分

       delete [] m_data;

      

       // (3)分配新的内存资源,并复制内容 // 3分

    int length = strlen(other.m_data);

    m_data = new char[length+1];         // 若能加 NULL 判断则更好

       strcpy(m_data, other.m_data);

      

       // (4)返回本对象的引用            // 3分

       return *this;

}
华为笔试
2006-2-28 星期二(Tuesday) 晴  
??1、局部变量能否和全局变量重名?
??答:局部变量能够和全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内能够定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内
??
??2、怎样引用一个已定义过的全局变量?
??答:能够用引用头文档的方式,也能够用extern关键字,假如用引用头文档方式来引用某个在头文档中声明的全局变理,假定您将那个变写错了,那么在编译期间会报错,假如您用extern方式引用时,假定您犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。(不要问我什么是编译期间,什么是连接期间,请自己查资料)
??
??
??3、全局变量定义在可被多个.C文档包含的头文档中可不能够?为什么?
??答:能够,但要加static
??
??4、语句for( ;1 ;)有什么问题?他是什么意思?
??答:死循环,同while(1),这种写法并不规范,可读性差,一般不用
??
??5、do……while和while……do有什么区分?
??答:前一个循环一遍再判断,后一个判断以后再循环
??
??6、请写出下列代码的输出内容
??#include
??main()
??{
??int a,b,c,d;
??a=10;
??b=a++;
??c=++a;
??d=10*a++;
??printf("b,c,d:%d,%d,%d",b,c,d);
??return 0;
??}
??答:10,12,120
??
??7.static函数和普通函数有什么区分?
??只在当前源文档中使用的函数应该说明为内部函数(static),内部函数应该在当前源文档中说明和定义。对于可在当前源文档以外使用的函数,应该在一个头文档中说明,要使用这些函数的源文档要包含这个头文档。
??
??8.static全局变量和普通的全局变量有什么区分?
??全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。
??这两者在存储方式上并无不同。这两者的区分虽在于非静态全局变量的作用域是整个源程式, 当一个源程式由多个源文档组成时,非静态的全局变量在各个源文档中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文档内有效, 在同一源程式的其他源文档中不能使用他。由于静态全局变量的作用域局限于一个源文档内,只能为该源文档内的函数公用, 因此能够避免在其他源文档中引起错误。从以上分析能够看出, 把局部变量改变为静态变量后是改变了他的存储方式即改变了他的生存期。把全局变量改变为静态变量后是改变了他的作用域, 限制了他的使用范围。
??
??9.程式的局部变量存在于(栈)中,全局变量存在于(静态区 )中,动态申请数据存在于(堆 )中。
??
??10.设有以下说明和定义:
??typedef union {long i; int k[5]; char c;} DATE;
??struct data { int cat; DATE cow; double dog;} too;
??DATE max;
??则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____
??
??11.队列和栈有什么区分?
??队列先进先出,栈后进先出
??
??12.写出下列代码的输出内容
??#include
??int inc(int a)
??{
??return(++a);
??}
??int multi(int*a,int*b,int*c)
??{
??return(*c=*a**b);
??}
??typedef int(FUNC1)(int in);
??typedef int(FUNC2) (int*,int*,int*);
??
??void show(FUNC2 fun,int arg1, int*arg2)
??{
??INCp=&inc;
??int temp =p(arg1);
??fun(&temp,&arg1, arg2);
??printf("%d\n",*arg2);
??}
??
??main()
??{
??int a;
??show(multi,10,&a);
??return 0;
??}
??
??翻译一下
??==================================
??#include
??using namespace std;
??
??// 返回a + 1
??int inc(int a){
??return a+1;
??}
??// out = a*b
??int multi(int& a, int& b, int& out){
??return out = a*b;
??}
??
??// 定义两种函数,FUNC1对应inc, FUNC2对应 multi
??typedef int(FUNC1) (int in);
??typedef int(FUNC2) (int&,int&,int&);
??
??// 诡异的函数,这是模糊C大赛么...
??void show( FUNC2* func, int num, int& out ){
??FUNC1* pInc = inc;//原文这句写错了...orz... INC根本没定义
??int numAdd1 = pInc( num );
??// 等价于 numAdd1 = inc( num );
??// 结果 num仍然是10, numAdd1 = 11
??
??// 调用func函数,能够看到, main中传给func的是 multi.
??// 所以调用的是 multi( 11, 10, out ), out = 110
??func( numAdd1, num, out );
??cout



什么是IP协议?

2006-2-27 星期一(Monday) 小雪  
??TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互连网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。
??
??在Internet没有形成之前,各个地方已建立了很多小型的网络,称为局域网,Internet的中文意义是\网际网\,他实际上就是将全球各地的局域网连接起来而形成的一个\网之间的网(即网际网)\。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?假如全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的\世界语\。
??
??TCP/IP协议的研发工作始于70年代,是用于互连网的第一套协议。
??
??
# posted by 孜孜不倦心 @ 2006-02-27 16:24 评论(1)  



1G/2G/2.5G/3G的区分?

2006-2-27 星期一(Monday) 晴  
  1G(first generation)表示第一代移动通讯技术。如现在以淘汰的模拟移动网。

  2G(second generation)表示第二代移动通讯技术。代表为GSM。以数字语音传输技术为核心。
  2.5G是基于2G和3G之间的过渡类型。代表为GPRS。比2G在速度、带宽上有所提高。可使现有GSM网络轻易地实现和高速数据分组的简便接入。
  3G(third generation)表示第三代移动通讯技术。面向高速、宽带数据传输。国际电信联盟(ITU)称其为IMT-2000(International Mobile Telecom-munication)。最高可提供2Mbp/s的数据传输速率。主流技术为CDMA技术代表有WCDMA(欧,日)、CDMA2000(美)和TD-SCDMA(中)。

1T和12T单片机的区别 转载请注明出处:http://blog.csdn.net/lxk7280 /*********************************************************************************************************************/ /**************************************** 阅读详情

相关推荐

用友畅捷通T1过期修复 用友T1证书过期修复 T1产品继续用

在T1 的安装目录,分别搜索a.dat 和ChanjetClient.dll,(1) 以T1 商贸部批发零售版为例,在安装目录“D:\T1-商贸宝批发零售版”,搜索a.dat,(3) 分别拷贝以上目录的ChanjetClient.dll,备份到其他的目录。3) 填写绑定认证原因,点击【去关联】,申请关联即会给该企业的认证人发短信通知提醒。举个栗子:卡号:41xxxxxx,为3 用户,如果在一台设备上使用这套产品,那只需要。获取本设备的机器码就可以,如果在不同的设备上使用这套产品,那每台设备都需要获取机。

2172

实战演练 test16 T1

题目描述       小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小 X 认为,质数是一切自然数起源的地方。       在小 X 的认知里,质数是除了本身和 1 以外,没有其他因数的数字。       但由于小 X 对质数的热爱超乎寻常,所以小 X 同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。       于是,我们定义,一个数是小

XH's 654

T1载波与E1载波(转)

T1载波是美国、加拿大、日本和新加坡使用的标准载波。而其他国家(欧洲国家)都采用E1载波作为标准载波。 一、T1载波(T1Carrier) T1载波是专用电话连接、时分多路数字传输设施。T1线路实际上是由24个单独的通道组成的,每个通道支持64K比特/秒的传输速度,其中数据速率为56Kb/s。 【工作原理】:Bell系统的T1载波利用脉码调制PCM和时分TDM技术,使24路采样声音信号...

weixin_45642176的博客 5449

Gliwa T1软件集成及T1上位机操作说明

打开已存在的文件B0_Os_EcucValues.arxml,再依次添加B0_EcuC_EcucValues.arxml,iocNeeds.arxml,并将他们的路径设为Relative,这三个文件在ISOLAR-AB生成物中找到。在每次编译之前,要先通过运行T1_projGen.bat能正确产生t1p项目文件和src里面的T1_config.h,T1_configGen.c文件,把下面三个文件夹里面的.c,.h,.a文件全部放到项目文件里面参与编译。在上位机PC上运行的软件T1-HOST-SW;

fuyun32的博客 5665

磁共振T1、T2有啥区别

看到论文中有这两个参数,就查了一下。大致了解 磁共振T1和T2图像的区别 1、T1观察解剖结构较好。 2、T2显示组织病变较好。 3、水为长T1长T2,脂肪为短T1长T2。 4、长T1为黑色,短T1为白色。 5、长T2为白色,短T2为黑色。 6、水T1黑,T2白。 7、脂肪T1白,T2灰白。 8、T1对出血敏感,因血(亚急性期)T1呈白色。 9、骨质、钙化、气体在T1、T2像上均为黑色。 T1加权...

weixin_43350614的博客 2万+

磁共振t1t2信号记忆顺口溜_MRI的T1和T2

关于MRI的T1和T2的区别(一)T1加权像、T2加权像为磁共振检查中报告中常提到的术语,很多非专业人士不明白是什么意思,要想认识何为T1加权像、T2加权像,请先了解几个基本概念:1、磁共振(mageticresonanceMR);在恒定磁场中的核子(氢质子),在相应的射频脉冲激发后,其电磁能量的吸收和释放,称为磁共振。2、TR(repetitiontime):又称重复时间。MRI的信号很弱,为提...

weixin_39901213的博客 4766

磁共振T1 T2 T1WI T2WI含义

核磁共振T1与T2区别 来源: 夏明芳的日志 1、T1观察解剖结构较好。 2、T2显示组织病变较好。 3、水为长T1长T2,脂肪为短T1短T2。 4、长T1为黑色,短T1为白色。 5、长T2为白色,短T2为黑色。 6、水T1黑,T2白。 7、脂肪T1白,T2灰白。 8、T2对出血敏感,因水T2呈白色。  T1加权成像、T2加权成像 所谓的加权就是“突出”的意思 T1加权成像(

magicwenjing的专栏 4万+

T1加权像(T1 weighted image,T1WI)

T1加权成像(T1-weighted imaging,T1WI)是指这种成像方法重点突出组织纵向弛豫差别,而尽量减少组织其他特性如横向弛豫等对图像的影响。 弛豫:物理用语,从某一个状态恢复到平衡态的过程。 主要对比度决定于组织间或组织状态间T1差别的磁共振图像。采用短TR(<500ms)和短TE(<25ms)的扫描序列来取得。取短TR进行扫描时,脂肪等短T1组织尚...

weixin_30375247的博客 3014

什么是T1链路、E1链路?为什么T1链路是1.544M?T1&E1技术详解

T1 TDM 支持1.544 Mbps 通信链路,将它划分为24个时隙,每间隔为64 kbps(即56000+8000bps),其中 8 kbps 信道用于同步操作和维护过程(加上1帧用于成帧)。 T1链路是支持1.544 Mbps 通信链路,将它划分为24个时隙---(即该链路包含24条被复用在一起的语音信道) 每一条信道在输出流中插入8位(7位数据,1位控制)所以每条信道产生7*8000=56000bps的数据 (编解码器是每秒钟采样8000次=采样1次用时125微秒),1*8000=8000bps的控

Daemon 1万+

STC12系列单片机的1T模式和12T模式

STC12系列单片机的定时器有两种计数速率:一种是12T模式,每12个时钟加1,与传统8051单片机相同;另一种是1T模式,每个时钟加1,速度是传统8051单片机的12倍。

Rocherrr的博客 1万+

T+1 与 T-1 区别

T+1与T-1的区别主要是看数据的角色视角不同。

qq_15138049的博客 7167

汽车以太网100BASE-T11000BASE-T1特性

汽车以太网100BASE-T11000BASE-T1特性

achirandliu的专栏 4641

磁共振t1t2信号记忆顺口溜_怎样解释T1信号(1

我曾经给别人讲磁共振原理,能把明白的人讲糊涂,也能把自己搞糊涂。渐渐地也就不愿意讲了,把既有的幻灯整理整理。关于磁共振原理,很多人关注脉冲序列,其实对于诊断来说,关键的是解释磁共振信号,把生物组织的磁共振信号解释合理了,诊断的理由就更加充分,而不是简单的猜猜猜了。合理解释T1信号,至少需要从6个方面考虑:1、组织的含水量:生物组织含水比例的多少直接决定T1弛豫,一般地,含...

weixin_42382398的博客 6万+

T-1和T+1的区别

T-1指从数据分析的角度,看到的数据都是T-1天的数据,即昨天的数据。T+1指从生成数据的角度,T+1天才能看到,即第二天才能看到。

JJJJJJJJia的博客 【天道酬勤】 1789

什么是T1 mapping?

1、什么是T1? 先介绍在物理学上的弛豫时间,原子核从激化的状态回复到平衡排列状态的过程叫弛豫过程。它所需的时间叫弛豫时间。 弛豫时间有两种即T1和T2,T1为自旋一点阵或纵向弛豫时间,T2为自旋一自旋或横向弛豫时间。 在俎栋林《核磁共振成像-物理原理和方法》一书中的解释如下: 原子核和周围环境有可以测量的相互作用。将样品置于外磁场中,核自旋系统总能量减少,可见磁化对核自旋系统来说是一个失能“降温...

一位初学者的博客 2万+

IEC104规约的秘密之七----配置参数t1,t2,t3

B站发送I(0,0)帧后,开始计时,A站回复了S(1)帧,表示确认收到了I(0,0)帧,则B站又从I(1,0)帧发送的时间开始计时,当超过t1时间后,I(1,0)帧没有得到A站的确认,则主动关闭TCP/IP连接,重新开始新的连接过程。B站在发送了I(2,0)帧后就不再发送I帧,而A站此时只收到3帧I帧,若此时配置的w参数为8,则3

XZHOUMIN的博客 4200

磁共振t1t2信号记忆顺口溜_【 磁共振t1与t2是啥意义】_特点_特征-大众养生网

文章导读核磁共振t1与t2是什么实际意义?T1W,T2W是在核磁共振成像上的专业名词,意味着数据信号的状况,十分技术专业也比较复杂。搞清楚这一需要掌握核磁共振的成像原理的,便是根据是身体各组织的质子在强劲的电磁场功效下造成共震,当电磁场消退后,质子返回原先的情况常用的时间就是T,TW就是指权重计算显像的。核磁共振t1与t2是什么实际意义?核磁共振t1、t2长短的意思以下:1、T1权重计算显像(T1...

weixin_39542340的博客 1万+
上一篇: Windows启动
下一篇: VC开发辅助工具大收集
SearchLife
博客等级 码龄20年 51粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值