2023年历届重庆市计算机C语言二级考试试题及答案_第1页
2023年历届重庆市计算机C语言二级考试试题及答案_第2页
2023年历届重庆市计算机C语言二级考试试题及答案_第3页
2023年历届重庆市计算机C语言二级考试试题及答案_第4页
2023年历届重庆市计算机C语言二级考试试题及答案_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言笔试试卷(A)但个数和次序可以不考虑

12.如a为int型,则与体现式a等

注意事项:1.一、二题为客观题,价日勺C语言关系体现式是()

(A)a>0(B)a!=0

请将答案涂在机读答题卡上

(C)a==0(D)a<0

2.

3.循环语句for(a=0,b=0;(b!=45)|

三、四、五、六题为主观题,请

[(a<5);a++);时循环次数是()

将答案做在答题纸上

(A)4(B)3(C)5

一、单项选择题。(每题1分,共(D)无数多次

20分)4.设有字符数组a,则对日勺日勺输

1.在C程序日勺函数调用时,主调入语句是()o

函数中日勺实参和被调函数中日勺(A)gets('a');

形参()0(B)scanf("%c",a);

(A)(C)scanf("%s",a);

个数、次序必须相似,但数据类(D)gets("a");

型可以不考虑5.enum

(B)color{red,green,yellow=5,whi

个数、次序和对应参数的数te,black};定义了一枚举类型

据类型都应当相似。编译程序为值表中各标识

(C)符分派日勺枚举值依次为(

个数、次序和数据类型均可)o

以不相似(A)1、2、3、4、5

(D)(B)0、1、5、2、3

对应参数数据类型应相似,(C)0、1、5、6、7

(D)3、4、5、6、7x0[]={ll,12},xl[]={31,32);

6.运行完下列程序后,在屏幕structCW

上日勺内容是()0x[2]={100,x0,300,xl};

voidmain()P=x;

{inta=0;(A)*p->b(B)p->a(C)

a+=(a=12);++(p->a)(D)(p++)->a

printf("%d\n",a);9.如下程序日勺输出成果是(

})o

(A)0(B)6intx=3,y=4;

(012(D)24voidmain()

7.若x,y为实数类型日勺变量,要{intx,y=5;

判断x,y相等,最佳使用下列关x=y++;

系体现式()oprintf("%d",x);

(A)x==y)

(B)x-y==O(A)3(B)4

(C)fabs(x-y)<le-8(C)5(D)6

(D)labs(x-y)<le-810.在C语言中,函数默认日勺存

8.若有如下日勺定义、阐明和语储类型为()0

句,则值为10巾勺体现式是()o(A)auto(B)register

structCW(C)static(D)

{inta;extern

int*b;11.有定义:float

}*P;y,*p=&y;,假定变量y在内

int存中所占地址为100〜103。

那么p日勺值为()o(C)15(D)10

(A)100(B)10115.若有定义int

(C)102a,b,x;且变量都已对的赋值,下

(D)103面选项中合法日勺if语句是()o

12.有定义:inta[10],n,(A)if(a==b)x++;

*pl=a,*p2=&a[9];,则对日勺的赋(B)if(a=<b)x++;

值语句为()o(C)if(a<>b)x++;

(A)n=p2-p1;(B)n=p2*pl;(D)if(a=>b)x++;

(C)n=p2+pl;(D)16.执行下面日勺程序后,变量a

n=pl/p2;的值是()o

13.调用strlen("abcd\0ef\ng\0")#include<stdio.h>

日勺成果为()o#defineSQR(X)X*X

(A)4(B)5voidmain()

(Q8{inta=10,k=2,m=3;

(D)10a/=SQR(m)/SQR(k);

14.执行下面程序中输出语句printf("%d\n",a);

后,a的J值是()0)

#include<stdio.h>(A)10(B)l

main()(C)5

{inta;(D)0

printf("%d\n",(a=3*5,a*4,a17.若变量t为double类型,体现

));式(t=l,t+5,t)日勺值是()o

)(A)l(B)6.0

(A)65(B)20(C)1.0(D)6

18.在C语言中,下面有关数组(D)0,-l

日勺描述中对日勺日勺是()o20.若有如下阐明和语句,则下

(A)数组日勺大小是固定昨J,但列引用方式中不对昨J日勺是(

可以有不一样类型日勺数组元)o

素structworker

(B)数组日勺大小是可变日勺,但{intno;

所有数组元素日勺类型必须相char*name;

似}work,*p=&work;

(C)数组日勺大小是固定日勺,所(A)work.no(B)(*p).no

有数组元素的类型必须相似(C)p->no(D)work->no

(D)数组日勺大小是可变日勺,可二、基本概念选择填空题(本大

以有不一样的类型日勺数组元

题背面有若干备选项,请选择合

适日勺备选项并将其号码填入各

19.下述程序日勺输出成果是(

小题日勺空白处。每空2分,共10分

)o

)

#include<stdio.h>

1.在C语言中,函数一般由两个

voidmain()部分构成,它们是函数首部和

{inta,b,c=241;

①_O

a-c/100%9;

2.任何程序都可调用原则函数e

b=-l&&-l;

xit(),当它被调用时•就②

printf("%d,%d\n",a,b);程序日勺执行。

)

3.一种C语言程序在可以被执

(A)2,0(B)2,l

行之前,需要通过日勺4个处

(C)6,l理程序是:编辑程序、预处

理程序、编译程序和⑶while((c=(T))!='\n')

Oif(c>='a'&&c<='z')

4.在C语言中无固有的输入和printf("%c",c-

输出语句,不过用C语言编32);

写日勺程序可以用函数调用日勺)

形式来实现输入、输出,这2.下面程序的J功能是从目前目

些函数由」提供。录下的文本文献“fl.txt”中读

5.C原则库函数rewind日勺作用是取前10个字符,依次显示在

、二,____o屏幕上;假如文本文献中局

备选项:限性10个字符,则读完为止

(A)主函数(B)(0函数首部

函数体;请填空完善程序。

(D)(E)(F)

顾客自定义终止使读写指针指

#include<stdio.h>

函数向文献的开头

(G)(H)(J)

原则I/O库/连接程判断文献指针voidmain()

系统序与否指向文献

末尾{FILE*fp;

三、程序填空题。(每空2分,共2inti;

0分)。charc;

1.if(②==NULL)

下面程序日勺功能是从键盘上{printf("Can'topen

输入一行字符,将其中的J小thisfile!\n");

写字母转换为大写字母后输return;

出。请填空完善程序。}

#include<stdio.h>fdr(i=0;i<10;i++)

voidmain(){if(feof(fp))

{charc;break;

c=fgetc(fp);{inttemp;

putchar(c);while(b)

){temp=(5);

fclose(fp);a=b;

)b=temp;

3.)

下面程序日勺功能是输出数组中returna;

日勺各字符串,请填空完毕程序。)

#include<stdio.h>5.

voidmain()下面程序日勺功能是将字符串str

{char昨J内容颠倒过来并输出,请填

*a[]-{"abcd","12345","efghi空完善程序。

jk","67890"};#include<stdio.h>

char⑶;voidmain()

intj=O;{char

P=a;str[]={"abcdefg"},*pl,*p2,ch

for(;j<4;j++)

pl=p2=str;

)while(*p2!-\0')

4.p2++;

下面函数mfb用于求取两个正整⑥;

数日勺最大公因子,请填空完善while(pl<p2)

函数。(

intmcf(inta,intb)ch=*pl,*pl=*p2,*p2=ch;

⑦;1.下面程序日勺输出成果是(

p2--;)o

)#include<stdio.h>

puts(str);voidmain()

){voidfun(int*k);

6.intw=5;

下面函数yh日勺功能是构成一种fun(&w);

杨辉三角形,请填空完毕该函)

数。voidfun(int*k)

#include<stdio.h>{(*k)++;

#defineN11printf("%d\n",*k-H-);

voidyh(inta[][N]))

{intj,k;2.下面程序日勺输出成果是(

for(j=l;j<N;j++))o

{a皿1]=1;#include<stdio.h>

_⑧_;voidmain()

}{char

for(⑨;j<N;j++)ch[2][5]={"1234","5678"},

for(k=2;k<j;k++)p[2];

a皿k]=intj,k,s=O;

+aU-l]M;fbr(k=O;k<2;k++)

)p[k]=ch[k];

fbr(k=0;k<2;k++)

四、阅读程序题(每题5分,共30

forC=0;p[k]U]>'0'&&p[k]U)o

]<=9;j+=2)#include<stdio.h>

voidmain()

s=lO*s+p[k]0]-'O';{int

printf("s=%d\n",s);a[10]={l,2,3,4,5,6,7,8,9,10},

}k,s,i;

3.下面程序的输出成果是(doubleave;

)ofbr(k=s=i=0;i<10;i++)

#include<stdio.h>{if(a[i]%2)

intfunc(int,int);continue;

voidmain()s+=a[i];

{intk=4,m=l,p;k++;

p=func(k,m);)

printf("%d,",p);if(k!=O)

p=func(k,m);{ave=s/k;

printf("%d\n",p);

)printf("%d,%f\n",k,ave);

intfunc(inta,intb))

{staticintm=l,n=2;}

n+=m+1;5.在下列程序中,若输入为:tod

m=n+a+b;ayis

returnm;Monday!<CR>,则输出成果是(

))o

4.下面程序日勺输出成果是(#include<stdio.h>

voidmain())

{chars[40],c,*str=s;voidmain()

intnum=0,word=0;{intx=35,y=550;

gets(str);printf("%d,%d\n",f(x),f(y))

while((c=*str++)!-\O')

{if(c=='')}

word=0;

五、编程序。(每题10分,共20分

elseif(word==0)

)

{word=l;1.函数delspace日勺功能是删除一

num++;种字符串中所有日勺空格。例

}如,输入字符串为"Thisisa

}string",则输出成果为"Thisis

printf("%dwords\n",num);

astring"0测试用主函数如下

}所示,请编制函数delspace。

6.下列程序日勺输出成果是(

#include<stdio.h>

)o

#include<string.h>

#include<stdio.h>

voidmain()

unsignedf(unsignednum)

{char*delspace(char*str);

{unsignedk=l;

chars[81],*ds;

do

gets(s);

{k*Fum%10;

ds=delspace(s);

num/=10;

printf("\nResult:%s\n",

}while(num);

ds);

returnk;

)

2.

已知两个3位数abc和cba之(D)本程序文献日勺第一种函数

和为1333(即abc+cba=1333)开始,到本程序main函数结束

,编程序求出3个数字a、b和2.设有C语句:intx=3,

Coy=4,z=5;,则下面体现式中值为0

的是()o

二级C语言笔试试卷(A)

(A)x&&y

2

(B)x<=y

注意事项:1.一题为客观题,请

将答案涂在机读答题卡上(C)x||y+z&&y-z

(D)!((x<y)&&!z||l))

3.

2.请将二、三、四、五题的答案

如下有关宏替代日勺论述不对的

做在答题纸上

的是()0

一.单项选择题。(每题1分,共20

(A)宏替代不占用运行时间

分)

(B)宏名无类型

1.一种C程序日勺执行是从()0

(C)宏替代只是字符串替代

(A)本程序的main函数开始

(D)宏替代是在运行时进行的

(B)本程序文献的第一种函数

4.

开始,到本程序文献日勺最终一

在原则库函数日勺调用形式“fread

种函数结束

(buffer,size,count,fp);55中,参数b

uffer代表日勺是()

(C)本程序的fmain函数开始,到o

本程序文献的最终一种函数结

(A)一种整型变量,代表要读入{intm,n,k;

日勺数据总数m=(n=4)+(k=10-7);

printf("m=%d\n,,,m);

(B)一种文献指针,指向要读日勺)

文献(A)4(B)3

(C)7(D)14

(C)一种指针,指向读入数据寄7.

存日勺首地址下面程序运行成果(或出现日勺状

况)是()o

(D)一种存储区,寄存要读的数#include<stdio.h>

据项voidmain()

5.{intx=3,y=0,z=0;

位运算中,操作数每左移一位,if(x=y+z)

在没有溢出的状况下其成果相print=****");

称于()oelse

(A)操作数乘以2printR"####\n");

(B)操作数除以2)

(C)操作数除以4(A)有语法错误不能通过编

(D)操作数乘以4译

6.(B)输出:****

下面程序运行后,变量m日勺值为

()o(C)可以通过编译,但不能通过

#include<stdio.h>连接,因而不能运行

voidmain()(D)输出:####

8.已经有定义intk=2;int*ptrl,next;p—>next=q;

*ptr2,且ptrl和ptr2(C)p=p—>next;q—>next=p;

均已指向变量k,下面不能对日勺p—>next=q;

执行的赋值语句是()o(D)p=(*p).next;(*q).next=

(A)k=*ptrl+*ptr2;(*p).next;(*p).next=q;

(B)ptr2=k;10.有定义int

(C)ptrl=ptr2;a=3,b=4,c=5;执行完体现式a

(D)k=*ptrl*(*ptr2);++>--b&&b++>c—

9.&&++c后,a,b,朋勺值分别为

若有已经建好日勺链表构造如()

下,指针平p、q分别指向图(A)345(B)435

示节点(b节点为插入c节点(C)444(D)445

前日勺链表末尾);11.下列程序日勺执行成果是(

a*5A?

#include<stdio.h>

unionssA

P

{shortinti;

q

charc[2];

);

不能实现将q所指节点插入到链

voidmain()

表末尾日勺一组语句是()o

{unionssx;

(A)q—>next=NULL;

x.c[0]=10;

p=p->next;p—>next=q;

x.c[l]=l;

printf("%d”,x.i);

(B)p=p—>next;q—>next=p—>

}voidmain()

(A)11(B)266{inta,b,c,x;

(C)265(D)138a=b=c=0;x=35;

12.若有C语言inti=if(!a)

10;,则执行下面程序段后变量ix--;

日勺值是()oelseif(b)

switch(i)

{case9:i+=l;if(c)

case10:x=3;

case11:i-=l;else

default:i+=l;x=4;

}printf%d\n",x);

(A)10(B)11)

(C)12(D)9(A)34(B)4

13.(C)35(D)3

在下列选项中,不对日勺日勺赋值15.设有如下宏定义:

语句是()0#defineN3

(A)t/=5;(B)#defineY(n)(N+l*n)

nl=(n2=(n3=0));(C)k=i==j;则执行语句:z=2

(D)a=b+c=l;*(N*Y(5+1));后,z曰勺值为()0

14.(A)30(B)72

下面C程序运行后变量x的值是(C)48(D)54

()o16.

#include<stdio.h>在如下日勺四个运算符中,优先

级最低日勺运算符是()0(B)实参和对应形参日勺数据类

(A)<=(B)/型必须一致

(C)!=(D)&&

17.(C)实参可以是变量、常量或体

已知E日勺ASCII码是69,则执行现式

下面C语句的成果是()0

printf("%c”,D-(D)形参可以是变量、常量或体

'8'+'5');现式

(A)66(B)A20.字符串常量“ab

(C)B(D)Ec\nt\012\xal*2”在内存中所占

18.设有如下语句:inta=3,日勺存储空间节数是()o

b=6,c;c=aAb«2;(A)11(B)13

执行后c日勺低8位二进制值是((C)15(D)18

)o

基本概念选择填空题(本大

(A)00011011

题背面有若干备选项,请选择

(B)00010100(C)00011100

合适的备选项,并讲其号码填

(D)00011000

入各小题的J空白处。每空2分,

19.

共10分)

在c语言中,如下论述错误日勺是

1.函数首部intmain(intargc,

()o

char*argv[])中argc表达日勺是

①。

(A)函数被调用时,系统才为形

2.

参分派内存

C语言能处理日勺文献类型可以

是文本文献和②O

3.下面程序日勺功能是:从键盘

下面语句定义了共用体(联合体上输入若干个学生日勺成绩(

)变量a,则a占用③用负数结束输入过程),记

个字节。录计算出平均成绩;请填空

uniondata{shortinti完毕程序。

;charc;doubled;}a;#include<stdio.h>

4.为了防止嵌套日勺if-elsevoidmain()-------------

语句日勺二义性,C语言规定el{floatsum=0.0,ave,a;

se总是与④intn=0;

构成配对关系。print出"Entermark\n");

5.宏定义中日勺宏名不能包括scanf("%f",&.a);

⑤。while(a>=0.0)

备选项:{sum=sum+a;

(A)空格(B)二进制(C)数字

文献①L

(D)在其(E)参数字(F)命令

之前未配对符串行参数的scanf("%f",&.a);

的if个

数)

(G)11(H)在其之(J)8

前近来的未配ave=sum/n;

对的Jif

(K)在定(L)下划线(M)程序printf("ave=%f\n",ave);

义该函数文献

时所指定

的数据类}

下面程序日勺功能是将一种

程序填空题(每空2分,共20字符串str的内容颠倒并输

分)出,请填空完毕程序。

#include<stdio.h>intn;

voidmain()fbr(n=0;n<80;n++)

{charstr[]={"abcdefg"};{str[n]=-----;-----

char*pl,*p2,ch;if(str[n]='\n')

pl=str;break;

p2=str;)

while(*p2!='\0')str[n]='\0';

p2++sp=str;

②;while(*sp)

while(pl<p2)putchar(—@——

{ch=*p1,*p1=*p2,*p2=ch;)

—4.

p2-;下面函数funB勺功能是比较

)两个字符串的大小,若两

puts(str);字符串相似则返回0值,否

}则返回两个字符串中第一

种不相似字符之差;请填空

3.完毕函数。

下面程序从终端输入一行#include<stdio.h>

字符串存入字符数组,然intfiin(char*s,char*t)

后输出;请填空完毕程序。{while(*t++==*s++&&

#include<stdio.h>*t!='\0'&&*s!='\0')

voidmain()

{charstr[8O],*sp;retum(⑥);

)

voidmain()prints"thesumis

{charstrl[8O],str2[8O];%d\n",count);

gets(strl);}

gets(str2);6.

下面函数在一维数组V中将X

printf("%d\n",fun(strl,str插入到下标为i(i>=0)日勺元

2));素前,假如i不小于等于元素

)日勺个数,则X添加到V数组原

5.数据日勺末尾。V数组原有元

下面程序日勺功能是记录字符串素个数保留在指针n所指向

中大小写字母日勺个数,请填空的变量中,插入后元素个数

完毕程序。加1;请填空完毕程序。

#include<stdio.h>#include<stdio.h>

#defineIA(x)⑦voidinsline(double[],int

voidmain()*n,doublex,int,i)

{charstr[8O],*s,ch;{intj;

intcount=0;if(®-)—

gets(str);fbr(j=*n-l;®~卡=>

s=str;®------vEft—

while(*s)else

{ch=*s++;i=*n;

if(IA(ch))v[i]=x;

count++;(*n)++;

)if(++i<=num)

voidmain()f(num,l);

{doubleretum(fact);

s[10]={ll,23,65,78),x;)

intm=4,*p=&m,k;voidmain()

x=99;{inti=0;

scanf("%d",&k);printf("f=%d\n",f(3,0));

insline(s,p,x,k);1

2.写出下面程序日勺运行成果。

for(k=0;k<m;k++)printf("%f",#include<stdio.h>

s[k]);voidmain()

putchar('\n');{inta,b;

)fbr(a=l,b=l;a<=l00;a++)

四.阅读程序题(每题5分,共30{if(b>=20)

分)break;

1.写出下面程序日勺运行成果。if(b%3==l)

#include<stdio.h>b+=3;

intRintnum,intrun)continue;

{strticintfact,i;)

if(run=0)b-=5;

{fact=l;printf("%d,%d\n",a,b);

i=l;)

i3.写出下面程序日勺运行成果。

fact*=i;#include<stdio.h>

voidmain()str=ps;

{charwhile((c=*str)!=\0)

f

ch[2][5]={"1234”,"5678"},{if((c>=a,&&

*p⑵;c<='z')11(c>='A,&&

intj,k,s=O;c<='Z'))

for(k=0;k<2;k++){c=c+4;

p[k]=ch[k];

fbr(k=0;k<2;k++)if(c>"Z"&&c<='Z'+411c>

,z')

forG=0;p[k][j]>'\0'&&p[k][j]c=c-26;

<='9';j+=2)*str=c;

s=10*s+p[k][j]-}

101;str++;

printfif"s=%d\n",s);)

)printf("%s\n",ps);

4.}

写出下面程序在输入数据为:a45.写出下面程序日勺运行成果。

BZ!<CR>(<CR>表达按Enter键)#include<stdio.h>

时日勺运行成果。voidmain()

#include<stdio.h>{longfun(intn);

voidmain()printf("%ld\n",fun(4));

{charps[80],*str;}

charc;longfun(intn)

gets(ps);{longs;

if(n=llln-2)程序设计题(每题10分,共2

s=2;0分)

else1.

s=n+fun(n-1);若一种数出目前自己平方数

returns;日勺右边,则称该数为同构数

}o如,因有5*5=25,25*25=6

6.写出下面程序的运行成果。25,因此5和25都是同构数;

#include<stdio.h>请编制程序找出1〜100之间

voidmain()日勺所有同构数。

{voidfun(int*x,int*y);

2.

inta[]={l,2,3,4},j,x=0;

编程序实现功能:在一种元

for(j=0;j<4;j++)

素值按升序寄存的整型数组

{fun(a,&x);

中插入一种数,使得插入后

printf("%d",x);

的数组元素仍然有序

)

二级C语言笔试试卷(A)

printf("\n");

1

)

注意事项:1.一题答案填涂在答

intt=3;

题卡上

voidfun(int*x,int*y)

{*y=x[t];

2.二、三、四、五题答案做在答

t-;

题纸上

)

一.单项选择题。(每题1分,共20

五分)

1.

C程序日勺源程序由预处理命令体现式10+E+x*f值日勺类型为(

和()构成。)o

(A)函数(B)语句(A)int(B)float

(C)保留字(D)标始符(C)double(D)不能确定

2.6.

下面程序段中,与if(x%2)中日勺xc语言中规定,函数调用中用简

%2所示条件等价日勺是()。朴变量做实参时,它和对应形

scanf%d”,&x);参之间日勺数据传递方式是()。

(A)x%2==0(B)x%2!=1(A)地址传递

(C)x%2!=0①)x%2==l(B)单向值传递

3.(C)

执行下面C语言序列后,变量b由实参传给形参,再由形参传

日勺值是()。回给实参(D)

Inta,b,c;a=b=c=l;由顾客指定传递方式

++a||++b&&++c;7.下面程序日勺输出是()。

(A)错误(B)0#include<stdio.h>

(C)2(D)1voidmain()

4.设有C语句inta[3][4];,(

则每次移动过a数组一行元素日勺intx=10,y=3;

指针变量定义形式是()。printfC%d\n〃,y=x/y);

(A)int*p;(B)int**p;)

(C)int(*p)[4];(D)int*p[4];(A)0(B)l(C)

5.设有整型变量a,3(D)不确定日勺值

实型变量f,双精度型变量x,则8.

执行下面日勺程序段后,B日勺值为a(D)d

()o11.

intx=35;运行完下列程序后,在屏幕上

charz='A';的内容是()。

intB;#include<stdio.h>

B=((X&5)&&(z<R));voidmain()

(A)0(B)l(C)2{inta=0;

(D)3a+=a=12;

9.如下程序日勺输出成果为()。printf("%d\n”,a);

#include<stdio.h>}

voidmain()(A)0(B)6(C)

{inti=0;12(D)24

for(;;)12.已知:intx=1,y=2,z

if(i++==5)=0,则执行z=x>y?(10+x,10-

break;x):(20+y,20-y)后,z的值为()。

printf("%d\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论