二、填空题
1.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
#include
#include
main( )
{char a[ ]="clanguage", t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j
if( a[j]>a[i] )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}
2.若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while(s[i]){ d[j]= s[i++] ;j++;}
d[j]=0;
3.下列程序段的输出结果是 Hello 。
main( )
{ char b[]="Hello,you";
b[5]=0;
printf("%s\n",
B);
}
4.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 a=1234b=5 。
char a[10], b;
scanf(“a=%s b=%c”, a, &
B);
5.以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制数的形式输出,请填空。
main( )
{int b[16]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’, ‘C’,‘D’, ‘E’, ‘F’};
int c[64], d, i=0, base;
long n;
printf(“Enter a number:\n”); scanf(“%ld”,&n);
printf(“Enter new base:\n”); scanf(“%d”,&base);
do
{c[i]= n%base ;
i++;
n=n/base; 来源:考试大
}while(n!=0);
printf(“Transmite new base:\n”);
for(--i;i>=0;--i)
{d=c[i];
printf("%c", [ d] );
}
}
6.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中的第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。请填空。
main( )
{char str1[100], str2[100], c;
int i, s;
printf(“\n Input string 1:\n”); gets(str1);
printf(“\n Input string 2:\n”); gets(str2);
i=0;
while((str1[i]= =str2[i])&&(str1[i]!= ' \0 ' ))
i++;
s= str1[i]-str2[i] ;
printf("%d\n", s);
}
7.以下语句的输出结果是 2 。
printf(“%d\n”,strlen(“\t\”\085\xff\n”));
8.对数组中的元素值进行排序:
main( )
{int a[]={2,4,15,3,17,5,8,23,9,7,11,13}, i, j, k;
for(k=0;k<12;k++)
for(i=k;i<12;i++)
if(a[i]> a[k] )
{j=a[i];
a[i]= a[k] ;
a[k] =j;
}
for(i=0;i<12;i++)
printf(“%4d”, a[i]);
}
9.由25人围坐成圆圈,先从任意一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1、2、3、……),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include
Void main( )
{int a[26], j, n, count;
for(j=1;j<=25;j++) a[j]=j;
j=1;count=0;n= 0 ;
do
{if(a[j]!=0) 考试大(www.Examda。com)
{n++;
if(n%5= =0)
{ a[j]=0 ;
if(count= =24) printf(“%d\n”, j);
count++;
}
}
j++;
if(j>25) j=1;
}
while( count<25 );
}
10.阅读下列程序:
main( )
{int i, j, row, column, m;
int array[3][3]={{100, 200, 300}, {28, 72, -30}, {-850, 2, 6}};
m=array[0][0];
for(i=0; i<3; i++)
for(j=0; j<3; j++)
if(array[i][j]
{m=array[i][j]; row=i; column=j;}
printf("%d, %d, %d\n", m, row,column);
}
上述程序的输出结果是 -850,2,0 。
11.以下程序的功能是:从键盘上输入若干个学生的成绩,计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main( )
{float x[1000], sum=0.0, ave, a;
int i, n=0;
printf(“Enter mark:\n”); scanf(“%f”, &a);
while(a>=0.0&&n<1000)
{sum+= a ; x[n]= a ; n++; scanf(“%f”, &a);}
ave= sum/n ;
printf(“Output:\n”);
printf(“ave=%f\n”, ave);
for(i=0;i
if( ave>a[i] ) printf(“%f\n”, x[i]);
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |