C语言考试复习资料

发布时间 : 星期五 文章C语言考试复习资料更新完毕开始阅读

一、填空

1.函数调用时的实参和形参之间的数据是单向的【1】传递. 值 2.设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b++)-(++c);后,a的值是 【1】. 28 3. C语言中,【1】是程序的基本组成部分. 函数 4. C语言的三种基本结构是【1】结构、选择结构、循环结构. 顺序 5. 执行以下程序段后, s的值是【1】16 int a[]={5,3,7,2,1,5,3,10},s=0,k; for(k=0;k<8;k+=2) s+=*(a+k);

6. break语句除了可以用于循环语句的循环体中,还可以用于【1】语句中. switch 7. 执行语句\n++;\后,变量n值为【1】. 68. c语言表达式5>2>7>8的值是【1】. 0 9. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【1】. int 10. 函数的定义不可以嵌套,但函数的调用【1】嵌套. 可以 11. 设 x 的值为15,n 的值为2,则表达式 x%=(n+3) 运算后 x 的值是【1】. 0 12. 如果函数不要求带回值,可用【1】来定义函数返回值为空. void 13. 设有程序段

int x= 4,y=4; t=++x||++y;

执行语句后y的值为【1】. 4 14. 执行下列语句后,*(p+1)的值是【1】. b char s[3]=\p=s;

15. 若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[2];

则*--p的值是【1】. 1 16. 设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】. 1.0 17. 若x为int型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【1】. x==0 18. 逗号表达式(a=3*5,a*4),a+5的值为【1】. 20 19. 在调用函数fopen(\时,若A盘根目录下不存在文件b.dat,则函数的返回值是【1】. NULL 20. 已知x=2,y=2 则表达式x*=y+8的值为【1】. 20 21. 若声明\语句\的输出结果为【1】. 9x 22. 设a,b,t 为整型变量,初值为a=7,b=9,执行完语句

t=(a>b)?a:b后,t 的值是【1】. 9 23. 若a=1,b=4,c=3,表达式a&&b+c||b-c的值为【1】. 1 24. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为【1】. 0 25. 调用 fopen 函数打开一文本文件,在\使用方式\这一项中,为输入而打开需填入【1】. r 26. 从函数的形式上看,函数分为无参函数和【1】两种类型. 有参函数 27. C程序中有且仅有一个【1】函数. main 28. 从变量的作用域角度分有全局变量和【1】.局部变量 29. 设有下面的程序段

int x= 0,y=0,t; t=x&&++y;

执行语句后y的值为【1】. 0 30. 若有定义:char s[ ]=\则Visual C++系统为数组s开辟【1】个字节的内存单元. 6 31. 写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 18 32. 当a=1,b=1,c=1时,表达式a

上述定义的共同体变量x共占用存储空间【1】个字节. 4 37. 已知 i=5,写出语句 a=i++; 执行后整型变量a的值是【1】. 5 38. 计算a、b中最小值的条件表达式为【1】. ae的值为【1】. 1 42. 若有以下定义和语句:

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

则++(*p)的值是【1】. 6 43.在函数调用中,若实参为数组名,则形参必须为数组名或【1】. 指针变量 44. 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的

1

十进制值是【1】. 15 45. C语言中调用【1】函数来关闭文件. fclose 46. 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 0 47. 若在程序中用到\函数时,应在程序开头写上包含命令# include \【1】\ string.h 48. 当程序读写数据文件时,需要有声明语句\*fp;\在该声明语句之前必须包含的头文件名为【1】. stdio.h

二、单项选择

1.设变量定义为\则&(*p)相当于A A:p B:*p C:x D:*(&x)

2. C语言中要求对变量作强制定义的主要理由是().D A:便于移植 B:便于写文件 C:便于编辑预处理程序的处理 D:便于确定类型和分配空间 3. 设有以下说明语句 struct ex

{ int x ; float y; char z ;} example; 则下面的叙述中不正确的是( ). B A:struct结构体类型的关键 B:example是结构体类型名 C:x,y,z都是结构体成员名 D:struct ex是结构体类型 4. C语言中不可以嵌套的是().B A:函数调用 B:函数定义 C:循环语句 D:选择语句 5.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().D A:只能用逻辑表达式 B:只能用关系表达式 C:只能用逻辑表达式或关系表达式 D:可用任意表达式 6. C语句\还可以写作( ). C A:x=x*y+2; B:x=2+y*x; C:x=x*(y+2); D:x=y+2*x;

7.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是().B A:将5个初值依次赋给a[1]至a[5] B:将5个初值依次赋给a[0]至a[4]

C:将5个初值依次赋给a[6]至a[10]

D:因为数组长度与初值的个数不相同,所以此语句不正确 8.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是().B A:void B:int C:float D:double

9.设已有声明\则值为3的表达式是( ). B A:*++p B:*(p++) C:++*p D:*p+1

10.判断char型变量cl是否为小写字母的正确表达式是().D

A:'a'<=cl<='z' B:(cl>=a)&&(cl<=z) C:('a'>=cl)||('z'<=cl) D:(cl>='a')&&(cl<='z') 11.下面说明不正确的是().D A:char a[10]=\B:char a[10],*p=a;p=\C:char *a;a=\D:char a[10],*p;p=a=\

12.设有说明\则\的值为( ). D A:4 B:1 C:2 D:3

13.设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为D A:float B:int C:char D:double

14.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是().C A:1 B:2 C:2.0 D:2.5

15.设变量定义为\执行下列语句时,输入_____,则a和b的值都是10. D scanf(\ A:10 10 B:10, 10 C:a=10 b=10 D:a=10, b=10

16.数组名作为实参数传递给函数时,数组名被处理为().C A:该数组的长度 B:该数组的元素个数 C:该数组的首地址 D:该数组中各元素的值 17.两个指针变量不可以().A A:相加 B:比较 C:相减 D:指向同一地址

18.下列( )表达式的值为真,其中a=5;b=8;c=10;d=0 D A:a*2>8+2 B:a&&d C:(a*2-c)||d D:a-b

char b[ ]={'a','b','c'}; 则以下叙述正确的是( ). D A:a与b数组完全相同 B:a与b数组长度相同 C:a与b中都存放字符串 D:a数组比b数组长度长 20.若有以下定义:char s='\\092'; 则该语句().B A:使s的值包含1个字符 B:定义不合法,s的值不确定 C:使s的值包含4个字符 D:使s的值包含3个字符 21.能正确表示逻辑关系:\或a≤0 \C语言表达式是D A:a>=10 or a<=0 B:a>=0 | a<=10 C:a>=10 && a<=0 D:a>=10 || a<=0

22.下列字符序列中,不可用作C语言标识符的是().B A:b70 B:#ab C:symbol D:a_1

2

23.系统的标准输入文件是指().A

A:键盘 B:显示器 C:软盘 D:硬盘 24.若给定条件表达式(M)?(a++):(a--),则其中表达式M().C A:和(M==0)等价 B :和(M==1)等价 C:和(M!=0)等价 D:和(M!=1)等价

25.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是().B A:7 B:8 C:6 D:2 26.库函数在使用时,要用()A A:#include命令 B:#define命令 C:#if D:#else 27.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().C A:必须为字母 B:必须为下划线 C:必须为字母或下划线

D:可以是字母,数字和下划线中任一字符

28.已定义两个字符数组a,b,则以下正确的输入格式是AA:scanf(\B:get(a, b);

C:scanf(\D:gets(\

29.以下不能正确进行字符串赋初值的语句是().A A:char str[5]=\B:char str[]=\C:char *str=\

D:char str[5]={'g','o','o','d',0};

30.不正确的字符串赋值或赋初值的方式是( ). C A:char str[]=\

B:char str[7]={'s','t','r','i','n','g'}; C:char str[10];str=\

D:char str[7]={'s','t','r','i','n','g', '\\0'}; 31.关于建立函数的目的,以下正确的说法是().B A:提高程序的执行效率 B:提高程序的可读性 C:减少程序的篇幅 D:减少程序文件所占内存

32.以下标识符中,不能作为合法的C用户定义标识符的是().B A:a3_b3 B:void C:_123 D:IF

33.若变量均已正确定义并赋值,以下合法的C语言赋值语句是A A:x=n/2.5; B:x==5; C:x+n=I; D:5=x=4+1; 34.若有声明\则值不为4的表达式是( ). C A:p=x,*(p+4) B:p=x+4,*p++ C:p=x+3,*(p++) D:p=x+3,*++p

35.以下的选择中,正确的赋值语句是().C A:a=1,b=2 B:j++ C:a=b=5; D:y=int(x) 36.gets函数的功能是()B A:读取从键盘输入的一串不带空格的字符串 B:读取从键盘输入的一串带空格的字符串 C:读取从键盘输入的一串不带数字的字符串 D:读取从键盘输入的一串只带字母的字符串

37.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是().C A:int p=&x; B:int *p=x; C:int *p=&x; D:*p=*x;

38.执行语句 for(i=1;i++<4;); 后变量 i 的值是().C A:3 B:4 C:5 D:不定 39.字符串指针变量中存入的是B A:字符串 B:字符串的首地址 C:第一个字符 D:字符串变量

40.变量s的定义为 char *s = \要使用变量p指向s所指向的同一个字符串,则应选取( ). A A:char *p=s; B:char *p=&s; C:char *p ; p=*s; D:char *p;p=&s; 41.在C语言中,函数的数据类型是指()A A:函数返回值的数据类型 B:函数形参的数据类型

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

42.经过以下语句定义后,表达式z+=x>y?++x:++y的值为().C int x=1,y=2,z=3; A:2 B:3 C:6 D:5

43.若用数组名作为函数的实参,传递给形参的是().A A:数组的首地址 B:数组第一个元素的值 C:数组中全部元素的值 D:数组元素的个数 44.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是().A A:字符A B:字符a C:字符e D:非法的常量 45.设C语言中,int类型数据占2个字节,则long类型数据占().C A:1个字节 B:2个字节 C:4个字节 D:8个字节 46.下列运算符中,不属于关系运算符的是().D A:< B:> C:>= D:! 47.下列字符数组长度为5的是A A:char a[]={'h', 'a', 'b', 'c', 'd'}; B:char b[]= {'h', 'a', 'b', 'c', 'd', '\\0'}; C:char c[10]= {'h', 'a', 'b', 'c', 'd'}; D:char d[6]= {'h', 'a', 'b', 'c', '\\0' }; 48.设有说明语句 char a='\\101'; ,则变量a( ). D 3

A:包含4个字符 B:包含2个字符 C:包含3个字符 D:包含1个字符

49.当定义一个结构体变量时,系统分配给它的内存是().A A:各成员所需内存量的总和 B:结构中第一个成员所需内存量 C:结构中最后一个成员所需内存量 D:成员中占内存量最大者所需的容量

50.能将高级语言编写的源程序转换为目标程序的是().C 63.逗号表达式\的值是( ). C A:15 B:60 C:30 D:不确定 64.fscanf函数的正确调用形式是().D A:fscanf(fp,格式字符串,输出表列); B:fscanf(格式字符串,输出表列,fp); C:fscanf(格式字符串,文件指针,输出表列); D:fscanf(文件指针,格式字符串,输入表列); 65.C语言的switch语句中case后B A:只能为常量 A:链接程序 B:解释程序 C:编译程序 D:编辑程序 51.具有相同类型的指针变量p与数组a,不能进行的操作是().D A:p=a; B:*p=a[0]; C:p=&a[0]; D:p=&a; 52.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else总与( )配对B A:缩排位置相同的if B:其之前最近的未配对的if C:其之后最近的if D:同一行上的if

53.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为().D A:float B:int C:char D:double 54.整型变量x=1,y=3,经下列计算后,x的值不等于6的是C A:x=(x=1+2,x*2) B:x=y>2?6:5 C:x=9-(--y)-(y--) D:x=y*4/2

55.若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是().C A:&aa[0]+1 B:&aa[1] C:&aa[0]++ D:aa+1 56.若有定义int a[10],*p=a;,则p+5表示A A:元素a[5]的地址 B:元素a[5]的值 C:元素a[6]的地址 D:元素a[6]的值 57. C语言中运算对象必须是整型的运算符是().A A:%= B:/ C:= D:〈=

58.若二维数组a有m列,则在a[i][j]前的元素个数为().B A:j*m+i B:i*m+j C:i*m+j-1 D:i*m+j+1 59.从循环体内某一层跳出,继续执行循环外的语句是A A:break语句 B:return语句 C:continue语句 D:空语句

60.以下运算符中,优先级最高的运算符是().D A:= B:!= C:*(乘号) D:()

61.逻辑运算符两侧运算对象的数据类型().D A:只能是0或1 B:只能是0或非0正数 C:只能是整型或字符型数据 D:可以是任何类型的数据 62.若i为整型变量,则以下循环执行次数是().B for(i=2;i==0;) printf(\A:无限次 B:0次 C:1次 D:2次

B:只能为常量或常量表达式

C:可为常量或表达式或有确定值的变量及表达式 D:可为任何量或表达式

66.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为().C A:int B:float C:double D:不确定 67. 下列标识符中,不合法的C语言用户自定义标识符是().B A:printf B:enum C:_ D:sin 68.以下定义语句中,错误的是().D A:int a[]={1,2}; B:char *a[3]; C:char s[10]=\69.若有下列定义,则对a数组元素地址的正确引用是().B int a[5],*p=a;

A:&a[5] B:p+2 C:a++ D:&a 70.在C语言程序中().B A:函数的定义可以嵌套,但函数的调用不可以嵌套 B:函数的定义不可以嵌套,但函数的调用可以嵌套 C:函数的定义和函数调用均可以嵌套 D:函数的定义和函数调用不可以嵌套

71.设有定义\则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达 式是( ). D A:y=(y*100+0.5)/100.0 B:y=(y/100+0.5)*100.0 C:y=y*100+0.5/100.0 D:x=y*100+0.5,y=x/100.0

72.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().B A:2 B:3 C:4 D:无确定值 73.已知结构类型定义和变量声明如下: struct sk

{int a;float b;}data[2],*p;

若有p=data,则以下对data[0]中成员a的引用中错误的是( ). A 4

联系合同范文客服:xxxxx#qq.com(#替换为@)