当前位置:文档之家› 《C语言》综合复习资料

《C语言》综合复习资料

《C语言》综合复习资料
《C语言》综合复习资料

《C语言程序设计》综合复习资料

一、单选题

1. C语言中基本数据类型有。C

A)整型、实型、逻辑型B)整型、字符型、逻辑型

C)整型、实型、字符型D)整型、实型、字符型、逻辑型

2. 在C语言中,数字O29是一个。A

A)八进制数 B)十进制数 C)十六进制数 D)非法数

3. 在以下关于C语言的不严格的叙述中,错误的说法是。A

A)在标识符中,大写字母和小些字母的意义相同

B)有些不同类型的变量可以在一个表达式中运算

C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型

D)同一个运算符号在不同的场合可以有不同的含义

4.下列关于C语言用户标识符的叙述中正确的是。B

A)用户标识符中可以出现下划线和中划线(减号)

B)用户标识符中不可以出现中划线,但可以出现下划线

C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。

5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。D

A) 顺序结构B) 选择结构C) 循环结构 D) 数组结构

6. C语言提供的合法关键字是。D

A) swicth B) cha C) Case D) default

7.以下非法的赋值语句是C

A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;

【解析】对表达式不能进行自加自减运算。

8.在以下一组运算符中,优先级最高的运算符是。

A) <= B) = C) % D) &&

【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻

辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。由于C选项为求余运算符,所以本题正

确答案为C选项。

9. 以下四个选项中不能看作一条语句的是。D

A) {;} B) a=0,b=0,c=0; C) if(a>0) D) if(b==0)m=1;n=2;

【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。

控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-else、while、continue、switch、return、for、do-while、break、goto;

表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一

行,多数情况下含赋值运算符。

复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环

语句中。

空语句:只有一个分号,表示什么也不做。

函数调用语句:由函数名、圆括号内加实参表和分号组成。

本题中D选项为三条语句,一条控制语句,链条表达式语句。正确答案为D选项。

10. 能将高级语言编写的源程序转换为目标程序的软件是。D

A) 汇编程序B) 编辑程序C) 解释程序D) 编译程序

11.以下选项中合法的实型常数是。C

A) 5E2.0 B) E-3 C) .2E0 D) 1.3E

【解析】以指数形式表示实数时,字母e或E之前必须有数字,且e后面指数必须为整数。

12.依据C语言的语法规则,下列合法标识符是A

A)Else B)else C)user$2 D)5_examp

【解析】标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)

标识符的首字符必须是字母或者下划线;(3)标识符命名对字母大小写敏感;(4)标识符定

义不能和C语言关键字(Key Words)相同。C语言中标识符对大小写敏感,sum和SUM是不同

的标识符。

13.以下选项中合法的用户标识是。

A) long B) _2Test C) 3Dmax D) A.dat

【解析】选项中A为保留字;选项C没有以字母或者“_”开头;选项D中不能有“.”

14.在C语言中,字符型数据在内存中的存储形式是。D

A) 原码B) 补码C) 反码D) ASCII码

【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的。c的char数据属于基本

类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些ASCII代码值在计算机中也是以二进制形式存放的。这个与整型的存储很相似。因此这两类之

间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其

绝对值的二进制形式“按位求反再加1”;实型:在内存中占4个字节,是按照指数形式存储

的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂

次来表示指数部分!

15.以下非法的赋值语句是。C

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;

【解析】对表达式不能进行自加自减运算。

16.已定义c为字符型变量,则下列正确的赋值语句是。D

A) c='66'; B) c="66"; C) c="B"; D) c=66;

17.已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a , b);的结

果是。B

A) 99, b B) c, 98 C) 99, 98 D) c, b

【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式:字符数据在

内存中是用字符对应的ASCII码存储,其存储形式实质是采用整数形式,由于ASCII码集合中

有256个字符,因此用0~255这个范围内的256个整数分别与每个字符对应。因此字符型数据

和整型数据在一定范围(0~255)内,形式上可以相互引用。表现在这两种类型的变量能够以对

方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表达式中参与运算int n='a'; /*相当于n=97*/

char c=65; /*相当于c='A',A的ASCII码是65*/

printf("n=%d,n=%c",n,n); /*输出:c=97,n=a*/

printf("c=%d,c=%c",c,c); /*输出:n=65,n=A*/

虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影响各自的数

据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。

18.若变量a和i已正确定义,且i已正确赋值,合法的语句是。B

A) a=1 B) ++i; C) a=a++=5 D) a=int(i)

【解析】C语言的语句必须以分号结束,选项A是错误的。赋值表达式等号的左边只能是变量,

而不能是表达式,选项C中含有a++=5,是错误的。选项D中的强制转换类型必须用圆括号将

int括起来,也是不正确的。

19.假定x和y为double型,则表达式x=2,y=x+3/2的值是。D

A) 3.500000 B) 3 C) 2.000000 D) 3.000000

【解析】算出来结果为3,排除A和C选项;又因为是double型,所以D选项为正确答案。

20.以下程序的输出结果是。C

main()

{

int a=5,b=4,c=6,d;

printf(“%d\n”,d=a>b?(a>c?a:c):(b));

}

A) 5 B) 4 C) 6 D) 不确定

【解析】本题考察条件表达式。简单的条件表达式(条件表达式?表达式1:表达式2)可以用来代替if语句进行赋值。详见教材102页。

21.设a=3,b=4,c=-5,则逻辑表达式:a || b+c && b==c 的值是。B

A) 1 B) 0 C) 非0 D) 语法错

【解析】运算符优先级由高到底为算术运算符---关系运算符---&&和||---赋值运算符。其中&&

和||的结合方向为从左到右

22.表示关系x<=y<=z的c语言表达式为。A

A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z)

C) x<=y<=z D) (x<=y)&(y<=z)

【解析】C语言中没有关键字AND,逻辑与运算符是&&,不是AND,因此选项B是错误的;而&是C语言的位与运算符,因此选项D是错误的;选项C是数学表达式,也是错误的。

23.设有变量int x=0,y=1,z=1,则运行表达式:x=y++>z--后,x,y,z的值分别是。D

A) 1,1,1 B) 1,2,0 C) 0,1,1 D) 0,2,0

【解析】注:前缀是先增值后引用,后缀是先引用再增值

24.已知 int a=4,b=5; ,执行表达式 a=a>b 后,变量a的值为。A

A)0 B)1 C)4 D)5

【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。由于关系运算符优先级别高于赋值运算符,所以先执行a>b,得到结果为假,即0,所以变量a的值为0。

25.能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是。B

A) a>=10 or a<=0 B) a>=10 || a<=0

C) a>=10 && a<=0 D) a>=10 | a<=0

26.设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是。D

A) a&&b B) a<=b C) a||b+c&&b-c D) !((a

27.以下合法的赋值语句是。B

A)x=(1,y=2); B)++x; C)x=y=15; D)y=int(x);

28.以下选项中,与k=n++完全等价的表达式是。A

A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

【解析】在本题中,k=n++为后辍运算,根据其运算规则,应先把n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。

29.若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为。

A) 1.4 B) 1 C) 2.0 D) 2

【解析】由于a,b,c都是整型变量,所以每一步计算都要取整,所以选B。

不同类型数据间是可以进行转换和运算的。

整型、字符型、实型数据可以混合运算,如果表达式内的运算量的类型不同,不同类型的数据要先转换成同一类型,在进行运算。转换方向由低到高为:char/short、int、unsigned、long、float、double。当然也可以使用强制类型转换符来转变类型,但变量本身的类型并未发生变化。

例如:(double)n,(int)(a+b)。

30.设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是。C

A) 7 B) 8 C) 9 D) 10

31.已定义c为字符型变量,则下列语句中正确的是。D

A)c='97'; B)c="97"; C)c="a"; D)c=97;

32.已知 char ch='A'; 且表达式 ch=(ch>='A' && ch<='Z')?(ch+32):ch的值是。B

A) A B)a C) Z D)出错

【解析】考察条件表达式。见教材102页。首先执行(ch>='A' && ch<='Z'),为1。接着执行(ch+32)。因此结果是小写字母a。

33.设有如下程序段:

int x=2, y=3;

printf("%d\n",(x,y));

则以下叙述中正确的是。B

A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B)运行时产生出错信息

C)输出值为2

D)输出值为3

34.对于循环 for (k=16; k>0; k-=3) putchar(‘*’); 输出是。B

A)***** B)****** C)******* D)无限循环

【解析】在k分别为16,13,10,7,4,1的时候,分别输出一个*。putchar()函数(字符输出函数)的作用是向终端输出一个字符。用putchar()函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如putchar(’\n’)的作用是输出一个换行符,使输出的当前位

置移到下一行的开头。

35.已知int i=1;执行语句while(i++<4)后,变量i 的值为 。C

A) 3 B) 4 C) 5 D) 6 【解析】i++是先进行其他运算,运算终了后再将i 加1。 所以循环中过程如下: i=0

判断i<4:成立 i=i+1,于是i=1

继续循环:判断i<4:成立 i=i+1,于是i=2

继续循环:判断i<4:成立 i=i+1,于是i=3

继续循环:判断i<4:成立 i=i+1,于是i=4

继续循环:判断i<4:不成立 i=i+1,于是i=5

跳出循环,程序结束

36.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a 的第一维的大小是 。C A )2 B )3 C ) 4 D )无法确定;

【解析】此数组共3列。应该是?????

????

???000987654321 在C 语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有10个元素,每行3列,显然可以确定行数为4.见教材138. 37.判断字符串的长度,应该使用的函数是 。

A ) strcat

B ) strcmp

C ) strcpy

D ) strlen 【解析】

strlen(string ) ---字符串长度

strcpy (字符数组1,字符串2)

---STRingCoPY (字符串复制)的简写。它是“字符串复制函数”,作用是将字符串2复制到字符数组1中去。见教材147页。 strcat(字符数组1,字符数组2)

---(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值---字符数组1的地址。 strcmp(string ,string )

---比较2个字符串,0为相同,>0前1个大,<0后1个大 38.初始化多维数组的语句中,可以默认的是 。B

A )最后一个下标界

B )第1个下标界

C )第2个下标界

D )以上都不对

39.若有:int a[10],*p=&a[0];,关于数组名a 的不正确的说法是 。A

A )a 是个数组指针

B )数组名a 表示数组的首地址

C )数组名a 与a[0]等价

D )a 和p 都指向同一个存储单元

【解析】一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量即然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。在本题中,定义a 为包含10个整型数据的数组,定义p 为指向整型变量的指针变量。并且把a[0]元素的地址赋给指针变量p ,也就是使p 指向a 数组的第0号元素。C 语言规定数组名代表数组中首元素的地址。因此下面两个语句等价:

P=&a[0]; p=a;注意数组名a 不代表整个数组,上述“p=a;”的作用是“把a 数组的首元素的地址赋给指针变量p ”而不是“把数组a 各元素的值赋给p ”。

40.设有定义int a[ ]={1,5,7,9,11,13},*p=a+3;则*(p-2),*(a+4)的值是 。A

A )5 11

B )1 9

C )5 9

D )有错误

【解析】因为*p=a+3它的作用是将a 数组第4个元素a[3]的地址赋给指针变量p (而不是赋给*p ),

a 代表数组首元素的地址,a+3 }

1371)4+)2(*

按C 语言的规定:如果指针变量p 已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,而不是将p 的值(地址)简单的加1。

另外,如果p 的初值为&a[0],则p+i 和a+i 就是a[i]的地址,或者说,它们指向a 数组的第i 个元素,这里需要特别注意的是a 代表数组首元素的地址。

*(p+i )或*(a+i)是p+i 或a+i 所指向的数组元素,即a[i]。在本题中*(a+4)=a[4]=11详见教材230页。

41.C 语言中,函数返回值的类型是由 。B A )return 语句中的表达式类型决定 B )调用函数的主调函数类型决定 C )调用函数时的临时类型决定

D )定义函数时所指定的函数类型决定

42.执行下面程序: main() {

int x=1,y=1,z=1; x=x++ +y++ +z++;

printf("%d, %d , %d",x,++y,z++); }

输出的结果为 。A

A) 4,3,2 B) 3,3,2 C) 3,3,3 D) 3,2,2 【解析】语句x=x++ +y++ +z++;中++运算符均为后缀,所以是先引用后增值,此语句又可写为x=x+y+z;x++;y++;z++; 这样我们便很容易看出结果为x=4;y=2;z=2。 43.以下程序段的输出结果是 。A int m=10; while(m>7) { m--;

printf(“%d \n”,m);

【解析】复习一

下while 循环的执行过程:

1)计算while 一对圆括

号中表达式的值。当值为非零时,执行步骤(2);当值为零时,执行步骤(4)。 (2)执行循环体中语句。 (3)转去执行步骤(1)。 (4)退出while 循环。

由以上while 循环的一般过程来看,只有当while 后面的括号中表达式的值为零时才停止循环。本题中,当m=7是循环停止,也就是说最后一个输出的应是7.开始m 被赋予10,进入循环体,由于m--;所以m 自减1为9,所以第一个输出的应是9.

44.若有如下程序段,其中s 、a 、b 、c 均已定义为整型变量,且a 、c 均已赋值(c 大于0) s=a; for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是 。B

A) s=a+b; B) s=a+c; C) s=s+c; D) s=b+c;

【解析】掌握两点:一、a 赋给了s ;二、s 执行c 次自加;所以最终相当于将a+c 赋给了s 。 45.以下程序中,while 循环的循环次数是 。D main() {

int i=0;

while(i<10)

{

if(i<1)continue;

if(i==5)break;

i++;

}

……

A) 1 B) 10 C) 6 D) 死循环,不能确定次数【解析】在循环中,如果执行continue,将直接开始下一次循环,不继续执行continue下面的语句。

进入循环时,i=0,当执行到if(i<1)continue;一句时,将执行continue命令,直接开始下一次循环,i的值始终没有变,循环条件(i<10)将一直满足下去。所以,程序将一直无法退出循环,即死循环。

46.当对两个字符串进行比较时,应该使用的函数是。B

A) strcat B) strcmp C) strcpy D) strlen

47.若有定义“int k,*q;”,则下列各选项中赋值表达式正确的是。B

A) q=(&k+1) B) q=&k C) q=k D) *q=&k

【解析】(1)本题的定义语句中,在q前面有一个*号说明符,表示q是一个指针变量,而C 语言规定,在指针变量中只能存放存储单元(即变量)的地址。

(2)因为在定义中,q的基类型为int,所以q中只能存放int类型变量的地址。

(3)在C程序中&号是求地址符,表达式&k的值是变量k在内存中的地址,而*号的作用是求地址指向单元的值。

(4)现在来看看选项C和D。C中,是把整型变量直接赋给指针变量q,由于赋值不兼容性,这是错误的。D中,企图把k的地址赋给一个整型变量(*p在此可代表一整型变量),这也是不允许的,地址值不可能转换为一个整数。

(5)关于A,还得声明一点,地址符&只能应用于变量和以后将要介绍的数组元素,不可以用于表达式,常量或者被说明为register的常量。因此A也不正确。

(6)那答案只能是B,因为此处q中只能存放int类型的地址,而k是int型,&k又是k的地址,B当然是正确的。

48.若有以下定义:char s[20]= “programming”,*ps=s;则不能代表字符g的表达式是。A

A) ps+3 B) s[3] C) ps[3] D) ps+=3,*ps

【解析】

1、C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量。

2、指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。详见教材231页。

49.以下能正确定义数组并正确赋初值的语句是。C

A) int N=5,b[N][N]; B) int a[1][2]={{1},{3}};

C) int c[2][]= {{1,2},{3,4}}; D) int d[3][2]={{1,2},{34}};

【解析】如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省!系统会根据总个数和第二维的长度算出第一维的长度。

详见教材p138

50.假设已定义 char c[8]= "test";int i;则下面的输出函数调用中错误的是。D

A) printf("%s",c); B) for(i=0;i<8;i++) printf("%c",c[i]);

C) puts(c) D) for(i=0;i<8;i++) puts(c[i]);

【解析】首先A、B两个选项是没有问题的,puts函数一般形式为puts(字符数组),其作用是输出字符串,所以D选项是错误的。

51.下程序段:char s[20 ]="xyz", *sp=s; strcat(sp,"12345"); puts(sp);的输出结果是。A

A) xyz12345 B) 12345xyz C) 12345 D) xyz

【解析】strcat(字符数组1,字符数组2)---(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值

---字符数组1的地址。

52. 在执行int a[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是 。C

A. 3

B. 4

C. 0

D. 2 【解析】考查知识点:二维数组的初始化int a[ ][3]={{1,2},{3,4}}; 初始化的数组元素如下:?????

?043021

53.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a 的第一维的大小是 。C A. 2 B. 3 C. 4 D. 无法确定; 【解析】此数组共3列。应该是?????

???????000987654321 在C 语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有10个元素,每行3列,显然可以确定行数为4.见教材138. 54.设有定义语句:char str[][20]={"Hello","Beijing"},*p=str; 则printf("%d\n",strlen(p+20));输出结果是 。C

A )0

B ) 5

C )7

D )20

【解析】数组char str[][20]实际上是一个2行20列的字符数组。*p 正好指向H ,一个英文字母占一个字节,这样p+20就指向第二行的第一列,也就是"Beijing"的B ,所以输出结果是7。注意:虽然第一行,第二行都没有排满,但Hello 其后是0,而不是空格。 55.用数组名作为函数调用时的实参,则实际传递给形参的是 。C

A) 数组的第一个元素值 B) 数组中全部元素值 C) 数组的首地址 D) 数组的元素个数 二、读程序,写出程序执行结果 1. void main()

{ int a=5, b=8;

printf(“a=%d b=%d \n”, a,b) ; a=a+b; b=a-b; a=a-b;

printf(“a =%d b=%d\n”, a,b) ; } 运行结果:a=5 b=8

a=8,b=5

2. #include

void main() { int k=4,n=0; for( ; n

if(n%3!=0) continue; k- -; }

printf("%d,%d\n",k,n); }

运行结果:3,3

3.#include void main() {

int x=1,a=0,b=0; switch(x) {

case 0:b++; case 1:a++;

case 2:a++;b++; }

printf(“a=%d,b=%d\n”,a ,b);

}

运行结果:a=2,b=1 4.#include

void main()

int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=0;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j];

printf(“%d\n”,s);

}

运行结果:19

5.#include

void main()

{ int i,j;

for(i=0; i<3;i++)

{

for(j=0; j<=i;j++)

printf("*");

printf("\n");

}

}

运行结果:

*

**

***

6.#include

void main()

{ int i;

for (i=0; i<3; i++)

switch (i)

{ case 1: printf("%d ", i);

case 2: printf("%d ", i);

default : printf("%d ", i);

}

}

运行结果:011122

7.#include

void main()

{ int i,n[]={1,2,3,4,5};

for(i=0;i<2;i++)

{ n[i]=n[4-i]+1;

printf("%d ",n[i]);

}

for(i=0;i<5;i++)

printf("%d ",n[i]);

}

运行结果:6565345

8.#include

char fun(char *s)

{ if( *s >= 'a' && *s <= 'z' )

*s=*s-32;

return *s;

}

void main()

{ char a[20]="Welcome",*p,ch;

for(p=a;*p!='\0';p++)

{ ch=fun(p);

putchar(ch); }

}

运行结果:WELCOME 9.main()

{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i, j, s=0;

for (i=0; i<4; i++) { for (j=0; j<4; j++)

{ if (a[i][j] < 0) continue; if (a[i][j] == 0) break; s += a[i][j]; } }

printf("%d\n", s); }

运行结果:58 10.main()

{ int k=4,n=0; for( ; n

if(n%3!=0) continue; k--; }

printf("%d,%d\n",k,n); }

运行结果:3,3

三、编程题

1. 设有分段函数:

-1 (x<0)

Y= 0 (x=0)

1 (x>0)

编一程序,输入一个 x 值,输出 y 的值。

具体程序详见教材100页。 2.求下列分段函数的值。[已验证] ?

??

????-<-=->+=1

101112

X X X X X

Y #include void main() {

int x; float y;

printf(“输入x:”); scanf(“%d\n ”,&x); if(x<-1) {y=x*x;

printf(“x=%3d,y=%f\n ”,x,y); } else

if(x==-1) {y=0;

printf(“x=%3d,y=%f\n ”,x,y);

} else

{y=1.0/(1+x);/*注意:此处如果写成y=1/(1+x);则当x=1时,输出是0.000000*/ printf(“x=%d,y=%f\n ”,x,y); }

}

3.编程任意输入两个实数a 和b ,计算下面函数的值,并输出y 值。 a-b a>b y= b a

a

a=b a*b

具体程序请参照上述两题。

4.编写程序,用 +-+-≈7/15/13/114/π公式求π的近似值,直到某一项的绝对值小于10-6为止。

具体程序详见教材124页。

5.任意输入100个整数,分别统计其中的正数、负数和零的个数。 #include main() {

int j=0,k=0,l=0;//j,k,l 分别为正整数,0,负整数的个数。 int *p;

int a[100];//容纳这100个整数的数组 for(p=a;p<(a+100);p++) {

scanf(“%d ”,p); }

for(p=a;p<(a+100);p++) {

if(*p>0) j++; else

if(*p==0) k++; else l++; }

printf(“正数的个数为%d\n0的个数为%d\n 负数的个数为%d\n ”,j,k,l); }

6.计算:s=1+1/1+1/2+……+1/n ,其中n 由键盘输入。[已验证] 错误的程序:

#include main() {int n; float s;

scanf(“%f ”,&n);

for(n=1,s=1.0;n<=100;n++) s=s+1.0/n;

printf(“%f\n ”,s);

}请同学们自己体会错误程序的原因。 正确的程序:

#include main() {int n; float s,k;

scanf(“%d ”,&n); s=1.0;

for(k=1;k<=n;k++)

s=s+1.0/k;

printf(“%f\n”,s);

}

7.任意输入a[N][N]个数,找出并输出其中的最大数和最小数,以及它们的下标。(本题涉及到二维动态数组的输入)

#include

main()

{int N,i,j,row=0,colum=0,max,min;

int a[N][N];

max=a[0][0];

min=a[0][0];

for(i=0;i

for(j=0;j

scanf(“%d”,&a[i][j]);

for(i=0;i

for(j=0;j

if(a[i][j]>max)

{

max=a[i][j];

row=i;

colum=j;

}

printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);

for(i=0;i

for(j=0;j

if(a[i][j]

{

min=a[i][j];

row=i;

colum=j;

}

printf(“min=%d,row=%d,colum=%d\n”,min,row,colum);

}

8.以“#”为字符,打印一个正三角形。[已验证]

#include

main()

{

int n,i,j;

printf(“n=%d\n”);

scanf(“%d”,&n);//边长n由程序输入

for(i=0;i

{

for(j=0;j

for(j=0;j<2*i+1;j++)printf(“#”);

printf(“\n”);

}

}

运行的时候,任意输入一个数字,然后回车即可。

9.以“@”为字符,打印一个6行的倒正三角形。[已验证]

#include

main()

{

int n,i,j;

printf(“n=%d\n”);

scanf(“%d”,&n);//边长n由程序输入

for(i=0;i

{

for(j=0;j<-i;j++)printf(“”);//输出空格

for(j=0;j<(2*(n-i)-1);j++) printf(“#”);

printf(“\n”);

}

}

运行时输入6,回车即可输出倒正三角。

编程思路:

***********第0行:0个空格,11个*,即2*6-1=2*(n-i)-1

********* 第1行:1个空格, 9个*,即2*5-1=2*(n-i)-1

******* 第2行:2个空格, 7个*,即2*4-1=2*(n-i)-1

***** 第3行:3个空格, 5个*,即2*3-1=2*(n-i)-1

*** 第4行:4个空格, 3个*,即2*2-1=2*(n-i)-1

* 第5行:5个空格, 1个*,即2*1-1=2*(n-i)-1【n=6,i为相应行数】10. 打印10~1000之间满足下列条件的所有数:正序读和反序读都相同,例如:55、232等。[已验证]

#include

main()

{int n,a,b,c;

for(n=10;n<1000;n++)

{ a=n/100;

b=(n-100*a)/10;

c=n-100*a-10*b;

if(a==0&&b==c)printf("%5d",n);

if(a!=0&&a==c)printf("%5d",n);

}

}

PLC编程语言操作指令使用步骤详解

PLC编程语言/操作指令/使用步骤详解 [导读]控制系统流程图是一种较新的编程方法。它是用像控制系统流程图一样的功能图表达一个控制过程,目前国际电工协会(IEC)正在实施发展这种新式的编程标准。 一、PLC编程语言 1.梯形图编程语言 梯形图沿袭了继电器控制电路的形式,它是在电器控制系统中常用的继电器、接触器逻辑控制基础上简化了符号演变来的,形象、直观、实用。 梯形图的设计应注意以下三点: (一)梯形图按从左到右、从上到下的顺序排列。每一逻辑行起始于左母线,然后是触点的串、并联接,最后是线圈与右母线相联。 (二)梯形图中每个梯级流过的不是物理电流,而是“概念电流”,从左流向右,其两端没有电源。这个“概念电流”只是形象地描述用户程序执行中应满足线圈接通的条件。 (三)输入继电器用于接收外部输入信号,而不能由PLC内部其它继电器的触点来驱动。因此,梯形图中只出现输入继电器的触点,而不出现其线圈。输出继电器输出程序执行结果给外部输出设备,当梯形图中的输出继电器线圈得电时,就有信号输出,但不是直接驱动输出设备,而要通过输出接口的继电器、晶体管或晶闸管才能实现。输出继电器的触点可供内部编程使用。 2.语句表编程语言

指令语句表示一种与计算机汇编语言相类似的助记符编程方式,但比汇编语言易懂易学。一条指令语句是由步序、指令语和作用器件编号三部分组成。 3.控制系统流程图编程图 控制系统流程图是一种较新的编程方法。它是用像控制系统流程图一样的功能图表达一个控制过程,目前国际电工协会(IEC)正在实施发展这种新式的编程标准。 二、基本指令简介 基本指令如表所示 取指令 LD I、Q、M、SM、T、C、V、S、L 常开接点逻辑运算起始 取反指令 LDN I、Q、M、SM、T、C、V、S、L 常闭接点逻辑运算起始 线圈驱动指令

c语言机试题

(1)/*程序修改题目要求: 下列给定程序中,fun函数的功能是:求a=xx…xx-…-xx-xx-x (此处xx…xx表示n个x,x和n的值在1至9之间)。例如:x=3,a=6,则以上表达式为: a=333333-33333-3333-333-33-3 其值是296298。x和n是fun函数的参数,表达式的值作为函数值 传回main函数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构。每处3分,共9分*/ #include #include long fun(int x,int n) { int j; /*********found*********/ long a=0,t=1; /*********found*********/ for(j=0;j<=n;j++) t=t*10+x; a=t; for(j=1;j main() { int i,count=0,a[11]={0,10,2,8,22,16,4,10,14, 20}; /******found*****/ while(__1__) { for(i=1;i<=10;i++) a[i-1]=a[i-1]/2+a[i]/2; a[10]=a[10]/2+a[0]; for(i=1;i<=10;i++) /******found*****/ if(__2__) a[i]++; for(i=1;i<10;i++) /******found*****/ if(a[i]!=a[i+1]) __3_; if(i==10) break; else { a[0]=0; count++; } } printf("count=%d number=%d\n",count,a[1]); } 答案: 1. 2. a[i]%2==1 3. break (3)/*编程题目要求: 请输入星期几的第一个字母来判断一下是星期 几, 如果第一个字母一样,则继续判断第二个字母。 注意:部分程序段已给出,请勿改动 仅在两个found中填入你编写的若干语句。本题14分*/ #include void main() { /*******found******/ 答案:char ch1,ch2; printf("请输入第一个字母:"); ch1 = getchar(); getchar(); // 吸收换行符 if(ch1 == 'S') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) { case 'a': printf("星期 六\n");break; case 'u': printf("星期 日\n");break; } } else if(ch1 == 'T') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) 1

翻译中的不可译因素及处理

翻译中的不可译因素及处理 翻译的不可译性在理论层面有其基础,在实践层面有其不可译因素。从一种民族语言文化视野对另以中国民族语言文化的认识在某个时 间段是有限的,这一客观条件决定了翻译具有不可译性。英语和汉语属于两个不同的语言符号,有其自成体系的语言单位,相互之间存在着一定的差别,如汉语是表意文字,而英语是表音文字。在翻译的过程中,会遇到语言和文化引起的不可译因素。 语言上的不可译因素主要表现在语音、词汇、语法和文体风格等不同的层次上。从语音层次上讲,汉语中的汉字具有单音节这一特征,所以能够创造出五言或七言这类对仗工整的诗。汉语还是多声调语言,因此对古诗有平仄韵的要求。相比之下,英语把单音节、双音节、多音节融为一体,语调只有升降之分。所以在汉英或英汉中,要想再现原文那种节奏和韵律是既不容易的。从词汇上看,由于人类都生活在地球上,不同社会文化之间必然有相似之处,因此,不同语言之间必然存在词义相符的关系。但是不同民族在经验上的差异经思维反映到语言上,必然会造成词汇的差异或词汇的空缺。对于词义空缺这个不可译的因素,我们可以在翻译的过程中采取音译、意译、直译和加注法。从语法层面来说,中国人重形象思维,汉语没有严格的语法规则,外国人重逻辑思维,英语有严格的语法。在翻译的时候,特别是汉英翻译时,应该吃透原文,认真理清楚其中的逻辑,用相应的连词或介词等表达。文体风格是作者写作的独特特色,虽不会把散文诗歌混淆,但是有些文体特征,也是有难度的。

每个人生活在不同的文化中,有自身的生活方式和风俗习惯。另外,不同的宗教信仰、价值观念都会影响作者、译者和读者。除此之外,社会意识形态和自身心理活动都会影响翻译。这些文化上的差异使得翻译更加不容易了。所以面对这些不可译因素,译者可以得意而忘形,采取不同的翻译策略(音译法、直译法、替代法、解释法、注释法等)。翻译虽然存在不可译的因素,但是翻译是可行的,只是翻译的好坏会随着社会的发展,译者自身素质的提高而不断发展。所以不应该因为存在不可译因素就否认翻译的可能性,也不应该肯定翻译的可译性就轻视翻译的复杂性。

SQL语言操作示例练习-1范文

SQL语言操作示例练习 设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩)。 一、数据库创建操作 【练习之1-1】:使用SQL命令创建一个包含一个数据文件和一个事务日志文件的数据库。库文件名和数据文件逻辑名均为教学管理数据库,物理文件名为教学管理数据库.mdf,存储在D盘根目录中,该数据库主数据文件是教学管理数据库,初始大小8MB,最大尺寸80MB,以10%的速度增长。事务日志文件逻辑名为Book_log,物理文件名为教学管理数据库_log.ldf,初始大小1MB,最大尺寸20MB,以20%的速度增长。操作示例如下: CREATE DATABASE 教学管理数据库 ON PRIMARY (NAME= 教学管理数据库, FILENAME='D:\ 教学管理数据库.mdf', SIZE=8MB, MAXSIZE=80MB, FILEGROWTH=10%) LOG ON (NAME=教学管理数据库_log, FILENAME='D:\ 教学管理数据库_log.ldf', SIZE=1MB, MAXSIZE=20MB, FILEGROWTH=20%) 【练习之1-2】修改数据库 alter database 教学管理数据库 add file (name=教学管理数据库_data2, filename='d: \ 教学管理数据库2.mdf', size=10mb,

maxsize=20mb, filegrowth=20%) 【练习之1-3】删除数据库 use master drop database\ 教学管理数据库 go 二、数据表的创建操作 create table 【练习之2-1】:使用SQL命令,在“教学管理数据库”下面创建三个数据表。 “学生”表结构 字段名及说明数据类型宽度说明 学号字符型7 主键 姓名字符型8 非空 性别字符型 2 年龄整形 班级字符型10 专业字符型10 “课程”表结构 字段名及说明数据类型宽度说明 课程号字符型10 主键 课程名字符型20 非空 学时数整形 “选课”表结构 字段名及说明数据类型宽度说明 学号字符型7 主键,引用Student的外键 课程号字符型10 主键,引用Course的外键 成绩整形 “学生”表 use 教学管理数据库 Create table 学生 ( 学号char(7) not null, 姓名char(8) not null, 性别char(2), 年龄int, 班级char(10), 专业char(10) PRIMARY KEY(学号) ) “课程”表

C语言上机试题

1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能就是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2:第2题请编写函数fun,它的功能就是:求出1到100之内能北7或者11整除,但不能同时北7与11整除的所有证书,并将她们放在a所指的数组中,通过n返回这些数的个数。 3:第3题请编写函数void fun(int x,int pp[],int *n),它的功能就是:求出能整除x且不就是偶 数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"至U "z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能就是:将大于整数m且 紧靠m的k各素数存入xx所指的数组中。 6:第6题请编写一个函数void fun(char a[],char[],int n),其功能就是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7:第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下 标并存放在k所指的储存单元中。 8:第8题编写函数fun,功能就是:根据以下攻势计算s,计算结果作为函数值返回『通过形参 传入。S=1 + 1/(1+2)+1/(1+2+3)+ ??…、+1/(1+2+3+4+ ??…+n) 9:第9题编写一个函数fun,它的功能就是:根据以下公式求p的值,结果由函数值带回。M 与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10:第10题编写函数fun,它的功能就是:利用以下的简单迭代方法求方程cos(x)-x=0的一个 实根。 迭代步骤如下:(1)取x1初值为0、0;⑵x0=x1,把x1的值赋各x0; (3) x1=cos(x0),求出一个新的x1; (4) 若x0-x1的绝对值小于0、000001,则执行步骤(5),否则执行步骤(2); (5) 所求x1就就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0、739085。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

口腔护理操作语言沟通及流程.

口腔护理操作语言沟通及流程 仪表准备:各位评委老师,大家好,我是来自甲儿外的***,现在我要考核的项目是口腔护理,其目地是: 1、保持口腔清洁、湿润,使病员舒适,预防口腔感染等并发症。 2、防止口臭、口垢,促进食欲,保持口腔正常功能。 3、观察口腔粘膜和舌苔的变化及特殊的口腔气味,提供病情的动态信息。 下面操作开始 环境和物品的准备:环境宽敞整洁,物品以备齐。 核对医嘱:(抄写,治疗单下面请**与我一起核对医嘱,50床李华,住院号,123456,遵医嘱予以0.9%的生理盐水口腔护理,经两人核对医嘱无误并签名。按七步洗手法洗手。 评估患者:(先检查评估的用物,手电筒光线充足,弯盘、一次性压舌板,敲门进病房。“你好,你是3床李华吗?”“我是你的责任护士**,今天您的治疗和护理就由我来完成,请先让我核对一下你的腕带”(携治疗单至核对床号、姓名、住院号。“李华,您好,我现在遵医嘱为你做口腔护理。口腔护理就像你平时刷牙一样,请不要紧张,这样可以保持你的口腔清洁。在做护理前,请先让我检查一下你的口腔情况,请你配合我一下好吗?”(拿手电筒和压舌板观察口腔“现在请张开你的嘴好吗?”(用手电筒上下左右观察,“口腔黏膜完整无出血溃疡,口角有点干裂,无活动义齿,口腔无异味。”(倒热水于杯中,内有吸管。“好的,你先休息,我去准备用物。” 回治疗室:用500mg/L有效氯溶液擦洗治疗盘,按七步洗手法洗手,戴口罩。 根据医嘱准备用物:口腔护理包:包布清洁、无潮湿、无破损、消毒条码变色、在有效期内,0.9%生理盐水:在有效期内、液体澄清透亮、无絮状物产生,一次性压舌板:清洁干燥、无破损、在有效期内,手电筒:光线充足,棉签:在有效期内,石蜡油:澄清

翻译中不可译性的文化阐释

翻译中不可译性的文化阐释 翻译中不可译性的文化阐释 时间:2012-03-13 15:51来源:论文网点击:次[收藏到QQ书签] [摘要] 由于语言和文化的不同和差异,我们必须承认英译汉和汉译英之间确实存在不可译现象。但是我们不 能忽略语言之间的通性和文化之间的共性。我们有必要知道不可译和可译是共同存在的。我们可以用很多的补偿 的方法来使不可译转换成可译(在本文不做过多的说明)。随着经济的发展和社会的进步各个国家之间的障碍就越 来越小,这样整个世界变得越来越小,那么语言和文化的交流也会越来越密切,这样语言的障碍就会变得越来越小。 [关键词] 等值转换理论;翻译;不可译性 翻译的不可译性是,从本质来看,实际就是一种民族语言文化视野对另一种民族语言文化的认识能力的限定问题。诚然认识能力是相对的,变化的。不可译性随着民族语言文化视野的拓展,又将变成可译的。一、卡特福德的等值转换理论翻译的等值研究问题是20 世纪语言学派研究的中心问题。那么等值的定义是“在各自的语言中,有两个相同或者几乎相同的语篇功能的翻译单位,通过译者的翻译活动所形成的统一关系”。[1]卡特福德认为,翻译就等值来看,是将一种语言的文本转化成等值的另一种语言的文本材料。“翻译实践的中心问题在于寻去等值成分,翻译理论的中心任务在于界定等值的本质和条件”(defining the nature and condition oftranslation equivalence)[2]也就是说,确立语言之间的等值关系是翻译的本质和基础。这种等值应该建立在动态,而非静态的双语转换机制上。实际上,翻译也就是在译语语境中,寻找最大可能与原语语境重叠的等值成分。但有时会出现等值为零的对应,如The Sun Also Rise. 译成汉语是《太阳照常升起》,英语定冠词的汉语对应为零。“形式对应”是指任何译语范畴如单位、类别、结构成分等等,在译语中尽可能占有与原语范畴在原语中同样的地位。所谓范畴就是语法中的词性以及数、格、体、人称、时态、语态、情态等的各种变化。卡特福德还提出了语言的不可译性和文化不可译性观点。语言不可译性来自两个方面一是原语中两个或两个以上的语法单位或单词,共用了一个语言形式;或者目的语种没有原语中能替换的词汇和语法,只有调整词序和句子结构作为补偿。二是原语单位一词多义,而译入语没有相应的一词多义。文化不可译性产生的原因是,原语文本功能相关的语境特征在译语文化中却不存在。[3]等值翻译的两个限度是:其一,媒介之间的翻译是不可能的,及不能把一个文本的口头翻译成书面形式,反之亦然。其二,无论是 媒介层次(音位学或字符学)之间,还是语法和词汇层之间的翻译都是不可能的,语音与语法,词汇和字形是不能互换的。他提出的等值意义在于,从某

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

翻译的不可译性和可译性

翻译的不可译性和可译性 赵云龙刘慧玲 翻译中遇到不可译性的问题是常有的事。翻译是搞语言文字的转换工作,所谓可译性和不可译性也完全是针对语言文字而官的。世界各民族语言文字的共同特征形成了翻译中的可译性,而各区城民族因地理条件和文明程度等方面的迥异形成了讲言文字方面的隔腆性、冷僻性和不可理解性,也造成了翻译中的不可译性。本文从语言文化的角度谈谈翻译中的不可译性和可译性问题。 一、不可译性 在翻译过程中,原文的某些语言现象在译文中无法表达,属不可译性。不可译是语际转换中永远存在的一种现象.原因为任何语言都带有很大的实在性和局限性,它从来也没有考虑到如何翻译其他文化的问题。应该说翻译中语言本身出现不可译现象是完全正常的和客观的。 不可译性大致可分为两种。 第一种是;译入语言缺乏对等的表达形式。一种语言用某一形式表达了语义场内的某一意义,同时表达了该形式的某些特征,而另一种语言又恰好缺乏相应的形式既能表达出该意义又能表达出所要求的该形式的某些特征,不可译的问题就必然会出现.这是不可译性产生的语言学原因。翻译中的绝对不可译现象一般都是与语言文字形式相关的一些现象。如下面的两句: 1) A: What makes a road broad? B: The letter B. 2) A: Why is the letter D like a bad boy? B: Because it makes ma mad. 句中“road,broad,ma,mad”不仅起一般词形的形式作用,而且是作为内容出现的.句中“road”,“broad”和“B”都无法译成汉语.如当英语语言形式本身充当内容时.不可译现象就可能出现.此外,还有与语言父字的形式特点有关的不可译现象。这类现象大多是利用语言文字的形式特点达到某种修辞效果。属于这类现象的有韵(尤其是头韵)、文字游戏(双关语)和某些实用意义等。汉语中那些依赖语言音形义结构的修辞手法(如双关、拆词、仿词等)几乎都是不可译的。如:好容易到年末,有一日,母亲告诉我,闰土来了,我便飞跑着去看.(鲁迅《故乡》) At last the end of the year came,and one day mother told me that Runtu had come,and I flew to see him.(杨宪益、戴乃迭合译) 句中“好容易”实指“好不容易”,表示难言的渴望之情,这一修辞有习用性.是不可译的。 第二种是,译文语言缺乏应有的表达形式.就是说,原文表达的思想对译文语言来说完全是新的。一个民族运用了新的词汇表达新产生的思想,而另一个民族由于地理的或社会的原因,没有产生这种新概念、新思想,当他们需要翻译这个新的词汇时.必然会遇到不可译的问题。比如,英语的“illoetionaryaet”是个新词,既有“言外之意”又有“言语目的”的意思,还带“非言语活动”的含义。汉语中一时还没有相应的词来表达它。文化差异导致的非对应也是在语际翻译上导致难译性和不可译性的主要原因。原语中的指称对象在译语中不存在,不常见,不被注意。如“松”和“鹤”在汉语里可比喻长寿。相比之下,英语中就没有相应的隐喻。对英语接受者来说,“松”和“鹤”并不能引起与汉语接受者相同的联想.又如美国但语中称学者(如大学教授)为“egghead”,这在汉语中也找不到相应的形式和涵义。同样,中国的知识分子曾一度被污蔑为“奥老九”,如果脱离了当时的社会和文化背景,是很难理解这一称呼的含义的.这几个例子说明,语言之间存在着一些形式和内容都颇为独特,无法相互取代的符号,这使语言和文化间,出现了一些难以逾越的沟壑,严重障碍了彼此的交流.这是产生不可译的历史文化原因。 总的说来,不可译的东西并不等于没有确译的词句。众所周知,翻译就是把某一种语言所表达的思想准确而完整地用另一种语言再现出来。那么,在翻译中不可准确地再现,就是不可译性。这就是说,确译与误译在于有没有准确、完整的再现,而不可译则在于可不可能达到准确、完整。 二、可译性 在各种语言中,共性是广泛存在的。语言之间的共性构成了可译性的基础。 l、可译性的理论依据 语言是思维的各种不同的工具和外壳,但是思维的基础是现实,思维是统一的,思维的规律是一样的,

汇编语言上机操作

汇编语言上机操作 一、建立子文件夹 如:D:\hb\masm 二、复制相关文件 把masm.exe、link.exe、ml.exe三个文件复制到上述文件夹中。 三、进入DOS方式 开始/运行/cmd 当前提示符可能是: C:\documents and settings\administrator> 四、常用DOS操作命令 1、改变当前盘 输入d: 并回车,屏幕显示: D:\> 2、改变当前目录 1)进入下一级目录 D:\>cd hb 回车后,屏幕显示: D:\hb>cd masm 回车后,屏幕显示: E:\hb\masm> 问题:可以一次进入下面二级或多级目录吗? 2)返回上一级目录 D:\hb\masm>cd.. 回车后,屏幕显示: D:\hb\>cd.. 回车后,屏幕显示: D:\> 问题:可以直接返回根目录吗? D:\hb\masm>cd\ 回车后,屏幕显示: D:\> 3、显示当前目录容 D:\>dir /p 分页显示当前目录容 问题:如何显示d:\text中的容? D:\>dir d:\text↙ 4、DOS方式下如何运行程序? DOS方式下的可执行文件(即程序文件)扩展名为.exe或.,运行时只需要在系统提示符下输入文件主名即可。例如,有一个文件名为test.exe,存入在D:\hb\masm 中,运行时,可以这样做: D:\hb\masm>test↙ 五、汇编语言上机过程 1、编辑源程序 运行:edit 回车后,进入EDIT环境,输入完后存盘(file/save)并退出(file/exit)。

2、汇编 D:\hb\masm>masm add5.asm↙ 生成目标程序文件add5.obj。(如果有语法错误,会提示错误所在行号和错误类型)3、连接 D:\hb\masm>link add5↙ 生成可执行文件add5.exe。 六、DEBUG程序调用及汇编语言程序调试方法 调试程序DEBUG是DOS支持的又一种系统软件,主要用于汇编语言程序的调试。汇编和连接过程只能查出源程序的语法错误,不能查出功能上的错误和程序不完善的地方。DEBUG程序为用户提供多种命令,大致有:显示和修改寄存器和存贮单元的容;执行程序中任意一段或一条指令;汇编单条源语句和反汇编机器码指令;查找字符代码;端口的输入和输出;文件装入存和写入磁盘等。用户利用这些命令可以查出任何程序功能上的错误。下面说明DEBUG程序的启动方法和主要命令意义。 (一)DEBUG程序的启动 DEBUG程序有两种启动方法。DEBUG程序是在DOS盘上的一个独立的可执行程序(扩展名为.COM),所以,DEBUG程序的第一种启动方法就是把它看作和一般的可执行程序一样,只要打入DEBUG和回车键,就可以把它装入存。但是这样启动只把DEBUG 程序本身装入存并进入等待DEBUG命令状态,还没有把要调试的程序装入存。第二种启动DEBUG的程序的方法是一次相继装入DEBUG程序和要调试的程序。打入的命令格式如下: DEBUG[d:][path]filename[.ext][parml][parm2] 其中的Filename是要调试程序的文件名,可选项[d:][path]和[.ext]分别是要调试程序的所在盘符、路径和扩展名。可选项[parml]和[parm2]是DEBUG程序为要调试程序准备的参数(一般不用)。 例进入DEBUG程序并装入要调试程序。其操作如下: D:\hb\masm>DEBUG add5.exe (进入DEBUG,并装配add5.exe) 此时屏幕上出现一个短线,这表示可以使用DEBUG命令了。 如果启动DEBUG时没有指定要调试的文件名,则需要用N命令指定要调试的文件,再用L命令将其装入存。操作如下: D:\hb\masm>debug↙ - n add5.exe↙ - l↙ (二)DEBUG命令 在说明每个命令之前,先说明一些共同信息: ■DEBUG命令都是以一个英文字母开头,后面跟一个或多个参数。 ■命令字母和参数可用大写或小写或混合形式。 ■命令字母和参数中,相邻两个十六进制之间必须用逗号或空格分开.其它各部分之间有无空格或逗号都可以。 ■执行任何命令期间都可用Ctrl+Break键方法结束命令的执行。

oracle数据操作和控制语言详解

Oracle数据操作和控制语言详解 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如创建、修改或者删除数据库;DCL用于定义数据库用户的权限;在这篇文章中我将详细讲述这两种语言在Oracle 中的使用方法。 DML语言 DML是SQL的一个子集,主要用于修改数据,下表列出了ORACLE支持的DML语句。 语句用途 INSERT 向表中添加行 UPDATE 更新存储在表中的数据 DELETE 删除行 SELECT FOR UPDATE 禁止其他用户访问DML语句正在处理的行。 LOCK TABLE 禁止其他用户在表中使用DML语句 插入数据 INSERT语句常常用于向表中插入行,行中可以有特殊数据字段,或者可以用子查询从已存在的数据中建立新行。 列目录是可选的,缺省的列的目录是所有的列名,包括comlumn_id,comlumn_id可以在数据字典视图 ALL_TAB_COLUMNS,USER_TAB_COLUMNS,或者DBA_TAB_COLUMNS中找到。 插入行的数据的数量和数据类型必须和列的数量和数据类型相匹配。不符合列定义的数据类型将对插入值实行隐式数据转换。NULL字符串将一个NULL值插入适当的列中。关键字NULL常常用于表示将某列定义为NULL值。 下面的两个例子是等价的。 INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel',NULL,'94501'); 或 INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel',,'94501'); 更新数据 UPDATE命令用于修改表中的数据。 UPDATE order_rollup SET(qty,price)=(SELECT SUM(qty),SUM(price) FROM order_lines WHERE customer_id='KOHL' WHERE cust_id='KOHL' AND order_period=TO_DATE('01-Oct-2000') 删除数据 DELETE语句用来从表中删除一行或多行数据,该命令包含两个语句: 1、关键字DELETE FROM后跟准备从中删除数据的表名。 2、WHERE后跟删除条件

语言和文化角度的不可译性

语言和文化角度的不可译性 英汉互译中,无法将源语翻译成目的语而造成一定程度上意义的损失,即成为“不可译性”。它包括“语言上的不可译”和“文化上的不可译”。 标签:语音;文化;不可译 一、语言层面的不可译性 语言上的不可译性体现在字形和语音两大方面。 从语音角度看:汉语是单音节和多声调语言;而英语却是集单音节、双音节和多音节为一体,只有语调的升降之分。中国古诗中大量的双声叠韵词,使其朗朗上口,而译文却无法达到这种效果。 汉字是表意文字,而英文为表音文字,故两者的文字特征无法互译。如汉语和英语的字谜,基本上无法将其转译;还有中英文中回文的修辞,如:“llqadam,I am Adam.”——“Sir,I am Iris”和“上海自来水来自海上”,这形式给翻译带来了巨大的难度。 笔者认为,解决语音层面不可译性对策有以下几种: (一)增益法 增益法即增加原文中原来并没有的部分,使得译文更加贴合译人语文化,且不会对原文意思造成损害的方法。比如“The hostcarved,poured,served,cut hread,talked,laughed; proposed health.”这句中一系列词都以[d]发音结尾,朗朗上口,将其增译为“主人割肉呀,斟酒呀,布菜呀,切面包呀,敬酒呀,又说又笑,忙个不停。”语气助词“呀”使泽文不仅取得了与原文一样的效果,而且读起来妙趣横生。 (二)直译法 此处的直译法虽难度大,还有运气的成分,但仍然具有可行性。马克吐温曾写“It was a splendid population-for all the sloic,sleepy,sluggish—brained sloths stayed at home……”句中五个“S”一气呵成,这种原语中形、音、义的“三结合”,在译成目的语后是法完整体现的。尽管如此,译者马红军给出了翻译——“(出来的)这帮人个个出类拔萃——因为凡是呆板、呆滞、呆头呆脑的呆子都呆在了家里。”保持了原文形式,而且忠实。 (三)对应翻译法 此处的对应翻译法即是在目的语中找到和源语所指并不一定对应,但是能在

语言及听功能训练技术操作规范

语言及听功能训练技术操作规范 1正常儿童的语言学习是从小就开始的,其学习语言的过程是非常复杂的。学会和掌握正常的语言及会话,必须具备:(1)听清声信号的听敏度。 (2)听定向定位的能力。 (3)选择性专注的能力。 (4)辨别声音信号在强度、频率、时长等方面变化的能力。(5)短期记忆和整理声信息次序的能力。 (6)能够将声信息分割、组合和综合概括的能力。 (7)在听的过程中能够集中注意力。神经科学的发展,证实了学习语言的关键时期是在3岁以前。一般情况下,正常儿童在3岁时已经能够应用简单的语言,语言意识的建立也是从小开始的。 2由外周听觉系统问题所致的听力损失或中枢神经系统发育不全、功能受损,使声信息不能到达中枢听觉系统,或使听到的信息失真或不完整,均可表现为听不见或听不懂,导

致“听力(hear)言语(speech)语言(language)”功能障碍。听力损失越早,听力障碍越严重,学会语言的难度也就越大。根据听力损失的程度,将听觉障碍分为:(1)“失聪”:听力损失轻、中度,可通过听觉学习口语。(2)“聋”:主要依靠视觉学习、掌握交流技能,包括手语(sign language)和读语(speech reading)。因此,对各种程度的听力障碍儿童,必须进行早期干预,帮助与他们建立语言意识,促进听力语言康复。 “听力康复”是对有听觉障碍的患儿,通过特殊的学习和训练,恢复正常的语言交流能力(不仅局限于聋人间的交流,还能够参加正常人群的交流),使聋儿的言语语言功能的发育不受或少受听觉障碍带来的影响。高科技的应用,使耳聋病人的康复成为可能。根据听力障碍的程度和类型,决定尽早佩戴助听器或施行人工耳蜗植入术。随着人工耳蜗装置的不断改进和更新换代,人工耳蜗植入后的效果得到充分的肯定。目前认为,患有重度聋以上或开放言语识别率<30%者均应考虑植入人工耳蜗。通过有效地使用助听设备,使患

可译与不可译、影响翻译因素

影响翻译的因素:社会和文化因素,意识形态和政治因素,翻译动机与翻译观念、语言关系与翻译能力 社会因素对翻译活动的影响:社会因素对翻译的选择、翻译的接受和传播起着直接的影响,这在多方面都有所体现: (1)社会的发展呼唤翻译。人类社会始终处于不断发展的状态中,而人类社会越发展,越体现出一种开放与交流的精神。在人类社会走出封闭、走向交流和相互理解共同发展的过程中,翻译始终起着重要的作用。翻译使人类社会迈出相互沟通理解的第一步,无论是东方还是西方,一部翻译史,就是一部生动的人类社会的交流与发展史。 (2)不同的社会发展阶段需要不同的翻译。社会的风尚对译者选择原文本及处理原文本也起着重要作用。处于不同的社会状况下,即便翻译同一作品,译者对文本的处理方式也会有着相当大的差别。 (3)社会的开放程度影响翻译。解放以来,中国的翻译事业与社会的发展几乎是同步的。随着我国的改革开放的深入和全球化进程的加快,翻译作为跨文化交流的信息传播手段,正发挥着越来越重要的作用。 (4)社会的价值观影响翻译。在不同的社会阶段有不同的价值观,而不同的价值观有可能给翻译带来消极或积极的影响。以追名逐利为特征的倾斜的价值观是造成当今译坛之风不正的主要原因之一。 文化语境对翻译活动的影响:就本质而言,翻译文本本身就是原文本在新的文化语境中的生命的延续与拓展。翻译作为一种跨文化的交流活动,无不在一定的文化语境中进行。 (1)一个国家所处的文化空间或一个时代的文化环境影响翻译。历史研究表明,文化与翻译之间具有一种互动性的关系。一方面,翻译影响着文化(尤其是译入语文化);另一方面,文化制约着翻译。 (2)文化立场影响翻译。一个译者,面对不同的文化、不同的作品,具有不同的态度和不同的文化立场。而态度与立场不同,所采取的翻译方法必然有别。 (3)文化心理影响翻译。每一个民族都有其独特的民族心理特征,这些特征都是在特定的文化环境中形成的,而文化心理对翻译的理解与表达有着直接的影响。 意识形态政治因素 翻译,特别是文学翻译,作为一种再创造的行为,在它的背后,作为思想和解释系统的意识形态始终在起作用。意识形态,特别是主流意识形态干预翻译的一个最典型的例证就是翻译中的删改。在历史的不同阶段,不同国家,虽然传统的翻译观一般都要求译者在翻译中应尽可能忠实于原作,完整的传达原作的内容,但是在翻译过程中,译者可能在主流意识形态的直接干预下,将原文中与目的与国家的主流意识形态有可能发生冲突的文字删去,包括出版社、编辑甚至出版管理部门也有可能对译文加以删改。意识形态和政治因素往往紧密地结合在一起,尤其是主流意识形态,他常常渗透或主导有关权利机构,采取政治行为对翻译加以干涉。比如50-70年代,中苏关系良好,中国在对外国文艺的政策上与苏联的政策是一致的,所以,我国出版界欢迎苏联作品,而对欧美的现在作品拒之门外。可见,在选择所译文本时,主流意识形态和政治因素起的重要作用。 翻译动机与翻译观念 译者的翻译动机和翻译观念是翻译的主题因素,对翻译活动起着决定性的影响作用。 20 世纪80 年代,德国的两位翻译理论家弗美尔和赖斯创立了功能派翻译理论,他们提出的目的论,强调以目的为总则,把翻译放在行为理论和跨文化交际的框架中进行考察,为翻译理论界开辟了一条崭新的道路。目的论强调的连贯原则,即语篇内部的连贯,就是指译作所体现的意愿与目标读者社会文化环境中的意愿具有内在的一致性,具备这样条件的翻译,就可以被视作成功的翻译。对具有历史使命感的翻译家来说,只有明确了“为什么翻译”这

C语言操作

一、选择题 1、对于字符串“08\\10\\04\n”; 以下说法正确的是:字符串在内存中占据10个字节 2、有以下程序 #include void main() { int i=0,s=0; do{ if(i%2){i++; continue;} i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出的结果是__16____。 4、若以下选项中的变量已正确定义,则正确的赋值语句是_x3=0x12_____。 5、有如下程序段 int a=14,b=15,x; char c='A'; x=(a && b) && (c<'B'); 执行该程序段后,x的值为___1___。

8、有以下程序段 int k=0; w hile(k=1)k++; while循环执行的次数是_无限次_____。 14、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c的大写字母转换为对应小写字母的语句是c=('A'+c)%26- 'a' 16、以下选项中,当x为大于1的奇数时,值为0的表达式是x%2= =0 25. 有以下程序 #include void main() {int a=15,b=21,m=0; switch(a%3) {case 0:m++;break; case 1:m++; switch(b%2) {default:m++; case 0:m++;break; } } printf("%d\n",m); }程序运行后的输出结果是___1。

26. #include void main() { int a=0, b=0; a=10; /*给a赋值*/ b=20; /*给b赋值*/ printf("a+b=%d\n",a+b); /*输出计算结果*/ } 程序运行后的输出结果是a+b=30 27. 有以下程序 #include void main() { int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf("%d %d %3.1f %3.1f\n",a,c,f,x); } 程序运行后的输出结果是_1 65 1.5 6.5_____。 31. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_x=(int)(x*100+0.5)/100.0;_____。 33. 设有定义:int a; float b; 执行scanf("%2d%f",&a,&b); 语句

相关主题
文本预览
相关文档 最新文档