文档视界 最新最全的文档下载
当前位置:文档视界 › 西安交大C语言课件第2章

西安交大C语言课件第2章

能源与动力工程学院

C语言基本知识

陈斌

目录

第一节概述

第二节基本知识第三节流程控制第四节指针与数组第五节函数

Hello, world!

例10-1 Hello, world!

#include

/*预处理语句引入系统头文件,可以使用系统提供的许多函数*/

int main(void)

//每个程序都必须而且只能包含一个main函数

{

printf("hello, world!\n");

return 0;

}

C程序的书写

每条语句以末尾的分号“;”表示结束;

每行通常写一条语句,也可以写多条语句。如果语句太长,可以拆开换行继续书写,一般不用加续行标志。

注释语句以“/*”开头,以“*/”结尾,如果注释较长,可以写作多行,包含在“/*”与“*/”之间

可以用花括号{}把多个单条语句括起来,组成一个复合语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

字符集

字符集:

52个字母(C 语言区分大小写) 10个阿拉伯数字 29个特殊字符

?! + –* / = % ' " # { } [ ] < > ( ) . , ; : ? ~ ^ \| _ & 4个格式符

?空格、水平制表符(HT )、垂直制表符(VT )、换页符(FF )

其他字符只能放在注释语句、字符型常量、字符串型常量中

数据类型

数据类型:

基本类型:

?整型、字符、浮点(单精度、双精度)、枚举

构造类型

?数组、结构体(struct )和联合(union )

指针类型(*)

空类型(void )

数据类型

UCHAR_MAX

0~255

1

unsigned char

SCHAR_MAX SCHAR_MIN

–128~1271signed char CHAR_MAX CHAR_MIN –128~1271char

字符型

LDBL_MAX LDBL_MIN 3.3621031431120935063e-4932~1.189731495357231765e+493210long double DBL_MAX DBL_MIN 2.2250738585072014e-308~1.7976931348623158e+3088double 双精度实型

FLT_MAX

FLT_MIN 1.175494351e-038~3.402823466e+38

4

float

单精度实型ULONG_MAX 0~42949672954unsigned long

LONG_MAX LONG_MIN –2147483648~21474836474long UINT_MAX 0~4294967295

4unsigned int INT_MAX INT_MIN

–2147483648~21474836474int USHRT_MAX 0~65535

2unsigned short SHRT_MAX SHRT_MIN

–32768~327672short 整型

最大值最小值范围

字宽类型数据类型

#include

#include

#include #include int main(){

printf("%d, %d\n", SHRT_MIN, SHRT_MAX);printf("%u\n", USHRT_MAX);

printf("%d, %d\n", INT_MIN, INT_MAX);printf("%u\n", UINT_MAX);

printf("%ld, %ld\n", LONG_MIN, LONG_MAX);printf("%lu\n", ULONG_MAX);

printf("%d, %d\n", CHAR_MIN, CHAR_MAX);printf("%d, %d\n", SCHAR_MIN, SCHAR_MAX);printf("%d\n", UCHAR_MAX);

printf("%.6e, %.6e\n", FLT_MIN, FLT_MAX);printf("%.12e, %.12e\n", DBL_MIN, DBL_MAX);

printf("%.15Lf, %.15Lf\n", LDBL_MIN, LDBL_MAX);/*部分编译器不支持*/return 0;}

例10-2 各种数据类型的最大、最小值

标识符与常量

标识符

由字母或下划线开头。由于C语言自带的库函数通常以下划线开头,因此标识符命名时不要以下划线开头 其它部分可以由字母、下划线或数字组成;

有效长度为32个字符;

区分字母大小写。

常量

整型常量、浮点数常量、字符常量

枚举常量

符号常量

枚举常量

枚举常量:一个整型常量值的列表

如果一个变量存在几种可能的值,就可以被定义成为枚举类型。

enum常量名{枚举名列表}

如果没有显式说明,枚举类型中第一个枚举名的值为0,第二个为1,依次类推。如果只指定了部分枚举

名的值,那么未指定值的枚举名,其取值从最后一个

指定值递增。

enum color {RED, ORIENGE, YELLOW, GREEN, CRYN, BLUN, PURPLE} /*RED的值为0,ORIENGE的值为1,依次类推*/

enum shape {CIRCLE = 2, SQUARE, RECANGUAGLE, TRIANGLE, OVAL} /*CIRCLE的值为2,SQUARE的值为3,依次类推*/

枚举常量

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量:

a = sum;

b = mon;

是正确的。而:

a = 0;

b = 1;

是错误的。

如一定要把数值赋予枚举变量,则必须用强制类型转换:

a = (enum weekday)2;

其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:

a = tue;

枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

枚举常量

#include

#include

enum week {Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday,Sunday};

int main()

{

int i;

enum week today, tomorrow;

scanf("%d", &i);

switch(i)

{

case 1: today = Monday; break;

case 2: today = Tuesday; break;

case 3: today = Wednesday; break;

case 4: today = Thursday; break;

case 5: today = Friday; break;

case 6: today = Saturday; break;

case 7: today = Sunday; break;

default: break;

}

if (today == Sunday)

tomorrow = Monday;

else

tomorrow = today + 1;

printf("Tomorrow is ");

switch(tomorrow)

{

case Monday: printf("Monday"); break;

case Tuesday: printf("Tuesday"); break;

case Wednesday: printf("Wednesday"); break;

case Thursday: printf("Thursday"); break;

case Friday: printf("Friday"); break;

case Saturday: printf("Saturday"); break;

case Sunday: printf("Friday"); break;

default: break;

}

return 0;

}

符号常量

符号常量:用一个标识符来代表一个常量

#define 宏名常数

#define PI 3.14159265

#define E 2.71828

一旦完成定义后,符号常量的值在作用域内不能改变,也不能再被赋值

宏定义的实质是用宏名代替字符串,只作简单的置

换,不做语法检查;

宏名一般习惯用大写字母表示,以与变量名相区别;

宏定义不是C语句,无需在行末加分号。如果加了分号则会连分号一起置换。

符号常量

#include

#define PI 3.14159265 /* 全局变量*/

int main()

{

float r, a, v;

scanf("%f", &r);

a = 4.0 * PI * r * r;

v = 4.0 / 3.0 * PI * pow(r, 3);

printf("a = %f b = %f\n", a, v);

return 0;

}

变量及其初始化

变量:使用之前必须先定义其数据类型,未经声明的变量不能使用。变量声明通常放在函数起始处,位置在第一条可执行语句前面。

int i, j, k;

double temperature, pressure, timestep;

声明的同时可以对变量进行初始化

int i=1;

float x = 5.0;

变量的const修饰

所有变量的声明都可以用const修饰符,表示指定该变量的值不能被修改:

const double e = 2.71828;

const double pi = 3.14159265;

double const e = 2.71828;

double const pi = 3.14159265;

只能在定义该变量的函数体内使用,除

非定义的是全局变量作用范围在整个程序

常量修饰符,把变量定义为常量

只进行简单的字符替换,无类型检查

定义程序中的常量,编译时处理定义宏,预编译时处理

const double pi = 3.14159265;

#define PI 3.14169265;

const修饰变量

宏定义

运算符

按运算的类别

算术运算符

关系运算符

逻辑运算符 位操作运算符 赋值运算符

条件运算符(?和:) 逗号运算符(,) 指针运算符(*和&)

求字节数运算符(sizeof ) 特殊运算符(( ),[ ],., –>)

按操作数的多少 单目运算符(一元) 双目运算符(二元) 多目运算符(多元)

混合运算与左右结合性

不同运算符混合计算时:

按优先符的优先级由高向低进行运算,例如先乘除、后加减。 当一个操作数两侧的运算符优先级相同时,按运算符的结合性所规定的结合方向处理。

左结合性(自左至右)

算术运算符:a *b /c 右结合性(自右至左)

赋值运算符:a=b=c

相当于:b=c; a=b;

运算符与左右结合性

最低,(逗号表达式)

从左至右

=(赋值)

+= –= *= /= %= &= ^= |= <<= >>= (复合赋值)从右至左?:(问号表达式)

从右至左||(逻辑或)从左至右&&(逻辑与)从左至右|(按位或)从左至右^(按位异或)从左至右&(按位与)从左至右==(等于)!=(不等于)从左至右<(小于)<=(小于等于)>(大于)>=(大于等于)从左至右<<(左移)>>(右移)

从左至右+(加)–(减)从左至右*(乘)/(除)%(取余)从右至左!(逻辑非)~(按位取反)++(自增)––(自减)sizeof (求字节数)*(指针运算符)&(地址运算符)+(正号)–(负号)从左至右最高

( )(小括号)[ ](数组下标).(结构成员)–>(指针型结构成员)结合性优先级运算符

运算符

算术运算:+ -* / %(取余)pow(x, y) 自增、自减运算符

i++(i––)表示使用i 后将i 的值加1(减1) ++i (––i )表示将i 的值加1(减1)后再使用i

#include //例10-3int main()

{ int i=10, j=10, m, n;

m = (i++) + (i++);n = (++j) + (++j);

printf("%d %d %d %d", m, n, i, j);return 0;}

运算符

能源与动力工程学院

赋值运算符:具有右结合性

i=j=k=1;

复合赋值运算符:

在赋值运算符”=“之前加上其他运算符可构成复合赋值

运算符

i += 1 即i = i + 1

i *= j+1 即i = i * (j+1)

+= –= *= /= %=

<<= >>= &= ^= |=

西安交通大学电机学课件 免费下载

第一篇 直流电机 一. 直流电机(DC Machines)概述 直流电机是电机的主要类型之一。直流电机可作为发电机使用,也可作为电动机使用。 用作发电机可以获得直流电源,用作电动机,由于其具有良好的调速性能,在许多调速性能要求较高的场合,得到广泛使用。 直流电机的用途:作电源用:发电机;作动力用:电动机;信号的传递:测速发电机,伺服电机 作电源用:直流发电机将机械能转化为直 流电能 作动力用:直流电动机将直流电能转化为机械能 信号传递:直流测速发电机将机械信号转 换为电信号 信号传递-直流伺服电动机将控制电信号转换为机 械信号 二. 直流电机的优缺点 1.直流发电机的电势波形较好,受电磁干扰的影响小。 2.直流电动机的调速范围宽广,调速特性平滑。 3.直流电动机过载能力较强,起动和制动转矩较大。 4.由于存在换向器,其制造复杂,成本较高。 第1章 直流电机的工作原理和结构

1-1 直流电机工作原理 一、原理图(物理模型图) 磁极对N、S不动, 线圈(绕组)abcd 旋转, 换向片1、2旋转, 电刷及出线A、B不动 二、直流发电机原理(机械能--->直流电能)( Principles of DC Generator) 1.原动机拖动电枢以转速n(r/min)旋转; 2.电机内部有磁场存在;或定子(不动部件)上的励磁绕组通过直流电流(称为励磁电流 I f)时产生恒定磁场(励磁磁场,主磁场) (magnetic field, field pole) 3.电枢线圈的导体中将产生感应电势 e = B l v ,但导体电势为交流电,而经过换向器 与电刷的作用可以引出直流电势E AB,以便输出直流电能。(看原理图1,看原理图2) (commutator and brush)

西安交大C语言课件第2章

能源与动力工程学院 C语言基本知识 陈斌 目录 第一节概述 第二节基本知识第三节流程控制第四节指针与数组第五节函数 Hello, world! 例10-1 Hello, world! #include /*预处理语句引入系统头文件,可以使用系统提供的许多函数*/ int main(void) //每个程序都必须而且只能包含一个main函数 { printf("hello, world!\n"); return 0; } C程序的书写 每条语句以末尾的分号“;”表示结束; 每行通常写一条语句,也可以写多条语句。如果语句太长,可以拆开换行继续书写,一般不用加续行标志。 注释语句以“/*”开头,以“*/”结尾,如果注释较长,可以写作多行,包含在“/*”与“*/”之间 可以用花括号{}把多个单条语句括起来,组成一个复合语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

字符集 字符集: 52个字母(C 语言区分大小写) 10个阿拉伯数字 29个特殊字符 ?! + –* / = % ' " # { } [ ] < > ( ) . , ; : ? ~ ^ \| _ & 4个格式符 ?空格、水平制表符(HT )、垂直制表符(VT )、换页符(FF ) 其他字符只能放在注释语句、字符型常量、字符串型常量中 数据类型 数据类型: 基本类型: ?整型、字符、浮点(单精度、双精度)、枚举 构造类型 ?数组、结构体(struct )和联合(union ) 指针类型(*) 空类型(void ) 数据类型 UCHAR_MAX 0~255 1 unsigned char SCHAR_MAX SCHAR_MIN –128~1271signed char CHAR_MAX CHAR_MIN –128~1271char 字符型 LDBL_MAX LDBL_MIN 3.3621031431120935063e-4932~1.189731495357231765e+493210long double DBL_MAX DBL_MIN 2.2250738585072014e-308~1.7976931348623158e+3088double 双精度实型 FLT_MAX FLT_MIN 1.175494351e-038~3.402823466e+38 4 float 单精度实型ULONG_MAX 0~42949672954unsigned long LONG_MAX LONG_MIN –2147483648~21474836474long UINT_MAX 0~4294967295 4unsigned int INT_MAX INT_MIN –2147483648~21474836474int USHRT_MAX 0~65535 2unsigned short SHRT_MAX SHRT_MIN –32768~327672short 整型 最大值最小值范围 字宽类型数据类型 #include #include #include #include int main(){ printf("%d, %d\n", SHRT_MIN, SHRT_MAX);printf("%u\n", USHRT_MAX); printf("%d, %d\n", INT_MIN, INT_MAX);printf("%u\n", UINT_MAX); printf("%ld, %ld\n", LONG_MIN, LONG_MAX);printf("%lu\n", ULONG_MAX); printf("%d, %d\n", CHAR_MIN, CHAR_MAX);printf("%d, %d\n", SCHAR_MIN, SCHAR_MAX);printf("%d\n", UCHAR_MAX); printf("%.6e, %.6e\n", FLT_MIN, FLT_MAX);printf("%.12e, %.12e\n", DBL_MIN, DBL_MAX); printf("%.15Lf, %.15Lf\n", LDBL_MIN, LDBL_MAX);/*部分编译器不支持*/return 0;} 例10-2 各种数据类型的最大、最小值

西安交通大学16年9月课程考试《程序设计基础》作业答案.电子教案

一、单选题(共30 道试题,共60 分。V 1. 以下运算符中优先级最低的是(。 A. && B. & C. || D. | 满分:2 分 2. 要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是(。 A. fopen("A.\user\abc.txt","r" B. fopen("A.\\user\\abc.txt","r+" C. fopen("A.\user\abc.txt","rb" D. fopen("A.\\user\\abc.txt","w" 满分:2 分 3. 语句while(!E;中的表达式!E等价于(。 A. E==0 B. E!=1 C. E!=0 D. E==1

满分:2 分 4. 对以下说明语句int a[10]={6,7,8,9,10};的正确理解是(。 A. 将5个初值依次赋给a[1]至a[5] B. 将5个初值依次赋给a[0]至a[4] C. 将5个初值依次赋给a[6]至a[10] D. 因为数组长度与初值的个数不相同,所以此语句不正确 满分:2 分 5. 以下叙述中不正确的是(。 A. 一个好的程序应该有详尽的注释 B. 在C程序中,赋值运算符的优先级最低 C. 在C程序中,j++;是一条赋值语句 D. C程序中的#include和#define均不是C语句 满分:2 分 6. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(。 A. a[1] B. a[-1] C. a[0] D. a[10]

C语言第二章习题

1.以下叙述中错误的是( )。 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 2.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为() A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 3.以下叙述中错误的是 A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 4.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y ++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 5.有以下程序

#include main() { int a; a = (int)1.99*3; printf("%d\n", a); } 程序的运行结果是() A) 3 B) 5 C) 6 D) 结果不确定 6.请选出合法的C语言赋值语句:() A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b) 7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表 示代数式 1/abc 的表达式是:() A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c 8.请选出以下语句的输出结果:() printf("%d\n",strlen("\t\"\065\xff\n"));//srelen()为求字符串长度的函数,返回字节数。

C语言解多次方程方法

一 理论背景 我们先考虑线性方程,线性方程组的解便不难得出了。 与线性方程相比,非线性方程问题无论是从理论上还是从计算公式上,都要复杂得多。对于一般的非线性方程 ()0f x =,计算方程的根既无一定章程 可寻也无直接法可言。例如,求解高次方程组 637 1.50x x x -+-=的根,求解含有指数和正弦函数的超越方程cos()0x e x π-=的零点。解非线性方 程或方程组也是计算方法中的一个主题。在解方程方面,牛顿(I . Newton ) 提出了方程求根的一种迭代方法,被后人称为牛顿算法。三百年来,人们一直用牛顿算法,改善牛顿算法,不断推广算法的应用范围。牛顿算法,可以说是数值计算方面的最有影响的计算方法。 对于言程式 ()0f x =,如果()f x 是线性函数,则它的求根是容易的。 牛顿法实质上是一种线性化方法,其基本思想是将非线性方程式 ()f x 逐步 归结为某种线性方程来求解。解非线性方程组只是非线性方程的一种延伸和扩展。 二 主要理论 考虑方程组 111(,...)0,.................(,...)0.n n n f x x f x x =?? ??=? ()1 其中 1,...,n f f 均为 1(,...) n x x 多元函数。若用向量记号记 11(,...),(,...,)T n T n n x x x R F f f =∈=,()1 就可写成 ()0.F x = (2) 当 2,n ≥,且(1,...,)i f i n =中至少有一个是自变量(1,...,)i x i n = 的非线性函数时,则称方程组(1)为非线性方程组。非线性方程组求根问 题是前面介绍的方程即(1)n =求根的直接推广,实际上只要把单变量函 数 ()f x 看成向量函数()F x 则可将单变量方程求根方法推广到方程组

西安交通大学程序设计基础多选题

二、多选题(20分) 61、以下合法的十六进制数是()。 A、Oxff B、0Xabc C.0x01 D、0X9X 正确答案:BC 学生答案:BCV 62、定义语句.intx.y.若要通过scanf("%d.%d”,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。 A.1112<回车> 8、11.<空格>12<回车> C、11.12<回车> D.11、<回车>12<回车> 正确答案:BCD 学生答苯:BCDV 63。以下对C语言中的函数描述不正确的有()- A、可以概套定义,不可以嵌套调用 B、不可以嵌套定义,可以嵌套调用 C。可以嵌套定义,也可以嵌套调用 D、嵌套定义和嵌套调用都不允许 正确答案:ACD

学生答案:ACD> 64、著a,b.c,d都是int型变童且初值为0,以下选项中正确的赋值语句是()。 A.a=b=c=d=100, B、d++. C.c+b; D.d=(C=22)-(b++); 正确答紧:ABD 学生答案:ABDV 65、以下说法正确的是()。 A、C普甚里有字符串变量 B、C语言里没有字符串变量 C.C语言里有字符变量 D、C语言里设字符变量 正确答案:BC 学生答案:BCV 66、在定义inta[2][3]之后,对a的引用正确的有()。 A.al0121 B、aj1.3] C.a[1>2111] D.a[2][0] 正确答案:AC 67、以下用户标识符,其中台法的是()。

B、f2_G3 C、A3-3 D、abc 正确答案:BD 学生答案:BD× 68、关于while语句与do-while语句,以下正确的是(). A、while是当型结构 B、do-while是直到型结构 C、两者有区别 D、两者无区别 正确答案:ABC 学生答案:ABCV 69、正确的if语句形式是(). A、if(x>y&&xl=y); B、if(x==y)x+=y; C、if(xl=y)scanf("%d",&x)eisescanf(["%d",&y); D、if(x

c语言毕业论文开题报告

c语言毕业论文开题报告 c语言毕业论文开题报告本文关键词:开题,毕业论文,语言,报告 c语言毕业论文开题报告本文简介:计算思维的本质是抽象和自动化。对于C 语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、常量、变量、数组和链表等元素描述现实生活中的系统、功能、功能调用以及单个特征或特征组合等,自动化则体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进 c语言毕业论文开题报告本文内容: 计算思维的本质是抽象和自动化。对于C语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、常量、变量、数组和链表等元素描述现实生活中的系统、功能、功能调用以及单个特征或特征组合等,自动化则体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进行跳转。以下是我们分享的c语言毕业论文开题报告,供你参考借鉴。 一、研究背景及研究意义 信息技术的快速发展加速了教育信息化的进程,在线教育系统与测试系统的出现为学生提供了一个可以提高和检测综合能力的便捷途径。另一方面,C语言教学在各大高校中都是必修课程之一,且在计算机相关课程教学中,针对某个理论性的知识点的考察,一般会以客观题的形式给出。由于答案具有唯一性,通过简单得匹配方式便能识别正确与否从而给出相应成绩。针对这类客观题的自动评分技术已经相当成熟,因此后续在自动评分方向的研究中主要集中于主观题的自动评判。在过去几年的积极探索阶段到现有的实际研究成果来看,有关C语言知识的检测中对编程题的考察是必不可少的。虽然检测的形式各不相同(填写空缺代码块完成完整程序,按题目要求编写整个程序),但终究是为了考察学生掌握编程技巧及编程思想的程度。

西安交大电路在线作业及答案

一、单选题(共20 道试题,共40 分。) V 1. 在RL串联的正弦电路中,如果电阻上电压为30伏,电感上电压为40伏,那么总电压为( B). A. 70伏 B. 50伏 C. 10伏 D. 50安 满分:2 分 2. 在电感电路中,当通入交流电时,电压与电流的关系是(B)。 A. 同相 B. 电压超前电流 C. 电流超前电压 D. 反相 满分:2 分 3. 网孔电流法中,以网孔电流作为电路变量时,需要按照(C)列出电路方程。 A. KCL B. 元件的VCR C. KVL D. 以上三个都需要 满分:2 分 4. 在动态电路中,不能发生跃变的是(B)。 A. 电压 B. 电容电压 C. 电容电压 D. 电流 满分:2 分 5. 一个元件的电压电流为关联参考方向,若电流I=-3A,元件产生的功率是12w,则电压=(C)V。 A. -4 B. -1/4 C. 4 D. 36 满分:2 分 6. 额定值为1W 10Ω的电阻器使用时通过电流的限额是(C)。 A. B. C. D. 满分:2 分 7. 现有额定值为220V、25W的电灯一只,准备串联一个小灯泡放在另一房间作为它的信号灯,应选择___A__规格的小灯泡? A. 6V, B. 6V, C. ,

D. , 满分:2 分 8. 若RLC串联电路的谐振角频率为w0,则在角频率w>w0时电路呈现(B) A. 纯电阻性 B. 电感性 C. 电容性 D. 不能确定 满分:2 分 9.下列几项中,哪一对不是对偶元素的?(C) A. 电压-电流 B. 电阻-电导 C. 电容-电阻 D. 电容-电感 满分:2 分 10. 理想电感元件在某时刻其电压值为0,则该时刻电感上的储能(A) A. 不一定为0 B. 一定为0 C. 一定不为0 D. 无法确定 满分:2 分 11. 正弦稳态电路中, 一个无源单口网络的导纳Y=3 –j 4 Ω,电路的性质是(B)。 A. 纯阻性#感性 B. 纯容性 C. 容性 满分:2 分 12. R1和R2为两个串联电阻,已知R1=4R2,若R1上消耗的功率为1W,则R2上消耗的功率为(c)。 A. 5W B. 20W C. D. 400W 满分:2 分 13. 在三相四线制电路中,通常所说的220伏和380伏指的是电压的(C )值 A. 平均 B. 最大 C. 有效 D. 瞬时 满分:2 分 14. 若C = 1F ,某时刻电容两端电压u为2V,则此时流过电容的电流=(D)。 A. 2A B. C. -2A D. 不能确定 满分:2 分

最佳组队方案

最佳组队方案 ()()()321,欧杰泉,赖金花柯文锋 (1)2000级数学系数学与应用数学本科1班 (2)2000级计算机系计算机科学与技术本科1班 (3)2000级数学系数学与计算机教育6班 (广东省韶关学院 韶关 512005) [摘要]:本文以队员的能力及队员间的配合为主线,利用概率统计中的数学期望、方差等,对每个队员在所 有队员中的水平高低用标准分来衡量,使得每个队员的综合能力的比较更科学化、合理化。并对每个组建的队伍进行一个综合能力的比较,并把他们的能力作一个均衡性比较,得出整体最优的组队方案。 关键词:数学期望;方差;标准分;专项指标 1 问题的提出 在一年一度的全国大学生数学建模竞赛中,我校将组队去参加,而参赛队员是集训队员中选出的,现有20名集训队员准备参加竞赛,根据队员的能力和水平要 选出18名优秀队员分别组成6个队(每个队3名队员)去参加比赛,选拔队员主要 考虑的条件依次为有关学科的成绩、智力水平(反映思维能力、分析问题很解决问 题的能力等)、动手能力(计算机的使用和其它方面实际操作能力)、写作能力、外语能力、协作能力(团结协作能力)和其它特长,每个队员基本条件量化后如表1. 表1 队员基本条件量化数据表

现在的问题是: 1、 在20名队员中选择18名优秀队员参加竞赛; 2、 确定一个最佳的组队方案; 3、 给出由18名队员组成6个队的组队方案,使整体竞赛技术水平最高,并给出每个队的 竞赛技术水平. 2 符号约定 项指标的能力; 个队员的第第基本条件数; 队员的人数;j i m n j i ,ξ . T i ,能力的一个排列所有组建的队伍的综合之和;队的各队员的综合能力第个队员的综合能力;第水平高低的指标; 项指标在所有队员中的个队员的第第望; 项指标的能力的数学期所有队员的第; 项指标能力的一个排列所有队员的第T i i P j i t j E j i j i j j ξξ 3 模型的建立、求解及结果分析 3.1第一个问题的解答 a) 问题的分析 对于第一个问,要在20名队员中选择18名优秀队员参加竞赛,这里所说优秀的概念是指这些队员的综合能力水平(即是指反映题目所给的七种能力的一个综合指标)较高。我们就是要从这些队员中选取一些综合能力水利最高的队员参赛。这里就涉及到各种能力的综合体现,各项指标的能力轻重是一样的,故我们要从概率的方面处理它,要把各个队员的各个方面的能力水平与所有的队员的相应方面的能力联系起来,从而得出反映各项能力的综合指标。 b) 分析步骤 所有队员的第j 项指标的数学期望为: n E E n i j i n i j i j ∑∑=== =1 ,1 ,ξ ξ ξ 而其根方差为: ()2 ,j j i j j E E D ξξξσξ-== 以上只是求出了各个项目中所有队员能力的偏离程度,并未反映到具体的个人上,故我们构造以下式子,它可以完全反映这一特性的指标. c) 构造反映此问题的函数 反映第i 个队员的第j 项能力在所有队员中水平高低的指标(相当于标准分): 500100,,+?-= j j j i j i E t σξξξ

宿舍管理系统课程设计

软件设计报告 题目:宿舍管理系统 院系名称:电子工程学院 专业名称:电子信息工程 班级:电子0902 班内序号: 学生姓名: 指导教师: 时间:2010年6月21日至2010年7月2日

一、 课程设计目的 (一)通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。 (二)学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 (三)为后续各门计算机课程的学习打下坚实基础,为毕业设计和以后工作打下必要基础。 二、课程设计内容 编写一个宿舍管理系统。通过该系统完成对学生信息的录入、输出、删除、修改、添加、宿舍卫生情况排名,并给系统设置了密码,若密码输入错误,则不能进入系统。 三、需求分析 系统代码要能够对学生信息进行录入、输出、删除、修改、添加、宿舍卫生情况排名 四、概要设计 1.系统结构图(功能模块图): 2.功能模块说明(对各个模块进行功能的描述) (1)输入模块:输入学生信息 (2)输出模块:进行学生信息的输出 (3)修改模块:对需要修改的信息的学生信息进行修改 (4)删除模块:对需要删除的学生信息进行删除 (5)排序模块:对学生宿舍的卫生得分进行排名 (6)保存文件模块:退出系统时,保存学生信息 (7)密码设置模块:给系统设置密码,若密码错误,则不能进入系 宿舍管理系统 库存信息 管理 流通信息管理 创建文件 查询、输出 添加信息 删除信息 修改信息 卫生排序 密码设置 界 面设置

统。 (8)添加信息模块:按要求在系统中进行学生信息的添加 五、详细设计及运行结果 各模块功能图示: 密码设置模块:给系统设置密码,若密码错误,则不能进入系统。 输入模块:输入学生信息 输出模块: 添加信息模块:按要求在系统中进行学生信息的添加 输出学生信息模块 对已有学生信息按要求进行输出 输入模块 输入学生的基本信息:姓名--学号--入学时间--宿舍楼号--宿舍号--所属院系 密码设置模块 (一)提示需进入系统的人输 入密码 (二)输入密码进入系统 (三)若密码错误,则不能进入 系统

西安交大c语言作业及答案详解

工程分析程序设计上机作业(七)上机目的:练习C语言的书写、循环和判断结构 1.编写程序实现摄氏度和华氏度的相互转换: =+ *9/532 F C #include main() { float c,f; printf("请输入摄氏温度:\n"); scanf("%f",&c); f=c*9./5+32; printf("%f\n",f); } 2.打印出6行杨辉三角形如下图: 1 1 1 1 2 1 1 3 3 1 14 6 4 1 151010 5 1 #include #define M 10 void main() { int i,j,k,n; int a[M][M]; printf("请输入n:"); scanf("%d",&n); if(n

for(j=1;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i main() { int i; float n,sum; n=1.; sum=0; for(i=1;i<=10;i++) { n=1/n+1; sum+=n; }

西安交通大学习题答案《程序设计基础》答案电子教案

2017年西安交通大学习题答案《程序设计 基础》答案

《程序设计基础》习题一答案 一、单项选择题(本大题共20小题,每小题2分,共40分) 1.int a[10];合法的数组元素的最小下标值为()。 A:10 B:9 C:1 D:0 答案:D 2.以下运算符中优先级最低的是()。 A:&& B:& C:|| D:| 答案:C 3.若使用一维数组名作函数实参,则以下正确的说法是()。 A:必须在主调函数中说明此数组的大小 B:实参数组类型与形参数组类型可以不匹配 C:在被调用函数中,不需要考虑形参数组的大小 D:实参数组名与形参数组名必须一致 答案:A 4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是()。 A:一个整数,代表要读入的数据项总数 B:一个文件指针,指向要读的文件

C:一个指针,指向要读入数据的存放地址 D:一个存储区,存放要读的数据项 答案:C 5.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。A:将5个初值依次赋给a[1]至a[5] B:将5个初值依次赋给a[0]至a[4] C:将5个初值依次赋给a[6]至a[10] D:因为数组长度与初值的个数不相同,所以此语句不正确 答案:B 6.下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } A:a=1,b=0 B:a=2,b=1

西安交通大学C++实验报告

实验题目:c++编程总结 一.程序一(第五次上机第六题) 1. 程序设计与分析 1.1程序实现的功能 模拟STL库中string类的功能,编写MyString类,至少实现字符串间的赋值、比较(包括>、<、=、!=)和字符串间的”+”(连接)操作,同时能通过下面列举的形式对字符串对象进行初始化。 1.2核心算法 定义一个MyString类,并且在类中重新定运算符。 2. 程序设计中存在的问题和解决思路 2.1 出现的主要问题 a.对于构造函数的难以把握,不知道应该用怎样的方式保证输入的正确性。 b.运算符<、>和==不知道如何实现,用怎样的函数达到计算的效果。 c.如何实现两个字符串的拼接。 2.2 解决方法 a.使用用默认参数的构造函数。 b.通过将重载的运算符的函数定义为int型,在返回值的时候选择用0和1来表示两个数的大小,然后在主函数调用的时候,用形如if(str1

#include #include using namespace std; class MyString //定义类 { public: //公有 MyString(char*st=" ") //默认参数的构造函数{ str=new char[strlen(st)+1]; strcpy(str,st); } MyString(const MyString& other) //拷贝函数{ str=new char[strlen(other.str)+1]; strcpy(str,other.str); } int operator >(MyString& r) //定义运算符> { int n; n=strcmp(str,r.str); if(n>0) return 1; else return 0; } int operator <(MyString& r) //定义运算符< { n=strcmp(str,r.str); if(n<0) return 1; else return 0; } int operator ==(MyString& r) //定义运算符== { int n=strcmp(str,r.str); if(n==0) return 1; else return 0;

西安交通大学习题答案程序设计基础答案

《程序设计基础》习题一答案 一、单项选择题(本大题共20小题,每小题2分,共40分)a[10];合法的数组元素的最小下标值为()。 A:10 B:9 C:1 D:0 答案:D 2.以下运算符中优先级最低的是()。 A:&& B:& C:|| D:| 答案:C 3.若使用一维数组名作函数实参,则以下正确的说法是()。 A:必须在主调函数中说明此数组的大小 B:实参数组类型与形参数组类型可以不匹配 C:在被调用函数中,不需要考虑形参数组的大小 D:实参数组名与形参数组名必须一致 答案:A 4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是()。 A:一个整数,代表要读入的数据项总数 B:一个文件指针,指向要读的文件 C:一个指针,指向要读入数据的存放地址 D:一个存储区,存放要读的数据项 答案:C 5.对以下说明语句int a[10]={6,7,8,9,10}; 的正确理解是()。 A:将5个初值依次赋给a[1]至a[5]

B:将5个初值依次赋给a[0]至a[4] C:将5个初值依次赋给a[6]至a[10] D:因为数组长度与初值的个数不相同,所以此语句不正确答案:B 6.下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 7.下列程序的输出结果为()。 main() {int m=7,n=4; float a=,b=,x; x=m/2+n*a/b+1/2; printf("%f\n",x);

西安交通大学18年9月课程考试《程序设计基础》作业考核试题

(单选题) 1: 下列四个选项中,均是C语言关键字的选项是()。 A: auto、enum、include B: switch、typedef、continue C: signed、union、scanf D: if、struct、type 正确答案: (单选题) 2: 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。 A: fclose() B: close() C: fread() D: fwrite 正确答案: (单选题) 3: 以下叙述不正确的是()。 A: 一个C源程序可由一个或多个函数组成 B: 一个C源程序必须包含一个main函数 C: C程序的基本组成单位是函数 D: 在C程序中,注释说明只能位于一条语句的后面 正确答案: (单选题) 4: 设有以下说明语句typedef struct { int n;char ch[8];}PER;则下面叙述中正确的是( ) A: PER 是结构体变量名 B: PER是结构体类型名 C: typedef struct 是结构体类型 D: struct 是结构体类型名 正确答案: (单选题) 5: 设有以下说明语句 struct ex { int x ; float y; char z ;}example; 则下面的叙述中不正确的是 A: struct结构体类型的关键字 B: example是结构体类型名 C: x,y,z都是结构体成员名 D: struct ex是结构体类型名 正确答案: (单选题) 6: 结构体类型的定义允许嵌套是指()。 A: 成员是已经或正在定义的结构体型 B: 成员可以重名 C: 结构体型可以派生 D: 定义多个结构体型 正确答案: (单选题) 7: C语言中,定义结构体的保留字是()。 A: union B: struct C: enum D: typedef 正确答案: (单选题) 8: 对于如下的表达式:int a[3][4],*p;p=*a;执行p++操作之后,*p表示取()的内容。A: a[0][0] B: a[1][0] C: a[1][1] D: a[0][1] 正确答案: (单选题) 9: 以下只有在使用时才为该类型变量分配内存的存储类说明是()。 A: auto和static

西安交通大学17年3月课程考试《面向对象程序设计(高起专)》作业考核试题

西安交通大学17年3月课程考试《面向对象程序设计(高起专)》作业考核试题 一、单选题(共30 道试题,共60 分。) 1. 对于动态分配内存空间描述正确的是()。 A. 使用new运算符分配的内存空间的长度必须是常量 B. delete运算符可以释放动态的存储空间和静态的存储空间 C. 用new分配的内存空间是不连续的 D. delete运算符只能以释放由new分配的动态存储空间 正确答案: 2. 类的析构函数的作用是( )。 A. 一般成员函数 B. 类的初始化 C. 对象的初始化 D. 对象释放后的操作 正确答案: 3. 如果一个类至少有一个纯虚函数,那么该类称为().。 A. 抽象类 B. 虚基类 C. 派生类 D. 以上都不对 正确答案: 4. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。 A. x(a) B. x[a] C. x->a D. x.a 正确答案: 5. 继承机制的作用是()。 A. 信息隐藏 B. 数据封装 C. 定义新类 D. 数据抽象 正确答案: 6. 面向对象软件开发中使用的OOD表示()。 A. 面向对象分析 B. 面向对象设计

C. 面向对象语言 D. 面向对象方法 正确答案: 7. 下列关于运算符重载的描述中,错误的是()。 A. 运算符重载不可以改变操作数的个数 B. 运算符重载不可以改变运算符的功能 C. 运算符重载不可以改变结合方向 D. 运算符重载不可以改变运算优先级 正确答案: 8. 面向对象方法的多态性是指()。 A. 一个类可以派生出多个特殊类 B. 一个对象在不同的运行环境中可以有不同的变体 C. 针对一消息,不同的对象可以以适合自身的方式加以响应 D. 一个对象可以是由多个其他对象组合而成的 正确答案: 9. 编译时的多态性使用什么获得?() A. 重载函数 B. 继承 C. 虚函数 D. B和C 正确答案: 10. 假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的()。 A. 有参构造函数 B. 无参构造函数 C. 复制构造函数 D. 赋值构造函数 正确答案: 11. 下列对派生类的描述中,()是错误的。 A. 一个派生类可以作为另一个类的基类 B. 派生类至少有一个基类 C. 派生类的成员除了它自己的成员外,还包含它的基类的成员 D. 派生类中继承的基类成员的访问权限到派生类中保持不变 正确答案: 12. 关于运算符重载,下列说法正确的是()。 A. 重载时,运算符的优先级可以改变。 B. 重载时,运算符的结合性可以改变。 C. 重载时,运算符的功能可以改变。 D. 重载时,运算符的操作数个数可以改变。 正确答案: 13. 派生类的对象对其基类中()可直接访问。 A. 公有继承的公有成员 B. 公有继承的私有成员 C. 公有继承的保护成员

西交C语言复习资料

程序设计基础(C语言)复习资料 一、选择题 1.下列哪个不是算法的特征(C) A.有穷性 B.可行性 C.不确定性 D.输入 2.(B)是用来描述对象的属性和行为的。 A.实体 B.类 C.对象 D.现象 3.下列哪些是算法的描述方法(ABCD ) A.自然语言描述法 B.流程图描述法 C.伪代码描述法 D.N-S流程图描述法 4.设x=9;y=++x;则产生的结果是(B ) A.x=9;y=9 B.x=10;y=10 C.x=9;y=10 D.x=10;y=9 5.下列说法不正确的是(B) A.++、--只能用于变量 B. ++、--比负号运算符的优先级要高 C. ++、--的结合方向是:自右至左 D. ++、--常用于循环变量表达式中 6.下列运算符优先级最高的是(D) A.&& B.> C.++ D.! 7.关于switch语句说法不正确的是(B) A.case的次序不影响执行结果 B.每个case语句后面的常量可以不同 C.在执行完一个case语句后转到下一个case语句执行 D.每个case语句后面表达式只能是常量 8.下列说法错误的是(B) A.for语句中,<表达式1>、<表达式2>和<表达式3>都可以缺省 B.<表达式2>缺省,系统会认为此处的值是0 C.for语句的三个表达式可以是任何类型的表达式 D.for语句可以嵌套使用 9.下面关于do-while语句和while语句说法正确的是(C) A.while语句和do-shile语句肯定都要执行 B.两者运行结果不同 C.do-while在判断条件之前先执行循环体一次 D.while语句至少执行一次 10.关于数组,下列说法正确的是(A) A.对数组的初始化操作在定义数组的同时进行 B.给数组赋初值时,必须所有数组元素都被赋值 C.给数组元素全部赋初值时,一定要指明数组的大小 D.引用数组元素的时候,可以一次引用数组中的全部元素 11.字符数组char a[]=“How do you do?”;的大小为(D) A.10 B.11 C.14 D.15 12.有如下的数组static int a[10];则(B) A.该数组没有被初始化 B.数组的所有元素都被赋值为0 C.数组的第一个元素是a[1] D.数组共有11个元素 13.以下说法错误的是(B) A.C程序必须从main( )函数开始执行 B.所有函数在定义上讲都是相互独立的,不存在嵌套定义 C.C语言中有两类函数,系统提供的库函数和用户自定义的函数 D.参数的作用是向函数传递不同的数据 14.关于形式参数,下面说法错误的是(C) A.对于形参,虽然定义了它,只有当函数被调用时,形参才在内存中开辟空间

西安交通大学c语言练习题

西安交通大学c语言练习题 -、第一周 1、在控制台上输出:中国加油!注:感叹号为中文感叹号 //屏幕显示:中国加油! #include //包含基本输入输出库文件 int main() //主函数名 { printf("中国加油!\n"); //屏幕显示语句 return 0; //表示程序顺利结束 } 2、请输入一个8位的十进制整数,编写程序取出该整数的中间4位数,分别输出取出的这4位数以及该4位数加上1024的得数。输入:一个整数。输出:两个整数,用空格分隔。 样例输入: 9988776 输出:8877 9901 #include int main() { int n,n1,n2,a,b,c,d; scanf("%d",&n) ; a=(n/100000)%10; b=(n/10000)%10; c=(n/1000)%10; d=(n/100)%10; n1=a*1000+b*100+c*10+d*1; n2=n1+1*1000+0*100+2*10+4*1; printf("%d %d",n1,n2); return 0;

} 3、企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成8%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成2%,高于100万元时,超过100万元的部分按1%提成。编写程序,输入用户当月利润,输出发放奖金总数。 输入;一个整数。 输出:一个整数。 #include int main() { int n,p; scanf("%d",&n); if(n<=100000) p=0.1*n; else { if(n<=200000) p=10000+0.08*(n-100000); else { if(n<=400000) p=18000+0.05*(n-200000); else { if(n<=600000) p=28000+0.03*(n-400000); else

自动化专业本科培养方案

自动化专业本科培养方案 学科门类:工学专业代码:080602 一、培养目标 本专业培养德、智、体全面发展,掌握电工技术、电子技术、自动控制理论、计算机技术与应用、自动检测与信息处理、工业控制技术等较广泛领域中具有扎实的工程技术基础和专业理论知识的应用型高级工程技术人才。 二、培养规格 本专业学生主要学习电工及电子技术、自动控制及计算机应用技术方面的基本理论、基本知识和基本技能,接受从事自动化工作的基本训练,具备从事自动控制方面的基本能力。 毕业生应获得以下几方面的知识和能力: 1、掌握自动化学科的基本理论、基本知识和基本技能,具有独立获取知识和信息的能力以及发现问题、分析问题和解决问题的能力。 2、掌握运动控制、工业过程控制及自动化仪表、电力电子技术及信息处理等方面的知识。 3、获得较好的系统分析、系统设计及系统开发方面的工程实践训练。 4、计算机、英语达到学校规定水平。 5、掌握资料查询、文献检索及运用现代信息技术获取相关信息的基本方法。 6、具有较好的思想、文化、心理和身体素质,具备较强适应能力、协调能力、应变能力和创新能力。 三、学制和学分 基本学制4年,实行弹性学制,学生在校修读年限3-6年。总学分175。 四、授予学位 授予工学学士学位 五、专业主要课程与学位课程 专业主要课程:C语言程序设计、微机原理与接口、自动控制原理(一)、自动控制原理(二)、可编程控制器、单片机原理及应用、电力电子技术、电机与拖动。 学位课程:自动控制原理(一)、可编程控制器、单片机原理及应用、电力电子技术 六、实践性教学环节 金工实习、电路分析实验、微机原理与接口实验、电子技术课程设计、单片机课程设计、嵌入式系统课程设计、专业实习、毕业设计等。 七、毕业条件及其它说明 学生按照本培养方案修满172学分,准予毕业。符合学校学位授予条件者,授予工学学士学位。 八、专业教学进程表(见附表一) 九、课程类别、门数与学分分配表(见附表二、附表三)

相关文档