文档库 最新最全的文档下载
当前位置:文档库 › C语言期末复习卷习题

C语言期末复习卷习题

C语言期末复习卷习题
C语言期末复习卷习题

期末总复习(基础知识+程序设计部分)

一.填空

1.已知char ch=’A’; 则下列表达式的值是: a

Ch=(ch>=’A’ && ch<=’Z’)? (ch+32):ch;

2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是7

3.若x=2,y=3,则x%=y+3之值为 2

4.. 若有定义int y=3; float z=

5.2, x=4.8; 则表达式y+=(int)x+x+z的值为17

5. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值

1)(x&&y)==(x||z) 1

2)!(x>y)+(y!=z)||(x+y)&&(y-z) 0

3)x++-y+(++z) 13

6. 设x,y,z为int型变量,请用C语言表达式描述下列命题

1)x和y中有一个小于z (xz||x>z&&y

2) x,y和z中有两个为负数(x<0&&y<0&&z>=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1

3)y是奇数y%2 !=0

7. 下面for循环语句最多可执行 4 次

For (x=0,y=0 ;(y !=99)&&(x<4) ;x++)

8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是10

for (i=0,j=10 ;i<=j ;i++,j--)

k=i+j ;

9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为7 y的值为9z的值为7

m=10 ; n=5;

x=(--m==n++)? --m : ++n;

y=m++;

z=n;

10. 若有说明语句:w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 4

11. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void

12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储

13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归

14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。

15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。N*j+m+1

16.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占16 个字节。

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

18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。\0为停止符

19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 6

20. 执行下列程序段后,*p等于 3

int a[5]={1,3,5,7,9}; *p=a;p++;

二.判断(true or false)

1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。

T

2.函数可以嵌套定义F

3.函数必须有返回值,否则不能正确作用F

4.C程序中有调用关系的所有函数必须放在同一源程序文件中。F

5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

6.函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F

7.当函数定义放在main()函数前面时,可以缺省函数声明。T

8.C语言中允许函数嵌套调用T

9.局部静态变量是在编译时赋初值的,即只赋一次初值。T

10.外部变量必须定义在文件的开头部分F

11.字符’\0’是字符串的结束标记,其ASCII码为0.T

12.若有说明 :int a[3][4]={0};则数组a中每个元素的初值都为0.T

13.若有说明 :int a[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0,其余元素的初值均不

为0. F

14.若有说明 :int a[3][4];则数组a中各元素可在程序的编译阶段达到初值0.F

15.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。F

16.在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。F

17.当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。T

18.在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。F

19.&b指的是变量b的地址处所存放的值;F

20.指针变量可用于保存同类型变量的地址值;F

21.存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F

22.指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。F

23.如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变

量,数组名或简单变量的地址T

24.char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符

数据的指针型数据。F

25.语句y=*p++;和y=(*p)++;是等价的。F

26.函数指针指向的是函数的入口地址。T

27. int *p;定义了一个指针变量,其值是整型的。F

28.用指针作为函数参数时,采用的是“地址传送”方式.T

三、选择题

1.下列变量名中哪些是合法的?

π 2a a# C$ t3 _var θ int

2.语言中用________表示逻辑值“真”。

A) true B) 整型值0C) 非零整数值D) T

3.下列合法的字符常量为________。

A) "a" B) '\n' C) 'china' D) a

4. 设有语句char c='\72'; 则变量c________。

A) 包含1个字符 B)包含2个字符 C) 包含3个字符 D) 不合法 5. 字符串"\t\"Name\\Address\n"的长度为________。

A) 19 B) 15 C) 18 D) 不合法

6. 设a,b,c 为 int 型变量,且a = 3 ,b = 4 , c = 5,下面表达式值为0的是________。

A) 'a' && 'b' B) a <= b

C) a || b+c && b-c D) !((a

7. 若有以下定义:

char a ; int b ; float c ; double d ;

则表达式 a * b + d – c 的值的类型为_____________ A) float B) int C) char

D) double 8. 设有语句int a = 3; 执行了语句a += a -= a * a; 后,变量a 的值是________。

A) 3 B) 0 C) 9 D) -12 9. 设有语句int a = 3; 执行了语句printf("%d", -a ++); 后,输出的结果是__C______,变量a 的值是__D_____。

A) 3 B) 4 C) -3 D) -2

10. 将下列数学表达式表示为合法的C 语言表达式。

(1) c

b a 22

2+ (2) 2))((+++d c b a (3) 2/))sin((ln y x + (4) r π2 (5) x

111+ (6) x

x

y y e ++22)30sin( 12. 下列可作为C 语言赋值语句的是:_____________。

A) x = 3, y = 5 B) a = b = c C) i -- ; D) y = int ( x ) ;

13. 以下程序的输出结果为:_____________。

main()

{ int a = 2, c = 5;

printf("a = %%d, b = %%d\n", a, c);

}

A) a = %2, b = %5 B) a = 2, b = 5 C) a=%%d, b=%%d D) a=%d, b=%d

14. 在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中s1和s2表示它是C 语句),这个不等价的语句是: 。 A) if (a) s1; else s2;

B) if (!a) s2; else s1;

C) if (a != 0) s1; else s2;

D) if (a == 0) s1; else s2;

15. 设有声明语句:int a=1,b=0;则执行以下语句后输出为: 。

switch (a)

{

case 1:

switch (b)

{

case 0: printf("**0**");break;

case 1: printf("**1**");break;

}

case 2: printf("**2**");break;

}

A)**0** B) **0****2** C)**0****1****2** D)有语法错误16.在while (x)语句中的x

A) x == 0 B) x == 1 C) x != 1

17. 若int x;且有下面的程序片断,则输出结果为:。

for (x=3; x<6; x++)

{

printf((x%2)==0? "**%d" : "##%d\n", x);

}

A) **3B) ##3C) ##3D) **3##4

##4 **4 **4##5 **5

**5 ##5

18. 以下能对外部的一维数组a(含有10个元素)进行正确初始化的语句是:。

A) int a[10] = (0,0,0,0,0);

B) int a[10] = {};

C) int a[] = {0};

D) int a[10] = {10*1};

19. 以下能对外部的二维数组a进行正确初始化的语句是:。

A) int a[2][] = {{1,0,1},{5,2,3}};

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

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

D) int a[][3] = {{1,0,2},{},{2,3}};

20. 若二维数组a有m列,则在a[i][j]之前的元素个数为:。

A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1

21. 已知:static int a[3][4];则数组a 中各元素。

A) 可在程序运行阶段得到初值0 B) 可在程序编译阶段得到初值0

C) 不能得到确定的初值D) 可在程序的编译或运行阶段得到初值0

22. 判断字符串s1是否大于字符串s2,应当使用:。

A) if (s1 > s2) B) if (strcmp(s1, s2))

C) if (strcmp(s2, s1) > 0) D) if (strcmp(s1, s2) > 0)

23. .若用数组名作为函数调用时的实参,则实际上传递给形参的是:。

A) 数组的首地址;B) 数组的第一个元素值;

C) 数组中全部元素的值;D) 数组元素的个数。

24. 在函数调用时,以下说法中正确的是:。

A) 在C语言中,实参与其对应的形参各占独立的存储单元;

B) 在C语言中,实参与其对应的形参共占同一个存储单元;

C) 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

D) 在C语言中,形参是虚拟的,不占存储单元。

25. C语言中形参的缺省存储类别是:。

A) 自动(auto)B) 静态(static) C) 寄存器(register)D)外部

(extern)

26. C语言规定:简单变量做实参时,它和对应形参之间数据的传递方式为:。

A) 地址传递;B) 单向值传递;

C) 由实参传给形参,再由形参传回给实参;D) 由用户指定传递方式。

27.

(1)阅读程序,选择程序的运行结果。

#include

int Try(int n)

{

if (n > 0)

return(n*Try(n-2));

else

return 1;

}

main()

{

int x;

x = Try(5);

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

}

A. 15

B. 120

C. 1

D. 前面三个答案都是错的

(2)下面的函数f两次进行调用,请选择程序的运行结果。

#include

int Fun(int m)

{

static int n = 0;

m /= 2;

m =m * 2;

if (m)

{

n *= m;

return(Fun(m-2));

}

else

return n;

}

main()

{

int a,i,j;

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

{

a = Fun(4+i);

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

}

}

①第一次输出的结果 A. 8 B. 0 C. 64 D. 4

②第一次输出的结果 A. 8 B. 0 C. 64 D. 4

28. 设有语句:int a[10], *p=a ;,则在下面语句中,不正确的是

A) P=P+1 B)P[0]=*P+1 C)a[0]= a[0]+1 D)a=a+1

29. 指向变量的指针,其含义是指该变量的

A)值 B)地址 C)名 D)一个标志

30.若int(*p)[5] ;,则其中p的含义是

A) 5个指向整形变量的指针 ;

B) 指向5个整形变量的函数指针;

C)一个指向具有5个整形元素的一维数组的指针;

D)具有5个指针元素的一维数组指针,每个元素都只能指向整型量;

31. 设有定义:int a=3,b,*p=&a;则下列语句中使b不为3的语句是

A) b=*&a; B)b=*P; C)b= a; D)b=*a;

32. 设char **s;则以下表达式中,正确的是

A) s=”computer”; B) *s=”computer”;

C) **s=”computer”; D)*s=’s’

33. 设 char s[10], *p=s;,以下表达式中不正确的是

A) p=s+5; B)s=s+p; C)s[2]=p[4]; D)*p=s[0];

34. 执行下列程序段后,*p等于

int a[5]={1,3,5,7,9}, *p=a; p++

A) 1; B)3; C)5; D)7;

程序设计题

1.编程计算1*2*3 + 3*4*5 + 99*100*101的值。

#include

int main()

{

int i,j,k,sum=0;

for(i=1,j=2,k=3;i<100,j<101,k<102;i+=2,j+=2,k+=2)

sum=sum+i*j*k;

printf("%d\n",sum);

}

2. 编程计算 a + aa + aaa + …. + aa..a (n 个a)的值,n 和a 的值由键盘输入。

#include

Void main()

{

int n,a,i;

int sum,na;

printf("Please input n and a:");

scanf("%d %d",&n,&a);

sum=0;

na=a;

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

{

sum+=na;

na=na*10+a;

}

printf("sum=%d\n",sum);

}

3. 利用 (7)

656543432122??????=π

前100项之积计算π。 #include

int main()

{

float a=2,b=1;

double num=1;

int i;

for (i=1;i<=100;i++)

{

num*=a/b;

if(i%2==0)a+=2;

else b+=2;

}

num*=2;

printf("π=%.16lf \n",num);

}

4. 按如下格式打印100以内整数的平方根表。

950

.9899.9849.9798.9747.9695.9644.9592.9539.9487.99434

.9381.9327.9274.9220.9165.9110.9055.9000.9944.88888

.8832.8775.8718.8660.8602.8544.8485.8426.8367.87307

.8246.8185.8124.8062.8000.8937.7874.7810.7746.76681

.7616.7550.7483.7416.7348.7280.7211.7141.7071.75000.7928.6856.6782.6708.6633.6557.6481.6403.6325.64245

.6164.6083.6000.6916.5831.5745.5657.5568.5477.53385

.5292.5196.5099.5000.5899.4796.4690.4583.4472.42359

.4243.4123.4000.4873.3742.3606.3464.3317.3162.31000

.3828.2646.2449.2236.2000.2732.1414.1000.1000.009

876543210

5. 编程计算)!

(!k m k p -=的值。(m,k 从键盘上输入,m>k )

6.用整数1-12依次表示1-12月,由键盘输入一个月份数,输出对应的季节英文

名称(12-2月为冬季,3-5月为春季,6-8月为夏季,9-11月为秋季),要求输入输出表达的意义清楚明白。

7.编程打印以下图形

1

121

12321

1234321

12345678987654321

8.用递归的方法求n的阶乘

9.编写求两个整数的最大公约数和最小公倍数的函数

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

c语言期末复习试题(附答案)

试卷编号:11201 所属语言:C语言 试卷方案:C语言期末考试 试卷总分:100分 共有题型:4种 一、单项选择共30题(共计60分) 第1题(2.0分) 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 第2题(2.0分) 已知int i=5,执行语句i+=++i后, i的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(2.0分) 以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A:注释语句书写位置错误 B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法 D:计算圆面积的赋值语句中使用了非法变量 第4题(2.0分) "\\\″ABC\″\\″的长度是( B ). A:11 B:7 C:5 D:3 第5题(2.0分) 已知int j,i=1;,执行语句j=–i++;后,j的值是( C ). A:1 B:2 C:-1 D:-2 第6题(2.0分) 有以下程序: #include void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a–2; }while(a!=n); printf("%d\n", s); } 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1 B:-3

江苏大学大一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)

c语言期末考试及答案讲解

C语言考试模拟试卷 1.若有定义:char c;int d;程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是 A、scanf("c=%d d=%d",&c,&d); B、scanf("c=%c d=%d",&c,&d); C、scanf("c=%d,d=%d",&c,&d); D、scanf("c=%c,d=%d",&c,&d); 【答案】D 【解析】scanf()函数中,%d对应的参数是整数型地址,%c对应参数为char 型地址,C,A选项错误;如果输入地址有多个,应该用逗号隔开,B选项错误,故答案为D选项。 2.以下叙述错误的是 A、在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法 B、同一程序各模块可由一组人员同时进行编写调试,可提高编写程序的效率 C、模块化的程序设计是采用自顶向下、逐步细化的原则 D、程序的每个模块都可通过三种基本结构实现 【答案】A 【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成各个模块的编写调试后

再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A选项叙述错误,C选项叙述正确。各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B选项叙述正确。结构化程序主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D选项叙述正确。故选择A选项。 3.设有定义:int a=0,b=1,c=1; 以下选项中,表达式值与其它三个不同的是 A、b=a==c B、a=b=c C、a=c==b D、c=a!=c 【答案】A 【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。A选项逻辑表达式a==c不成立(0),则 b=0,表达式值为0。B选项中将c赋值给b,b=1,再将b赋给a,a=1,表达式值为1。C选项逻辑表达式c==b成立(1),则a=1,表达式值为1。D选项逻辑表达式a!=c成立(1),则c=1,表达式值为1。A选项与其他选项不同,A选项正确。 4.设有两行定义语句:

c语言期末复习试题

试卷编号:11201 所属语言:试卷方案:试卷总分:共有题型:C 语言 C 语言期末考试100 分 4种 一、单项选择共30 题(共计60 分)第1 题设有定义分) :int k=0;, 以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 分) 第2题 已知int i=5, 执行语句i+=++i 后, i 的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(分) 以下程序的功能是: 给r 输入数据后, 计算半径为r 的圆面积s. 程序在编译时出错. #include <> void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A: 注释语句书写位置错误 B: 存放圆半径的变量r 不应该定义为整型

B:-3 C :输岀语句中格式描述符非法 D: 计算圆面积的赋值语句中使用了非法变量 A:1 B:2 C:-1 D:-2 第 6题 (分) 有以下程序 : #include <> void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a — 2; }while (a!=n ); printf ("%d\n", s ); } 若要使程序的输岀值为 2, 则应该从键盘输入给 n 的值是 ( B ). A:-1 第 4题 (分) "ABC " 〃的长度是(B ). A:11 B:7 C:5 D:3 第 5题 (分) 已知 int j,i=1;, 执行语句j= - i++;后,j 的值是(C ).

C语言期末复习卷习题

C语言期末复习卷习题 Prepared on 24 November 2020

期末总复习(基础知识+程序设计部分) 一.填空 1.已知charch=’A’;则下列表达式的值是:a Ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch; 2.若x=1,y=2,z=3,则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为2 4..若有定义inty=3;floatz=,x=;则表达式y+=(int)x+x+z的值为17 5.设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z)1 2)!(x>y)+(y!=z)||(x+y)&&(y-z)0 3)x++-y+(++z)13 6.设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z(xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2!=0 7.下面for循环语句最多可执行4次 For(x=0,y=0;(y!=99)&&(x<4);x++) 8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for(i=0,j=10;i<=j;i++,j--) k=i+j; 9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7 m=10;n=5; x=(--m==n++)--m:++n;

y=m++; z=n; 10.若有说明语句:w=1,x=2,y=3,z=4;则表达式w>xw:z>yz:x值是4 11.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。N*j+m+1 16.若有定义:char*str=”Iamastudent.”;则字符串在存储单元中占16个字节。 17.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0。 18.调用strlen(“abc\0ef\0g”)的返回值是3。\0为停止符 19.设有定义:chars[12]=“string”;则printf(“%d\n”,strlen(s));的输出值是6 20.执行下列程序段后,*p等于3 inta[5]={1,3,5,7,9};*p=a;p++; 二.判断(trueorfalse) 1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺 序完全一致。T 2.函数可以嵌套定义F 3.函数必须有返回值,否则不能正确作用F 4.C程序中有调用关系的所有函数必须放在同一源程序文件中。F 5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

C语言期末复习卷习题

期末总复习(基础知识+程序设计部分) 一.填空 1.已知char ch=’A’; 则下列表达式的值是: a Ch=(ch>=’A’ && ch<=’Z’)? (ch+32):ch; 2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为 2 4.. 若有定义int y=3; float z= 5.2, x=4.8; 则表达式y+=(int)x+x+z的值为17 5. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z) 1 2)!(x>y)+(y!=z)||(x+y)&&(y-z) 0 3)x++-y+(++z) 13 6. 设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z (xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2 !=0 7. 下面for循环语句最多可执行 4 次 For (x=0,y=0 ;(y !=99)&&(x<4) ;x++) 8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for (i=0,j=10 ;i<=j ;i++,j--) k=i+j ; 9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为7 y的值为9z的值为7 m=10 ; n=5; x=(--m==n++)? --m : ++n; y=m++; z=n; 10. 若有说明语句:w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 4 11. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。N*j+m+1 16.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占16 个字节。 17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0 。 18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。\0为停止符 19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 6 20. 执行下列程序段后,*p等于 3 int a[5]={1,3,5,7,9}; *p=a;p++;

大学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语言期末复习题

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是: A 。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从 B 开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是: C 。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是 D 。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是: A 。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是: C 。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是: D 。 A. ...\2? B. "" C. ...3? D. (483) 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以 D 形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=2.5; y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是: A 。 A. 2.500000 B. 2.750000 C. 3.500000 D. 0.000000 12.设有说明:char w; int x; float y; double z;

C语言期末考试试题及答案

个人收集整理-仅供参考 2008-2009学年第一学期期末考试试卷 考试说明:本课程为闭卷考试,可携带书写与修正文具,满分为:100 分. 考试结束后请将后页答题卡与试卷分开上交 ..... 一、单选题<每题2分,共30分) 1.以下叙述正确地是 ______ . A)C程序地每行只能写一条语句 B>语言本身没有输入输出语句 C)在C程序中,注释说明只能位于一条语句地后面 D)在多函数地程序中,main函数必须放在其它子函数地定义之前 2.以下不正确地常量表示形式是 ______ . A> 0.45 B>0XF5 C>‘\85’D> 32.67E-5 3. 以下不正确地变量名是 ______ . A)R&B B> _max C>INT D> SUM3 4. 以下正确地一组语句是 ________. A> int x=y=5; B> int n; scanf("%d",&n>;int a[n]; C> char a,*p; p=&a; D> char s[10]; s="hello"; 5. 若以下变量均已正确定义和赋值,则正确地语句是 ________. A> a=b==5; B> y=x%2.0; C> x+y=10; D> n=8=2*4; 6.下面各组中与给出地程序段功能不等价地是 ________. if(a>0> b=1; else if(a==0> b=0; else b=-1; A>if(a>0> b=1; B>if(a>0> b=1; C>if(a>0> b=1; D>if(a>=0> if(a==0> b=0; else if(a==0> b=0; if(a>0> b=1; if(a<0> b=-1; if(a<0> b=-1; else b=-1; if(a==0> b=0; else b=0; if(a<0> b=-1; 7. 运行下面程序段,若输入abc#,则程序输出是:________. char c;int v1=0,v2=0; while((c=getchar(>>!='#'> { switch(c> { case 'a':v1++; default :v1++;v2++; case 'c':v2++; } } printf("v1=%d,v2=%d\n",v1,v2>; A>2,2 B>3,5 C> 3,4 D>2,5

c语言期末复习试卷

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━试卷编号:12626 所属语言:Turbo C 所属方案:c语言模拟 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━〖第1题〗『判断』(1分)(题号:6) 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。 答案:Y 〖第2题〗『判断』(1分)(题号:22) 关系运算符<= 与 == 的优先级相同。 答案:N 〖第3题〗『判断』(1分)(题号:15) 整数 -32100可以赋值给int型和long int型变量。 答案:Y 〖第4题〗『判断』(1分)(题号:8) 在C语言中,整型数据在内存中占2个字节。 答案:N 〖第5题〗『判断』(1分)(题号:19) C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 答案:Y 〖第6题〗『判断』(1分)(题号:27) char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。 答案:Y 〖第7题〗『判断』(1分)(题号:13) char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。 答案:N 〖第8题〗『判断』(1分)(题号:12) 结构体类型只有一种。 答案:N

〖第9题〗『判断』(1分)(题号:2) 若有定义和语句: int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f); 若通过键盘输入: 10,A,12.5,则a=10,c='A',f=12.5. 答案:Y 〖第10题〗『判断』(1分)(题号:34) 7&3+12的值是15。 答案:N 〖第1题〗『单项选择』(2分)(题号:201) 当定义一个结构体变量时,系统分配给它的内存是()。 A:各成员所需内存量的总和 B:结构中第一个成员所需内存量 C:结构中最后一个成员所需内存量 D:成员中占内存量最大者所需的容量 答案:A 〖第2题〗『单项选择』(2分)(题号:638) 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为()。 A:4个字节 B:5个字节 C:6个字节 D:7个字节 答案:C 〖第3题〗『单项选择』(2分)(题号:735) fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。 A:只写 B:追加 C:读或读写 D:答案B和C都正确 答案:C

C语言期末复习题

作业-1 1.单选题:下列字符串属于标识符的是。 A. INT B. 5_student C. !DF D. 2ong 2.单选题:C语言中能用来表示整常数的进制是。 A. 十进制、八进制、十六进制 B. 二进制、十进制 C. 六进制、八进制 D. 十二进制、十进制 3.单选题:在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的 ASCII码。 A. 小32 B. 大32 C. 大64 D. 小64 4.单选题:设d为字符变量,下列表达式不正确的是。 A. d="a" B. d=97 C. d='a' D. d='g' 5.单选题:10+?a?+1.5-567.345/?b?的结果是型数据。 A. int

B. long C. double D. unsigned 6.单选题:已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为。 main() {char x,y; x=?0?;y=?9?; printf(“%d,%d\n”,x,y); } A. 48,58 B. 48,57 C. 0,9 D. 因输出格式不合法,输出错误信息 7.单选题:已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为。 main() {char c=?A?;int i=10; c=c+10; i=c%i; printf(“%c,%d\n”,c,i); } A. 75,7 B. K,5 C. 因存在非图形字符,无法直接显示出来 D. 75,5 8.单选题:C语言中,运算对象必须是整型数的运算符是。 A. * B. / C. % D. % 和/ : 9.单选题:下列常数中,合法的C 常量是。 A. 7ff

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

2019年C语言期末考试题及答案

的一个)。, 求最小值出现的位置(如果最小值1、给定n个数据例如:输入的数组为:求出第一次出现的位置即可)。出现多次, 1 2 3 4 1 5 6 12 18 9k+1i<=n最大值第三行五行 10 11 2的值并输出。计算公式为:2、编写程序求无理数e e=1+1/1!+1/2!+1/3!+......+1/n! 求出的最大数为18,行坐标为2,列坐标为1。。当1/n!<0.000001时e=2.718282 7、求一个n位自然数的各位数字的积。(n 是小于10的 自然数)求一批数中最大值和最小值的积。3、 2、某一正数的值保留位小数,对第三位进行四舍48、计算n门课程的平均值,计算结果作为函数值返回。五入。例如:若有5门课程的成绩是:92,76,69,58,88,

则函数的值为76.599998。 x,5、从键盘上输入任意实数求出其所对应的函数值。 z=(x-4)的二次幂(x>4) 9、求一批数中小于平均值的数的个数。 z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10)z=|x|+20(其他) M×N求出、6整型数组的最大元素及其所在的行坐标10、编写函数判断一个整数m的各位数字之和能否被7整除,及列坐标(如果最大元素不唯一,选择位置在最前面 0。调用该函数找出可以被7整除则返回1,否则返回 100~200之间满足条件的所有数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为:a=65 b=60 void fun(int tt[M][N],int pp[N]),11、请编一个函数16、将字符串中的小写字母转换为对应的大写字母, N列的二维数组,求出二维数组每列M tt指向一个行其它字符不变。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

c语言期末考试练习题1(含答案)

一、单项选择题(6小题,每小题3分,共18分) 1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 A、extern B、register C、auto D、static 2、下面4个选项中,是合法转义字符的选项是( )。 A、'\" B、'\' C、'\018' D、'\\0' '\\' '\017' '\f' '\101' '\n' '\''' 'xab' 'x1f' 3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。 A、–10 B、0abc C、0010 D、0a12 0x8f –017 –0x11 – –011 0xc 0xf1 –0xa 4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( ) A、# define POWER(x) □□x * x B、# define POWER(x) □□(x) * (x) C、# define POWER(x) □□(x * x) D、# define POWER(x) □□((x) * (x)) 5、以下程序段( ) x= –1; do { x=x*x;} while (!x); A、是死循环 B、循环执行二次 C、循环执行一次 D、有语法错误 6、下面程序的运行结果是( ) # include int main( ) { int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if (j%2) continue; x++; } x++; } printf ("x= %d \n",x); return 0; } A、x=4 B、x=8 C、x=6 D、x=12 二、填空题(7小题,每小题3分,共22分) 1、下面程序段的运行结果是( )。 char ch[ ]=''600";int a,s=0;

大一c语言期末试题及参考答案word版本

2004级信息学院《C语言设计》考试试题 一、判断下列语句或程序的对错。 10分√ 1 int x=y=z=’0’; (×) y,z没有定义 2 #include ; (×)不能有分号,#开头的结尾均不能有分号; 3 printf(“%s\n”,”c language”); (√) 4 float a[100]; int *p=a; (×)数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; (×)五个元素,但是只有四个单元 7 float x=1.45e+310L; (×)数值越界 8 int xyz-1=2; (×) 9 int x=‘\xae’ ; (√) 10 int *p,a[2][3] ; p=a ; (×)数据类型不匹配 二计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(a^b)+(c>>1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三程序改错 10分 (1)求两个浮点数的平方和及平方差 #include float calculate (float x,float y,float *sub);添加函数原型声明 main () { float a,b; float add_reasult, sub_result; scanf (“%f,%f”,a,b); add_result=calculate(a,b,&sub_result); printf( “a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result); } float calculate (float x,float y,float *sub) 添加函数类型 { float *temp; 应该直接定义为变量float temp; sub=a*a-b*b ; *sub=a*a-b*b;

相关文档