C语言复习题--2015-10-3

更新时间:2023-09-20 01:08:01 阅读量: 小学教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计----复习题

一、 填空

1. 一个C源程序中至少应包含一个 main 函数。

2. a是整型变量,则执行表达式a=25/3%3后a的值为。 2 3. C语言中的数组必须先 定义 ,然后使用。 4. 如果需要从被调用函数返回一个函数值,被调用函数必须包

含 return 语句。

5. 一个C语言程序的执行起点是____ main函数(或主函数)_______。 6. 设int x=3,y=5; 则执行printf(\后输出___1___。

x?y?1??x???2?5x??对应的C语言表达式7. 定出公式

_1.0/2*(x+sqrt(x+y)/(5*x))__。

8. 若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是

___3____。

9. 设int a=2;,则执行a+=a*=15;后,变量a的值是___60____。 10. 设double y[4][5];,则数组y中元素的个数是__20_____。 11. 设int x=7,y=3; 则表达式x%y+x/y的值是____3____。

12. 设char s[ ]={\,则执行printf(\后输出的值

是__5_ 。

13. 若有定义int a[3][5];则排列在数组中的第9个元素是( a[1][3] )。 14. strlen(\的值是( 12 )。 15. C语言中字符串结束的标志是( '\\0' )。

16. 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值

均为0,其数组定义语句是( float s[6]={0}; )。 17. strcmp(\的值是( 32 或>0 )。 18. 若a=2.8+7%3*11%2/4,a的值是( 2.8 ) 19. 若a= 5/2+5.0/2+7%6,a的值是( 5.5 ) 20. 若a=12,a*=2+3 a的值是( 60 )

21. 若a=3,b=4,c=5,a+b>c&&b= =c 表达式的值是 ( 0 )

22. 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),表达式

后m,n的值是( m=0, n=1 )

23. 设int b=7;float a=2.5,c=4.7;求下面表达式的值是( 4.5 )

a+(int)(b/2*(int)(a+c)/2)%4

1

二、 判断题

1. 若定义的函数没有参数,则函数名后的圆括号可以省略。(?) 2. 函数的函数体可以是空语句(?)。 3. 只有main函数才能调用其他函数。(?)

4. return语句中表达式的类型必须与函数定义的类型一致。(?) 5. 函数的实参和形参可以是相同的名字。(?)

6. 函数调用中,形参与实参的类型和个数必须保持一致。(?) 7. 外部类型的变量只能定义一次,但可在不同地方声明多次。(?) 8. 外部类型的变量作用范围大,编程中应多用外部变量。(?) 9. 预处理命令行必须以#开头,且最后要用分号结尾。(?) 10. 宏命令的处理占用编译时间,而不占用运行时间。(?)

三、 选择题(单选)

1. 已知字符'a' 的ASCII码为 97 ,执行下列语句的输出是__D___。 printf (\

(A) 98, b (B)语句不合法(C) 98, 99 (D) 98, c

2. 有定义语句:int a=1,b=2,c=3,x;则以下选项中各程序段执行后,x

的值不为3的是C。

(A)if(c

3. 以下程序段的输出结果是____D____。

char ch[3][5]={“AAAA”,“BBB”,“CC”}; printf(“%s\\n”,ch[2]);

(A) BBB (B) AAAA (C) BBBCC (D) CC

4. 下面程序的输出结果是____D______。 intmain() { inti;

for (i=0;i<10;i++); printf (“%d”,i); return 0; }

(A) 0 (B) 123456789 (C) 023456789 (D) 10

5. 表达式 x&&y 等价于__C__。

(A) x==0&&y==0 (B) x==1&&y==1

2

(C).x != 0&&y!=0 (D). x != 1&&y!=1

6. 下列语句中符合C语言语法的语句是___C____

(A) a=b+c+7=e+f; (B)gh=7+b++=a+7; (C) a=c+d,++b,a=7;(D) a==b,c==d; 7. 以下符号中___A____可以作C语言的用户标识符 (A) Break (B) #define (C)double (D) float 8. 下列属于C语言合法的字符常数是___B____

(A) “\\t” (B)’\\n’ (C) ‘48’ (D) “\\30” 9. 若已定义x和y为double类型,则表达式:x=1,y=x*5/2的值是 B

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

10. 设int x=0,y=1;表达式(x--&&y--)执行后y的值为___A___。 (A)1 (B)0 (C)-1 (D)不确定

11. 一个算法应该具有“确定性”等五个特性,下面对另外4个特性

的描述中错误的是(B)

A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性

12. C语言中最简单的数据类型包括(B) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型

13. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b

的值是(D)

A、 6.500000 B、6 C、 5.500000 D、 6.000000

14. 若有说明:int a[3][4];则对a数组元素的非法引用是( D)。 A、a[0][2*1] B、a[1][3] C、a[4-2][0] D、a[0][4]

15. 程序char c[5]={‘a’,’b’,’\\0’,’c’c,’\\0’}; printf(“%s”,c);}

的运行结果是( D )。

A、'a''b' B、ab0 C、ab c D、ab 16. 判断字符串a是否大于b,应当使用( D)。

A、if (a>b) B、if(strcmp(a,b)) C、if (strcmp(b,a)>0) D、if (strcmp(a,b)>0)

17. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据

输入是:(A)

A、a=2.2,b=3 B、a=2.2 b=3 C、2.2 3 D、2.2,3 18. 表示关系12<=x<=y的C语言表达式为:(B) A、(12<=x)&(x<=y) B、(12<=x)&&(x<=y) C、(12<=x)|(x<=y) D、(12<=x)||(x<=y) 19. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf

3

最多可执行次数为:(C)

A、4 B、6 C、5 D、1

20. 设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对

c2中的成员a的正确引用是:(B)

A、(*p).c2.a B、(*p).a C、p->c2.a D、p.c2.a

21. 一个C语言程序是由( C )组成的。

A.主程序 B.子程序 C.函数 D.过程

22. 2.转换说明符%x的输出形式是( C )。

A.十进制 B.八进制 C.十六进制 D.二进制

23. 若a、b均为int型变量,且a=100,则关于循环语

for(b=100;a!=b;++a,++b)printf (“------------”);的正确说法是(C)。 A.循环体只执行一次 B.死循环

C.循环体一次也不执行 D.输出----------- 24. 若x、y、z均为int型变量,则执行下列语句后的z值为( A )。

x=1; y=2; z=3; z=(x>y)?z :y ; z = (z

A.1 B.4 C.2 D.3 25. 下面标识符中,合法的用户标识符为( D )。

A.P#Ad B.12a C.char D._int 26. ‘A’ + 3 的结果是( B )。 A.’A’ B.’D’的ASCⅡ码 C.65 D.3

27. 语句char str[20];说明str是一个字符串,最多能表示( B )。 A.20个字符 B.19个字符 C.18个字符 D.21个字符

28. 将int型变量n转换成float型变量的方法是( B )。

A.float n B.(float)n C.float(n) D.21个字符 29. 以下不正确的描述是( C )。

A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成

B. while循环是先判断表达式后执行循环体语句

C. do-while和for循环均是先执行循环体语句,后判断表达式

D. for、while、do-while循环中的循环体均可以由空语句构成

30. 在循环中使用break 语句的功能是( A )。 A.使程序的执行跳出break所在的那一重循环

4

B.使程序执行结束

C.跳出包含此break语句的所有循环 D.终止本次循环,继续下次循环

31. 下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字

应该是( C )。 A.*pz B.a C.px D.&a 32. 若指针px为空指针,则( B )。

A.px指向不定 B.px的值为零 C.px的目标为零 D.px的地址为零

33. 对于语句int *px[10],以下说法正确的是( B )。

A. px是一个指针,指向一个数组,数组的元素是整数型。 B. px是一个数组,其数组的每一个元素是指向整数的指针。 C. A和B均错,但它是C语言的正确语句。 D. C语言不允许这样的语句。

34. 具有相同基类型的指针变量P和数组变量Y,下列写法中不合法

的是( D )。

A.P = Y B.*P = Y[i] C.P + &Y[i] D.P = &Y

35. 已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p,则表达式

*(p[0]+1)+**(q+2)的值是( A )。 A.5 B.4 C.6 D.7 36. 已知for(;n>=1;n--),下列语句实现将S2所指字符数组中前n个字符

复制到S1所指字符数组中,其中代码不正确的是( D )。 A.*S1++=*S2++ B.S1[n-1]=S2[n-1]

C.*(S1+n-1)=*(S2+n-1) D.*(++S1)=*(++S2)

37. 调用函数的实参与被调用函数的形参应该有如下关系( D )。 A.只要求实参和形参个数相等 B.只要求形参和实参顺序相同

C.只要求实参和形参数据类型相同 D.上述三点均需具备

38. 联合体成员的数据类型( B )。

A.相同 B.可以不同也可以相同 C.长度一样 D.是结构体变量 39. 由系统分配和控制的标准输出文件为( D )。

A.键盘 B.磁盘 C.打印机 D.显示器

40. C语言标准库函数fread(fd,buffer,n)的功能是( A )。

5

本文来源:https://www.bwwdw.com/article/2uph.html

Top