c语言试题(2)

  • 格式:doc
  • 大小:51.50 KB
  • 文档页数:11

全国计算机等级考试二级笔试卷

基础知识和C语言程序设计

(考试时间120分钟,满分100分)

1995年9月

一、选择题((1)—(40)每小题1分,(41)—(50)每小题2分,共60分)

下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 第一台电子数字计算机ENIAC诞生于

A) 1927年 B)1936年 C) 1946年 D) 1951年

(2) 用FORTRAN语言编制的源程序要变为目标程序,必须经过

A) 汇编 B) 解释 C) 编辑 D) 编译

(3) 计算机软件一般包括系统软件和

A) 字处理软件 B) 应用软件 C) 管理软件 D) 科学计算机软件

(4) 计算机内使用的数是

A) 二进制数 B) 八进制数 C) 十进制数 D) 十六进制数

(21) 请选出可用作C语言用户标识符的一组标识符

A) void B) a3_b3 C) For D) 2a

define _123 —abc DO

WORD IF Case sizeof

(22) 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是

A) 552 B) 264 C) 144 D) -264

(23) C语言程序的基本单位是

A) 程序行 B) 语句 C) 函数 D) 字符

(24) 请选出合法的C语言赋值语句

A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);

(25) 执行下面程序片段的结果是

int x=23;

do

{ printf(”%2d",x——);}

while(!x);

A) 打印出321 B) 打印出23 C) 不打印任何内容 D) 陷入死循环

(26) 请选出以下语句的输出结果

printf(”%d\n”,strlen("\t\”\065\xff\n”));

A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出

(27) 设有如下的函数

ggg(x) float x;

{ printf(”\n%d”,x*x);}

则函数的类型

A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定

(28) 设有如下枚举类型定义:

enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran};

枚举量Fortran的值为

A) 4 B) 7 C) 102 D) 103

(29) 若有以下说明和语句,请选出哪个是对c数组元素的正确引用

int c[4][5], (*cp)[5];

cp=c;

A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)

(30) 标准函数 fgets(s, n, f) 的功能是

A) 从文件f中读取长度为n的字符串存入指针s所指的内存

B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C) 从文件f中读取n个字符串存入指针s所指的内存

D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存

(31) 设有如下一段程序:

int *var,ab;

ab=100

var=&ab;

ab=*var+10;

执行上面的程序后,ab的值为

A) 120 B) 110 C) 100 D) 90

(32) 以下程序段给数组所有的元素输入数据,请选择正确答案填入。

#include〈stdio。h〉

main()

{ int a[10],i=0;

while(i<10) scanf(”%d”,________ );

}

A) a+(i++) B) &a[i+1] C) a+i D) &a[++i]

(33) 设有如下的程序段:

char str[ ]="Hello";

char *ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为

A) ’o' B) '\0' C) 不确定的值 D) ’o’的地址

(34) 在宏定义 #define PI 3.14159中,用宏名PI代替一个

A) 单精度数 B) 双精度数 C) 常量 D) 字符串

(35) 字符(char)型数据在微机内存中的存储形式是 A) 反码 B) 补码 C) EBCDIC码 D) ASCII码

(36) 执行下面的程序段

int x=35;

char z='A’;

int b;

B=((x&15)&&(z<’a'));

后,B的值为

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

(37) C语言规定,程序中各函数之间

A) 既允许直接递归调用也允许间接递归调用

B) 不允许直接递归调用也不允许间接递归调用

C) 允许直接递归调用不允许间接递归调用

D) 不允许直接递归调用允许间接递归调用

(38) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 abc1的表达式是

A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D)

1.0/a/b/c

(39) 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是

A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x

(40) 设有

static char str[ ]=”Beijing”;

则执行

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

后的输出结果为

A) 5 B) 7 C) 12 D) 14

(41) 设有如下程序:

#include〈stdio。h>

main()

{ int **k, *j, i=100;

j=&i; k=&j;

printf(”%d\n”, **k);

上面程序的输出结果是

A) 运行错误 B) 100 C) i的地址 D) j的地址

(42) 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行

(m=a〉b)&&(n=c>d)

后n的值为

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

(43) 下面函数的功能是

sss(s, t) char *s, *t;

{ while((*s)&&(*t)&&(*t++== *s++));

return(*s-*t);

A) 求字符串的长度 B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中

(44) 请选出以下程序的输出结果

#include〈stdio.h〉

sub(x,y,z)

int x, y, *z;

{ *z=y—x; }

main()

{ int a, b, c;

sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

printf(”%d,%d,%d\n", a,b,c);

A) 5,2,3 B) -5,-12,-7 C) -5,—12,-17 D) 5,-2,—7

(45) 下面程序的输出结果是

#include〈stdio。h〉

main()

{ int i=2,p;

p=f(i,i+1);

printf("%d”,p);

}

int f(a,b)

int a,b;

{ int c;

if(a〉b) c=1;

else

if(a==b) c=0;

else c=—1;

return(c);

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

(46) 请选出以下程序段的输出结果

#include

#define MIN(x,y) (x)<(y)? (x):(y)

main()

{ int i,j,k;

i=10; j=15;

k=10*MIN(i,j);

printf("%d\n”,k); }

A) 15 B) 100 C) 10 D) 150

(47) 请选出以下程序段的输出结果

#include

main()

{ char sl[10], s2[10], s3[10], s4[10];

scanf(”%s%s",s1,s2); gets(s3); gets(s4);

puts(s1); puts(s2); puts(s3); puts(s4);

输入数据如下:(此处〈CR>代表回车符)

aaaa bbbb〈CR〉

cccc dddd

A) aaaa B) aaaa C) aaaa D) aaaa bbbb

bbbb bbbb bbbb cccc

cccc cccc dddd dddd

cccc dddd dddd eeee

(48) 请选出以下程序的输出结果

#include

fun(s, n1, n2)

int *s, n1, n2;

{ int i, j, t;

i=n1; j=n2;

while(i

{ t= *(s+i); *(s+i)= *(s+j); *(s+j)=t;

i++; j-—;