您的当前位置:首页计算机2级C语言模拟题

计算机2级C语言模拟题

2021-01-24 来源:乌哈旅游
笔试部分 一、选择题 1.串的长度是( ) A.串中不同字符的个数 B.串中不同字母的个数

C.串中所含字符的个数且字符个数大于零 D.串中所含字符的个数 【参考答案】D

2.以下不属于对象的基本特点的是( ) A.分类性 B.多态性 C.继承性 D.封装性 【参考答案】C

3.下面不属于软件设计原则的是( )

A.抽象 B.模块化 C.自底向上 D.信息隐蔽 【参考答案】C

4.下列SQL语句中,用于修改表结构的是( ) A.ALTER B.CREATE C.UPDATE D.INSERT 【参考答案】A

5.关系模型允许定义3类数据约束,下列不属于数据约束的是( )

A.实体完整性约束 B.参照完整性约束 C.域完整性约束 D.用户自定义的完整性约束 【参考答案】C

6.非空的循环单链表head的尾结点(由p所指向),满足( ) A.p->next==NULL B.p==NULL C.p->next=head D.p=head 【参考答案】C

7.对建立良好的程序设计风格,下面描述正确的是( ) A.程序应简单、清晰、可读性好 B.符号名的命名只要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无 【参考答案】A

8.在软件生产过程中,需求信息的给出是( )

A.程序员 B.项目管理者 C.软件解析设计人员 D.软件用户 【参考答案】D 9.NULL是指( )

A.0 B.空格 C.未知的值或无任何值 D.空字符串

【参考答案】C

10.下列说法中,不属于数据模型所描述的内容的是( ) A.数据结构 B.数据操作 C.数据查询 D.数据约束 【参考答案】C

11.在C语言中,退格符是( ) A.\n B.\t C.\f D.\b 【参考答案】D

12.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a<=25 &&b--<=2 &&c? printf(″***a=%d,b=%d,c=%d\n″,a,b, c):printf(″###a=%d,b=%d,c=%d\n″,a,b,c);程序输出的结果是( ) A.* * *a=25,b=13,c=19 B.* * *a=26,b=14,c=19 C.### a=25,b=13,c=19 D.### a=26,b=14,c=19 【参考答案】C

13.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是( ) #include main() { char c;

int v0=1,v1=0,v2=0;

do{ switch(c=getchar()) { case ′a′:case′A′: case′e′:case′E′: case′i′:case′I′: case′o′:case′O′: case′u′:case′U′:v1+=1; default:v0+=1;v2+=1; }

} while(c!=′\n′);

printf(″v0=%d,v1=%d,v2=%d\n″,v0,v1,v2); }

A.v0=7,v1=4,v2=7 B.v0=8,v1=4,v2=8 C.v0=11,v1=4,v2=11 D.v0=13,v1=4,v2=12 14.执行下面的程序段后,变量k中的值为( )  int k=3,s[2];  s[0]=k;k=s[1]*10; A.不定值 B.33 C.30 D.10 【参考答案】A

15.有如下程序段 int a=14,b=15,x; char c=′A′;

x=(a&&b)&&(c<′B′);

执行该程序段后,x的值为( ) A.ture B.false C.0 D.1 【参考答案】D

16.以下函数返回a所指数组中最大值所在的下标值 fun(int *a,int n) { int i,j=0,p; p=j;

for(i=j;iif(a[i]>a[p])_______ return(p); }

在下划线处应填入的内容是( )

A.i=p B.a[p]=a[i] C.p=j D.p=i 【参考答案】D

17.有如下程序 main()

{ char s[ ]=″ABCD″,*p;

for(p=s+1;p该程序的输出结果是( )

A.ABCD B.A BCD B CD C D D C.B D.BCD C CD D D 【参考答案】D

18.以下正确的说法是( )

A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参类型不一致,以实参类型为准 【参考答案】B

19.结构化程序设计的三种基本逻辑结构是( ) A.选择结构、循环结构和嵌套结构 B.顺序结构、选择结构和循环结构 C.选择结构、循环结构和模块结构 D.顺序结构、递归结构和循环结构 【参考答案】C 20.设有如下定义 struck sk { int a; float b;  } data;  int * p;

若要使p指向data中的a域,正确的赋值语句是( ) A.p=8a; B.p=data.a; C.p=&data.a; D.*p=data.a; 【参考答案】C

21.在下述程序中,判断i>j共执行的次数是( ) main()

{ int i=0,j=10,k=2,s=0; for(;;) { i+=k; if(i>j)

{ printf(″%d″,s); break; }s+=i; } }

A.4 B.7 C.5 D.6 【参考答案】D

22.以下程序的输出是( ) struct st

{ int x;int *y;} *p; int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};

main() { p=aa

printf(″%d\n″,++(p->x)); }

A.10 B.11 C.51 D.60 【参考答案】C

23.下列数据中,不合法的C语言实型数据的是( ) A.0.123 B.123e3 C.2.1e3.5 D.789.0 【参考答案】C

24.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )

A.int B.float C.double D.不确定 【参考答案】C

25.设以下变量均为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) 【参考答案】C

26.若变量a是int型,并执行语句:a=′A′+1.6;,则正确的叙述是( )

A.a的值是字符C

B.a的值是浮点型

C.不允许字符型和浮点型相加

D.a的值是字符′A′的ASCII值加上1 【参考答案】D 27.有如下程序 main() { int x=23; do

{ printf(″%d″,x--);} while(!x); }

该程序的执行结果是( )

A.321 B.23 C.不输出任何内容 D.陷入死循环 【参考答案】B

28.若变量c为char类型,能正确判断出c为小写字母的表达式是( A.′a′<=c<=′z′

) B.(c>=′a′)||(c<=′z′) C.(′a′<=c)and(′z′>=c) D.(c>=′a′)&&(c<=′z′) 【参考答案】D

29.下面程序段的运行结果是( ) char str[]=″ABC″,*p=str; printf(″%d\n″,*(p+3)); A.67 B.0

C.字符′C′的地址 D.字符′C′ 【参考答案】B

30.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)( int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p-a] B.*(&a[i]) C.p[i] D.*(*(a+i)) 【参考答案】D 31.有以下程序 fun(int x,int y,int z) { z=x*y;} main()

) {

int a=4,b=2,c=6; fun(a,b,c); printf(″%d″,c); }

程序运行后的输出结果是( ) A.16 B.6 C.8 D.12 【参考答案】B

32.以下叙述中不正确的是( ) A.预处理命令都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行 C.宏替换不占用运行时间,只占编译时间 D.在以下定义是正确的:#define PI 3.1415926 【参考答案】D

33.下面程序段的运行结果是( ) char *p=″abcdefgh″; p+=3;

printf(″%d\n″,strlen(strcpy(P,″ABCD″)));

A.8 B.12 C.4 D.7 【参考答案】C

34.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是( ) A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 【参考答案】C

35.C语言规定,在一个源程序中,main函数的位置( ) A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 【参考答案】C 36.以下叙述中正确的是( ) A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D.C语言出现的最晚,具有其他语言的一切优点 【参考答案】C

37.C语言中最简单的数据类型包括( )

A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.字符型、实型、逻辑型 【参考答案】B

38.下列可用于C语言用户标识符的一组是( ) A.void define WORD B.a3_b3 _123 Car C.For abc IFCase D.2a DO sizeof 【参考答案】B 39.已知 int t=0; while (t=1) {…}

则以下叙述正确的是( )

A.循环控制表达式的值为0 B.循环控制表达式的值为1 C.循环控制表达式不合法 D.以上说法都不对 【参考答案】B 40.有以下程序 main()

{ int i=1,j=1,k=2; if((j++ || k++)&&i++) printf(″%d,%d,%d\n″,i,j,k); }

执行后输出结果是( )

A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3 【参考答案】C

41.在下列选项中,没有构成死循环的是( ) A.int i=100; while(1) { i=i%100+1; if(i>100)break; } B.for(;;);

C.int k=1000; do{k++;}while(k>10000); D.int s=36; while(s)--s;

【参考答案】D 42.有以下程序 float fun(int x,int y) {return(x+y);} main()

{ int a=2,b=5,c=8;

printf(″%3.0f\n″,fun((int)fun(a+c,b),a-c)); }

程序运行后的输出结果是( ) A.编译出错 B.9 C.21 D.9.0 【参考答案】B 43.设有以下说明语句 struct stu { int a; float b; } stutype;

则下面的叙述不正确的是( ) A.struct是结构体类型的关键字

B.struct stu是用户定义的结构体类型 C.stutype是用户定义的结构体类型名 D.a和b都是结构体成员名 【参考答案】C

44.以下说法正确的是( )

A.C语言程序总是从第一个函数开始执行

B.在C语言程序中,要调用函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分 【参考答案】C

45.下列程序执行后的输出结果是( ) void func(int *a,int b[ ]) { b[0]=*a+6; } main()

{ int a,b[5]={0}; a=0;b[0]=3;

func(&a,b);printf(″%d\n″,b[0]); }

A.6 B.7 C.8 D.9 【参考答案】A

46.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[ ],int n) { int i,j,t;

for(i=0;iif(a[i]{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5);

for(i=0;i<10;i++)printf(″%d″,aa[i]); printf(″\n″); }

程序运行后的输出结果是( )

A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1, C.1,2,3,8,7,6,5,4,9,10, D.1,2,10,9,8,7,6,5,4,3,

【参考答案】C

47.若执行下述程序时,若从键盘输入6和8时,结果为( ) main() { int a,b,s;

scanf(″%d%d″,&a,&b); s=a if(aA.36 B.64 C.48 D.以上都不对 【参考答案】B 48.有以下程序

void ss(char *s,char t) { while( *s)

{ if(*s==t)*s=t-′a′+′A′ s++;

} } main()

{ char strl[100]=″abcddfefdbd″,c=′d′; ss(strl,c);printf(″%s\n″,strl); }

程序运行后的输出结果是( ) A.ABCDDEFEDBD B.abcDDfefDbD C.abcAAfefAbA D.Abcddfefdbd 【参考答案】B

49.请选出可用作C语言用户标识符的是( ) A.void,define,WORD B.a3_b3,_123,IF C.FOR,--abc,Case D.2a,Do,Sizeof 【参考答案】B

50.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是( ) #include main()

{ int i=0,j,k;

 do{i++;k=316-13*i;}while(______);  j=k/11;

 printf(″316=13*%d+11*%d″,i,j); }

A.k/11 B.k%11 C.k/11==0 D.k%11==0 【参考答案】B 二.填空题

1.用树结构表示实体类型及实体间联系的数据模型称为____【1】____。 【参考答案】 【1】层次模型

2.数据流图的类型有____【2】____和事务型。 【参考答案】 【2】 变换型

3.冒泡排序算法在最好的情况下的元素交换次数为____【3】____。 【参考答案】 【3】 0

4.若串s=\"MathTypes\",则其子串的数目是____【4】____。

【参考答案】 【4】 46

5.关系数据库的关系演算语言是以____【5】____为基础的DML语言。 【参考答案】 【5】 谓词演算

6.以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。 main ()

{float x,amax,amin; scanf(″%f″,&x); amax=x; amin=x;

while(____【6】____) {if(x>amax) amax=x; else

if____【7】____ amin=x;

else scanf(″%f″,&x); }

printf(″\n amax=%f\n amin=%f\n″,amax,amin); }

【参考答案】

【6】 x>0 【7】 x7.下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() { int i,x,y=1; scanf(″%d″,&x); for(i=2;i<=x/2;i++)

if____【8】____{y=0;break;} printf(″%d\n″,y); }

【参考答案】 【8】 (x%i==0)

8.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

main()

{ char b[17]={″0123456789ABCDEF″}; int c[64],d,i=0,base=16; long n;

printf(″Enter a number:\n″);scanf(″%1d″,&n); do{c[i]=____【9】____;i++;n=n/base;} while(n!=0);

printf(″Transmite new base:\n″); for(--i;i>=0;--i)

{d=c[i];printf(″%c″,b____【10】____);} printf(″\n″); }

【参考答案】

【9】 n% base 【10】 [d] 9.以下程序段的输出结果是____【11】____ main {

int a=2,b=3,c=4;

a*=16+(b++)-(++c); printf(″%d″,a); }

【参考答案】 【11】 28

10.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为____【12】____。 for(i=0,j=10;i<=j;i++,j--)k=i+j; 【参考答案】 【12】 10

11.以下程序的输出结果是____【13】____。 void fun() {

static int a=0; a+=2;printf(″%d″,a); } main() { int cc;

for(cc=1;cc<4;cc++)fun(); printf(″\n″); }

【参考答案】 【13】246

12.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*)____【14】____。 【参考答案】

【14】 malloc(11)或malloc(sizeof(char)*11)

13.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf;long f1;

myf=____【15】____(″test.t″,″rb″); fseek(myf,0,SEEK_END);f1=ftell(myf); fclose(myf); printf(″%d\n″,f1); 【参考答案】 【15】 fopen

14.以下程序的输出结果是____【16】____。 main()

{ 〖ZK(〗int a=0; a+=(a=8);

printf(″%d\n″,a);〖ZK)〗 }

【参考答案】 【16】 16

15.函数fun的功能是根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。

P=〖SX(〗m!〖〗n!(m-n)!〖SX)〗

例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。 #include #include float fun(int m,int n) { int i;

 double p=1.0;

 for(i=1;i<=m;i++)____【17】____;

for(i=1;i<=n;i++)____【18】____;  for(i=1;i<=m-n;i++)p=p/i; return p; } main() { clrscr();

printf(″p=%f\n″,fun(12,8)); }

【参考答案】

【17】 p=p*i 【18】 p=p/i

16.下列程序的功能是求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include #include #define M 81 int fun(char * ss,char c) { int i=0;

 for(____【19】____;ss++)

if(*ss==c)i++; return i; } main()

{ char a[M],ch;  clrscr();

 printf(″\nPlease enter a string: ″);gets(a); printf(″\nPlease enter a char: ″);ch=getchar();

 printf(″\nThe number of the char is:%d\n″,fun(a,ch)); }

【参考答案】 【19】 *ss!=′\0′ 17.设有如下宏定义 #define MYSWAP(z,x,y) {z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a,b内容交换,请填空。 float a=5,b=16,c;

MYSWAP(____【20】____,a,b);

【参考答案】 【20】 c

因篇幅问题不能全部显示,请点此查看更多更全内容