福建省计算机等级考试二级选择题(附答案)

更新时间:2023-11-03 13:35:01 阅读量: 综合文库 文档下载

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

一、单项选择题

(1). 下面程序运行后,文件d_f.dat的内容是(1 )。 main()

{ FILE *fp; int i=10,j=20; fp=fopen(\ fprintf(fp,\ fclose(fp);

fp=fopen(\ fprintf(\ fclose(fp); }

① 10 20 ② 20 ③ 20 10 ④ 10

(2). 若有定义:enum day{sun,mon, tue, wed, thu, fri, sat} ; ,则枚举常量sun、mon的值分别为(4 )。

① 7 0 ② 1 2 ③ 7 1 ④ 0 1

(3). 下列程序段运行后,表达式( 2 )的值为3。 struct point { int x; int y; } *p;

struct point a[3]={1,2,3,4,5,6}; p=a;

①p[3].x ②p[1].x ③ *(p+2) ④p[2].x (4). 以下程序段的运行结果是(3 )。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0;

for(i=1;i<5;i++) s+=p[i++]; printf(\

① 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). 若有定义: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(\}

① 2 4 ② 2 5 ③ 4 4 ④ 4 5

(10). C语言中,二维数组元素在内存中的存放顺序是(3)。 ① 由用户自己定义 ② 按列存放 ③ 按行存放 ④ 随机存放 (11). 以下程序的运行结果是( 1 )。 #define X a+b main( )

{ int a=3,b=4,s1; s1=2*X;

printf(\}

① 10 ② 14 ③ 8 ④ 6 (12). 若有定义:char str1[10],str2[10]=\,能将字符串\赋给数组str1的正确语句是( 1 )。

① strcpy(str1,str2); ② strcpy(str2,str1); ③ strcopy(str1,str2); ④ str1=\

(13). 若有定义: int i,x; ( 3 )不是死循环。

① for( ; ;i+=2) ; ② for(i=10; ;i--) ; ③ for(x=5;x>0;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 ④ 0

(17). x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( 3 )。 ① !(x>-20) && !(x<-5) ② -5-20 && x<-5 ④ -20

{int a,b=2,c=6; a=3; if(a>6) a=a+b;

else if(a==6) b=a+c; else

a=b+c;

第 2 页 共 25 页

printf(\}

① 5 ② 6 ③ 8 ④ 9

(19). 若有定义:int a[3][4]={{1,2},{3,4},{5,6,7}}; ,则a[1][1]的值为( 4 )。

① 2 ② 3 ③ 1 ④ 4 (20). 若有定义: struct teacher {int num; char sex; int age; }teacher1;

则下面叙述错误的是( 4 )。

① struct是结构类型的关键字 ② struct teacher是用户定义的结构类型 ③ num、sex、age都是结构变量teacher1的成员 ④ teacher1是结构类型名 (21). ( 1 )是关于C语言数据类型的正确叙述。

① 变量使用前应定义相应的数据类型 ② 不允许使用空类型 ③ 枚举类型不是基本类型 ④ 数组不是构造类型 (22). ( 4 )为非法的字符串常量。

① \② \③ \④ '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). 若有定义 float x; 要从键盘输入数据6.02赋给x,则应选用( 3 )语句。

① scanf(\② scanf(\③ scanf(\④ scanf(\(26). 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a

(27). 若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a

① 0 0 ② 1 1 ③ 1 0 ④ 0 1

(28). 以下程序段运行时,若从键盘输入5,则运行结果是(4 )。 int a,y=10;

scanf(\ if (a>10) y=a+6;

printf(\

① 10 ② 16 ③ 11 ④ 15

(29). 以下程序段运行后x的值为( 1 )。 int i=0,x=2; while(i++<=5)

第 3 页 共 25 页

{x+=2; }

① 14 ② 12 ③ 8 ④ 10

(30). 以下程序段运行后x的值为(4 )。 int a[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=0;i<8;i++,i++) x=x+a[i];

① 20 ② 18 ③ 36 ④ 16

(31). 以下程序段运行后s的值是( 2 )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=0;

for(i=0;i<3;i++) for(j=i;j<3;j++) s+=a[i][j];

① 15 ② 14 ③ 13 ④ 12

(32). 以下程序的运行结果是( 2 )。 int a=2,b=3;

int min(int a,int b) { int c;

c=a

main()

{ int a=4;

printf(\}

① 4 ② 3 ③ 2 ④ 2,3

(33). 若有定义:#define PI 3,则表达式PI*2*2的值为( 2 )。 ① 322 ② 12 ③ 4 ④ 不确定

(34). 以下程序段运行后*(p+1)的值为( 2 )。 char a[]=\char *p; p=a;

① a[1]的地址 ② 'o' ③ 不确定 ④ 'g' (35). 以下程序段运行后x的值为( 4 )。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1;

p=&a[1];

for(i=0;i<3;i++) x*=*(p+i);

① 6 ② 1 ③ 120 ④ 24

(36). 以下程序段的运行结果是( 4 )。 union

第 4 页 共 25 页

{ int num1; int num2; }s;

s.num1=20; s.num2=30;

printf(\

① 20 ② 2030 ③ 50 ④ 30

(37). 下面程序运行后,屏幕显示File open error!,则可能的原因是( 4 )。 #include main() {

FILE *fp;

char str[256];

fp = fopen(\ if(fp==NULL)

{ printf(\ return; }

fscanf(fp,\ fclose(fp); }

① 当前工作目录下的test.txt文件是空文件 ② 函数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)++ 是正确表达式 ④ \是正确表达式 (41). 若有定义 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( 4 )。

① printf(\② printf(\③ printf(\④ printf(\(42). 下列运算符中优先级最低的是( 1 )。 ① = ② ! ③ > ④ *

(43). 以下程序段的运行结果是( 4 )。 int s=15; switch(s/4) {default:

printf(\ case 1:

第 5 页 共 25 页

③ int arr[][3]={1,2,3,4,5}; ④ int arr[2][3]={{1},{3,4,5}}; (85). 以下程序段的运行结果是( 1 )。 char str[]={ \printf(\①6 ② 8 ③ 9 ④ 7

(86). 下面叙述错误的是( 3 )。

① 预处理命令行都必须以“#”开头 ② C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 ③ 预处理命令行必须以分号结束 ④ “#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE

(87). 下列程序段运行后,( 2 )对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3) int i,j,(*p)[3];

int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p = a;

① *(p[i]+j) ② *(*(p+i)[j]) ③ *(*(a+i)+j) ④ p[i][j] (88). 若有定义:

typedef int * INTEGER; INTEGER p;

则下面叙述正确的是( 4 )。

① 程序中可用INTEGER定义int类型变量 ② p是一个整形变量 ③ p是与INTERGE相同的类型 ④ 程序中可用INTEGER定义int类型指针变量

(89). 若当前工作目录下有一文本文件test.txt,其内容为“cprogram”(不包含引号),则以下程序段的运行结果是( 1 )。 FILE *fp; char *str;

if((fp=fopen(\ str=fgets(str,5,fp); printf(\ fclose(fp);

① cpro ② cprog ③ gram ④ ogram

(90). 若有定义 int x=1,y=2,n=3; 则( 4 )为正确的表达式。 ① float(y/n) ② x=ny ③ (x+y)(y+n) ④ x=y*3,y=(x+n)/y (91). 若有定义:char c1='A',c2='B'; 语句

printf(\运行后的结果为( 2 )。(说明:'A'的ASCII码的十进制值为65)

① A+B=131 ② 65+66=131 ③ 65+66=AB ④ A+B=AB (92). ( 1 )是正确的数组定义。 ① int arr[10]; ② int n; n=5; int arr[n]; ③ int N=5, arr[N]; ④ int n=5; int arr[n];

(93). 以下程序段的运行结果是( 1 )。 char a[]=\char b[]=\strcpy(a,b);

printf(\

第 11 页 共 25 页

① z ② y ③ c ④ b

(94). 若有定义:#define F 2+3,则表达式F*F的值为( 4 )。 ① 17 ② 13 ③ 25 ④ 11

(95). 以下程序的运行结果是( 1 )。 main( )

{ char a[]=\ for(p=a;p

① 137377 ② 7 ③ 137 ④ 13737 (96). 若有定义: union u_type {int x;

float y[3]; char z; }a;

则变量a的长度是( 3 )。 ① 4 ② 15 ③ 12 ④ 1

(97). ( 3 )对枚举类型的定义是错误的。

① enum a{A, B, C}; ② enum d{X=0, Y=5, Z=9}; ③ enum b{1, 2, 3}; ④ enum c{D=3, E, F};

(98). 若有定义: int a=3,b=5,c=8; 则表达式 !(a-b) || (c-b) 的值为( 2 )。

① 2 ② 1 ③ 3 ④ 0

(99). 若有定义:int a; 则表达式( 2 )不能用来判断a值为奇数是“真”,偶数是“假”。

① a%2 ② !(a%2) ③ a%2==1 ④ !(a%2==0) (100). ( 4 )为合法的常量。

① 5,326 ② 'b_k' ③ 3.21E-6.5 ④ 1.23E+8

(101). C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是( 4 )。

① void ② long ③ double ④ int

(102). C语言中,数组名作为函数调用的实参时,下面叙述正确的是( 1 )。 ① 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化 ② 传递给形参的是数组第一个元素的值 ③ 传递给形参的是数组元素的个数 ④ 传递给形参的是数组中全部元素的值

(103). 以下程序段运行后x的值为( 3 )。 int i=0,x=0;

int a[3][3]={1,2,3,4,5,6,7,8,9}; for (;i<3;i++) x+=a[i][i];

① 18 ② 12 ③ 15 ④ 0

(104). 若有定义:int a[10],i=2; 能正确引用a数组元素的是( 4 )。 ① a(7) ② a[10] ③ a[9+i] ④ a[10-i]

第 12 页 共 25 页

(105). getchar()函数的功能是获取终端输入的( 4 )。

① 一个整型变量表达式 ② 多个字符 ③ 一个实型变量值 ④ 一个字符 (106). ( 3 )为正确的字符常量。

① '165' ② '\\084' ③ '@' ④ 'bcd'

(107). 若有定义:int a=4,*p=&a; ,则以下( 4 )均表示地址。 ① a,*p ② &a,*p ③ a,p ④ &a,p (108). (2 )语句符合C语言语法。

① int a=b=2,c=5; ② float x=2.3,b,c; ③ float x=3.2,int i,j=6; ④ int a=2,b+=a;

(109). 下面叙述错误的是( 3 )。

① 一个C源程序的执行是从main()函数开始,直到main()函数结束 ② C源程序必须包含一个main()函数 ③ 注释说明部分只能位于C源程序的最前面 ④ C源程序可由一个或多个函数组成

(110). 以下程序段运行后x的值为( 3 )。 int i,j,x=0;

for(i=3;i>=1;i--) for(j=1;j<=i;j++) x=x+2;

① 10 ② 14 ③ 12 ④ 8

(111). 以下程序段的运行结果是( 2 )。 int s=15; switch(s/4) {case 1:

printf(\ case 2:

printf(\ case 3:

printf(\ default:

printf(\}

① One Over ② Three Over ③ Three ④ Two Over

(112). 若有定义:float x=3.5,y=5.5; 则表达式( 2 )的值为2。 ① int(x+y)%7 ② (int)(x+y)%7 ③ (int)x+y%7 ④ (x+y)%7 (113). 下面叙述正确的是( 1 )。

① 5/(int)4.0 与 5/4 等价 ② 2/3 与 2%3 等价 ③ ++2 与 3 等价 ④ ++2与--3 等价

(114). 下面叙述错误的是( 2 )。

① 模运算符\是C语言基本的算术运算符 ② 算术运算符中只有\、\优先级高于关系运算符 ③ 算术运算符中不包含\运算符 ④ 自加和自减运算符只能用于变量,而不能用于常量或表达式 (115). 以下程序段的运行结果是( 1 )。 char a[]=\char b[]=\

第 13 页 共 25 页

char c[10]; strcpy(c,a); strcat(c,b); printf(\

① abc xyz ② xyzabc ③ abc ④ xyz (116). 下面叙述错误的是( 4 )。

① C源程序中大、小写字母是有区别的 ② 一个C源程序可由一个或多个函数组成 ③ 若一条语句较长,可分写在下一行或多行上 ④ 构成C语言源程序的基本单位是语句

(117). ( 4 )是结构化程序设计应遵循的原则。 ① 应使用顺序、选择、循环三种基本控制结构表示程序逻辑 ② 为提高程序效率,应尽量使用Goto语句 ③ 选用的控制结构可有多个入口和一个出口 ④ 根据需要可使用嵌套基本控制结构表示程序逻辑 (118). 以下叙述正确的是( 3 )。

① 函数体定界符也可用一对方括号\② 由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面 ③ 注释部分可单独占用一行,也可跟在语句的后面 ④ C语言源程序每一行就是一条语句 (119). main()函数的位置( 2 )。

① 必须位于程序文件的最前面 ② 可位于用户自定义函数之前,也可位于用户自定义函数之后 ③ 必须位于用户自定义函数的前面 ④ 必须位于用户自定义函数的后面

(120). 下面叙述错误的是( 1 )。

① 语句是构成C语言源程序的基本单位 ② 注释部分在程序编译和运行时不起作用 ③ 所有语句都必须以分号\结束 ④ C语言源程序必须包含一个main()函数

(121). 描述一个算法可以有不同的方式,常见的有( 3 )。 ① 汇编语言、高级语言和低级语言 ② 机器语言、汇编语言和高级语言 ③ 自然语言、流程图和伪代码 ④ 高级语言、自然语言和伪代码 (122). 对应代数式3a÷(b+c),C语言的表达式是( 3 )。 ①3a/(b+c) ② 3*a/b+c ③ 3*a/(b+c) ④3*a\\(b+c)

(123). 若已定义:double x=3,y; int z=2; 则语句y=(x+z)/2*z; 执行后,y的值为( 1 )。

① 5.0 ② 4.0 ③ 1.25 ④ 1.0

(124). 若已定义int k=4,s=10; 则下列程序段的运行结果是( 4 )。 if (2*k>9) s=k+5;

printf(\

① 13 ② 10 ③ 19 ④ 14 (125). 若已定义:int x=2,y; 则逗号表达式 y=3,x+=x+(++y)%x的值是(4 )。 ① 3 ② 2 ③ 5 ④ 4

(126). 循环语句的循环体中,continue语句的作用是( 4 )。

① 立即终止程序运行 ② 结束本次循环,跳出循环体 ③ 继续执行continue语句之后的循环体各语句 ④ 结束本次循环 (127). 下列程序段的运行结果是( 2 )。

第 14 页 共 25 页

int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(\① 3 ② 8 ③ 11 ④ 12

(128). 对于无返回值的自定义函数,在定义时最好使用( 2 )类型标识符。 ① int ② void ③ float ④ long (129). 下列程序的运行结果是( 4 )。 void fn(int *p,int n) {int j;

for(j=0;j

void main( )

{int a[5]={1,2,3,4,5}; int i; fn(a,5);

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

printf(\}

① 1 2 3 4 15 ② 1 2 3 4 5 ③ 11 2 3 4 5 ④ 11 12 13 14 15 (130). 以下程序段的输出结果是( 1 )。 int a[5]={1,3,5,7,9},*p; p=&a[2];

printf(\printf(\

① 7 3 ② 9 4 ③ 7 4 ④ 5 3 (131). 文件类型FILE是( 1 )。

① 一种结构类型 ② 一种数组类型 ③ 一种指针类型 ④ 一种函数类型 (132). 下列( 4 )是不正确的常量形式。 ① 1.6E6 ② \③ 1E-2 ④ 'x5'

(133). 若已定义:int x=3,y=2;则下列不正确的赋值表达式是( 4 )。 ① x=2, y=2; ② x=y+2 ③ x-=x+=y; ④x-y=1;

(134). 要使用以下程序段给三个整变量x1,x2,x2分别赋值1,2,3,正确的数据输入格式是( 4 )。 int x1,x2,x3;

scanf(\① 1 2 3

② 1 2 3 ③ 123 ④ 1,2,3

(135). 下列( 2 )不能当作一条语句。 ① if(k>0); ② if(k==0) m=1; n=2;

第 15 页 共 25 页

本文来源:https://www.bwwdw.com/article/3zo2.html

Top