铜仁市论坛

首页 » 分类 » 问答 » 职称考试临床医学工程技术考试之C语言
TUhjnbcbe - 2021/3/22 2:36:00
北京皮肤病主治医院         http://pf.39.net/bdfyy/bdfjc/180416/6171978.html

二、C语言运算符与关键词

(一)运算符

学好C语言就必须掌握以下运算符。

算术运算符:+-*/%++--

关系运算符:====!=

逻辑运算符:!

位运算符:~

赋值运算符:=(+=-=*=/=%=)

条件运算符:?:

逗号运算符:,

指针运算符:*

求字节运算符:sizeof

强制类型转换运算符:(类型标识符)

分量运算符:-

下标运算符:[]

其他:函数调用运算符()

(二)关键词

基本数据类型

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)

char:字符型类型数据,属于整型数据的一种。(KR时期引入)

int:整型数据,表示范围通常为编译器指定的内存字节长。(KR时期引入)

float:单精度浮点型数据,属于浮点数据的一种。(KR时期引入)

double:双精度浮点型数据,属于浮点数据的一种。(KR时期引入)

_Bool:布尔型(C99标准新增)

_Complex:复数的基本类型(C99标准新增)

_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)

_Generic:提供重载的接口入口(C11标准新增)

类型修饰关键字

short:修饰int,短整型数据,可省略被修饰的int。(KR时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(KR时期引入)

longlong:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(KR时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

复杂类型关键字:

struct:结构体声明。(KR时期引入)

union:联合体声明。(KR时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(KR时期引入)

sizeof:得到特定类型或特定类型变量的大小。(KR时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

存储级别关键字:

auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。(KR时期引入)。

static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。(KR时期引入)。

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。(KR时期引入)。

extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。(KR时期引入)

const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。(C89标准新增)

volatile:指定变量的值有可能会被系统或其他线程改变,强制编译器每次从内存中取得该变量的值,阻止编译器把该变量优化成寄存器变量。(C89标准新增)

流程控制关键字:

跳转结构:

return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。(KR时期引入)

continue:结束当前循环,开始下一轮循环。(KR时期引入)

break:跳出当前循环或switch结构。(KR时期引入)

goto:无条件跳转语句。(KR时期引入)

分支结构:

if:条件语句,后面不需要放分号。(KR时期引入)

else:条件语句否定分支(与if连用)。(KR时期引入)

switch:开关语句(多重分支语句)。(KR时期引入)

case:开关语句中的分支标记,与switch连用。(KR时期引入)

default:开关语句中的“其他”分支,可选。(KR时期引入)

编译:

#define预编译宏

#if表达式#elseif表达式#else#endif条件编译

#ifdef宏#else#endif条件编译

#ifndef宏#else#endif条件编译与条件编译。

(二)C语言实例

例题1:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60~89分之间的用B表示,60分以下的用C表示。

解答:程序分析:(ab)?a:b这是条件运算符的基本例子。

程序源代码:

#include“stdio.h”

#include“conio.h”

main()

{

intscore;chargrade;printf(“pleaseinputascore\n”);

scanf(“%d”,score);

grade=score=90?’A’:

(score=60?’B’:’C’);

printf(“%dbelongsto%c”,score,grade);

getch();

}

例题2.输入三个整数x,y,z,请把这三个数由小到大输出。

解答:程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

程序源代码:

#include“stdio.h”

#include“conio.h”

main()

{

intx,y,z,t;

scanf(“%d%d%d”,x,y,z);

if(x>y)

{t=x;x=y;y=t;}/*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf(“smalltobig:%d%d%d\n”,x,y,z);

getch();

}

(三)C语言练习

1.#include’stdio.h’main(){’int,y;

scanf(%d,x);

if(x0)y=-1;

elseif(x==0)y=0;

elsey=1;

printf(’x=%d,y=%d\n’,x,y);

}以上C语言程序,当输入4时,输出结果为()

A.X=4,y=1

B.X=1,y=1

C.X=0,y=0

D.X=4,y=-1

E.X=0,y=1

参考答案:A

2.#includestdio.hmain(){intn=4,i:longfac;for(fac=1,i=1;i=n;i++)fac=fac*i;printf(’fac=%d\n’,fac);}以上C语言程序的输出结果为()

A.fac=4

B.fac=24

C.fac=36

D.fac=48

E.fac=

参考答案:B

3.main(){inti,j;for(i=1,j=1;i<=3;i++,j++)printf(’s=%d’,j*i);}以上C语言程序的输出结果是()

A.s=1s=4s=9

B.s=1s=2s=3

C.s=3s=6s=9

D.s=2s=4s=8

E.s=2s=3s=4

参考答案:略

4.#includevoidmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(〝%d,%d,%d,%d\n",i,j,m,n);}以上C语言程序的输出结果是()

A.8,10,9,11

B.9,11,9,11

C.9,11,10,9

D.8,11,9,11

E.9,11,9,10

参考答案:略

其他更多考试指点请

1
查看完整版本: 职称考试临床医学工程技术考试之C语言