1、福建省计算机等级考试二级选择题附答案一、单项选择题(1). 下面程序运行后,文件d_f.dat的内容是(1 )。main() FILE *fp; int i=10,j=20; fp=fopen(d_f.dat,w); fprintf(fp,%d ,i); fclose(fp); fp=fopen(d_f.dat,a); fprintf(%d ,j); fclose(fp); 10 20 20 20 10 10(2). 若有定义:enum daysun,mon, tue, wed, thu, fri, sat ; ,则枚举常量sun、mon的值分别为(4 )。 7 0 1 2 7 1 0 1(3
2、). 下列程序段运行后,表达式( 2 )的值为3。struct point int x; int y; *p;struct point a3=1,2,3,4,5,6;p=a;p3.x p1.x *(p+2) p2.x(4). 以下程序段的运行结果是(3 )。int x=2,3,4,5,6,7,*p=x;int i,s=0;for(i=1;i5;i+) s+=pi+; printf(%d,s); 20 14 8 6(5). C语言的函数体由( 1 )括起来。 ( )(6). 若有定义:int x,y,z; 语句 x=(y=z=3,+y,z+=y); 运行后,x的值为(2 )。 7 6 8 3(7
3、). 若有定义:int x; char c=A; 则正确的赋值表达式是( 4 )。(说明:A的ASCII码的十进制值为65,a的ASCII码的十进制值为97) x=ABC x=c+ABC x=c+CBA x=c+32(8). 下面叙述错误的是( 3 )。 C语言规定可逐个引用数组元素但不能一次引用整个数组 数组中每一个元素都属于同一个数据类型 C语言数组长度在定义数组时可不作确定 C语言数组名称是数组在内存中的首地址(9). 以下程序的运行结果是( 4 )。int f(int c) c+=2; return c ;main() int a=2,c=5; a=f(a); printf(%d %d
4、 n,a ,c); 2 4 2 5 4 4 4 5(10). C语言中,二维数组元素在内存中的存放顺序是(3)。 由用户自己定义 按列存放 按行存放 随机存放(11). 以下程序的运行结果是( 1 )。#define X a+bmain( ) int a=3,b=4,s1; s1=2*X; printf(%dn,s1); 10 14 8 6(12). 若有定义:char str110,str210=Fujian; ,能将字符串Fujian赋给数组str1的正确语句是( 1 )。 strcpy(str1,str2); strcpy(str2,str1); strcopy(str1,str2);
5、str1=Fujian;(13). 若有定义: int i,x; ( 3 )不是死循环。 for( ; ;i+=2) ; for(i=10; ;i-) ; for(x=5;x0;x-) ; while(x=1) ;(14). 只能向终端输出一个字符的是( 1 )。 putchar()函数 scanf()函数 printf()函数 getchar()函数(15). C语言的基本数据类型包括( 3 )。 整型、字符型、指针型 整型、实型、逻辑型 整型、实型、字符型 整型、实型、空类型(16). 若有定义:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( 2 )。 4 3 2
6、0(17). x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( 3 )。 !(x-20) & !(x-5) -5x-20 & x-5 -20x6) a=a+b; else if(a=6) b=a+c; else a=b+c; printf(%dn,a); 5 6 8 9(19). 若有定义:int a34=1,2,3,4,5,6,7; ,则a11的值为( 4 )。 2 3 1 4(20). 若有定义:struct teacherint num; char sex; int age;teacher1;则下面叙述错误的是( 4 )。 struct是结构类型的关键字 struct
7、teacher是用户定义的结构类型 num、sex、age都是结构变量teacher1的成员 teacher1是结构类型名(21). ( 1 )是关于C语言数据类型的正确叙述。 变量使用前应定义相应的数据类型 不允许使用空类型 枚举类型不是基本类型 数组不是构造类型(22). ( 4 )为非法的字符串常量。 case 056 123(23). 若有定义:int b=-15; 则( 2 )为正确的赋值表达式。 b=*5 b+=b*3 *b=6 b+10=-5(24). 若有定义:int a,b=6; 语句a=-b; 运行后,a、b的值分别是( 4 )。 6 5 5 6 6 6 5 5(25).
8、若有定义 float x; 要从键盘输入数据6.02赋给x,则应选用( 3 )语句。 scanf(%1.2f,&x); scanf(%4.2f,&x); scanf(%f,&x); scanf(%8.2f,&x);(26). 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=ab)|(k=cd); 运行后,k的值为( 4 )。 0 2 -1 1(27). 若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a10) y=a+6; printf(%dn,y+a); 10 16 11 15(29). 以下程序段运行后x的值为( 1 )。int i=0,x=2
9、;while(i+=5) x+=2; 14 12 8 10(30). 以下程序段运行后x的值为(4 )。 int a8=1,2,3,4,5,6,7,8,i,x=0; for(i=0;i8;i+,i+) x=x+ai; 20 18 36 16(31). 以下程序段运行后s的值是( 2 )。int a33=1,2,3,1,2,3,1,2,3;int i,j,s=0;for(i=0;i3;i+) for(j=i;j3;j+) s+=aij; 15 14 13 12(32). 以下程序的运行结果是( 2 )。int a=2,b=3;int min(int a,int b) int c; c=ab?a:
10、b; return(c);main() int a=4; printf(%d,min(a,b); 4 3 2 2,3(33). 若有定义:#define PI 3,则表达式PI*2*2的值为( 2 )。 322 12 4 不确定(34). 以下程序段运行后*(p+1)的值为( 2 )。char a=good;char *p;p=a; a1的地址 o 不确定 g(35). 以下程序段运行后x的值为( 4 )。int a=1,2,3,4,5,6,7,8;int i,x,*p;x=1;p=&a1;for(i=0;i3;i+) x*=*(p+i); 6 1 120 24(36). 以下程序段的运行结果
11、是( 4 )。 union int num1; int num2; s; s.num1=20; s.num2=30; printf(%d,s.num1); 20 2030 50 30(37). 下面程序运行后,屏幕显示File open error!,则可能的原因是( 4 )。#include main() FILE *fp; char str256; fp = fopen(test.txt, rt); if(fp=NULL) printf(File open error!); return; fscanf(fp,%s,str); fclose(fp); 当前工作目录下的test.txt文件是
12、空文件 函数fopen()的参数是错误的 test.txt文件已经打开 当前工作目录下没有test.txt文件(38). (1 )为正确的用户标识符。 max_at 3_row union min-5(39). 若有定义:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为( 2 )。 2 3 5 5 2 3 5 3 2 3 2 5(40). 下面叙述正确的是( 2 )。 模运算符%两边运算数的数据类型是任意的 C语言中整型与字符型变量的混合运算表达式的结果是整型 (3+9)+ 是正确表达式 abc+xxx是正确表达式(41). 若有定义 int a=8,b
13、=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( 4 )。 printf(a*b=%dn,a*b); printf(%d*%d=a*bn,a,b); printf(a*b=a*bn); printf(%d*%d=%dn,a,b,a*b);(42). 下列运算符中优先级最低的是( 1 )。 = ! *(43). 以下程序段的运行结果是( 4 )。 int s=15; switch(s/4)default: printf(Over ); case 1: printf(One ); break; case 2: printf(Two ); One Two Over
14、Two Over One(44). 下面叙述正确的是( 1 )。 for循环的循环体可包含多条语句,但必须用花括号 括起来 for循环只能用于循环次数已经确定的情况 在for循环中,不能用break语句跳出循环体 for循环是先执行循环体语句,后判断表达式(45). 若有定义:int arr15,n=5; 无法正确引用arr数组元素的是( 4 )。 arr15-n arr0 arrn arr10+n(46). 以下程序段的运行结果是( 4 )。char str32= a,b,c,0,e,f;printf(%s,str0); abcef a abc0ef abc(47). 以下程序段运行后*(p
15、+)的值为( 3 )。char a5=work;char *p;p=a; a0的地址 o w a1的地址(48). 若有定义:struct data char a; float b3; long c;d1;则变量d1的长度是( 4 )。12 4 15 17(49). 若有定义:int a10=0,1,2,3,4,5,6,7,8,9, *p=a; , 则( 3 )表达式是错误的。 p+ a2 a+ p2(50). 若由定义:typedef int NUM100;NUM n;则( 3 )语句是正确的。 NUM=n; n=2; n0=2; NUM=2;(51). 下面程序运行后,屏幕显示write
16、ok!,则下面叙述正确的是( 3 )。main() FILE *fp; fp=fopen(data.txt, wt); if(fp!=NULL) fprintf(fp,%sn, File write successed!n); fclose(fp); printf(write ok!n); 当前工作目录下找不到data.txt文件 当前工作目录下存在data.txt文件,其中的内容是“write ok!” 当前工作目录的data.txt文件已经关闭 当前工作目录的data.txt文件已经打开(52). ( 3 )为正确的变量名。 case else pro_5 5_pro(53). 若有定义:
17、float x=2,y; int a=3; 语句y=1*(x+a)/3; 运行后,y的值为( 3 )。 1.0 0 1.666667 2.0(54). 若有定义:int x,a; 赋值语句a=(x%3=0)?0:1; 与( 4 )语句不等价。 if (!(x%3=0) a=1; else a=0; if (x%3!=0) a=1; else a=0; if (x%3=0) a=0; else a=1; if (x%3) a=0; else a=1;(55). 以下程序段的运行结果是( 1 )。int t3=1,2,3,4,5,6,7,8,9,10,11,12;printf(%dn,t11);
18、5 3 1 4(56). 以下程序段运行后a的值为( 2 )。int a=2;a=strcmp(miss,miss); 1 0 true -1(57). 以下程序的运行结果是( 2 )。fun() static int a=0; a+; printf(%d ,a);main() int i; for(i=1;i=2;i+) fun(); 1 1 1 2 0 1 0 0(58). 若有定义:int *p1,*p2; ,则不能用于指针变量p1、p2之间的运算符是( 4 )。 = = = - +(59). 以下程序段的运行结果是( 2 )。int x3=1,2,3;int *p;p=x;for(p+
19、;p0) j + ; /* 语句3 */ 语句1、2、3均错误 语句1错误,语句2和语句3正确 语句1、2、3均正确 语句2正确,语句1和语句3错误(62). 下面叙述正确的是( 2 )。 程序中必需含有自定义函数 所有语句都必须以分号;结束 main()函数必须位于源程序文件的开头 每行最多只能写两条语句(63). 若有定义:float x=3.5,y=3.6; 则表达式( 2 )的值为6。 (int)(x+y) (int)x+(int)y int(x+y) x+y(64). 以下程序段运行后x的值为( 1 )。int i=0,x=0;for(;i=5;i+,i+) x+=3; 9 15 6
20、 12(65). 若有定义:int a32; ,则表达式&a21-a的值为( 3 )。 5 4 3 2(66). 以下程序的运行结果是( 4 )。int fun(int array33) int j; for(j=0;j3;j+) array1j+; printf(n);main() int j,a33=0,1,2,1,0,4,2,4,5; fun(a); for(j=0;j3;j+) printf(%2d,a1j); printf(n); 1 0 4 1 2 3 0 1 2 2 1 5(67). 下面叙述错误的是( 1 )。 宏定义也是C语句,必须在行末加分号 “#define PRICE
21、30”命令的作用是定义一个与30等价的符号常量PRICE C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 “#inclue ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令(68). 下面叙述错误的是( 4 )。 任何指针变量都可以与空指针NULL进行比较 一个指针变量只能指向同一类型的变量 一个变量的地址称为该变量的指针 可以将一个整数值赋给指针变量(69). 以下程序段运行后x的值为( 4 )。int a=1,2,3,b=4,3,3;int *p,*q;int i,x;p=a; q=b;for(i=0;i3;i+) if(*(p+i)=*(q+i) x=
22、*(p+i)*2; 4 2 不确定 6(70). 以下程序的运行结果是( 2 )。 main() int a3=1,2,3; int *num3; int *p,i; for(i=0;i3;i+) numi=&ai; p=num; printf(%d,*p); &a0 1 3 num(71). ( 2 )不是文件读库函数。fgetc() fputs() fscanf() fread()(72). C源程序中main()函数的位置( 4 )。 必须位于程序的最前面 可以在自定义函数后面 必须在自定义函数前面 必须在系统库函数后面(73). 若有定义:int a=3; 语句a+=a-=a*a; 运
23、行后,a的值为( 3 )。 -6 -3 -12 0(74). 若有语句 int a; char c; scanf(%3d%c,&a,&c); 为将整数135赋给a,字符6赋给c,正确的数据输入方式是( 3 )。(说明:代表换行,_代表空格) 1356 135_6 1356 135_6_(75). 若有定义:int x=1,y=2,z=3; 则表达式( 2 )的值为0。 xy | xz !(xy) & z) x=y x| (y+z & y-z)(76). 以下程序段运行后x的值为( 4 )。int a=3,b=6,x;x=(a=b)?a+:-b; 3 4 6 5(77). 若有定义: int i
24、,x=0; 语句for(i=1;i=3;i+) x+=2;与下列( 2 )程序段不等价。 i=1; for( ;i=3;i+) x+=2; i=1;for( ; ;i+) x+=2; i=1;for( ;i=3; ) x+=2; i+; for(i=1;i=3; ) x+=2; i+;(78). ( 3 )能正确定义一个指向函数的指针。 int (*p)() int (*p() int *p() (int *)p()(79). 若有定义:enum numa1,a2=3,a3,a4=10 ; ,则枚举常量a2、a3的值分别为( 2 )。 2 3 3 4 3 3 1 2(80). C语言中,对文件操作的一般步骤是( 4 )。 打开文件,定义文件指针,读写文件,关闭文件 定义文件指针,读文件,写文件,关闭文件 操作文件,定义文件指针,修改文件,关闭文件 定义文件指针,打开文件,读写文件,关闭文件(81). 若有定义:int i=3,j=6; 则表达式(-i)*(j+)的值为( 2 )。 18 12 10 15(82). 若有定义: int a; 且表达式 !a的值为0,则表达式( 4 )的值为1。 !(a0) a=0 a=0 a!=0(83). 以下程序段运行后x的值为( 4 )。 int a8=1,2,3,4,5,6,7,8
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1