您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 真题 >> 正文    
  2002年4月全国计算机等级考试二级C语言笔试试题及答案 【注册男护士专用博客】          

2002年4月全国计算机等级考试二级C语言笔试试题及答案

www.nanhushi.com     佚名   不详 

  一、选择题((1)—(40)题每小题1分,(41)—(50)题每小题2分,共和60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 在计算机中,一个字长的二进制位数是
A.8
B.16
C.32
D.随CPU的型号而定
(2) 计算机网络的突出优点是
A.速度快
B.资源共享
C.精度高
D.容量大
(3) 计算机网络能传送的信息是:
A.所有的多媒体信息
B.只有文本信息
C.除声音外的所有信息
D.文本和图像信息
(4) 切断计算机电源后,下列存储器中的信息会丢失的是:
A.RAM
B.ROM
C.软盘
D.硬盘
(5) 十进制数127转换成二进制数是
A.11111111
B.01111111
C.10000000
D.11111110
(6) 要想打印存放在当前盘当前目录上所有扩展名为.TXT 的文件内容, 应该使用的DOS命令为
A.DIR *.TXT>PRN
B.TYPE *.TXT>PRN
C.COPY *.TXT PRN
D.COPY *.TXT>PRN
(7) 将当前盘当前目录及其子目录中的全部文件 (总量不足1.2M
B.复制到一张空的A盘的根目录下,应该使用的DOS命令为
A.XCOPY *.*A:\ /M
B.XCOPY *.*A:\ /S
C.XCOPY *.*A:\ /P
D.XCOPY *.*A:\ /A
(8) 在C盘根目录下执行PROMPT $p$g命令之后,DOS的提示符变为
A.C:>
B.C:\>
C.C>
D.C:\
(9) DOS命令 "COPY CON DISP"中的CON代表
A.子目录
B.磁盘文件
C.键盘
D.显示器
(10) 结构化程序设计所规定的三种基本控制结构是
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
(11) 要把高级语言编写的源程序转换为目标程序,需要使用
A.编辑程序
B.驱动程序
C.诊断程序
D.编译程序
(12) 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为
A.50
B.66
C.52
D.68
(13) Windows环境下,PrintScreen键的作用是
A.复制当前窗口到剪贴板
B.打印当前窗口的内容
C.复制屏幕到剪贴板
D.打印屏幕内容
(14) 在Windows环境下,为了终止应用程序的运行,应
A.关闭该应用程序窗口
B.最小化该应用程序窗口
C.双击该应用程序窗口的标题栏
D.将该应用程序窗口移出屏幕
(15) 下列各带有通配符的文件名中,能代表文件XYZ.TXT的是
A.*Z.?
B.X*.*
C.?Z,TXT
D.?.?
(16) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
A.1.4
B.1
C.2.0
D.2
(17) 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是
A.a的值是字符C
B.a的值是浮点型
C.不允许字符型和浮点型相加
D.a的值是字符‘A’的ASCII值加上1。
(18) 以下程序段的输出结果是
int a=1234;
printf("-\n",a);
A.12
B.34
C.1234
D.提示出错、无结果
(19) 以下选项中不属于C语言的类型的是
A.signed short imt
B.unsigned long int
C.unsigned int
D.long short
(20) 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
A.scanf("%d%d%d",&a,&b,&d;
B.scanf("%d%d%d",&a,&b,&d;
C.scanf("%d%d%d",a,b,d;
D.scanf("%d%d%d",a,b,*d;
(21) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是
A.a=20000+20000;
B.a=4000*10;
C.a=30000+10000;
D.a=4000L*10L;

(22) 以下叙述正确的是
A.可以把define和if定义为用户标识符
B.可以把define定义为用户标识符,但不能把if定义为用户标识符
C.可以把if定义为用户标识符,但不能把define定义为用户标识符
D.define和if都不能定义为用户标识符
(23) 若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为
A.无确定值
  B.a的地址
  C.512
  D.511
(24) 以下程序的输出结果是
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A.5
  B.4
  C.6
  D.不确定
(25) 以下程序中,while循环的循环次数是
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(I==5) break;
 i++;
}
......
}
A.1
  B.10
C.6
  D.死循环,不能确定次数
(26) 以下程序的输出结果是
main()
{ int a=0,i;
for(i=;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A.31
  B.13
  C.10
  D.20
(27) 以下程序的输出结果是
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A.1
  B.0
  C.非0的数
  D.-1
(28) 以下程序的输出结果是
#include
main()
{ int i=0,a=0;
while(i<20)
{ for(;;)
{ if((i)==0) break;
else i--;
}
i+=11; a+=i;
}
printh("%d\n",a);
}
  A.21
  B.32
  C.33
  D.11
(29) 以下程序的输出结果是
char cchar(char ch)
{
if(ch>=‘A’&&ch<=‘Z') ch=ch-‘A'+‘a';
return ch;
}
main()
{ char s[]="ABC+abc=defDEF",*p=s;
while(*p)
{ *p=cchar(*p);
p++;
}
printf("%s\n",s);
}
A.abc+ABC=DEFdef
  B.abc+abc=defdef
C.abcaABCDEFdef
  D.abcabcdefdef

(30) 以下程序的输出结果是
int f()
{ static int i=0;
int s=1;
s+=i; i++;
return s;
}
 main()
{ int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
A.20
  B.24
  C.25
  D.15
(31) 以下程序段的输出结果是
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A.9
  B.12
  C.13
  D.14
(32) 若有以下程序
#include
void f(int n);
main()
{ void f(int n);
 f(5);
}
void f(int n)
{ printf("%d\n",n); }
则以下叙述中不正确的是
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
D.函数f无返回值,所以可用void将其类型定义为无值型
(33) 以下程序调用findmax函数返回数组中的最大值
findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-aif ( ) s=p;
return(*s);
}
main()
{ int x[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
(34) 以下程序的输出结果是
main()
{ char cf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A."AAAA"
  B."BBB"
  C."BBBCC"
  D."CC"
(35) 在C语言中,形参的缺省存储类是
A.auto
  B.register
  C.static
  D.extern
(36) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)malloc(2*sizeof(int));
C.p=(int*)malloc(2*2);
D. p=(int*)calloc(2,sizeof(int));
(37) 以下程序的输出结果是
main()
{ char x=040;
 printf("%0\n",x<<1);
}
A.100
  B.80
  C.64
  D.32
(38) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A.fopen("A:\user\abc.txt","r") 
  B.fopen("A:\\user\\abc.txt","r+")
C.fopen("A:\user\abc.txt","rb")
  D.fopen("A:\\user\\abc.txt","w")
(39) 以下不能正确进行字符串赋初值的语句是
A.char str[5]="good!";
  B.char str[]="good!";
C.char *str="good!";
  D.char str[5]={‘g',‘o',‘o',‘d'};
(40) 若有下面的说明和定义:
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test )的值是
A.12
  B.16
  C.14
  D.9
(41) 若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是
A.&aa[0]+1
  B.&aa[1]
  C.&aa[0]++
  D.aa+1

(42) 以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;ireturn s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A.10
  B.18
  C.8
  D.15
(43) 若有以下定义和语句:
int s[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用形式是
A.ps+1
  B.*(ps+3)
  C.ps[0][2]
  D.*(ps+1)+3
(44) 以下程序的输出结果是
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
 for(i=0;i<3;i++)
 for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf("%d\n",t);
}
  A.3
  B.4
  C.1
  D.9
(45) 以下程序的输出结果是
#include
#include
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb>=b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A.8
  B.3
  C.1
  D.7
(46) 在说明语句:int *f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
(47) 不合法的main函数命令行参数表示形式是
A) main(int a,char *c[]) B) main(int arc,char **arv)
C) main(int argc,char *argv) D) main(int argv,char *argc[])
(48) 以下程序的输出的结果是
int x=3;
main()
{ int i;
for (i=1;i}
ncre()
{ staic int x=1;
x*=x+1;
printf(" %d",x);
}
A.3 3
  B.2 2
  C.2 6
  D.2 5
(49) 若以下定义:
struct link
{ int data;
struck link *next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
a b
data next data next
┌──┬──┐ ┌──┬──┐
│ 5 │ ┼──→ │ 9 │ \0 │
└──┴──┘ └──┴──┘
↑p
c
data next
┌──┬──┐
│ 7 │ │
└──┴──┘
↑q
指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:
A.a.next=c; c.next=b;
  B.p.next=q; q.next=p.next;
C.p->next=&c; q->next=p->next;
  D.(*p).next=q; (*q).next=&b;
(50) 设有以下说明语句
typedef struct
{ int n;
char ch[8];
}PER;
则下面叙述中正确的是
A.PER 是结构体变量名
  B.PER是结构体类型名
C.typedef struct 是结构体类型
  D.struct 是结构体类型名

二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答案卡上,答在试卷上不得分。
(1) 为了要将当前盘目录中的可执行程序ABC.EXE的输出结果存放到当前盘当前目录中的文件OUT.TXT中,则应使用的DOS命令为【1】 。
(2) 计算机网络分为广域网和局域网,因特网属于【2】 。
(3) 要想在当前目录下方便地执行C盘\UCDOS目录中的程序,就应该先执行预设搜索路径的命令,该DOS命令为【3】 。
(4) 要查看当前目录中扩展名为.DAT的所有文件目录,应该使用的DOS 命令为【4】 。
(5) 在Windows环境下,当进行复制操作时,其复制的内容将存放在【5】中
(6) 若从键盘输入58,则以下程序输出的结果是 【6】 。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
(7) 以下程序的输出结果是【7】 。
main()
{ int a=177;
printf("%o\n",a);
}
(8) 以下程序的输出结果是【8】 。
 main()
{ int a=0
a+=(a=8);
printf("%d\n",a);
}
(9) 以下程序输出的结果是【9】 。
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
(10) 以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。
struct node
 {int info;
 【10】 link;
}
(11) 以下程序的输出结果是【11】 。
main()
 {int s,i;
 for(s=0,i=1;i<3;i++,s+=i);
 printf("%d\n",s);
}
(12) 以下程序的输出结果是【12】 。
main()
 { char *p="abcdefgh",*r;
 long *q;
 q=(long*)p;
 q++;
 r=(char*)q;
 printf("%s\n",r);
}
(13) 以下程序的输出结果是【13】 。
main()
{ char s[]="abcdef";
 s[3]=‘\0';
 printf("%s\n",s);
}
(14) 以下程序的输出结果是【14】 。
main()
{ int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{ if(k<=n) sub(a,n/2,2*k);
*a+=k;
}
(15) 设有如下宏定义
#define MYSWAP(z,x,y) {z=x; x=y; y=z;}
以下程序段通过宏调用实现变量a、b内容交换,请填空。
float a=5,b=16,c;
MYSWAP( 【15】 ,a,b);

(16) 以下程序用来统计文件中字符个数。请填空。
 #include "stdio.h"
 main()
 { FILE *fp; long num=0L;
 if((fp=fopen("fname.dat","r"))==NULL)
 { pirntf("Open error\n"); exit(0);}
 while( 【16】 )
 { fgetc(fp); num++;}
 printf("num=\n",num-1);
 fclose(fp);
 }
(17) 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3
 select(int a[N][M],int *n)
 { int i,j,row=1,colum=1;
for(i=0;ifor(j=0;jif(a[i][j]>a[row][colum]){row=i;colum=j;}
*n= 【17】;
return 【18】;
 }
 main()
 {int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
 max=select(a,&n);
 printf("max=%d,line=%d\n",max,n);
 }
(18) mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str)
{ int i;
for(i=0; 【19】!=‘\0';i++);
return(【20】);
}
基础部分和C语言程序设计试题

2002年4月全国计算机等级考试二级C语言笔试答案

一、选择题(⑴-(40)题每题1分,(41)-(50)题每题2分,其60分)
(1) D (2) B (3) A (4) A (5) B
(6) C (7) B (8) B (9) C (10) C
(11) D (12) D (13) C (14) A (15) B
(16) B (17) D (18) C (19) D (20) A
(21) D (22) B (23) D (24) C (25) D
(26) A (27) A (28) B (29) B (30) D
(31) A (32) C (33) B (34) B (35) A
(36) A (37) A (38) B (39) A (40) A
(41) C (42) A (43) C (44) B (45) D
(46) D (47) C (48) C (49) C (50) B
二、填空题答案(每空2分,共40分)
(1) 【1】 ABC >OUT.TXT 或者 ABC.EXE>OUT.TXT
(2) 【2】 广域网
(3) 【3】 PATH C:\UCDOS 或其它等效命令
(4) 【4】 DIR *.DAT 或 DIR *.DAT/P 或 DIR *.DAT/W 或带其它参数也可
(5) 【5】 剪贴板
(6) 【6】 585858
(7) 【7】 261
(8) 【8】 16
(9) 【9】 0
(10) 【10】 struct node *
(11) 【11】 5
(12) 【12】 efgh
(13) 【13】 abc
(14) 【14】 7
(15) 【15】 c
(16) 【16】 !feof(fp)
(17) 【17】 row
(18) 【18】 a[row][colum]
(19) 【19】 *(str+i)str[i]
(20) 【20】 i

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目