[切换城市]
报课、招生咨询电话:010-51268840/41 ·北京站  ·上海站  ·郑州站     [课程] [夏令营] [书店] [高校招生] 进入论坛>>
首 页 外 语 IT 财 会 学 历 出 国 管 理 公务员 成 考 人力资源 0-18岁
  ·职业资格 ·考研 ·在职研   ·报关员 ·外销员 ·国际商务师 ·网络教育  ·环球职业教育 ·会计网校 ·新东方
首页 > 计算机考试 > 计算机等级考试 > 二级真题 >
→论坛登陆 用户名  密码  
2002年4月全国计算机等级考试二级C语言试卷(含答案)

作者: 发布时间:2007-05-11 20:47:51 来源:

一、选择题((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.2MB) 复制到一张空的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语言程序设计试题
参考答案及评分标准



(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

一、选择题(⑴-(40)题每题1分,(41)-(50)题每题2分,其60分)    育路网

 

 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
无相关信息
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2007年首都高校秋季招生
北京理工大学2007年招生简章
北京文理研修学院2007年招生简章
北京建设大学2007年招生简章
北京中山学院2007年招生简章
北京城市学院2007年招生简章
培黎职业学院2007年招生简章
北京金融学院2007年招生简章
北京吉利大学2007年招生简章
北方工商管理学院2007年招生简章
2007年首都高校秋季招生
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
 热点新闻
·李祖华谈公务员面试自我介绍技巧
·郭五林做客育路网谈07国考申论备考
·金路做客人民网解析07公务员考试大纲
·公务员辅导专家李如海视频讲课
·金路做客网易解析07公务员考试大纲(视频)
·金路做客网易解析07年公务员考试大纲
·金路李祖华谈北京公考热点--如何解决群众看病
·公务员辅导专家孙秀秋视频讲课
·国家公考命题专家周盈教授讲座视频(二)
·李祖华公共基础、行测、申论、面试知识点的联
清华大学留学
中法管理硕士预科班
出国留学咨询热线:010-51268840
 最新新闻
·金路李祖华谈北京公考热点--如何解决群众看病
·郭五林做客育路网谈07国考申论备考
·金路做客人民网解析07公务员考试大纲
·金路做客网易解析07公务员考试大纲(视频)
·金路做客网易解析07年公务员考试大纲
·金路07公务员培训国庆班第二天周盈视频
·金路07年国家公务员培训国庆班第三天
·金路07年国家公务员培训国庆班第一天
·国家公考命题专家周盈教授讲座视频(二)
·公务员辅导专家李如海视频讲课
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路43号满庭芳园C座103室(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-62111550 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站
本站法律顾问: 邱清荣律师
育路网版权所有1999-2007 | 京ICP备05012189号