任务22:数组的应用 《编程语言-C语言》45分钟专题训练
|
2份
|
28页
|
118人阅读
|
2人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目四: 数组
第22卷: 数组的应用
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.执行以下程序段的输出结果是( )
int i,j=0;
char a[ ]="How are you",b[10]={0};
for(i=0;a[i];i++)
if(a[i]==' ')
b[j++]=a[i+1];
printf("%s",b);
A.Hay B.How are you C.we D.ay
【答案】D
2.执行以下程序段的输出结果是( )
int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
A.258 B.741 C.369 D.852
【答案】D
3.执行以下程序段的输出结果是( )
char s[20]="I like it.",t[20]="Are you?",c[20];int i=0;
while(s[++i]!='\0')t[i]=s[i];t[i]=0;printf("string s:%s
",s);
A.string s:I like it. B.string s: Are you?
C.string s:I like it.Are you? D. string s: Are you? I like it.
【答案】A
4.执行以下程序段的输出结果是( )
char s[ ]="2473",c,i;
for(i=0;c=s[i];i++)
switch(c-'0')
{case 2:case 3:putchar(c+4);continue;
case 4:putchar(c+4);break;
case 5:putchar(c+3);
default:putchar(c+2);}
A.6697 B.6789 C.7986 D.6897
【答案】D
5.执行以下程序段的输出结果是( )
char s[ ]="abcdef";s[3]='\0';
printf("%s",s);
A.abcd B.ab C.abc D.abcdef
【答案】C
6.执行以下程序段时输入:abcABC<回车>,则输出结果是( )
char s[80];int i=0;gets(s);
while(s[i]!='\0')
{if(s[i]>='a'&&s[i]<='z')
s[i]='z'+'a'-s[i];i++;}puts(s);
A.zyxABC B.abcABC C.ABCABC D.xyzABC
【答案】A
7.执行以下程序段的输出结果是( )
char s[3][20]={"BASIC","JAVA","C++"};int i,k=0;
for(i=1;i<3;i++)
if((strcmp(s[k],s[i]))<0)k=i;puts(s[k]);
A.BASIC B.JAVA C.C++ D.JAVAC++
【答案】B
8.以下程序的功能是,求3*3矩阵的主对角线元素之和,请选择填空。( )
main()
{int i,j,sum=0,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)sum=【 】;printf("%d",sum);getch();}
A.a[i][j] B.sum+a[i][i--]
C.sum+a[i][i++] D.sum+a[i][i]
【答案】D
9.执行以下程序段的输出结果是( )
int i,sum=0;
int b[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
for(i=0;i<4;i++)sum=sum+b[i][1];printf("%d",sum);
A.30 B.31 C.32 D.33
【答案】C
10.执行以下程序段时输入:grils<回车>,则输出结果是( )
char str[10]="12345";gets(str);
strcat(str,"def");printf("%s
",str);
A.grilsdef B.12345def C.12345grils D.abc45def
【答案】A
11.执行以下程序段后,变量k的值是( )
int k=3,a[3];a[0]=2;k=a[1]*k;
A.0 B.3 C.9 D.不定值
【答案】D
12.执行以下程序段的输出结果是( )
int i,x[10]={2,3,2,3,0,3,2,1,3,3},y[4]={0};
for(i=0;i<10;i++) y[x[i]]++;printf("%d",y[3]);
A.5 B.3 C.1 D.0
【答案】A
13.执行以下程序段的输出结果是( )
int x[5]={0},i;x[0]=1;x[1]=2;x[2]=3;
for(i=2;i<5;i++) x[i]=x[i-0]+x[i-1];
for(i=2;i<5;i++) printf("%d ",x[i]);
A.5 4 3 B.5 5 4 C.5 4 2 D.5 5 5
【答案】D
14.以下程序段的功能是( )
int a[ ]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}a[j+1]=t;}
A.对数组a进行插入排序(升序) B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序) D.对数组a进行选择排序(降序)
【答案】B
15.执行以下程序段的输出结果是( )
int a[6][6],i,j,sum=0;
for(i=1;i<6;i++)
for(j= 1;j<6;j++)a[i][j]=(i+j)/2;
for(i=1;i<6;i++)
{for(j=1;j<6;j++)sum+=a[i][j];}
printf("%2d",sum);
A.69 B.150 C.70 D.68
【答案】A
16.( )
int a[6],i;
for(i=1;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);}
A.-4 0 4 0 4 B.-4 0 4 0 3 C.-4 0 4 4 3 D.-4 0 4 4 0
【答案】C
17.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。( )
main()
{char x[ ]="programming";char y[ ]="Fortran";int i=0;
while(x[i]!='\0'&&y[i]!='\0')
if(x[i]==y[i])printf("%c",【 】);
else i++;getch();}
A. x[i++] B.y[++i] C.x[i] D.y[i]
【答案】A
18.执行以下程序段的输出结果是( )
char ch[7]={"12ab56"};int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';
printf("%d
",s);
A.1256 B.12ab56 C.15 D.1
【答案】D
19.执行以下程序段的输出结果是( )
char str[ ]="SSSWLIA",c;int k;
for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case 'I':++k;break;
case 'L':continue;
default:putchar(c);continue;}putchar('*');}
A.SSW* B.SW* C.SW*A D.SW
【答案】B
20.执行以下程序段的输出结果是( )
char a[ ]="morming",t;int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j];
puts(a);
A.mogninr B.mo C.morning D.mornin
【答案】B
21.执行以下程序段的输出结果是( )
int i,r;char s1[80]="bus",s2[80]="book";
for(i=r=0;s1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]) i++;
else {r=s1[i]-s2[i];break;}printf("%d",r);
A.1 B.3 C.4 D.6
【答案】C
22.执行以下程序段的输出结果是( )
char a[2][6]={"sum","moon"};int i,j,len[2];
for(i=0;i<2;i++)
{for(j=0;j<6;j++)
if(a[i][j]=='\0'){len[i]=j;break;}
printf("%s:%d ",a[i],len[i]);}
A.sum:3 4 B.sum3moon4
C.sum:4 moon:3 D.sum:3 moon:4
【答案】D
23.执行以下程序段的输出结果是( )
int a[ ]={-65,0,45,32,23,87,56,80,65,23,77,55};int i,so=0,sj=0;
for(i=1;i<10;i++)
{if(a[i]%2==0)so++;
else sj++;}printf("%d,%d
",so,sj);
A.4,5 B.4,8 C.3,8 D.3,9
【答案】A
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[8]={6,12,18,42,44,52,67,94};
int low=0,mid,high=7,found=0,x;
scanf("%d",&x);
while((low<=high)&&(found==0))
{mid=(low+high)/2;
if(x>a[mid]) low=mid+1;
else if(x<a[mid]) high=mid-1;
else {found=1;break;}}
if(found==1)
printf("Search Successful!The index is:%d
",mid);
else printf("Can't search !
");
getch();}
执行程序时输入:67<回车>
【答案】Search Successful!The index is:6
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[9]={0,6,12,18,42,44,52,67,94};
int x=52,i,n=9,m;
i=n/2+1;
m=n/2;
while(m!=0)
if(x<a[i])
{i=i-m/2-1;m-m/2;}
else if(x>a[i])
{i=i+m/2+1;m=m/2;}
else break;
printf("The index is:%d
",i);
getch();}
【答案】The index is:6
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4],i,j;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
a[i][j]=(i/j)*(j/i);
for(i=1;i<4;i++)
{for(j=1;j<4;j++)
printf("%2d",a[i][j]);
printf("
");}
getch();}
【答案】
1 0 0
0 1 0
0 0 1
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=117,i=0;char a[5];
do
{switch(x%16)
{case 10:a[i]='A';break;
case 11:a[i]='B';break;
case 12:a[i]='C';break;
case 13:a[i]='D';break;
case 14:a[i]='E';break;
case 15:a[i]='F';break;
default:a[i]='0'+x%16;break;}
i++;x=x/16;}
while(x!=0);
for(x=i-1;x>=0;x--)
printf("%c",a[x]);getch();}
【答案】75(进制的转换)
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i;char a[ ]="Time",b[ ]="Tom";
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
if(a[i]==b[i])
if(a[i]>='a'&&a[i]<='z')
printf("%c",a[i]-32);
else printf("%c",a[i]+32);
else printf("*");
getch();}
【答案】t*M
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{char a[2][80],t;int i,j,m,n,L,max;
for(i=0;i<=1;i++)gets(a[i]);
t=a[0][0];
for(i=0;i<=1;i++)
{L=strlen(a[i]);
for(j=0;j<=L;j++)
if(a[i][j]>t)
{max=a[i][j];m=i;n=j;}}
printf("%c %d %d
",max,m,n);
getch();}
执行程序时从键盘输入:girl<回车>boy<回车>
【答案】y 1 2
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i=0;
char a[ ]="hunan",b[ ]="gaokao",c[10];
while(a[i]!='\0' && b[i]!='\0')
{if(a[i]>=b[i])
c[i]=a[i]-32;
else c[i]=b[i]-32;++i;}
c[i]='\0';
puts(c);getch();}
【答案】HUOKN
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是使用筛选法求100以内的素数。所谓筛选法即,在一张纸上写上1~100的全部整数,然后逐个判断它们是否是素数,找出非素数,就把它挖掉,最后剩下的就是素数。程序中有三处错误,请改正。
L1 #include <math.h>
L2 #include <stdio.h>
L3 #include<conio.h>
L4 main()
L5 {int i,j,n,a[100];
L6 for(i=0;i<100;i++)
L7 a[i]=i+1;
L8 a[0]=0;
L9 for(i=1;i<sqrt(100.0);i++)
L10 for(j=i+1;j<=100;j++)
L11 {if(a[i]==0&&a[j]==0)
L12 if(a[j]%a[i]!=0)
L13 a[j]=0;}
L14 for(i=1,n=0;i<=100;i++)
L15 {if(a[i]==0)
L16 {printf("%5d",a[i]);
L17 n++;}
L18 if(n==10)
L19 {printf("
");n=0;}}
L20 printf("
");
L21 getch();}
答案:
L11 {if(a[i]!=0&&a[j]!=0)
L12 if(a[j]%a[i]==0)
L15 {if(a[i]!=0)
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是,输入一个数,按照原来排序的规律将这个数插入到已经排好序的数组中去。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[11]={2,4,6,8,10,12,14,16,18,20};
int temp1,temp2,number,end,i,j;
printf("数组a为:
");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("
");
printf("插入数据为:");
scanf("%d",&number);
if(【1】)
a[10]=number;
else {for(i=0;i<10;i++)
{if(a[i]>number)
{temp1=【2】;
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=【3】;
a[j]=temp1;
temp1=temp2;}
【4】;}}}
printf("插入数据后的数组a为:
");
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("
");
getch();}
答案:①number>a[9] ②a[i] ③a[j] ④break
33.有15个数按照由小到大顺序存放在一个数组中,输入一个数,使用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int i,number,high,low,mid,loca,flag=1,sign;
int a[15]={1,3,5,7,9,11,21,24,25,34,36,42,48,56,78};
char c;
printf("数组数据为:");
for(i=0;i<15;i++)printf("%d ",a[i]);printf("
");
while(flag)
{printf("请输入需要查找的数据:");
scanf("%d",&number);
sign=0;high=0;low=15-1;
if(【1】)loca=-1;
while((!sign)&&(high<=low))
{mid=【2】;
if(number==a[mid])
{loca=mid;
printf("%d的位置是%d
",number,loca+1);
sign=1;}
else if(【3】) low=mid-1;
else high=mid+1;}
if(【4】)
printf("未能找到%d.
",number);
printf("是否继续查找(Y/N)?");
scanf("%c",&c);
if(c=='N'||c=='n')flag=0;}
getch();}
答案:①(number<a[0])||(number>a[15-1]) ②(low+high)/2
③number<a[mid] ④!sign||loca==-1
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目四: 数组
第22卷: 数组的应用
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.执行以下程序段的输出结果是( )
int i,j=0;
char a[ ]="How are you",b[10]={0};
for(i=0;a[i];i++)
if(a[i]==' ')
b[j++]=a[i+1];
printf("%s",b);
A.Hay B.How are you C.we D.ay
2.执行以下程序段的输出结果是( )
int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
A.258 B.741 C.369 D.852
3.执行以下程序段的输出结果是( )
char s[20]="I like it.",t[20]="Are you?",c[20];int i=0;
while(s[++i]!='\0')t[i]=s[i];t[i]=0;printf("string s:%s
",s);
A.string s:I like it. B.string s: Are you?
C.string s:I like it.Are you? D. string s: Are you? I like it.
4.执行以下程序段的输出结果是( )
char s[ ]="2473",c,i;
for(i=0;c=s[i];i++)
switch(c-'0')
{case 2:case 3:putchar(c+4);continue;
case 4:putchar(c+4);break;
case 5:putchar(c+3);
default:putchar(c+2);}
A.6697 B.6789 C.7986 D.6897
5.执行以下程序段的输出结果是( )
char s[ ]="abcdef";s[3]='\0';
printf("%s",s);
A.abcd B.ab C.abc D.abcdef
6.执行以下程序段时输入:abcABC<回车>,则输出结果是( )
char s[80];int i=0;gets(s);
while(s[i]!='\0')
{if(s[i]>='a'&&s[i]<='z')
s[i]='z'+'a'-s[i];i++;}puts(s);
A.zyxABC B.abcABC C.ABCABC D.xyzABC
7.执行以下程序段的输出结果是( )
char s[3][20]={"BASIC","JAVA","C++"};int i,k=0;
for(i=1;i<3;i++)
if((strcmp(s[k],s[i]))<0)k=i;puts(s[k]);
A.BASIC B.JAVA C.C++ D.JAVAC++
8.以下程序的功能是,求3*3矩阵的主对角线元素之和,请选择填空。( )
main()
{int i,j,sum=0,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)sum=【 】;printf("%d",sum);getch();}
A.a[i][j] B.sum+a[i][i--]
C.sum+a[i][i++] D.sum+a[i][i]
9.执行以下程序段的输出结果是( )
int i,sum=0;
int b[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
for(i=0;i<4;i++)sum=sum+b[i][1];printf("%d",sum);
A.30 B.31 C.32 D.33
10.执行以下程序段时输入:grils<回车>,则输出结果是( )
char str[10]="12345";gets(str);
strcat(str,"def");printf("%s
",str);
A.grilsdef B.12345def C.12345grils D.abc45def
11.执行以下程序段后,变量k的值是( )
int k=3,a[3];a[0]=2;k=a[1]*k;
A.0 B.3 C.9 D.不定值
12.执行以下程序段的输出结果是( )
int i,x[10]={2,3,2,3,0,3,2,1,3,3},y[4]={0};
for(i=0;i<10;i++) y[x[i]]++;printf("%d",y[3]);
A.5 B.3 C.1 D.0
13.执行以下程序段的输出结果是( )
int x[5]={0},i;x[0]=1;x[1]=2;x[2]=3;
for(i=2;i<5;i++) x[i]=x[i-0]+x[i-1];
for(i=2;i<5;i++) printf("%d ",x[i]);
A.5 4 3 B.5 5 4 C.5 4 2 D.5 5 5
14.以下程序段的功能是( )
int a[ ]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}a[j+1]=t;}
A.对数组a进行插入排序(升序) B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序) D.对数组a进行选择排序(降序)
15.执行以下程序段的输出结果是( )
int a[6][6],i,j,sum=0;
for(i=1;i<6;i++)
for(j= 1;j<6;j++)a[i][j]=(i+j)/2;
for(i=1;i<6;i++)
{for(j=1;j<6;j++)sum+=a[i][j];}
printf("%2d",sum);
A.69 B.150 C.70 D.68
16.( )
int a[6],i;
for(i=1;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);}
A.-4 0 4 0 4 B.-4 0 4 0 3 C.-4 0 4 4 3 D.-4 0 4 4 0
17.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。( )
main()
{char x[ ]="programming";char y[ ]="Fortran";int i=0;
while(x[i]!='\0'&&y[i]!='\0')
if(x[i]==y[i])printf("%c",【 】);
else i++;getch();}
A. x[i++] B.y[++i] C.x[i] D.y[i]
18.执行以下程序段的输出结果是( )
char ch[7]={"12ab56"};int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';
printf("%d
",s);
A.1256 B.12ab56 C.15 D.1
19.执行以下程序段的输出结果是( )
char str[ ]="SSSWLIA",c;int k;
for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case 'I':++k;break;
case 'L':continue;
default:putchar(c);continue;}putchar('*');}
A.SSW* B.SW* C.SW*A D.SW
20.执行以下程序段的输出结果是( )
char a[ ]="morming",t;int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j];
puts(a);
A.mogninr B.mo C.morning D.mornin
21.执行以下程序段的输出结果是( )
int i,r;char s1[80]="bus",s2[80]="book";
for(i=r=0;s1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]) i++;
else {r=s1[i]-s2[i];break;}printf("%d",r);
A.1 B.3 C.4 D.6
22.执行以下程序段的输出结果是( )
char a[2][6]={"sum","moon"};int i,j,len[2];
for(i=0;i<2;i++)
{for(j=0;j<6;j++)
if(a[i][j]=='\0'){len[i]=j;break;}
printf("%s:%d ",a[i],len[i]);}
A.sum:3 4 B.sum3moon4
C.sum:4 moon:3 D.sum:3 moon:4
23.执行以下程序段的输出结果是( )
int a[ ]={-65,0,45,32,23,87,56,80,65,23,77,55};int i,so=0,sj=0;
for(i=1;i<10;i++)
{if(a[i]%2==0)so++;
else sj++;}printf("%d,%d
",so,sj);
A.4,5 B.4,8 C.3,8 D.3,9
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[8]={6,12,18,42,44,52,67,94};
int low=0,mid,high=7,found=0,x;
scanf("%d",&x);
while((low<=high)&&(found==0))
{mid=(low+high)/2;
if(x>a[mid]) low=mid+1;
else if(x<a[mid]) high=mid-1;
else {found=1;break;}}
if(found==1)
printf("Search Successful!The index is:%d
",mid);
else printf("Can't search !
");
getch();}
执行程序时输入:67<回车>
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[9]={0,6,12,18,42,44,52,67,94};
int x=52,i,n=9,m;
i=n/2+1;
m=n/2;
while(m!=0)
if(x<a[i])
{i=i-m/2-1;m-m/2;}
else if(x>a[i])
{i=i+m/2+1;m=m/2;}
else break;
printf("The index is:%d
",i);
getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4],i,j;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
a[i][j]=(i/j)*(j/i);
for(i=1;i<4;i++)
{for(j=1;j<4;j++)
printf("%2d",a[i][j]);
printf("
");}
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=117,i=0;char a[5];
do
{switch(x%16)
{case 10:a[i]='A';break;
case 11:a[i]='B';break;
case 12:a[i]='C';break;
case 13:a[i]='D';break;
case 14:a[i]='E';break;
case 15:a[i]='F';break;
default:a[i]='0'+x%16;break;}
i++;x=x/16;}
while(x!=0);
for(x=i-1;x>=0;x--)
printf("%c",a[x]);getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i;char a[ ]="Time",b[ ]="Tom";
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
if(a[i]==b[i])
if(a[i]>='a'&&a[i]<='z')
printf("%c",a[i]-32);
else printf("%c",a[i]+32);
else printf("*");
getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{char a[2][80],t;int i,j,m,n,L,max;
for(i=0;i<=1;i++)gets(a[i]);
t=a[0][0];
for(i=0;i<=1;i++)
{L=strlen(a[i]);
for(j=0;j<=L;j++)
if(a[i][j]>t)
{max=a[i][j];m=i;n=j;}}
printf("%c %d %d
",max,m,n);
getch();}
执行程序时从键盘输入:girl<回车>boy<回车>
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i=0;
char a[ ]="hunan",b[ ]="gaokao",c[10];
while(a[i]!='\0' && b[i]!='\0')
{if(a[i]>=b[i])
c[i]=a[i]-32;
else c[i]=b[i]-32;++i;}
c[i]='\0';
puts(c);getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是使用筛选法求100以内的素数。所谓筛选法即,在一张纸上写上1~100的全部整数,然后逐个判断它们是否是素数,找出非素数,就把它挖掉,最后剩下的就是素数。程序中有三处错误,请改正。
L1 #include <math.h>
L2 #include <stdio.h>
L3 #include<conio.h>
L4 main()
L5 {int i,j,n,a[100];
L6 for(i=0;i<100;i++)
L7 a[i]=i+1;
L8 a[0]=0;
L9 for(i=1;i<sqrt(100.0);i++)
L10 for(j=i+1;j<=100;j++)
L11 {if(a[i]==0&&a[j]==0)
L12 if(a[j]%a[i]!=0)
L13 a[j]=0;}
L14 for(i=1,n=0;i<=100;i++)
L15 {if(a[i]==0)
L16 {printf("%5d",a[i]);
L17 n++;}
L18 if(n==10)
L19 {printf("
");n=0;}}
L20 printf("
");
L21 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是,输入一个数,按照原来排序的规律将这个数插入到已经排好序的数组中去。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[11]={2,4,6,8,10,12,14,16,18,20};
int temp1,temp2,number,end,i,j;
printf("数组a为:
");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("
");
printf("插入数据为:");
scanf("%d",&number);
if(【1】)
a[10]=number;
else {for(i=0;i<10;i++)
{if(a[i]>number)
{temp1=【2】;
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=【3】;
a[j]=temp1;
temp1=temp2;}
【4】;}}}
printf("插入数据后的数组a为:
");
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("
");
getch();}
33.有15个数按照由小到大顺序存放在一个数组中,输入一个数,使用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int i,number,high,low,mid,loca,flag=1,sign;
int a[15]={1,3,5,7,9,11,21,24,25,34,36,42,48,56,78};
char c;
printf("数组数据为:");
for(i=0;i<15;i++)printf("%d ",a[i]);printf("
");
while(flag)
{printf("请输入需要查找的数据:");
scanf("%d",&number);
sign=0;high=0;low=15-1;
if(【1】)loca=-1;
while((!sign)&&(high<=low))
{mid=【2】;
if(number==a[mid])
{loca=mid;
printf("%d的位置是%d
",number,loca+1);
sign=1;}
else if(【3】) low=mid-1;
else high=mid+1;}
if(【4】)
printf("未能找到%d.
",number);
printf("是否继续查找(Y/N)?");
scanf("%c",&c);
if(c=='N'||c=='n')flag=0;}
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$