c 计算机二级考试试题,计算机二级c语言考试试题及答案

为帮助同学们在计算机二级考试中能轻松通过考试,百分网小编为大家整理了历年的计算机二级考试题及答案,希望对大家有所帮助!

计算机考试题【一】

1.若以下对fun函数的调用是正确的:

x=fun(fun(a,b,c),(a+b,a+c),a+b+c);

则fun函数的形参个数为()

A)3 B)4 C)5 D)6

2.若有说明:int*p, m=5; n;,以下正确的程序段是()

A)p=&m;

scanf("%d",&p)

B)p=&n;

scanf("%d",&p)

C)scanf("%d",&p)

p=&n;

D)p=&n;

p=&m;

3.以下程序调用findmax函数返回数组中的最大值

findmax(int*a,int n)

{ int*p,*s;

for(p=a,s=a;p-a  if()s=p;

return(*s);

}

main()

{ intx[5]={12,21,13,6,18};

printf("%d\n",findmax(x,5));

}

在下划线处应填入的是()

A)p>s B)*p>*s C)a[p]>a[s] D)p-a>p-s

4.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是()

A)p=2*(int*)malloc(sizeof(int));

B)p=(int*)calloc(2*sizeof(int));

C)p=(int*)malloc(2* sizeof(int));

D)p=2*(int*)calloc(sizeof(int));

5.下列程序的输出结果是()

main()

{char *p1,*p2,str[50]="xyz";

p1="abcd";

p2="ABCD";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

}

A)xyabcAB B)abcABz C)Ababcz D)XycdBCD

6.以下叙述中不正确的是()

A)一个变量的作用域完全取决于变量定义语句的位置

B)全局变量可以在函数以外的任何部位进行定义

C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用

D)一个变量说明为static存储类是为了限制其他编译单位的引用

7.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符()

A)~ B)& C)^ D)|

8.下面的说法不正确的是()

A)函数调用时,先求出实参表达

B)函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递

C)对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏名有类型

D)调用函数只可得到一个返回值,而用宏可以设法得到几个结果

9.fscanf函数的正确调用形式是()

A)fscanf(fp,格式字符串,输出表列);

B)fscanf(格式字符串,输出表列,fp);

C)fscanf(格式字符串,文件指针,输出表列);

D)fscanf(文件指针,格式字符串,输入表列);

10.以下程序的运行结果是()

# define MAX 10

int a[MAX],i;

main()

{ printf("\n");sub1();sub3(a);sub2();sub3(a);

}

sub2()

{ int a[MAX],i,max;

max=5;

for(i=0;i  }

sub1()

{for(i=0;i  }

sub3(int a[])

{ int i;

for(i=0;i  printf("\n");

}

A)0 2 4 6 8 10 12 14 16 18

0 1 2 3 4

B)0 1 2 3 4

0 2 4 6 8 10 12 14 16 18

C)0 1 2 3 4 5 6 7 8 9

0 1 2 3 4

D)0 2 4 6 8 10 12 14 16 18

0 2 4 6 8 10 12 14 16 18

答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.B 9.D 10.D

计算机考试题【二】

1.若有如下程序:

main()

{chara[]="china\0name\0";

printf("%d,",strlen(a));

printf("%d\n",sizeof(a));}

则程序运行后的输出结果是()

A)5,11 B)5,12 C)11,11 D)12,12

2.指针变量p的基类型为int,并已指向一连续存储区,若p中当前的地址值为1234,则执行p++后,p中的值为()

A)1234 B)1235 C)1236 D)1237

3.函数调用“strcat(strcpy(str1,str2),str3)”的功能是()

A)将串str1拷贝到串str2中后再连接到串str3之后

B)将串str1连接到串str2之后再拷贝到串str3之后

C)将串str2拷贝到串str1中后再将串str3连接到串str1之后

D)将串str2连接到串str1之后再将串str1拷贝到串str3中

4.下面宏定义正确的是()

A)#defineSa*b

B)#definePI3.14;

C)#definemax(a,b) ((a)>(b)?(a)∶(b))

D)#defines(x)(x)*(x);

5.下面叙述正确的是()

A)函数调用不可以出现在表达式中

B)函数调用可以作为一个函数的实参

C)函数调用可以作为一个函数的形参

D)函数不可以直接调用其本身

6.有如下程序

#include

main()

{int v1=0,v2=0;

char ch;

while ((ch=getchar())!='#')

switch(ch)

{case ′a′:

case ′h′:

default:v1++;

case ′0′: v2++;

}

printf("%d,%d\n",v1,v2);

}

如果从键盘上输入china#,则程序运行结果为()

A)2,0 B)5,0 C)5,5 D)2,5

7.程序中头文件type1.h的内容是:

#defineN5

#defineM1N*3

程序如下:

#include"type1.h"

#defineM2N*2

main()

{inti;

i=M1+M2;printf("%d\n",i);}

程序编译运行后的输出结果是()

A)10 B)20 C)25 D)30

8.C语言规定函数返回值的类型由()

A)在定义时所指定的函数类型所决定

B)调用该函数时的主调函数类型所决定

C)return语句中的表达式类型所决定

D)调用该函数时系统临时决定

9.若有如下程序:

main()

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

printf("%d%d%d\n",a[0][1],a[1][2],a[2][3]);}

则程序运行后的输出结果是()

A)270 B)480 C)160 D)不定值

10.以下能将字符串:youareluck!正确读入的语句组是()

A)chars[80];scanf("%s",s);

B)char*s;scanf("%s",s);

C)chars[80];gets(s);

D)char*s;gets(s);

答案:1.B 2.C 3.C 4.C 5.B 6.C 7.C 8.A 9.A 10.C

计算机考试题【三】

1.执行下面的程序段

int x=40;

char z=′B′;

int B;

B=((x&0xff)&&(z>′a′));

后,B的值为()

A)0 B)1 C)2 D)3

2.已知下列函数定义

setw(int *b,int m,int n,int dat)

{ int k;

for(k=0;k  {*b=dat;b++;}

}

则调用此函数的正确写法是(假设变量a的说明为int a[50])()

A)setw(*a,5,8,1); B)setw(&a,5,8,1); C)setw((int*)a,5,8,1); D)setw(a,5,8,1);

3.若有以下定义和语句:

double r=99, *p=7;

*p=r;

则以下正确的叙述是()

A)两处的*p含义相同,都说明给指针变量p赋值3

B)在“double r=99, *p=7; *p=r;”中,把r的地址赋给了p所指的存储单元

C)语句“*p=r;”把变量r的值赋给指针变量p

D)语句“*p=r;”把变量r的值放回p中

4.设有char str[10],下列语句正确的是()

A)scanf("%s",&str); B)printf("%c",str); C)printf("%s",str[0]); D)printf("%s",str);

5.下列描述说明正确的是()

A)定义结构体时,它的每个成员的数据类型可以不同

B)不同结构体的成员名不能相同

C)结构体定义时,其成员的数据类型不能是结构体本身

D)结构体定义时各成员项之间可用分号也可用逗号隔开

6.以下函数的功能是()

intfun(char *a)

{ char*b=a;

while(*b)b++;

{return b-a; }

}

A)比较两个字符串的大小 B)字符串的复制 C)计算字符串的长度 D)字符串的连接

7.若有如下程序:

#define X3

#define YX+1

#define ZY*Y/2

main()

{ intn;

for(n=1;n<=Z;n++)printf("%d",n);}

则程序运行后的输出结果是()

A)12345 B)1234567 C)12345678 D)123456

8.以下叙述中错误的是()

A)局部变量的定义可以在函数体和复合语句的内部

B)全局变量的定义可以在函数以外的任何部位

C)同一程序内局部变量和全局变量不允许同名

D)函数的形参属于局部变量

9.以下叙述中错误的是()

A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B)在程序结束时,应当用fclose函数关闭已打开的文件

C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D)不可以用FILE定义指向二进制文件的文件指针

10.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()

A)EOF B)0 C)非零值 D)NULL

答案:1.A 2.D 3.D 4.D 5.A 6.C 7.D 8.C 9.D 10.C

计算机考试题【四】

1.有以下程序:

main()

{intx=0xFFFF;printf("%d\n",x--);}

执行后的输出结果是()

A)32767 B)FFFE C)-1 D)-32768

2.以下程序的输出结果是()

#include

#include

main()

{ char str[12]={′s′,′t′,′r′,′i′,′n′,′g′};

printf("%d\n",strlen(str));

}

A)6 B)7 C)11 D)12

3.若有以下定义:

char s[20]="programming",*ps=s;

则不能代表字符o的表达式是()

A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值