1、机密启用前2023年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(1)(10)、(21)(40)每题2分,(11)(20)每题1分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是对的的,请将对的选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中对的的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中对的的是A)在栈中,栈中元素随栈底指针与栈
2、顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上诉三种说法都不对(3)软件测试的目的是A)评估软件可靠性 B)发现并改正程序中的错误C)改正程序中的错误 D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范 B)软件开放生产率低C)软件质量难以控制 D)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完毕的过程C)软件的开发过程D)软件的运营维护过程(6)面向对象方法中,继承是指A)一组对象
3、所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文献的大小C)联系的复杂限度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可以被多个人使用,则实体工作人员与实体计算机之间的联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据规定的模式是A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S和T如下:R S TABCADABCDa12c4c314b21c31则由关系R和S得到关系T的操作是A)自然连接B)交C)投影D)
4、并(11)以下关于结构化程序设计的叙述中对的的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是运用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简朴程序设计的环节和顺序的说法中对的的是A)拟定算法后,整理并写出文档,最后进行编码和上机调试B)一方面拟定数据结构,然后拟定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中拟定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后拟定算法和数据结构(13)以下叙述中错误的是A)C程序在运营过程中所有
5、计算都以二进制方式进行B)C程序在运营过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才干运营D)C程序中整型变量只能存放整数,实型变量只能存放浮点数(14)有以下定义:int a; long b; double x,y; 则以下选项中对的的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下选项中能表达合法常量的是A)整数:1,200B)实数:1.5E2.0C)字符斜杠:D)字符串:007(16)表达式a+ =a- =a=9 的值是A)9B)-9C)18D)0(17)若变量已对的定义,在if(W) printf(%dn,k
6、); 中,以下不也许替代W的是A)ab+cB)ch=getchar()C)a=b+cD)a+(18)有以下程序 #include main() int a=1, b=0;if(!a) b+;else if(a=0) if(a) b+=2;else b+=3;printf(%dn,b);程序运营后的输出结果是A)0B)1C)2D)3(19)若有定义语句int a,b;double x ; 则下列选项中没有错误的是A)switch (x%2)B)switch( (int)x/2.0) case 0: a+; break; case 0: a+; break; case 1: b+; break;c
7、ase 1: b+; break; default : a+; b+;default : a+; b+; C)switch (int)x%2)D)switch( (int)(x)%2) case 0: a+;break; case 0.0: a+; break; case 1: b+;break;case 1.0: b+; break; default : a+; b+;default : a+; b+; (20)有以下程序# include main() int a=1, b=2;while (a6)b+=a; a+=2; b%=10;printf (%d, %dn, a, b);程序运营后
8、的输出结果是A)5,11B)7,1C)7,11D)6,1(21)有以下程序# include main() int y=10;while(y-) ;printf (y=%dn, y) ;程序执行后的输出结果是A)y=0B)y=-1C)y=1D)while构成无限循环(22)有以下程序# include main() char s=rstuv ; printf (%cn , *s+2) ;程序运营后的输出结果是A)tuvB)字符t的ASCII码值C)tD)犯错(23)有以下程序# include # include main() char x=STRING ;x0=0; x1= 0 ; x2=
9、0 ;printf (%d %dn , sizeof(x) , strlen (x) ) ;程序运营后的输出结果是A)6 1B)7 0C)6 3D)7 1(24)有以下程序#include int f ( int x );main( ) int n=1 , m;m=f ( f ( f ( n) ) ) ; printf (%dn , m);int f ( int x) return x*2; 程序运营后的输出结果是A)1 B)2C)4D)8(25)以下程序段完全对的的是A)int *p; scanf(%d, &p);B)int *p; scanf(%d , p);C)int k, *p=&k;
10、 scanf(%d, p);D)int k, *p; *p=&k; scanf(%d,p);(26)有定义语句:int *p4; 以下选项中与此语句等价的是A)int p4; B)int *p;C)int *(p4);D)int (*p)4;(27)下列定义数组的语句中,对的的是A)int N=10;B)#define N 10int xN; int xN;C)int x0.10;D)int x;(28)若要定义一个具有5个元素的整型数组,以下错误的定义句是A)int a5=0;B)int b=0,0,0,0,0;C)int c2+3;D)int i=5,di;(29)有以下程序#includ
11、e void f ( int *p) ;main( ) int a5 =1, 2, 3, 4, 5 , *r=a;f(r) ; printf (%dn, *r) ;void f ( int *p) p=p+3; printf(%d, , *p); 程序运营后的输出结果是A)1,4 B)4,4C)3,1D)4,1(30)有以下程序(函数fun只对下标为偶数的元素进行操作)# include void fun ( int *a, int n ) int i , j , k , t ;for ( i = 0 ; in-1; i+=2 ) k=1; for ( j=i ; ja k ) k = j ;
12、t=a i ; a i =a k ; a k = t ;main() int aa10=1, 2, 3, 4, 5, 6, 7, i ;fun (aa,7) ;for ( i = 0; i7; i+) printf (%d , , aai ) ;printf (n ) ;程序运营后的输出结果是A)7,2,5,4,3,6,1, B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1, D)1,7,3,5,6,2,1,(31)下列选项中,可以满足“若字符串sl等于字符串s2,则执行ST”规定的是A)if(strcmp(s2,sl)=0)ST; B)if(sl=s2)ST;C)if(strcp
13、y(s1,s2)=1)ST; D)if(s1-s2=0)ST;(32)以下不能将s所指字符串对的复制到t所指存储空间的是A)while(*t=*s)t+;s+; B)for(i=0;ti=si;i+);C)do*t+=*s+;while(*s); D)for(i=0,j=0;ti+=sj+; );(33)有以下程序(strcat函数用以连接两个字符串)# include # include main() char a20= ABCD0EFG0, b = IJK ;strcat (a, b) ; printf (%sn, a) ;程序运营后的输出结果是A)ABCDE0FG0IJK B)ABCDI
14、JK C)IJKD)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母#include #include void fun (char *p) int i=0;while(pi ) if (pi)= & islower(pi-1) pi-1= pi-1- a+A ;i+;main()char sl100=ab cd EFG !; fun(sl); printf(%sn , sl);程序运营后的输出结果是A)ab cd EFG ! B)Ab Cd EFg !C)aB cD EFG ! D)ab cd EFg !(35)有以下程序#include
15、void fun (int x) if (x/21) fun(x/2) ;printf ( %d , x) ;main () fun(7) ; printf(n) ; 程序运营后的输出结果是A)1 3 7 B)7 3 1C)7 3D)3 7(36)有以下程序#include int fun() static int x=1;x+=1; return x;main() int i , s=1;for (i=1 ; i=5 ; i+) s+=fun( );printf( %dn , s);程序运营后的输出结果是A)11 B)21 C)6D)120(37)有以下程序#include #include
16、 main() int *a, *b, *c;a=b=c=(int *)malloc(sizeof ( int ) );*a=1;*b=2,*c=3;a=b;printf(%d, %d, %dn, *a,*b,*c);程序运营后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3D)1,1,3(38)有以下程序#include main() int s , t , A=10; double B=6;s=sizeof(A) ; t=sizeof (B) ;printf(%d, %dn, s, t);在VC6平台上编译运营,程序运营后的输出结果是A)2,4 B)4,4 C)4,8D)10,6
17、(39)若有以下语句typedef struct S int g; char h; T;以下叙述中对的的是A)可用S定义结构体变量 B)可用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量(40)有以下程序# include main() short c=124;c=c _; printf(%dn, c);若要使程序的运营结果为248,应在下划线处填入的是A)2 B)| 248 C)&0248 D)1二、填空题(每空2分,共30分)请将每空的对的答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)一个栈的初始状态为空。初次将元素5,4,3,2,
18、1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素所有退栈,则所有元素退栈(涉及中间退栈的元素)的顺序为 【1】 。(2)在长度为n的线性表中,寻找最大项至少需要比较 【2】 次。(3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有 【3】 个结点。(4)仅由顺序、选择(分支)和反复(循环)结构构成的程序是 【4】 程序。(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和 【5】 。(6)以下程序运营后的输出结果是 【6】 。#include main() int a=200 , b=010;printf (%d%dn, a, b) ;(7)有
19、以下程序#include main() int x,y ;scanf (%2d%1d , &x, &y) ; printf (%dn, x+y) ;程序运营时输入:1234567,程序的运营结果是 【7】 。(8)在C语言中,当表达式值为0时表达逻辑值“假”,当表达式值为 【8】 时表达逻辑值“真”。(9)有以下程序# include main() int i , n=0,0,0,0,0;for ( i=1;i=4;i+)n i = n i-1*3+1; printf (%d, ni ) ;程序运营后的输出结果是 【9】 。(10)以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,
20、并作为函数值返回。请填空。(设N已定义)int fun (int xN) int i , k=0;for (i=0; iN; i+)if ( x i x k ) k= 【10】 ;return x k ;(11)有以下程序# include int *f ( int *p, int *q ) ;main() int m=1,n=2,*r=&m;r=f (r, &n) ; printf ( %dn,*r ) ;int *f( int *p, int *q )return (*p*q) ?p:q;程序运营后的输出结果是 【11】 。(12)以下fun函数的功能是在N行M列的整数二维数组中,选出一个
21、最大值作为函数值返回,请填空。(设M,N已定义)int fun ( int aN M ) int i, j, row=0,col=0;for (i=0;iN; i+)for(j=0;ja row col ) (row=i ; col=j ; )return ( 【12】 );(13)有以下程序#include main ( ) int n2 , i , j;for (i=0; i2 ; i+) ni=0;for (i=0; i2; i+) for(j=0 ; j2 ; j+) nj=ni+1;printf( %dn, n1 );程序运营后的输出结果是 【13 】 。(14)以下程序的功能是:借
22、助指针变量找出数据元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。#include main ( ) int a10 , *p, *s;for (p=a; p-a10; p+) scanf (%d , p) ;for (p=a, s=a; p-a*s) s=p ;printf ( max=%dn, 【14】 ) ;(15)以下程序打开新文献f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。#include main ( ) 【15】 *fp;char a5= 1 , 2 , 3 , 4 , 5 ) , i ;fp=fopen(f . txt, w ) ;for(i=0; i5; i+) fputc(ai, fp) ;fclose( fp ) ;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100