無暱稱>试卷(2013/12/29)

计算机等级考试— 二级—《C语言 》題庫 下載題庫

95 年 - 2006年4月计算机等级考试— 二级—《C语言 》#13781 

选择:50题,非选:0题
立即測驗 
我要補題 回報試卷錯誤 試卷下載
1.1)下列选项中不属于结构化程序设计方法的是
(A) 自顶向下
(B)逐步求精
(C)模块化
(D)可复用
2.2)两个或两个以上模块之间关联的紧密程度称为
(A)耦合度
(B)内聚度
(C)复杂度
(D)数据传输特性
3.3)下列叙述中正确的是
(A)软件测试应该由程序开发者来完成
(B)程序经调试后一般不需要再测试
(C)软件维护只包括对程序代码的维护
(D)以上三种说法都不对
4.4)按照“后进先出”原则组织数据的数据结构是
(A)队列
(B)栈
(C)双向链表
(D)二叉树
5.5)下列叙述中正确的是
(A)线性链表是线性表的链式存储结构
(B)栈与队列是非线性结构
(C)双向链表是非线性结构
(D)只有根结点的二叉树是线性结构
6.6)对如下二叉树 进行后序遍历的结果为
(A) ABCDEF
(B) DBEAFC
(C) ABDECF
(D) DEBFCA
7.7)在深度为7的满二叉树中,叶子结点的个数为
(A)32
(B)31
(C)64
(D)63
8.8)“商品”与“顾客”两个实体集之间的联系一般是
(A)一对一
(B)一对多
(C)多对一
(D)多对多
9.9)在E-R图中,用来表示实体的图形是
(A)矩形
(B)椭圆形
(C)菱形
(D)三角形
10.10)数据库DB,数据库系统DBS,数据库管理系统DBMS之间的关系是
(A)DB包含DBS和DBMS
(B)DBMS包含DB和DBS
(C)DBS包含DB和DBMS
(D)没有任何关系
11.11)以下不合法的用户标识符是
(A)j2_KEY
(B)Double
(C) 4d
(D) _8_
12.12)以下不合法的数值常量是
(A)011
(B)lel
(C) 8.0 E0.5
(D) 0xabcd
13.13)以下不合法的字符常量是
(A)'8'
(B) '”'
(C) ''
(D) ‘�'
14.14)表达式3.6-5/2+1.2+5%2的值是
(A)4.3
(B) 4.8
(C) 3.3
(D) 3.8
15.15)以下能正确定义字符串的语句是
(A)char str[]={‘4'};
(B) char str=”C”;
(C) char str=”;
(D) char str[]=””;
16.16)以下数组定义中错误的是
(A) int x[][3]={0};
(B) int x[2][3]={{1,2},{3,4},{5,6}};
(C) nt x[][3]={{1,2,3},{4,5,6}};
(D)int x[2][3]={1,2,3,4,5,6};
17.17)若要求从键盘读入含有空格字符的字符串,应使用函数
(A)getc )
(B) gets )
(C) getchar )
(D) scanf )
18.18) 下四个程序中,完全正确的是
(A)#include
(B)#include
(C) #include
(D) include main ); main ) main ) main ) {/*programming*/ {/*/programming/*/ {/*/*programming*/*/ {/*programming*/ printf “programming! ”); } printf “programming! ”);} printf “programming! ”);} printf “programming! ”);}
19.19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是
(A)switch x)
(B) switch int)x);
(C) switch a+b
(D) switch a+b
20.20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是
(A)main )
(B) float fun int a,int b{……}
(C)float fun int,int);
21.21)在以下给出的表达式中,与while E)中的 E)不等价的表达式是
(A) !E=0)
(B) E>0||E<0)
(C) E==0
(D) E!=0)
22.22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
(A) while ch=getchar ))!='N') printf “%c”,ch);
(B) while ch=getchar )!='N') printf “%c”,ch);
(C) while ch=getchar )==N') printf “%c”,ch);
(D) while ch=getchar ))=='N') printf “%c”,ch);
23.23)已定义以下函数 int fun int *p) {return *p;}fun 函数返回值是
(A)不确定的值
(B)一个整数
(C)形参p中存放的值
(D)形参p的地址值
24.24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
(A)*p=&a; scanf “%lf”,p);
(B)*p=&a; scanf “%f”,p);
(C) p=&a; scanf “%lf”,*p);
(D)p=&a; scanf “%lf”,p);
25.25)现有以下结构体说明和变量定义,如图所示,, 指针p,q,r分别指向一个链表中连续的三个结点。 struct node char data; struct node *next; }*p,*q,*r; 现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是
(A)q->next=r->next; p->next=r; r->next=q;
(B) p->next=r; q->next=r->next; r-.next=q;
(C) q->next=r->next; r->next=q; p->next=r;
(D) r->next=q; p-next=r; q-next=r->next;
26.26)有以下程序段 struct st { int x; int *y;}*pt: int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c;以下选项中表达式的值为11的是
(A) *pt->y
(B) pt->x
(C) ++pt->x
(D) pt++)->x
27.27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof fp)的返回值为
(A)EOF
(B)非0值
(C) 0
(D)NULL
28.28)设有以下语句 int a=1,b=2,c;c=a^ b<<2);执行后,c的值为
(A)6
(B) 7
(C) 8
(D) 9
29.29)有以下程序 #include main ) {char c1,c2,c3,c4,c5,c6;scanf “%c%c%c%c”,&c1,&c2,&c3,&c4);c5=getchar ); c6=getchar );putchar c1); putchar c2); printf “%c%c ”,c5,c6);}程序运行后,若从键盘输入 从第1列开始) 123<回车>45678<回车>则输出结果是
(A)1267
(B)1256
(C) 1278
(D)1245
30.30)若有以下程序 main ) {int y=10;while y- -); printf “y=%d ”y);}程序运行后的输出结果是
(A)y=0
(B)y=-1
(C) y=1
(D)while构成无限循环
31.31)有以下程序 main ) {int a=0,b=0,c=0,d=0; if a=1) b=1;c=2; else d=3;printf “%d,%d,%d,%d ”,a,b,c,d;}程序输出
(A)0,1,2,0
(B) 0,0,0,3
(C)1,1,2,0
(D)编译有错
32.32)有以下程序main ) {int i,j,x=0; for i=0;i<2;i++) { x++; for j=0;j<=3;j++) {if j%2) continue; x++;} x++;} printf “x=%d ”,x);}程序执行后的输出结果是
(A)x=4
(B) x=8
(C) x=6
(D) x=12
33.33)有以下程序 int fun1 duoble a{return a*=a;} int fun2 dpuble x,double y) {double a=0,b=0; a=fun1 x); b=fun1 y); return int) a+b;} main ) {double w; w=fun2 1.1,2.0);……}程序执行后变量w中的值是
(A)5.21
(B) 5
(C) 5.0
(D) 0.0
34.34)有以下程序main ) {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for i=0;i<3;i++) printf “%d”,t[2-i][i]);} 程序的执行后的输出结果是
(A)7 5 3
(B) 3 5 7
(C)3 6 9
(D)7 5 1
35.35)有以下程序fun char p[][10]) {int n=0,i; for i=0;i<7;i++) if p[i][0]=='T') n++; return n;} main ) {char str[][10]={“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”};printf “%d ”,fun str));}程序执行后的输出结果是
(A)1
(B) 2
(C)3
(D) 0
36.36有以下程序main ) {int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for i=0;i<9;i+=2) s+=* t+i);printf “%d ”,s);}程序执行后的输出结果是
(A)45
(B)20
(C)25
(D)36
37.37)有以下程序 void fun1 char *p) {char *q;q=p; while *q!='') { *q)++; q++; }} main ) { char a[]={“Program”},*p;p=&a[3]; fun1 p); printf “%s ”,a;}程序执行后的输出结果是
(A)P rohsbn
(B)Prphsbn
(C)Progsbn 
(D)Program
38.38)有以下程序void swap char *x,char *y) {char t;t=*x; *x=*y; *y=t;} main ) {char *s1=”abc”,*s2=”123”; swap s1,s2); printf “%s,%s ”,s1,s2);}程序执行后的输出结果是
(A)123,abc
(B) abc,123
(C)1bc,a23
(D) 321,cba
39.39)有以下程序int fun int n) {if n==1) return 1; else return n+fun n-1));} main ) {int x;scanf “%d”,&x); x=fun x); printf “%d ”,x);}程序执行时,给变量x输入10,程序的输出结果是
(A)55
(B) 54
(C) 65
(D) 45
40.40)有以下程序int fun int x[],int n) {static int sum=0,i; for i=0;i sum+=x[i]; return sum;} main ) {int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun a,5)+fun b,4); printf “%d ”,s);} 程序执行后的输出结果是
(A)45
(B)50
(C)60
(D)55
41.41)有以下程序main ) {union {char ch[2];int d; } s; s.d=0x4321; printf “%x,%x ”,s.ch[0],s.ch[1]);} 在16位编译系统上,程序执行后的输出结果是
(A)21,43
(B)43,21
(C)43,00
(D)21,00
42.42)有以下程序main ) {char *p[]={“3697”,”2584”};int i,j; long num=0; for i=0;i<2;i++) {j=0;while p[i][j]!='') { if p[i][j]-‘0')%2)num=10*num+p[i][j]-‘0'; j+=2;} } printf “%d ”num);}程序执行后的输出结果是
(A)35
(B)37
(C)39
(D)3975
43.43)执行以下程序后,test.txt文件的内容是 若文件能正常打开) #include main ) {FILE *fp; char *s1=”Fortran”,*s2=”Basic”; if fp=fopen “test.txt”,”wb”))==NULL) { printf “Can't open test.txt file ”); exit 1);} fwrite s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/ fseek fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/ fwrite s2,5,1,fp); fclose fp);}
(A)Basican
(B)BasicFortran
(C)Basic
(D)FortranBasic
44.44)以下叙述中错误的是
(A)C语言源程序经编译后生成后缀为.obj的目标程序
(B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
(D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
45.45)以下叙述中错误的是
(A)算法正确的程序最终一定会结束
(B)算法正确的程序可以有零个输出
(C)算法正确的程序可以有零个输入
(D)算法正确的程序对于相同的输入一定有相同的结果
46.46)以下叙述中错误的是
(A)C程序必须由一个或一个以上的函数组成
(B)函数调用可以作为一个独立的语句存在
(C)若函数有返回值,必须通过return语句返回
(D)函数形参的值也可以传回对应的实参
47.47)设有以下定义和语句 char str[20]=”Program”,*p;p=str; 则以下叙述中正确的是
(A)*p与str[0]中的值相等
(B)str与p的类型完全相同
(C)str数组长度和p所指向的字符串长度相等
(D)数组str中存放的内容和指针变量p中存放的内容相同
48.48)以下叙述中错误的是
(A)C程序中的#include和#define行均不是C语句
(B)除逗号运算符外,赋值运算符的优先级最低
(C)C程序中,j++;是赋值语句
(D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
49.49)以下叙述中正确的是
(A)预处理命令行必须位于C源程序的起始位置
(B)在C语言中,预处理命令行都以“#”开头
(C)每个C程序必须在开头包括预处理命令行:#include
(D)C语言的预处理不能实现宏定义和条件编译的功能
50.50)以下叙述中错误的是
(A)可以通过typedef增加新的类型
(B)可以用typedef将已存在的类型用一个新的名字来代表
(C)用typedef定义新的类型名后,原有类型名仍有效
(D)用typedef可以为各种类型起别名,但不能为变量起别名