当前位置:文档之家› 文小编收集文档之大学C语言期末考试练习题(带详解答案)

文小编收集文档之大学C语言期末考试练习题(带详解答案)

文小编收集文档之大学C语言期末考试练习题(带详解答案)
文小编收集文档之大学C语言期末考试练习题(带详解答案)

一、文小编收集文档之单项选择题'

1.(A)是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

2.C语言程序从 C开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数

C) 程序中的main函数 D) 包含文件中的第一个函数

3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义

C、C语言程序总是从main( )函数开始执行

D、C语言程序中的main( )函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是(B)。

A) C程序的工作过程是编辑、编译、连接、运行

B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环

D) C程序从main函数开始执行

5.下列正确的标识符是(C)。

A.-a1

B.a[i]

C.a2_i

D.int t

5~8题为相同类型题

考点:标识符的命名规则

(1)只能由字母、数字、下划线构成

(2)数字不能作为标识符的开头

(3)关键字不能作为标识符

选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是( B)。

A)3ax B)x C)case D)-e2 E)union

选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是(C)。

A)%x B)a+b C)a123 D)123

选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBc

B、I\am one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3)

9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型

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

C、整型、字符型、逻辑型

D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是C。

A)2.5 B)2 C)1 D)3

详见教材P52~53.

%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

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

详见教材P97.

表达式1?表达式2:表达式3

先计算表达式1,

若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;

若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

此题中的a

a为3,b为4。a

12.若int x=2,y=3,z=4 则表达式x

A)4 B)3 C)2 D)0 E)1

13.C语言中,关系表达式和逻辑表达式的值是(B)。

A) 0 B) 0或1 C) 1 D) ‘T’或’F’

14. 下面( D )表达式的值为4.

A) 11/3 B) 11.0/3

C) (float)11/3 D) (int)(11.0/3+0.5)

14~16题为同一类型

详见教材P54~56.

(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0 /3=3.666666

选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

15.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)

A.b=1.0/a

B.b=(float)(1/a)

C.b=1/(float)a

D.b=1/(a*1.0)

16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

A.1

B.4

C.4.333333

D.4.6

“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

17. 以下对一维数组a的正确说明是:D

A)char a(10);B) int a[];

C)int k=5,a[k];D)char a[3]={‘a’,’b’,’c’};

详见教材P143~144,一维数组的定义、初始化

类型符数组名 [常量表达式]

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

选项A,常量表达式只能放在中括号[ ]中

选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

选项C,常量表达式不能为变量。

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

18.以下能对一维数组a进行初始化的语句是: ( C )

A. int a[5]=(0,1,2,3,4,)

B. int a(5)={}

C. int a[3]={0,1,2}

D. int a{5}={10*1}

详见教材P145,一维数组的定义、初始化

选项B,D,常量表达式只能放在中括号[ ]中

选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().

19.在C语言中对一维整型数组的正确定义为D。

A)int a(10); B)int n=10,a[n];

C)int n;a[n]; D)#define N 10

int a[N];

20、已知:int a[10]; 则对a数组元素的正确引用是(D )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

详见教材P144,数组元素的引用

数组名[下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.

选项A,超过了数组a的逻辑地址下标范围;

选项B,逻辑地址下标只能为整数

选项C,逻辑地址下标只能放在[ ]中

21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A.10

B.9

C.6

D.5

先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

a[9]对应下面数组中的元素为6. 因此a[9]即为6

22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

A. 2

B. 3

C. 4

D.无确定值

5 7 D) 3

6 9

二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

23.对二维数组的正确定义是(C)

详见教材P149~152,二维数组的定义、初始化

类型符数组名 [常量表达式][常量表达式]

二维数组可以看做是矩阵

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

一维数组初始化时可以省略数组长度

二维数组初始化时可以省略行数,但不能省略列数

选项A,B,都省略了列数

选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中A.int a[ ] [ ]={1,2,3,4,5,6}; B.int a[2] [ ]={1,2,3,4,5,6};

C.int a[ ] [3]={1,2,3,4,5,6};

D.int a[2,3]={1,2,3,4,5,6};

24.已知int a[3][4];则对数组元素引用正确的是__C___

A)a[2][4] B)a[1,3] C)a[2][0] D)a(2)(1)

详见教材P150,数组元素的引用

数组名[下标] [下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

本题图示详见P149图6.7

因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

选项A,列逻辑地址下标超过范围

选项B,D,的引用形式不正确。

25.C语言中函数返回值的类型是由A决定的.

A)函数定义时指定的类型 B) return语句中的表达式类型

C) 调用该函数时的实参的数据类型 D) 形参的数据类型

26. 在C语言中,函数的数据类型是指( A )

A 函数返回值的数据类型 B. 函数形参的数据类型

C 调用该函数时的实参的数据类型 D.任意指定的数据类型

27. 在函数调用时,以下说法正确的是(B)

A.函数调用后必须带回返回值

B.实际参数和形式参数可以同名

C.函数间的数据传递不可以使用全局变量

D.主调函数和被调函数总是在同一个文件里

28. 在C语言中,表示静态存储类别的关键字是: (C)

A) auto B) register C) static D) extern 29.未指定存储类别的变量,其隐含的存储类别为(A)。

A)auto B)static C)extern D)register

30. 若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是: ( D )

A. struct是结构体类型的关键字

B. struct student 是用户定义的结构体类型

C. num, score都是结构体成员名

D. stu是用户定义的结构体类型名

31.若有以下说明语句:

struct date

{ int year;

int month;

int day;

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

}brithday;

则下面的叙述不正确的是__C___.

A) struct是声明结构体类型时用的关键字

B) struct date 是用户定义的结构体类型名

C) brithday是用户定义的结构体类型名

D) year,day 都是结构体成员名

32. 以下对结构变量stul中成员age的非法引用是B

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A) stu1.age B) student.age C) p->age D) (*p).age

33.设有如下定义:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是C

A) p=&a; B) p=data.a; C) p=&data.a; D)*p=data.a;

34.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

则下面叙述中错误的是(D)。

A、struct是结构类型的关键字

B、struct stu是用户定义的结构类型

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名

35.语句int *p;说明了C 。

A)p是指向一维数组的指针

B)p是指向函数的指针,该函数返回一int型数据

C)p是指向int型数据的指针// 指针的定义教材P223

D)p是函数名,该函数返回一指向int型数据的指针

36.下列不正确的定义是(A)。

A.int *p=&i,i;

B.int *p,i;

C.int i,*p=&i; D.int i,*p;

选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)

37. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: (D)

A)p=q B)*p=*q C)n=*q D)p=n

p,q同为整型指针变量,二者里面仅能存放整型变量的地址。

选项A,q中为地址,因此可将此地址赋给p

选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于n=n;

选项C,n=*q 等价于n=n;

选项D,p中只能存放地址,不能将n中的整数值赋给p

38.有语句:int a[10],;则B是对指针变量p的正确定义和初始化。

A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a;

选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a

选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p 时,应在变量名前加*,标明p是指针变量

选项D,a是数组名,数组名就是地址,无需再用地址符号。

39.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是( C )。

A.a[p]

B.p[a]

C.*(p+2)

D.p+2

首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p 进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

对于数组元素下标的引用(详见p144), 一般形式数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。

选项A,p中存放的是地址,不是整数,不能做数组元素的下标

选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标

选项C,(重点!!!详见p231~234) p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容

40. 有如下程序

int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

则数值为9的表达式是B

A) *P+9 B) *(P+8) C) *P+=9 D) P+8

(重点!!!详见p231~234)

首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P 进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。

选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值 1. *P+9=1+9=10

选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等价于a[0]=a[0]+9.

选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。

41. 在C语言中,以D作为字符串结束标志

A)’\n’ B)’’ C) ’0’ D)’\0’

42.下列数据中属于“字符串常量”的是(A)。

A.“a”

B.{ABC}

C.‘abc\0’

D.‘a’

若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串

选项D,标识字符。

43.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度

的正确描述是B .

A)相同 B)x大于y C)x小于y D)以上答案都不对

C语言中,字符串后面需要一个结束标志位'\0',通常系统会自动添加。

对一维数组初始化时可采用字符串的形式(例如本题数组x),也可采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5

二、读程序

基本输入输出及流程控制

1.

#include

main()

{ int a=1,b=3,c=5;

if (c==a+b)

printf("yes\n");

else

printf("no\n");

}

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

运行结果为:no

详见教材p89选择结构

详见教材p91关系符号

详见附录D p378符号的优先级

==表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量

本题考点是选择结构3种基本形式的第二种

选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以省略{ },此题即如此,因此两个printf操作没有加{ }

若c==a+b成立,则执行printf("yes\n");

否则(即c==a+b不成立),执行printf("no\n");

+的优先级高于==,因此先算a+b,值为4,表达式5==4不成立,因此执行printf("no\n");即输出字符串no

2.

#include

main()

{ int a=12, b= -34, c=56, min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

printf("min=%d", min);

}

运行结果为:min=-34

详见教材p89 选择结构

本题考点是选择结构3种基本形式的第一种

一共包含了两个选择结构(两个if语句)

定义变量,并赋值此时a=12, b= -34, c=56, min=0

将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。

若min>b成立,则执行min=b;

若min>c成立,则执行min=c;

输出min中的值

12大于-34,第一个if语句的表达式成立,因此执行min=b; 执行后min中的值被更新为-34.

-34小于56,第二个if语句的表达式不成立,因此不执行min=c;

最后输出min中的值,为-34.

3.

#include

main()

{ int x=2,y= -1,z=5;

if(x

if(y<0)

z=0;

else

z=z+1;

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

}

运行结果为:5

遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号{ },说明复合语句中只包含一条语句,进而省略了{ }。内层的if...else...是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if...else...作为第一个if语句的复合语句。

若表达式x

若y<0,则执行z=0;

否则(即y>=0),执行z=z+1;

输出z

2>-1,表达式x

4.

#include

main()

{ float a,b,c,t;

a=3;

b=7;

c=1;

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

}

运行结果为:1.00, 2.00, 7.00

详见教材p72数据的输出形式

本题包含了3个if语句,每个if语句后的{ }都不可省略,因为每个{ }中都包含了多条语句

若表达式a>b成立,则执行{t=a;a=b;b=t;}

若表达式a>c成立,则执行{t=a;a=c;c=t;}

若表达式b>c成立,则执行{t=b;b=c;c=t;}

输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐

3小于7,因此表达式a>b不成立,因此不执行{t=a;a=b;b=t;}

3大于1,因此表达式a>c成立,则执行{t=a;a=b;b=t;}。第一句,将a中的3拷贝,粘贴到t中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3;第三句。将t中的3拷贝到c中,覆盖掉c中先前的1. 执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,。

7大于c中的3,因此b>c成立,执行则执行{t=b;b=c;c=t;},过程同上,执行后b为3,c为7,t为7

此时输出a,b,c中的值为1.00, 2.00, 7.00

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

5.

#include < stdio .h >

main ( )

{ float c=3.0 , d=4.0;

if ( c>d ) c=5.0;

else

if ( c==d ) c=6.0;

else c=7.0;

printf ( “%.1f\n”,c ) ;

}

运行结果为:7.0

此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。

若表达式c>d成立,则执行c=5.0;

否则(表达式c>d不成立)

若表达式c==d成立,则执行c=6.0;

否则,执行c=7.0;

输出c中的值

3.0小于

4.0,因此表达式c>d不成立,执行第二个if…else…。

3.0不等于

4.0,因此表达式c==d不成立,执行c=7.0,将7.0赋给c, 覆盖掉c中的3.0,此时c中的值为7.0

输出此时的c中的值

6.

#include

main()

{ int m;

scanf("%d", &m);

if (m >= 0)

{ if (m%2 == 0) printf("%d is a positive even\n", m);

else printf("%d is a positive odd\n", m); }

else

{ if (m % 2 == 0) printf("%d is a negative even\n", m);

else printf("%d is a negative odd\n", m); }

}

若键入-9,则运行结果为: -9 is a negative odd

7.

#include

main()

{ int num=0;

while(num<=2){ num++;printf("%d\n",num);}

}

运行结果为:

1

2

3

详见教材p115循环结构

当循环条件num<=2成立的时候,执行循环体{ num++;printf("%d\n",num);}中的语句。

循环初值num为0;

循环条件num<=2成立

第1次循环:执行num++;即将num中的值加1,执行后num为1;

执行printf("%d\n",num);在屏幕上输出num中的值,即输出1,之后换行

此时num中的值为1,循环条件num<=2成立

第2此循环:执行num++;即将num中的值加1,执行后num为2;

执行printf("%d\n",num);在屏幕上输出num中的值,即输出2,之后换行

此时num中的值为2,循环条件num<=2成立

第3此循环:执行num++;即将num中的值加1,执行后num为3;

执行printf("%d\n",num);在屏幕上输出num中的值,即输出3,之后换行

此时num中的值为3,循环条件num<=2不成立,结束循环。

8.

#include

main( )

{ int sum=10,n=1;

while(n<3) {sum=sum-n; n++; }

printf(“%d,%d”,n,sum);

}

运行结果为:3,7

当循环条件n<3成立的时候,执行循环体{sum=sum-n; n++; }中的语句。

循环初值sum为10,n为1;

循环条件n<3成立

第1次循环:执行sum=sum-n=10-1=9;

执行n++,即将n中的值加1,执行后n为2;

此时n中的值为2,sum中的值为9,循环条件n<3成立,继续执行循环

第2次循环:执行sum=sum-n=9-2=7;

执行n++,即将n中的值加1,执行后n为3;

输出此时n,sum中的值,即为3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号

9.

#include

main()

{ int num,c;

scanf("%d",&num);

do {c=num%10; printf("%d",c); }while((num/=10)>0);

printf("\n");

}

从键盘输入23,则运行结果为:32

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

详见教材p117循环结构;p60复合的赋值运算符

do{ }while(表达式);

先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号

定义整型变量num,c;

为num赋一个整型值;

执行{c=num%10; printf("%d",c); }直到循环条件(num/=10)>0不成立;

输出换行

已知为num赋值23

第1次执行循环体

执行c=num%10=23%10=3;

执行printf("%d",c);输出3

判断循环条件num/=10等价于num=num/10; 因此num=23/10=2, 2大于0,因此循环条件(num/=10)>0成立,继续执行循环体。执行完第1次循环时,num为2,c为3

第2次执行循环体

执行c=2%10=2;

执行printf("%d",c);再输出2

判断循环条件num=2/10=0,0等于0,因此循环条件(num/=10)>0不成立。结束循环

10

#include

main()

{ int s=0,a=5,n;

scanf("%d",&n);

do { s+=1; a=a-2; }while(a!=n);

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

}

若输入的值1,运行结果为:2,1

详见教材p117循环结构;p60复合的赋值运算符

执行{ s+=1; a=a-2; }直到循环条件a!=n不成立;

已知为n赋值1,s为0,a为5

第1次执行循环体

执行s+=1;等价于s=s+1=0+1

执行a=a-2; a=5-2=3

判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。

执行完第1次循环时,s为1,a为3

第2次执行循环体

执行s+=1;等价于s=s+1=1+1=2

执行a=a-2; a=3-2=1

判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。

执行完第2次循环时,s为2,a为1

输出此时s,a中的值,结果为2,1

11.

#include "stdio.h"

main()

{char c;

c=getchar();

while(c!='?') {putchar(c); c=getchar(); } }

如果从键盘输入abcde?fgh(回车)

运行结果为:abcde

12.

#include

main()

{ char c;

while((c=getchar())!=’$’)

{ if(‘A’<=c&&c<=‘Z’) putchar(c);

else if(‘a’<=c&&c<=‘z’) putchar(c-32); }

}

当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD

13.

#include

main()

{ int x, y =0;

for(x=1;x<=10;x++)

{ if(y>=10)

break;

y=y+x;

}

printf(“%d %d”,y,x);

}

运行结果为:10 5

详见教材p120 for语句

详见教材p126~128 break,continue语句

for( 表达式1;表达式2;表达式3)

{

}

(1) 先求解表达式1

(2) 求解表达式2,若其值为真,执行循环体,然后执行(3). 若为假,则结束循环,转到(5)

(3) 求解表达式3

(4) 转回上面(2)继续执行

(5) 循环结束,执行for语句下面的一个语句

break ,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环)

此题表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x++

初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体

第1次循环

执行if语句。0小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=0+1=1

转向表达式3,执行x++, x=x+1=1+1=2。循环条件x<=10成立,进入第2次循环第2次循环

执行if语句。1小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=1+2=3

作者:中涓害

作品编号:8002GN621401526429853

创作日期:2020.12.14

转向表达式3,执行x++, x=x+1=2+1=3。循环条件x<=10成立,进入第3次循环第3次循环

执行if语句。3小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=3+3=6

转向表达式3,执行x++, x=x+1=3+1=4。循环条件x<=10成立,进入第4次循环第4次循环

执行if语句。6小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=6+4=10

转向表达式3,执行x++, x=x+1=4+1=5。循环条件x<=10成立,进入第5次循环第5次循环

执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。

从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x);

输出当前的y与x.结果为10 5

14.

#include

main( )

{ char ch;

ch=getchar( );

switch(ch)

{ case ‘A’ : printf(“%c”,’A’);

case ‘B’ : printf(“%c”,’B’); break;

default: printf(“%s\n”,”other”);

} }

当从键盘输入字母A时,运行结果为:AB

详见教材p103,switch语句

switch(表达式)

{ case 常量1 :语句1

case 常量2 :语句2

┇┇┇

case 常量n :语句n

default : 语句n+1

}

其中表达式,常量1,…,常量n都为整型或字符型

case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束

本题过程:

首先从键盘接收一个字符’A’并将其放在变量ch中。

执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的case中的常量匹配。

与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break,此时跳出switch语句。

15.

#include

main( )

{ int a=1,b=0;

scanf(“%d”,&a);

switch(a)

{ case 1: b=1;break;

case 2: b=2;break;

default : b=10;}

printf("%d ", b);

}

若键盘输入5,运行结果为:10

本题过程:

首先用scanf函数为变量a赋值为5。

执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。

输出变量b,结果为10

16.

#include

main()_

{ char grade=’C’;

switch(grade)

{

case ‘A’: printf(“90-100\n”);

case ‘B’: printf(“80-90\n”);

case ‘C’: printf(“70-80\n”);

case ‘D’: printf(“60-70\n”); break;

case ‘E’: printf(“<60\n”);

default : printf(“err or!\n”);

}

}

运行结果为:

70-80

60-70

本题过程:

首先从键盘接收一个字符’C’并将其放在变量grade中。

执行switch语句。switch后面的条件表达式为grade,因此表达式的值即为字符’C’. 用字符’C’依次与下面的case中的常量匹配。

与第3个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80\n”);,屏幕上输出70-80,并换行;再往下继续执行printf(“60-70\n”),屏幕上输出60-70,并换行;再继续执行break,此时跳出switch语句。

17.

#include

main()

{ int y=9;

for(;y>0;y- -)

if(y%3==0)

{ printf(%d”,- -y);

}

}

运行结果为:

852

详见教材p53,自增自减符号

此题表达式1被省略,表达式2(循环条件)为y>0,表达式3为y--

初值y为9,循环条件(即表达式2)y>0成立,进入循环体

解析几何试题库完整

解析几何题库 一、选择题 1.已知圆C 与直线x -y =0 及x -y -4=0都相切,圆心在直线x +y =0上,则圆C 的方程为 A.2 2(1)(1)2x y ++-= B. 22(1)(1)2x y -++= C.2 2(1) (1)2x y -+-= D. 22(1)(1)2x y +++= 【解析】圆心在x +y =0上,排除C 、D,再结合图象,或者验证A 、B 中圆心到两直线的距离等于半径2即可. 【答案】B 2.直线 1y x =+与圆221x y +=的位置关系为( ) A .相切 B .相交但直线不过圆心 C .直线过圆心 D .相离 【解析】圆心(0,0)为到直线1y x =+,即10x y -+= 的距离2d = = ,而012 < <,选B 。 【答案】B 3.圆心在y 轴上,半径为1,且过点(1,2)的圆的方程为( ) A .2 2(2)1x y +-= B .2 2(2)1x y ++= C .2 2(1) (3)1x y -+-= D .2 2(3)1x y +-= 解法1(直接法):设圆心坐标为(0,)b 1=,解得2b =,故圆的方程为22(2)1x y +-=。 解法2(数形结合法):由作图根据点(1,2)到圆心的距离为1易知圆心为(0,2),故圆的方程为2 2(2)1x y +-= 解法3(验证法):将点(1,2)代入四个选择支,排除B ,D ,又由于圆心在y 轴上,排除C 。 【答案】A 4.点P (4,-2)与圆2 24x y +=上任一点连续的中点轨迹方程是 ( ) A.2 2(2)(1)1x y -++= B.2 2(2) (1)4x y -++= C.2 2(4) (2)4x y ++-= D.2 2(2) (1)1x y ++-= 【解析】设圆上任一点为Q (s ,t ),PQ 的中点为A (x ,y ),解得:? ??+=-=224 2y t x s ,代入圆方程,得(2x -4)2 +(2y +2)2 =4,整理,得:2 2(2) (1)1x y -++= 【答案】A 5.已知直线12:(3)(4)10,:2(3)230,l k x k y l k x y -+-+=--+=与平行,则k 得值是( ) A. 1或3 B.1或5 C.3或5 D.1或2

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

解析几何考试试卷与答案_西南大学

西南大学 数学与统计学院 2012级 一、填空题(共7题,2分/空,共20分) 1.四点(0,0,0)O ,(1,0,0)A ,(0,1,1)B ,(0,0,1)C 组成的四面体的体积是___1 6___. 2.已知向量(1,1,1)a → =,)3,2,1(=→b ,(0,0,1)c →=,则→ →→??c b a )(=__(-2,-1,0)____. 3.点)1,0,1(到直线???=-=03z x y x 的距离是 4.点)2,0,1(到平面321x y z ++=的距离是 5.曲线C:220 1 x y z z x ?+-=?=+?对xoy 坐标面的射影柱面是___2210x x y -+-=____, 对yoz 坐标面的射影柱面是__22(1)0z y z -+-=_________,对xoz 坐标面的射影柱面是____10z x --=__________. 6.曲线C:220 x y z ?=?=?绕x 轴旋转后产生的曲面方程是__4224()x y z =+_____,曲线 C 绕y 轴旋转后产生的曲面方程是___222x z y +=_______________. 7.椭球面125 492 22=++z y x 的体积是_____40π____________. 二、计算题(共4题,第1题10分,第2题15分,第3题20分, 第4题10分,共55分) 1. 过点(,,)P a b c 作3个坐标平面的射影点,求过这3个射影点的平面方程.这里 ,,a b c 是3个非零实数. 解: 设点(,,)P a b c 在平面0z =上的射影点为1(,,0)M a b ,在平面0x =上的射影点为2(0,,)M a b ,在平面0y =上的射影点为3(,0,)M a c ,则12(,0,)M M a c =-, 13(0,,)M M b c =-

解析几何第四版吕林根期末复习课后习题(重点)详解

第一章 矢量与坐标 §1.3 数量乘矢量 4、 设→→→+=b a AB 5,→→→+-=b a BC 82,)(3→ →→-=b a CD ,证明:A 、B 、D 三点共线. 证明 ∵→ → → → → → → → → → =+=-++-=+=AB b a b a b a CD BC BD 5)(382 ∴→ AB 与→ BD 共线,又∵B 为公共点,从而A 、B 、D 三点共线. 6、 设L 、M 、N 分别是ΔABC 的三边BC 、CA 、AB 的中点,证明:三中线矢量AL , BM , 可 以构成一个三角形. 证明: )(21 AC AB AL += Θ )(21 += )(2 1 CB CA CN += 0)(2 1 =+++++=++∴ 7.、设L 、M 、N 是△ABC 的三边的中点,O 是任意一点,证明 ++=OL +OM +ON . [证明] +=Θ MB OM OB += NC ON OC += )(OM +++++=++∴ =)(CN BM AL ON OM OL ++-++ 由上题结论知:0=++ ON OM OL OC OB OA ++=++∴ 从而三中线矢量CN BM AL ,,构成一个三角形。 8.、如图1-5,设M 是平行四边形ABCD 的中心,O 是任意一点,证明 OA +OB ++OD =4OM . [证明]:因为OM = 21 (OA +), OM =2 1 (OB +), 所以 2OM =2 1 (OA +OB +OC +) 所以 OA +OB ++OD =4OM . 10、 用矢量法证明梯形两腰中点连续平行于上、下两底边且等于它们长度和的一半. 图1-5

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了____15_________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; ___i<100____________; i++) if (___i/3_=__=0__i_______) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是_________7 ______ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

解析几何期末试卷A参考答案及评分标准.

解析几何期末试卷A 参考答案及评分标准 一、(10分)写出下列方程在空间所表示的图形名称. 1.13212 22-=++z y x 虚椭球面 2.02 22=++-z y x 二次锥面(圆锥面) 3.1321222=++-z y x 单叶双曲面 4.y z x 22122=+ 椭圆抛物面 5.y x 22 = 抛物柱面 . 二、(10分)试证:对于给定的四个向量}3,5,1{=a ,}2,4,6{--=b ,}7,5,0{-=c , }35,27,20{--=d ,总可以确定三个实数l ,m ,n ,使得a l ,b m ,c n ,d 构 成封闭折线. 证明:假设a l ,b m ,c n ,d 构成封闭折线,则 =+++d c n b m a l (4分) 于是 ??? ??=-+-=+--=-+0 357230275450206n m l n m l m l (6分) 解出 2=l ,3=m ,5=n 所以命题成立. (10分) 三、(15分)设向量a ,b ,c 两两互相垂直,1||=a ,2||||==c b ,并且向量c b a r -+=,证明: 1,cos ,cos ,cos 222>=<+><+>====<+><+>

大学C语言期末考试习题集(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

解析几何2014-2015期末试卷(A卷)

杭州师范大学理学院2014-2015 学年第一学期期末考试

(A )(6,24,8)-- (B)(6,24,8) (C)(6,24,8)-- (D) (6,24,8) - 4、 直线 12101x y z +-==与平面10x y +-=的夹角为 ( ) (A )3π (B )3π或23π (C )6π (D )6 π或56π 5、 平面12(22)(342)0x y z x y z λλ+++++-=,如在z 轴上的截距为2,则12:λλ=( ) (A ) 2:3 (B )3:2 (C )-2:3 (D )-3:2 6、 点(2,1,1)M -和坐标原点在平面1:3210x y z π+-+=和2:31120x y z π+++=的( ) (A )同一个二面角内; (B )相邻二面角内; (C )对顶二面角内; (D )不能确定。 7、 曲线22 2201 y z b c x -=????=? 绕y 轴旋转所得到的曲面叫做 ( ) (A )单叶双曲面 (B )双叶双曲面 (C )圆锥面 (D )圆柱面 三、计算题(共50分) 1、已知四面体ABCD 的三个顶点为(1,0,1)A ,(1,1,5)B -,(1,3,3)C ---,(0,3,4)D ,求此四面体的体积。 (7分) 2、求通过直线5040 x y z x z ++=??-+=?且与平面4820:1x y z π--+=成4π 角的平面方程。(7分)

3、已知向量3a b + 与75a b - 垂直,4a b - 与72a b - 垂直,求向量,a b 的夹角。(6分) 4、已知异面直线120 :1,00:10x y l z x y l z -?+==??=+-??=? ,求1l 和2l 间的距离及公垂线方程。(8分) 5、求单叶双曲面222 14916 x y z +-=的过点(2,3,4)M - 的直母线方程。 (8分) 6、过点(2,1,3)A -与直线12 10:2 l x y z --==-相交且垂直的直线方程。(7分)

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

2015年《高校自主招生考试》数学真题分类解析之7、解析几何

专题之7、解析几何 一、选择题。 1.(2009年复旦大学)设△ABC三条边之比AB∶BC∶CA=3∶2∶4,已知顶点A的坐标是(0,0),B的坐标是(a,b),则C的坐标一定是 2.(2009年复旦大学)平面上三条直线x?2y+2=0,x?2=0,x+ky=0,如果这三条直线将平面划分成六个部分,则k可能的取值情况是 A.只有唯一值 B.可取二个不同 值 C.可取三个不同 值 D.可取无穷多个 值 3.(2010年复旦大学)已知常数k1,k2满足0

A.y=x?1 B.y=?x+3 C.2y=3x?4 D.3y=?x+5 7.(2011年复旦大学)设有直线族和椭圆族分别为x=t,y=mt+b(m,b为实数,t为参数)和(a是非零实数),若对于所有的m,直线都与椭圆相交,则a,b应满足 A.a2(1?b2)≥1 B.a2(1?b2)>1 C.a2(1?b2)<1 D.a2(1?b2)≤1 8.(2011年复旦大学)极坐标表示的下列曲线中不是圆的是 A.ρ2+2ρ(cos θ+sin θ)=5 B.ρ2?6ρcos θ?4ρsin θ=0 C.ρ2?ρcos θ=1 D.ρ2cos 2θ+2ρ(cos θ+sin θ)=1 9. 10.(2012年复旦大学) B.抛物线或双曲 C.双曲线或椭圆 D.抛物线或椭圆 A.圆或直线 线 11.(2011年同济大学等九校联考)已知抛物线的顶点在原点,焦点在x轴上,△ABC的三个顶点都在抛物线上,且△ABC的重心为抛物线的焦点,若BC边所在直线的方程为4x+y?20=0,则抛物线方程为 A.y2=16x B.y2=8x C.y2=?16x D.y2=?8x A.2 B.2 C.4 D.4 13.(2011年清华大学等七校联考)AB为过抛物线y2=4x焦点F的弦,O为坐标原点,且∠OFA=135°,C为抛物线准线与x轴的交点,则∠ACB的正切值为 14.(2012年清华大学等七校联考)椭圆长轴长为4,左顶点在圆(x?4)2+(y?1)2=4上,左准线为y 轴,则此椭圆离心率的取值范围是

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

线性代数与解析几何试题(附解析)-中国科技大学

中 国 科 学 技 术 大 学 2005—2006学年第2学期考试试卷 考试科目: 线性代数 得分: 学生所在系: 姓名: 学号: 一、判断题(30分,每小题6分)。判断下列命题是否正确,并简要说明理由。 1. 三维空间向量c b,a,共面的充要条件是0det =??? ? ? ???????????c c b c a c c b b b a b c a b a a a 。 2. 设A 为n 阶实正交方阵,I 为n 阶单位阵,则I A 2-为可逆方阵。 3. 设n m ?阶非零实矩阵A 和B 满足0='B A ,则A 的行向量线性相关, 并且B 的行向量也线性相关。 4. 设)(R M n 是n 阶实方阵全体按矩阵的加法与数乘运算构成的线性空间,则 满足0tr =A 的n 阶实方阵A 的全体构成)(R M n 的子空间。 5. 设B A ,为方阵,且???? ? ?B A 是实正定对称方阵,则B A ,也是实正定对称方阵。 二、计算题(62分)。 1. (15分)b a ,为何值时,下列线性方程组有解?当有解时,求出该方程组的通解。 ?????? ?=-+++=+++=-+++=++++b x x x x x x x x x a x x x x x x x x x x 5432154325 432154321334536223231 2. (15分)设n 阶实方阵?????? ? ??----=211211 2O O A n ,求n A det 和1 4 -A 。 3. (17分)设V 是由所有2阶实方阵构成的实线性空间。在定义内积Y X Y X '=tr ),(后, V 成为一个欧氏空间。现定义V 上的变换X X X '+ : A 。 (1)证明: A 是一个线性变换;(2)求 A 在基??? ??????? ?????? ?????? ?????? ? ?1000,0100,0010,0001下的表示矩阵; (3)求 A 的所有特征值与特征向量;(4)求V 的一组标准正交基,使得 A 在此基下的表示矩阵为对角阵。 4. (15分)通过正交变换化二次型222)()()(),,(x z z y y x z y x f -+-+-=为标准形;并判 断三维欧氏空间中的曲面3)()()(222=-+-+-x z z y y x 是哪一类曲面。 三、证明题(8分)。以下两小题任选一题。 1. 设n m R A ?∈,m n R B ?∈,I 是n 阶单位方阵。证明: (1))rank(0rank AB n B I A +=??? ? ? ?-。 (2)n B A AB -+≥)rank()rank()rank(。 2. 设实对称方阵A 满足3A A =,证明:A 正交相似于对角形???? ? ? ?-0s r I I 。

上海海事大学(C语言期末)上机题库

试卷编号:9688 所属语言:C语言 试卷方案:期中考试 试卷总分:100分 共有题型:5种 一、填空共15题(共计15分) 第1题(1.0分)题号:528 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是【1】. 答案: =======(答案1)======= 28 第2题(1.0分)题号:78 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 答案: =======(答案1)======= 15 第3题(1.0分)题号:510 若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案: =======(答案1)======= 2 第4题(1.0分)题号:437 以下程序的输出结果为【1】, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);}

答案: =======(答案1)======= 9,10 第5题(1.0分)题号:431 执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案: =======(答案1)======= 97 b *第6题(1.0分)题号:293 getchar()函数只能接收一个【1】. 答案: =======(答案1)======= 字符 第7题(1.0分)题号:440 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案: =======(答案1)======= 1 第8题(1.0分)题号:95 已知a=13,b=6, a&&b的十进制数值为【1】. 答案: =======(答案1)======= 1 第9题(1.0分)题号:306 当a=1,b=2,c=3时,执行以下程序段后b=【1】.

空间解析几何试题

空间解析几何试卷 一、填空题(本大题共计30分,每空3分。请把正确答案填在横线上) 1. 设向量{}{}1,1,2,0,1,1=--=→→b a ,则→→b a 在上的射影是_____________,→ a 是 _______________. 2. 设向量{}3,5,4-=→a ,向量225共线,反向且模为与→→a b ,那么向量→b 的坐标是 ________________. 3. 已知向量{ }{}3,2,,1,1,1x b a ==→→, 如果→→b a ,垂直, 那么x =_________. 4. 已知向量{}{},0,3,2,1,0,1=-=→→b a {}2,1,0=→c ,则由这3个向量张成的平行六面体的体积是_________. 5. 直线z y x -=-+= -3212与直线2 112-+=-=z y x 间的距离是_____________. 6. 若直线123z y a x ==- 与平面x-2y+bz=0平行,则a,b 的值分别是______________. 7. 经过直线? ??=-+-=-+0201z y x y x 且与直线z y x 2==平行的平面的方程是_________________. 8. 空间曲线???+==-+1 022x z z y x 在y x 0坐标面上的射影曲线和射影柱面的方程分别 是_____________________________. 9. 顶点在原点、准线为抛物线???==1 22z x y 的锥面方程是________________(请用 x y x ,,的一个方程表示). 10. 曲线?????==-0 19422y z x 绕x 轴旋转后产生的曲面方程是__________________,此曲面表示______________曲面.

大学生C语言期末考试必做题库

C语言

第一题 在屏幕上显示一个短句“Programming in C is fun!” #include int main() { printf("Programming in C is fun!\n"); return 0; } 第二题 在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ #include int main( ) { printf("+---+---+\n| | |\n| | |\n+---+---+\n"); return 0; } 第三题 在屏幕上显示一条语句“This is a C program.” #include int main() { printf("This is a C program.\n"); return 0; } 第四题 输出如下图形: ********** very good! ********** #include int main( ) { printf("**********\nvery good!\n**********\n"); return 0; }

第一题求平方根(基础) 程序填空,不要改变与输入输出有关的语句。 输入1个实数x,计算并输出其平方根(保留1位小数)。 例:输入17输出The square root of 17.0 is 4.1 #include #include int main( ) { double x, root; scanf("%lf", &x); root=sqrt(x); printf("The square root of %0.1f is %0.1f\n", x, root); return 0; } 第二题计算一个三位数的个十百位之和 编写程序。 输入一个三位数(大于0),计算这个三位数的个位、十位、百位数字之和. 例如:输入:152输出:sum=8 #include #include int main() { int n,a,b,c,sum; scanf("%d",&n); a=n/100; b=n%100/10; c=n%10; sum=a+b+c; printf("sum=%d\n",sum); return 0; } 第三题(公共)求圆的周长、面积及圆球体积 程序填空,不要改变与输入输出有关的语句。 求以r为半径的圆周长c和圆面积s,再求以r为半径的圆球体积v。(已知r=3.67在程序中直接赋值,pi的值为3.1415926) 按照下列形式输出: printf("c=%f\ns=%f\nv=%f\n",c,s,v); #include int main( ) { double r,c,s,v,pi=3.1415926; r=3.67; c=2*pi*r;

大学生数学竞赛空间解析几何练习题

试题1:如果平面:0Ax By D π++=与曲面261z xy +=的交线是圆,求实数,A B 的比值。 解:不妨设0B ≠以平面π为新的''X Y 平面,以(0,/,0)D B -为原点,以 '223(,,0)/e A B A B =+,'22'''1231(,,0)/,(0,0,1)e B A A B e e e =-+=?=为基本向量 建立一个新的坐标系''''O X Y Z ,则坐标变换公式为 '' 2222 ''2222'/B A x x z A B A B A B y D B x z A B A B z y ?=+?++? ?=-- +?++? ?=?? 在新的坐标系中,平面的方程为:'0z =, 而曲线的方程为: '2'''' 22 22 2 2 2 2 6( )(/)1 B A A B y x z D B x z A B A B A B A B ++ -- + =+++ + 所以交线的方程为: '2' '''22 22 22 22 '6()(/)1 B A A B y x z D B x z A B A B A B A B z ?++--+ =?++++? ?=? 化简得: '2' '22 22 '6()(/)1 0B A y x D B x A B A B z ?+--=?++? ?=? 因为交线是圆,所以 226AB A B -=+ 解得 322A B =-.

试题2:求过点)0,1,0(P 并且和两条直线 ? ? ?=+=+++?? ?=+=++020 13:,0201:21y x z y x l y x y x l 均相交的直线的方程。 解:把直线的方程化为点向式方程为: ,1 11 2 :,1 20 1:21-+==-=+=-z y x l z y x l 设所求的直线为,l 记l 和i l 所确定的平面为,1,2i i π=,那么12l ππ=, 试题3:在二次曲面2222360x y z xy xz z +-++-=上,求过点(1,4,1)-的所有直线的方程. 解:设所求的直线的方程为:141x lt y mt z nt =+??=-+??=+? ,又因为所求的直线在二次曲 面上,所以对任意的,t 有 2222(1 )(4)(1) 3(1)( 4)(1)(1 )6(1) l t m t n t l t m t l t n t n t ++--+++-+++-+=, 化简得; 2222(23)(757)0t l m n ml nl l m n t +-++-++= 由于上式对任意的,t 都成了,所以 222230 (1)7570l m n ml nl l m n ?+-++=? ++=? 由于n m l ,,可相差一个公共的非零常数倍,所以可分两种情况讨论 (1):,0=l 代入方程组(1)得 220 (1)570 m n m n ?-=? +=?

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