C语言程序设计等级考试习题汇编1Word格式文档下载.docx

上传人:b****1 文档编号:3562547 上传时间:2023-05-02 格式:DOCX 页数:35 大小:29.94KB
下载 相关 举报
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第1页
第1页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第2页
第2页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第3页
第3页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第4页
第4页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第5页
第5页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第6页
第6页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第7页
第7页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第8页
第8页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第9页
第9页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第10页
第10页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第11页
第11页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第12页
第12页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第13页
第13页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第14页
第14页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第15页
第15页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第16页
第16页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第17页
第17页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第18页
第18页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第19页
第19页 / 共35页
C语言程序设计等级考试习题汇编1Word格式文档下载.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计等级考试习题汇编1Word格式文档下载.docx

《C语言程序设计等级考试习题汇编1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计等级考试习题汇编1Word格式文档下载.docx(35页珍藏版)》请在冰点文库上搜索。

C语言程序设计等级考试习题汇编1Word格式文档下载.docx

5.已有定义:

6.以下语句或语句组中,能正确进行字符串赋值的是(C)

A.char*sp;

*sp="

right!

"

;

B.chars[10];

s="

C.chars[10];

*s="

D.char*sp="

7.有以下程序

main()

{chars[]="

159"

*p;

p=s;

printf("

%c"

*p++);

}

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

A.15B.16C.12D.59

8.有以下程序

{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

for(i=0;

i<

4;

i++)

{for(j=0;

j<

=i;

j++)printf("

%4c"

'

);

for(j=_____;

%4d"

num[i][j]);

\n"

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是(B)

A.i-1B.iC.i+1D.4-i

9.下面程序(C)(每行程序前面的数字表示行号)

1main()

2{

3floata[10]={0,0};

4intI;

5for(i=0;

3;

i++)scanf(“%d”,&

a[i]);

6for(i=1;

10;

i++)a[0]=a[0]+a{i};

7printf(“%f\n”,a[0]);

8}

A.没有错误B.第3行有错误观点C.第5行有错误D.第7行有错误

10.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(D)..(假设a[0][0]位于数组的第一个位置上)。

A.i*m+jB.j*m+IC.i*m+j-1D.i*m+j+1

11.若有以下程序段:

·

·

inta[]={4,0,2,3,1},I,j,t;

for(i=1;

5;

i++)

{t=a[i];

j=i-1;

while(j>

=0&

&

t>

a[j])

{a[j+1]=a[j];

j--;

}

a[j+1]=t;

则此程序的功能是(B)

A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)

C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)

三、程序填空题

题1

CBBAD

以下是使用数组来处理并打印斐波那契数列的前二十项的程序。

打印时,每行打印10个数字。

斐波那契数列的格式为:

当n=0时,f[0]=0,当n=1时,f[1]=1,当n>

1时,f[n]=f[n-1]+f[n-2]。

【程序】

#include,stdio.h.

main()

{int___

(1)____;

intline=0,j;

fbnq[0]=0;

fbnq[1]=1;

for(j=___

(2)____;

20;

j++)

___(3)____;

for(j=0.j<

j++);

{print(%d,”fbqn[j]);

___(4)____;

if(line==10)

|{___(5)____

printf(“\n”);

}

return

(1);

1.A.FbnqB.Fbnq[1to20]C.Fbnq[20]D.Fbnq

2.A.1B.2C.0D.-1

3.A.fbnq[j]=fbnq[j-1]+fbnq[j]B.fbnq[j]=fbnq[j-1]+fbnq[j-2]

C.fbnq[j]=fbnq[0]+fbnq[1]D.fbnq[j+1]=fbnq[j-1]+fbnq[j]

4.A.line++B.line--C.line=line-1D.line=0

5.A.line++B.line--C.line=line-1D.line=0

题2.

有已排序好的字符串a,下面的程序是将字符串s中的每个字符升序的规律插入到a中,请选择填空。

#include<

stdio.h>

main()

{chara[20]=”cehiknqtw”;

chars[]=“fbla”;

inti,k,j;

BB

for(k=0;

s[k]>

!

=’\0’);

k++)

{j=0;

while(k=0;

=a[j]&

a[j]!

=’\0’)j++;

for(____

(1)____)____

(2)____;

a[j]=s[k];

puts(a);

1.A.i=strlen(a)+k:

i>

=j;

i--B.i=strlen(a);

i>

i--

C.i=j;

i<

=strlen(a)+k;

i++D.i=j;

=strlen9a);

i++

2.A.a[i]=a[i+1]B.a[i+1]=a[i]C.a[i]=a[i-1]D.a[i-1]=a[i]

ADA

题3

下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中,请选择填空。

main()

{chara[]=”acegikm”;

charb[]=”bdfhjlnpq”;

charc[80],*p

inti=0,j=0,k=0;

while(a[i]!

=’\0’&

b[j]!

=’\0’)

{if(a[i]<

b[j]){____

(1)____}

else{____

(2)____}

k++;

c[k]=’\0’;

if(____(3)____)p=b+j;

elsep=a+i;

strcat(c,p);

puts(c);

1.A.c[k]=a[i];

i++B.c[k]=a[j];

i++C.c[k]=a[i];

j++D.c[k]=a[j];

j++

2.A.c[k]=a[i];

3.A.a[i]==’\0’B.a[i]!

=’\0’C.a[i-1]==’\0’D.a[i-1]!

=’\0’

题4

下面程序以每行4个数据的形式输出a数组,请选择填空。

#defineN20

BAC

{inta[N],I;

for(i=0;

N;

i++)scanf(%d”,____

(1)____)

{if(____

(2)____)____(3)____

printf(“%d”,a[i]);

1.A.a[i]B.&

a[i]C.aD.a[N]

2.A.i%4==0B.i%4!

=0C.i/4==0D.i/4!

=0

3.A.printf(“\r”)B.printf(“\w”)C.printf(“\n”)D.printf(“\b”)

CBC

题5

下面程序将二维数组a的行和列元素互换后存另一个二维数组b中,请选择填空。

Main()

{inta[2][3]={(1,2,3),(4,5,6)};

intb[3][2],I,j;

printf(“arraya:

\n”);

=1;

{for(j=0;

____

(1)____;

{printf(“%5d”,a[i][j]);

____

(2)____;

printf(“arrayb:

\n”);

____(3)____;

{for(j=0;

printf(“%5d”,b[i][j]);

printf(“\n”)

1.A.j<

1B.j<

=1C.j<

=2D.j<

2

2.A.b[j][i]=a[j][i]B.b[j][i]=a[i][j]C.b[i][j]=a[j][i]D.b[i][j]=a[i][j]

3.A.j<

题6

下面程序可求出矩阵a的两条对角线的元素之和,请选择填空。

{inta[3][3]={1,3,6,7,9,11,14,15,17,},sum1=0,sum2=0,i,j;

for(j=0;

=3;

if(i==j)sum1=sum1+a[i][j];

for(____

(1)____;

j--)

if((i+j)==2)sum2=sum2+a[i][j];

print(“sum1=%d,sum2=%d\n”,sum1,sum2);

1.A.j=0B.j=1C.j=2D.j=3

CA

2.A.j>

=0B.j>

=1C.j>

=2D.j>

=3

题7

以下程序可求出所有的水仙花数。

(提示:

所谓水仙花数是指一个三位正数,其各位数字的立方和等于该正整数)请选择填空。

{intx,y,z,a[8],m,i=0;

BBA

printf(“thespecialnumbersare(inthearrangeof1000):

m++)

{x=m/100;

y=____

(2)____;

z=m%10;

if(x*100+y*10+z=x*x*x+y*y*y+z*z*z){____(3)____;

i++;

for(x=0;

x<

I;

x++)

printf(“%6d”,a[x]);

1.A.m=100;

m<

999B.m=100;

1000

C.m=1;

1000D.m=1;

999

2.A.m/10B.m/10-x*10C.m%10–x*10D.m%10

3.A.a[i]=mB.a[i]=xyzC.a[i+1]=mD.a[i+1]=xyz

ACB

题8

下面程序的功能是生成并打印某数列的前20项,该项数列第1,2项分别为0和1,以后每个奇数编号的项是前两项的和,偶数编号的项是前两项差的绝对值。

生成的20个数存在一维数组x中,并按每行4项的形式输出,请选择填空。

Main()

{intx[21],I,j;

x[1]=0;

x[2]=1;

i=3;

do{

x[i]=____

(1)____;

x[i+1]=____

(2)____;

i=____(3)____;

}while(i<

=20);

for(i=;

=20;

{printf(“%5d”,x[i]);

if(i%4==0)

printf{“\n”};

1.A.x[i-1]+x[i-2]B.x[i+1]+x[i+2]C.x[i]+x[i-1]D.x[i]+x[i+1]

2.A.x(i-1)-x(i)B.x(i)-x(i-1)

C.fabs((double)(x(i)-x(i-1))D.fabs((double)(x(i-1)-x(i-2))

3.A.i+1B.i+2C.i+3D.i-1

 

BA

题9

下面程序的功能是检查一个二维数组是否对称,请选择填空。

{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4,};

inti,j,found=0;

if(a[i][j]!

=a[j][i]){____

(2)____;

break;

if(found)printf(“No”);

elseprintf(“Yes”);

1.A.i=jB.i=j+1C.i=0D.i=1

2.A.found=1B.found=0C.found=trueD.found=false

DBA

题10

a是一个3×

3的矩阵,输入a的元素,如果a是下三角矩阵,输出“YES”,否则,输出“NO”。

(下三角矩阵,即对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线。

#include<

voidmain()

{intflag,i,k;

inta[3][3];

for(k=0;

k<

k++);

scanf("

%d”,&

a[i][k]);

(1);

3&

flag;

for(k=i+1;

if((2))(3);

if(flag)printf("

YES\n"

elseprintf("

NO\n"

1.A.flag=0B.flag==0C.flag==1D.flag=1

2.A.a[k][i]!

=0B.a[i][k]==0C.a[i][k]!

=0D.a[k][i]=0

3.A.flag=0B.flag==0C.flag==1D.flag=1

CD

题11

输入一个字符串,将其中的大写字母转换为小写字母后输出。

#include<

voidmain()

{charstr[80];

intk;

gets(str);

str[k]!

=’0’;

if(1)2;

puts(str);

1.A、’A’<

=str[k]<

=’Z’B、str[k]>

’A’&

str[k]<

’Z’

C、str[k]>

=’A’&

=’Z’D、str[k]>

=’A’‖str[k]<

=’Z’

2.A、str[k]=str[k]-32B、str[k]=str[k]-‘a’+’A’

C、tolower(str[k])D、str[k]=str[k]-‘A’+’a’

四、程序阅读题

1.

45

有以下程序

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<

7)if(p[i]%2)j+=p[i];

%d\n"

j);

请写出程序运行后的输出结果

2.

72

有以下程序

chara[7]="

a0\0a0\0"

inti,j;

i=sizeof(a);

j=strlen(a);

%d%d\n"

i,j);

3.有以下程序

voidf(int*x,int*y)

intt;

t=*x;

*x=*y;

*y=t;

inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;

q=&

a[7];

while(p

{f(p,q);

p++;

q--;

8;

i++)printf("

%d,"

a[i]);

写出程序运行后的输出结果

4.

345

8,7,6,5,4,3,2,1,

inta[3][3],*p,i;

p=&

a[0][0];

9;

i++)p[i]=i;

%d"

a[1][i]);

5.

10

20

00

inta[3][2]={0},(*ptr)[2],i,j;

2;

{ptr=a+i;

scanf("

ptr);

ptr++;

%2d"

a[i][j]);

若运行时输入:

123<

回车>

写出输出结果

6.

abcbcc

写出以下程序运行后的输出结果

#include

{charch[]="

abc"

x[3][4];

inti;

i++)strcpy(x[i],ch);

%s"

x[i][i]);

7.

6385

有如下程序

{charch[2][5]={“6937”,”8254”},*p[2];

inti,j,s=0;

i++)p[i]=ch[i];

for(j=0;

p[i][j]>

’\0’;

j+=2)

s=10*s+p[i][j]-‘0’;

printf(“%d\n”,s);

写出该程序的输出结果

8.有如下程序段,写出输出的结果

charstr[6];

str[0]=”a”;

acegik

for(intj=0;

6;

for(intk=j+1;

str[k]=str[j]+2;

printf(“%.6s”,str);

五、程序设计题

1.请用户输入一个含有12个浮点数的一维数组,请分别计算出数组中所有的正数的和以及所有的负数的和。

#include<

main()

{floatdata[12];

/*存放浮点数的一维数组。

*/

floatresult1=0.0,result2=0.0//将要用于分别存放正数和,负数和

printf(“pleaseinuput12floatnumbers:

for(intI=0;

I<

12;

I++)

scanf(“f”,&

data[I]);

for(I=0;

{if(data[I]>

0.0)

result1+=data[I];

else

result2+=data[I]);

printf(“thesumofallthepositivenumberis%.3f\n”,result1);

printf(“thensumofallthenegitivenumbersis%.3f\n”,result2);

return

(1);

2.编写一个程序,输出一个杨辉三角形。

defineM10

voidmain()

intI,j,k,n;

inta[M][M];

printf(“输入n:

”);

scanf(“%d”,&

n]);

if(n<

M-2)

{

=n+2;

a[i][j]=0;

a[0][1]=1;

=n+1;

for(j=1;

a[i][j]=a[i-1][j-1]+a[i-1][j]

{

20-3*I;

printf(“”);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2