c语言程序设计等级考试习题汇编 1Word格式.docx
- 文档编号:17957669
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:37
- 大小:32.27KB
c语言程序设计等级考试习题汇编 1Word格式.docx
《c语言程序设计等级考试习题汇编 1Word格式.docx》由会员分享,可在线阅读,更多相关《c语言程序设计等级考试习题汇编 1Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
16.以下语句或语句组中,能正确进行字符串赋值的是(C)
17.A.char*sp;
*sp="
right!
"
;
B.chars[10];
s="
18.C.chars[10];
*s="
D.char*sp="
19.有以下程序
20.main()
21.{chars[]="
159"
*p;
22.p=s;
23.printf("
%c"
*p++);
printf("
24.}
25.程序运行后的输出结果是(A)
26.A.15B.16C.12D.59
27.有以下程序
28.main()
29.{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
30.for(i=0;
i<
4;
i++)
31.{for(j=0;
j<
=i;
j++)printf("
%4c"
'
);
32.for(j=_____;
%4d"
num[i][j]);
33.printf("
\n"
34.}
35.}
36.若要按以下形式输出数组右上半三角
37.1234
38.678
39.1112
40.16
41.则在程序下划线处应填入的是(B)
42.A.i-1B.iC.i+1D.4-i
43.下面程序(C)(每行程序前面的数字表示行号)
44.1main()
45.2{
46.3floata[10]={0,0};
47.4intI;
48.5for(i=0;
3;
i++)scanf(“%d”,&
a[i]);
49.6for(i=1;
10;
i++)a[0]=a[0]+a{i};
50.7printf(“%f\n”,a[0]);
51.8}
52.A.没有错误B.第3行有错误观点C.第5行有错误D.第7行有错误
53.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(D)..(假设a[0][0]位于数组的第一个位置上)。
54.A.i*m+jB.j*m+IC.i*m+j-1D.i*m+j+1
55.若有以下程序段:
56.·
·
57.inta[]={4,0,2,3,1},I,j,t;
58.for(i=1;
5;
i++)
59.{t=a[i];
j=i-1;
60.while(j>
=0&
&
t>
a[j])
61.{a[j+1]=a[j];
j--;
}
62.a[j+1]=t;
63.·
64.则此程序的功能是(B)
65.A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)
66.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
有以下程序
2.main()
3.{
4.intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
5.while(i++<
7)if(p[i]%2)j+=p[i];
6.printf("
%d\n"
j);
7.}
8.请写出程序运行后的输出结果
9.
72
有以下程序
10.main()
11.{
12.chara[7]="
a0\0a0\0"
inti,j;
13.i=sizeof(a);
j=strlen(a);
14.printf("
%d%d\n"
i,j);
15.}
16.请写出程序运行后的输出结果
17.有以下程序
18.voidf(int*x,int*y)
19.{
20.intt;
21.t=*x;
*x=*y;
*y=t;
22.}
23.main()
24.{
25.inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
26.p=a;
q=&
a[7];
27.while(p
28.{f(p,q);
p++;
q--;
}
29.for(i=0;
8;
i++)printf("
%d,"
a[i]);
30.)
31.写出程序运行后的输出结果
32.
345
8,7,6,5,4,3,2,1,
33.main()
34.{
35.inta[3][3],*p,i;
36.p=&
a[0][0];
37.for(i=0;
9;
i++)p[i]=i;
38.for(i=0;
%d"
a[1][i]);
39.}
40.写出程序运行后的输出结果
41.
10
20
00
42.main()
43.{
44.inta[3][2]={0},(*ptr)[2],i,j;
45.for(i=0;
2;
46.{ptr=a+i;
scanf("
ptr);
ptr++;
47.for(i=0;
48.{for(j=0;
%2d"
a[i][j]);
49.printf("
50.}
51.}
52.若运行时输入:
123<
回车>
写出输出结果
53.
abcbcc
写出以下程序运行后的输出结果
54.#include
55.main()
56.{charch[]="
abc"
x[3][4];
inti;
57.for(i=0;
i++)strcpy(x[i],ch);
58.for(i=0;
%s"
x[i][i]);
59.printf("
60.}
61.
6385
有如下程序
62.main()
63.{charch[2][5]={“6937”,”8254”},*p[2];
64.inti,j,s=0;
65.for(i=0;
i++)p[i]=ch[i];
66.for(i=0;
67.for(j=0;
p[i][j]>
’\0’;
j+=2)
68.s=10*s+p[i][j]-‘0’;
69.printf(“%d\n”,s);
70.}
71.写出该程序的输出结果
72.有如下程序段,写出输出的结果
73.charstr[6];
str[0]=”a”;
acegik
for(intj=0;
6;
for(intk=j+1;
str[k]=str[j]+2;
printf(“%.6s”,str);
五、程序设计题
1.请用户输入一个含有12个浮点数的一维数组,请分别计算出数组中所有的正数的和以及所有的负数的和。
2.#include<
3.main()
4.{floatdata[12];
/*存放浮点数的一维数组。
*/
5.floatresult1=0.0,result2=0.0//将要用于分别存放正数和,负数和
6.printf(“pleaseinuput12floatnumbers:
7.for(intI=0;
I<
12;
I++)
8.scanf(“f”,&
data[I]);
9.for(I=0;
10.{if(data[I]>
0.0)
11.result1+=data[I];
12.else
13.result2+=data[I]);
14.}
15.printf(“thesumofallthepositivenumberis%.3f\n”,result1);
16.printf(“thensumofallthenegitivenumbersis%.3f\n”,result2);
17.return
(1);
18.}
19.
2.编写一个程序,输出一个杨辉三角形。
#i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计等级考试习题汇编 语言程序设计 等级 考试 习题 汇编