新疆自治区计算机二级C语言考试题库.doc

上传人:坚持 文档编号:4210690 上传时间:2019-10-04 格式:DOC 页数:85 大小:278KB
下载 相关 举报
新疆自治区计算机二级C语言考试题库.doc_第1页
第1页 / 共85页
新疆自治区计算机二级C语言考试题库.doc_第2页
第2页 / 共85页
新疆自治区计算机二级C语言考试题库.doc_第3页
第3页 / 共85页
新疆自治区计算机二级C语言考试题库.doc_第4页
第4页 / 共85页
新疆自治区计算机二级C语言考试题库.doc_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、一:单选题 1.已知 int a,b;下列 switch语句中正确的是( b )。 A. switch(a) case a: a+;break; case b: b+;break; B. switch(a+b) case 1: a+b;break; case 2: a-b;break; C. switch(a*a) case 1,2:+a; case 3,4:-b; D. switch(a/0.5+b) case 5-a:a/5;break; default:a+b; 2.若有如下语句,则下面正确的描述是 ( b )。 char x =“12345“; char y =1,2,3,4,5; A

2、. 数组 x和数组 y的长度相同 B. 数组 x的长度大于 y数组的长度 C. 数组 x等价于数组 y D. 数组 x的长度小于数组 y的长度 3.scanf ( ) 函数的正确调用形式是( d )。 A.scanf(格式控制串,输出项表列); B.scanf(格式控制串,输出项地址表列); C.scanf(格式控制串,输入项表列); D.scanf(格式控制串,输入项地址表列); 4.下列说法正确的是( c )。 A. C 语言的主函数不允许有参数 B. C 语言的主函数最多允许 1 个参数 C. C 语言的主函数可以无参数 D. C 语言的主函数允许任意个参数 5.表达式 (!1|1)+5

3、 的值是( c )。 A. 不确定 B. 5 C. 6 D. 7 7.若有以下定义和语句, char s1=“12345“, s2=“1234“;则函数 strcmp(s1,s2)的值为( a )。 A. 大于 0 B. 小于 0 C. 等于 0 D. 等于 1 8.选出表达式结果为假的一项( b )。 A. 1=4 B. (25=5) C. (3b) C. x+y; D. c=int(a+b); 30.以下程序段的输出结果是( c )。 int x=3; do printf(“%3d“,x-=2); while(!(-x); A. 1 B. 3 0 C. 1 -2 D. 死循环 31.只有当

4、整数 x为奇数时,表达式为逻辑“真”的是( b )。 A. x%2=0 B. !(x%2=0) C. (x-x/2*2)=0 D. !(x%2) 31.下列程序段的输出结果是( a )。 for(a=1;a=0) y=1; 35.以下能正确定义数组并正确赋初值的语句是( d )。 A. int N=5,bNN; B. int a02=1,3; C. int c2=1,2,3,4; D. int d32=1,2,3,4; 36.下列选项中合法的字符常量是 ( b ) A. “ 则下面不能正确表示 a1地址的 表达式是( d )。 A. do sum+=aii; i+; while(i0) for

5、 ( n=1; n6) printf(“%d“,n-); A. 9876 B. 876 C. 987 D. 8765 57.下列说法正确的是( d )。 A. C 语言能嵌套定义函数,但不能嵌套调用函数 B. C 语言不能嵌套定义函数,也不能嵌套调用函数 C. C 语言能嵌套定义函数,也能嵌套调用函数 D. C 语言不能嵌套定义函数,但能嵌套调用函数 58.a,b,c,d 都为 float 型,且已正确赋值,则与数学表达式 2ab/(5cd)等价的 C语言表达式是( a )。 A. a/c*b/d*2/5 B. a/(5*c*d)/2*b C. 2*a*b/5*c*d D. 2/5*a*b*(

6、1/c*d) 59.下列程序的执行结果是( b )。 main() int a,b,c; c=(a=3,b=a-); printf(“%d,%d,%d“,c,a,b); A. 3,3,3 B. 3,2,3 C. 2,3,3 D. 2,2,3 60.有如下定义:int a=3,b=-4; long c=5; float x; double y ; 则下列 选项中不符合 C语言语法的表达式是( c )。 A. a+=a-=a*b B. a%b C. y=2*x; D. y=(float)c 1.在 C语言中函数的隐含存储类型是( a )。 A. auto B. static C. extern D

7、. 无存储类型 2.执行语句 for(i=1;i+0) long c=5; float x; double y ; 则下列 选项中不符合 C语言语法的表达式是( c )。 A. a+=a-=a*b B. a%b C. y=2*x; D. y=(float)c 13.若有如下定义: int a10; 则下面不能正确表示 a1地址的 表达式是( d )。 A. p=a; printf(“%dn“,*(p+4); A. 输出不定值 B. 不能输出 C. 输出 0 D. 输出 107(k的 ASCII码值) 3.表示 x的值在0,9中的正确的表达式是( d )。 A. 0(B)?(A):(B) # d

8、efine PRINT(Y) printf(“Y=%dn“,Y) . a=1; b=2; c=3; d=4; t=MAX(a+b,c+d); PRINT(t); A. 存在语法错误 B. Y=7 C. t=7 D. t=0 2.以下叙述中不正确的是( d )。 A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 7.带参数的宏定义中,程序中引用宏定义的实参( d )。 A. 只能是常量 B. 只能是整型量 C. 只能是整型表达式 D. 可以是任意表达式 11.

9、以下说法不正确的是( a )。 A.函数返回值类型与函数定义时的数据类型无关 B.函数的类型定义时不应缺少,即使没有也应定义为 void C.函数的指针是指函数的入口地址 D.被调用函数可以用 return 语句返回主调函数 4.下列循环的循环体执行次数为( d )。 int i=0,j=10; for(;i=j=10;i+,j-) A. 0 B. 1 C. 10 D. 无限次 8.C语言中 for( 表达式 1;表达式 2;表达式 3) 循环体 语句中,说法正 确的是 ( a )。 A.表达式 2可以省略 B.表达式中间的分隔符; 可以省略 C.表达式 1不能省略 D.表达式 2不能省略,否

10、则是死循环 9.int i=5, k ; 表达式 k=2*B-A-C+i的值是( a )。 A. 5 B. 6 C. 7 D. 8 11.若有以下定义,则 p+5 表示( a )。 int a10,*p=a ; A.元素 a5的地址 B.元素 a5的值 C.元素 a6的地址 D.元素 a6的值 16.字符串“yes“or“no“n“在内存中所占字节数是( b )。 A. 12 B. 13 C. 17 D. 18 17.若有 int *p,a10; p=a; , 则以下不正确的表示是( b )。 A. p=a+1 B. a+ C. *(a+1) D. p+ 18.下列常数中( a )是不合法的

11、C常量。 A. 12e1.5 B. 3e5 C. 1.3 e-5 D. 12E2 21.若有以下定义,则 p3 表示 ( b )。 int a10,* p =a+2 ; A.元素 a5的地址 B.元素 a5的值 C.元素 a6的地址 D.元素 a6的值 22.已知 int a,b;则下列表达式不合法的是( c )。 A. 3%a B. a+=b C. +3+a+b D. 0b) a+=b*2; else if(ab) a+=b-2;else a=b*2; 8.若要使 a=123,b=4567,c=A 用 scanf(“%3d%4d,%c“, 则输入格式应为( d )。 A. 123,4567,

12、A B. 1234567A C. 123 4567 A D. 1234567,A 9.在使用 getchar()函数时必须( b )。 A. 先定义一个字符变量 B. 使用 #include “stdio.h“ C. 使用 #define getchar D. 什么也不需要 10.语言对数据文件的存取是以( a )为单位的,这种文件称为顺序文件。 A.字节 B.记录 C.字 D.整数 11.下列运算符中运算级别最低的运算符为 ( a )。 A. , B. = C. ? : D. | 12.有 struct st int a;float b; x,*y= 不正确的引用为( c )。 A. x.a

13、 B. y-b C. *y.b D.(*y).a 14.若有 int *p1,*p2,k; 不正确的语句是( d )。 A. p1= B. p2=p1; C. *p1=k+12; D. k=p1+p2; 15.设 a为整型变量,初值为 12,执行完语句 a+ =a-=a*a;后,a 的值是( d ) A. 252 B. 144 C. 264 D. -264 16.设 a为整型变量,则表达式 a4 执行了语句 p= 后, *(p5)的值是( b ) A. f B. 0 C. 不确定 D. 字符 f 的地址 18.表示 x 的值在100,200中的正确的表达式为( d )。 A. 100b) a+

14、=b; else ; C. if (a) a+=b; else if(b) +b; D. if (ab) a+ ; else if(b) +b; 3.关于数组元素的下标描述正确的是( c )。 A. 必须是常量 B. 只能从 0开始 C. 可以是任何基本类型 D. 下标的个数表示数组的长度 4.以下有关宏替换的正确叙述是( d )。 A. 宏替换不占用编译预处理的时间 B. 带参数的宏与函数等价 C. 宏名也有类型 D. 宏名也是标识符 7.下列表达式结果为真的是( b )。 A. 1=0) do sum=sum+i; sum=sum+i; i+; +i; while(i=0); A. i的初

15、值大于 10 B. i的初值小于 0 C. 任意条件 D. sum的初值为 0 18.下列运算符优先级最高的是( c )。 A. % B. ! C. - D. 19.C语言中 for(表达式 1;表达式 2;表达式 3) 语句中,说法不正确的是( b )。 A. 表达式 1可以省略 B. 循环体语句不能为空语句 C. 循环体中若有两条以上语句必须用组成复合语句 D. 表达式 2的值为 0时,循环结束 7.C语言中 for( 表达式 1;表达式 2;表达式 3) 循环体 语句中,说法正确 的是 ( a )。 A.表达式 2可以省略 B.表达式中间的分隔符; 可以省略 C.表达式 1不能省略 D.

16、表达式 2不能省略,否则是死循环 23.设有类型说明 int a= -2,在 16位微机中分别用%o 和%x 打印 a的值结果 是( b )。 A. -2 -2 B. 177776 fffe C. 出错 D. 177776 -2 24.下列给数组元素赋初值的方法错误的是( d )。 A. int w5=1,2,3; B. char c5=a,b; C. int a23=1,2; D. char c15=“China“; 25.转义字符是以( d)开头。 A. % B. b=10; do b-=a; a+; while(b0); A. 7 B. 6 C.5 D. 4 3.以下程序的输出结果是(

17、d )。 #include main( ) int a = 7;float x = 2.5, y = 4.7; printf(“%g“, x+a%3*(int)(x+y)%2/4); A. 0 B. 2.75 C. 2 D. 2.5 4.若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下 printf 语句后,输出结果是( a )。 printf(“%dn“,Z); A. 7 B. 15 C. 13 D. 7.5 5.以下运算符中优先级最高的为( c )。 A. while (k = 1) k+; A. 无限次 B. 有语法错,不能

18、执行 C. 一次也不执行 D. 执行 1次 8.以下所列的各函数首部中,正确的是( c )。 A. void play(var :Integer,var b:Integer) B. void play(int a,b) C. void play(int a,int b) D. void play(a as integer,b as integer) 9.关于语句:char a =A,B,C,D,b =“ABCD“;下面说法正确的 是( b )。 A. 数组 a与数组 b占用的内存空间都是 4字节 B. 数组 b占用内存空间为 5字节 C. 数组 a的字符串长度为 4 D. 数组 a占用内存空间

19、为 5字节 10.以下各语句或语句组中,正确的操作是( c )。 A. char s5=“abcde“; B. char *s; getchar(s); C. char *s; s=“abcde“; D. char s5; scanf(“%s“, 12.以下程序的输出结果是( b )。 #include main( ) int a = 5, b = 4, c = 6, d; printf(“%dn“, d=aba); A. 2 B. 1 C. 0 D. 3 14.以下不正确的描述( a )。 A.在主函数之外定义的变量称为全局变量 B.在一个函数中既可以使用本函数中的局部变量,又可以使用全局变

20、量 C.外部变量定义和外部变量说明的含义不同 D.在同一源文件中,全局变量与局部变量同名,则在局部变量的作用范围 内,全局变量不起作用 15.下面标识符中,不合法的用户标识符为( a )。 A. for B. E2 C. a3AB D. _a 16.关于 C语言文件叙述错误的是( a )。 A. C语言文件由记录组成 B. C语言中对文件的存取以字节为单位 C. C语言文件是流式文件 D. C语言对文件的读写是由库函数实现的 17.能够完成整型变量 a与 b的值互换的程序段是( b )。 A. t=a;b=a;t=b; B. t=a;a=b;b=t; C. b=a;a=b; D. t=a;a=

21、b;b=a; 18.若 a,b,c均为 int型变量,则执行以下语句后 a,b,c的值分别为( a )。 a=0,b=0,c=1; switch (c) case 0:b+; case 1:a+; case 2:a+;b+; printf(“a=%d,b=%dn“,a,b); A.a=2,b=1 B.a=1,b=2 C.a=1,b=0 D.a=2,b=2 19.在 C语言中,以下对函数不正确的描述是( d )。 A. 当用数组名作形参时,形参数组改变可使实参数组随之改变 B. 允许函数递归调用 C. 函数形参的作用范围只是局限于所定义的函数内 D. 函数说明必须在主调函数之前 20.若 x为

22、unsigned int型变量,则执行以下语句后的 x值为( a )。 x=65535; x=(int) x; A. 65535 B. -32768 C. 1 D. -1 21.以下程序的输出结果是( d )。 main( ) int a = 4, b = 5, c =6; if (a E.?: 3.下列属于程序控制语句的是_bcde_。 A.int a; B.if(ab)t=a; C.for(i=0;i0)x-; E.return n; 4.下列关于“switch(表达式)“语句说法正确的是 abcd_。 A.switch语句是多分支语句 B.switch后的(表达式)允许是任何类型 C.s

23、witch语句中允许有一个 default子句,也可以没有 D.switch语句中的每个 case子句的常量表达式的值必须互不相同 E.switch语句中的每个 case子句必须有一个 break语句 5.下列语句定义数组正确的是 bd_。 A.int a(10); B.int a2+9; C.int arr0 to 30 to 4; D.int arr34; E.int 3,4; 6.下列合法标识符是_cd_。 A.void B.define C.WORD D.a3_b3 E.case 7.下列格式控制字符中能够输出整型数据的是 abcd_。 A.%d B.%ld C.%lo D.%x E.

24、%lf 8.有以下程序段,并且 w和 k都是整型变量: for(w=1;wb?a:b; 11.下列说法正确的是 bcde_。 A.在 C程序中,无论是整数还是实数,都能被准确地表示 B.在 C程序中,声明变量时为变量开辟内存空间 C.静态变量的生存期与整个程序的运行期相同 D.C语言中变量必须先说明后引用 E.C语言中空语句是合法的 12.C语言提供的逻辑运算符有_bde_。 A.and B.| C.or D. while(1) i=i%100+1; if(i100)break; B.for(;) C.int k=1000; do +k;while(k=10000); D.int s=36;

25、while(s);-s; E.for(i=1;i+); 15.下列关于符号常量正确的是_ade_。 A.符号常量用标识符表示 B.符号常量不允许被修改 C.符号常量允许在程序运行中改变 D.#define N 10 E.符号常量没有值和类型的含义 16.下列不合法的实型常量有_abd_。 A.5E2.0 B.E-3 C.2E0 D.1.3E E.2E2 17.把字符串“hello“赋给数组 b的语句是_acde_。 A.char b10=h,e,l,l,o; B.char b10;b=“hello“; C.char b10;strcpy(b,“hello“); D.char b=“hello“

26、; E.char b=h,e,l,l,o,0; 18.可以不要进行函数原型声明的函数是_bc_。 A.被调用函数的数据类型是 int B.被调用函数定义的位置在调用函数之前 C.主函数 main() D.被调用函数的数据类型是 float E.被调用函数的数据类型是 char 19.关于数组说法正确的是_abc_。 A.数组的下标从 0开始 B.数组的各个元素在内存中是连续存放的 C.C编译系统对数组下标是否越界不做检查 D.C语言允许对整型数组名进行整体赋值 E.数组不允许进行初始化,只能在程序运行期间赋值 20.下列语句正确初始化的是_ace_。 A.char str=“abcd“; B.

27、char str4=“abcd“; C.char str4=a,b,c,d; D.char str=“a“,“b“,“c“,“d“; E.char str4=97,98,99,100; 21.下列不合法的字符常量是_bd_。 A.010 B.“B“ C.X12 D.B E.B 22.整型变量 X和 Y的值相等,且为非 0值,以下选项中,结果不为 0的表达式 是_abcd_。 A.X|Y B.X|Y C.X Bfor(i=0;iy);的结果为_ab_。 10.以下程序段的执行结果是_6,8,6,7_。 main() int a1,a2,b1,b2; a1=5;a2=7; b1=+a1;b2=a2

28、+; printf(“%d,%d,%d,%dn“,a1,a2,b1,b2); 3.语句 for(i=-2;iy) z=x;x=y;y=z; printf(“%d,%d,%dn“,x,y,z); 8.在 C文件中,数据存放的两种形式是文本形式和二进制形式。 9.有函数调用语句 sub(a,1,fun(x,y),b+c,(m+n,c*h); 则该函数调用语句 中的实参个数为_5_。 1.以下程序运行结果是_6_。 main() int m=5; if(m+5) printf(“%d“,+m); else printf(“%d“,m-); 3.以下程序的运行结果是_20_。 main() int a

29、,b,c,d,x; a=c=0;b=1;d=20; if(a) d=d-10; else if(!b) if(!c)x=15; else x=25; printf(“d=%dn“,d); 4.在 C语言中对文件读写之前应该用_fopen_函数打开文件。 5.写出将字符串 s1拷贝到字符串 s2后,再连接到字符串 s3之后的语句为 _strcat(s3,strcpy(s2,s1);_。 6.在 C程序的表达式中,判断表达式成立的条件是_1_表示逻辑“真“值,0 表示逻辑“假“值。 7.有定义 static char s =“China“; 则数组所占空间为_6_ 个字节。 8.C语言中的合法标识

30、符只能有三种字符组成,它们是_字母_、数字和 下划线。 9.表达式 a=(b=3)*(c=9)的值是 _27_ 。 10.若定义了如下的结构体类型变量 x,则 x所占用的内存字节数为 _11_。 struct data1 int i; char ch; double f; x; 1.设 i,j,k均为 int型变量,则执行完以下 for语句后,k 的值是 _10_。 for(i=0,j=10;ib?a:b_。 7.C语言用_分号_表示每条语句的结束。 8.若有 int a3=10,12,30;则*(a+2)=_30_。 9.union data1 char name6; char sex; i

31、nt age; x; 则:printf(“%d “,sizeof(x)的结果是:_6_。 10.若 for循环是当型循环,则 do-while 循环是_直到型循环_ 。 2.以下函数中,若 m=10,则函数共输出_4_行。 void sub(int m,int s ) int n; for (n=1;n4结果相同。Y 65、C 语言中在一个函数内部的复合语句中定义的变量,在本函数范围内有效。 N 66、C 语言中的二维数组可以被看成特殊的一维数组。Y 67、for 循环只能用于循环次数已经确定的情况。N 68、函数的定义与函数的说明是一回事。N 69、结构体变量的名称表示该结构体变量的首地址。

32、Y 70、C 语言中函数返回值的类型是由 return语句中的表达式类型决定的。N 71、取变量名时可以出现下划线,但不可以放在变量名的开头。N 72、C 语言的缓冲文件系统既可以处理文本文件,又可以处理二进制文件。Y 73、C 语言中,在复合语句中定义的变量,只在复合语句本范围内有效。Y 74、C 语言中,运算符的优先级最低的是逗号运算符。Y 75、只能在 main( ) 函数中使用静态变量。N 76、函数声明 sub ( float a );语句中,函数的返回值是 float 型。N 77、在 C语言中整数只能表示为十进制数的形式。N 78、凡是 C源程序中行首以“#”标识的控制行都是预处

33、理命令。Y 79、for (表达式 1;表达式 2;表达式 3)语句中的三个表达式都可以省略。Y 80、在 C语言中 switch语句必须使用 break语句。N 五:操作题 第 1题操作题 /*求菲玻那契数列的前 20项。菲玻那契数列前 2项分别是 1,1,从第 3项开 始,各项分别是其前 2项之和。*/ #include void fibonacci(int f) int i; /*Fill in the blanks*/ for(i=2;iy) flag=1; /*Error*/ else if(x=y) flag=0; else flag=-1; return(flag); main(

34、) int i,n=0,m=0,k=0; int a10=5,-23,5,21,6,18,9,12,23,7; int b10=6,-9,64,23,-52,0,9,8,-35,12; printf(“数组 a:n“); for(i=0;i=A) else other+; i+; main() int i=0; char s80; printf(“n请输入一行字符:“); while(si=getchar()!=n) i+; upper=lower=digit=space=other=0; count(s); printf(“其中,大写字母个数:%d,小写字母个数:%d,空格个数:%d,数字个

35、数: %d,其它字符个数:%d“,upper,lower,space,digit,other); getch(); 第 23题操作题 /*输入一个字符串(不超过 80个字符),按逆序存放。*/ #include /*Error*/ void inverse(char str) int i,j; char t; for(i=0,j=strlen(str);i=0 return k; main() void CHECK(); char arrN=“sjk7gr7we98yv98y3“; clrscr(); printf(“字符串%s 中数字字符出现的次数为: %dn“,arr,count(arr)

36、 ; CHECK(); 第 27题操作题 /*将小写字母转换为大写字母。 例如:C Language,转换为 C LANGUAGE。*/ #include void change(char s) int i; for(i=0;si!=0;i+) if(si=a main() void CHECK(); char str20=“C Language“; clrscr(); change(str); printf(“%sn“,str); CHECK(); 第 28题操作题 /*求二维数组 a33中各列元素的最大值,并依次存储在一维数组 b3中。*/ #include void fun(int a3

37、3,int b3) int i,j; for(i=0;i3;i+) /*Error*/ bi=a0i; for(j=1;j3;j+) if(biaji) /*Error*/ bi=aji; main() int a33=11,-2,43,-4,5,0,17,68,19,b3,i; fun(a,b); for(i=0;i3;i+) printf(“%5d“,bi); printf(“n“) ; 第 29题操作题 /*计算 1!+2!+3!+.+n!。*/ #include long count(int n) int i; long sum=0,p=1; /*Fill in the blanks*

38、/ for(i=1;i=n;i+) p=p*i; /*Fill in the blanks*/ sum=sum+p; return(sum); main( ) int n; printf(“计算 1!+2!+3!+.+n!n请输入 n的值(3n10):“); /*Fill in the blanks*/ scanf(“%d“, printf(“1!+2!+.+%d!=%ldn“,n,count(n); 第 30题操作题 /*判断字符 c是否与字符串 str中的某个字符相同;若相同,什么也不做,若 不同,则将字符 c添加在字符串 str的尾部。*/ #include void insert(char *s,char c) while(*s /*Error*/ if(*s!=c) *s=c; /*Error*/ *(s+1)=0; main() char str80, c; printf( “n请输入一个字符串:“); gets(str); printf(“请输入一个字符:“); c=getchar(); insert(str, c) ; printf(“操作结果为:%sn“,str);

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。