全国计算机等级考试二级C语言笔试模拟试题(2)-中大网校 下载本文

中大网校引领成功职业人生

全国计算机等级考试二级C语言笔试模拟试题(2)

总分:100分 及格:60分 考试时间:120分

每小题1分,共40分

(1)以下程序的输出结果是 #include void prt (int *x, int *y, int *z) {printf(\\n\(z++));} main() {int a=10,b=40,c=20; prt (&a,&b,&c); prt (&a,&b,&c);} A. 11,42,31 12,22,41 B. 11,41,20 12,42,20 C. 11,21,40 11,21,21 D. 11,41,21 12,42,22

(2)设有以下语句: char x=3,y=6,z; z=x^y<<2; 则z的二进制值是 A. 00010100 B. 00011011 C. 00011100 D. 00011000

(3)下列程序的输出结果是 #include \ main() {int i,a=0,b=0; for(i=1;i<10;i++) {if(i%2==0) {a++; continue;} b++;} printf(\);} A. a=4,b=4 B. a=4,b=5 C. a=5,b=4 D. a=5,b=5

(4)有如下程序: main() { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf(\\n\);} 该程序的输出结果是 A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(5)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A. e3,e1,e4,e2 B. e2,e4,e3,e1 C. e3,e4,e1,e2 D. 任意顺序

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

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

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

(7)有如下程序 main() { float x=2.0,y; if(x<0.0)y=0.0; else if(x>10.0)y=1.0/x; else y=1.0; printf(\\n\);} 该程序的输出结果是 A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000

(8)关系表中的每一横行称为一个 A. 元组 B. 字段 C. 属性 D. 码

(9)将E-R图转换到关系模式时,实体与联系都可以表示成 A. 属性 B. 关系 C. 键 D. 域

(10)以下对C语言函数的有关描述中,正确的是

A. 在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. 函数必须有返回值,返回值类型不定`

(11)阅读下面程序,则输出结果是 #include \ void fun(int *a,int *b) {int

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

c=20,d=25; *a=c/3; *b=d/5;} main() { int a=3,b=5; fun(&a,&b); printf(\\n\);} A. 6,5 B. 5,6 C. 20,25 D. 3,5

(12)设以下变量均为int类型,表达式的值不为7的是 A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1) C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1)

(13)有如下定义 #define D 2 int x=5;float y=3.83; char c=′D′; 则下面选项中错误的是 A. x++; B. y++; C. c++; D. D++;

(14)在深度为5的满二叉树中,叶子结点的个数为 A. 32 B. 31 C. 16 D. 15

(15)sizeof(float)是 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用

D. 一个不合法的表达式

(16)下列关于指针变量赋空值的说法错误的是

A. 当赋空值的时候,变量指向地址为0的存储单元 B. 赋值语句可以表达为变量名=′\0′; C. 赋值语句可以表达为变量名=0; D. 一个指针变量可以被赋空值

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(17)已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义 struct a *f(int t1,int *t2,strcut a t3,struct a *t4) struct a p,*p1;int i; 则正确的函数调用语句为

A. &p=f(10,&i,p,p1); B. p1=f(i++,(int*)p1,p,&p); C. p=f(i+1,&(i+2),*p,p); D. f(i+1,&i,p,p);

(18)有如下程序: #define N 2 #define M N+1 #define NUM 2*M+1 main() { int i; for(i=1;i<=NUM;i++)printf(\\n\); } 该程序中的for循环执行的次数是 A. 5 B. 6 C. 7 D. 8

(19)以下程序段的输出结果是 int a=1234; printf(\\n\); A. 12 B. 34 C. 1234

D. 提示出错、无结果

(20)下列程序执行后的输出结果是 main() { char arr[2][4]; strcpy(arr,\); strcpy(arr[1],\); arr[0][3]=′&′; printf(\\n\);} A. you&me B. you C. me D. err

(21)下面对C语言的描述中,正确的是 A. 函数一定有返回值,否则无法使用函数 B. C语言函数既可以嵌套定义又可以递归调用

C. 在C语言中,调用函数时,只能将实参的值传递给形参

D. C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

(22)若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是 A. sizeof,&=,<<,^ B. sizeof,<<,^,&= C. ^,<<,sizeof,&=

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

D. <<,^,&=,sizeof

(23)下面有关for循环的正确描述是

A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C. 在for循环中,不能用break语句跳出循环体

D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

(24)下面程序段的运行结果是 char *p=\ p+=3; printf(\\n\(strcpy(p,\))); A. 8 B. 12 C. 4 D. 7

(25)下面不属于软件设计原则的是 A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽

(26)请阅读以下程序: main() { int a=5,b=0,c=0; if(a=b+c)printf(\\n\); else printf(\$$$\n\); } 以上程序 A. 有语法错不能通过编译

B. 可以通过编译但不能通过连接 C. 输出*** D. 输出$$$

(27)以下程序的输出结果是 main() {int a,i;a=0; for(i=1;i<5;i++) {switch(i) {case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } }printf(\\n\); } A. 31 B. 13 C. 10 D. 20

(28)已知char ch=′C′;则以下表达式的值是 A. A

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn