当前位置:首页 > c 语言题库
6.3 编程题
6.126 从键盘输入若干个整数,其值在0至4范围内,用-1作为输入结束的标志。统计每个整数的个数。 参考程序:
void main() {int i,s[5],x
printf(\ scanf(\ while(x!=-1)
{if (x>=0&&x<=4) s[x]++;} for(i=0;i<=4;i++)
printf(\}
6.127 若有说明:int a[2][3]={{1,2,3},{4,5,6}};现要将a的行和列的元素互换后存到另一个二维数组b中。请编写程序并输出a和b数组中的元素。 参考程序:
main()
{int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j; printf(\ for(i=0;i<2;i++) {for(j=0;j<3;j++) {b[j][i]=a[i][j];
printf(\ }
printf(\ }
printf(\ for(i=0;i<3;i++) {for(j=0;j<2;j++)
printf(\ printf(\ } }
6.129 通过赋初值按行顺序为一个2×3的二维数组赋予2、4、6、...等偶数,然后按列的顺序输出该数组。试编程。 参考程序:
main()
{int i,j,a[2][3]={{2,4,6},{8,10,12}}; printf(\ for(i=0;i<3;i++) {for(j=0;j<2;j++)
printf(\ printf(\ } }
6.130 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。 参考程序:
25
main()
{int a[5][5],i,j,n=1; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=n++;
printf(\ for(i=0;i<5;i++) {for(j=0;j<=i;j++)
printf(\ printf(\ } }
6.133 从键盘输入一个整数,,用折半查找法找出该数在10个有序整型数组a中的位臵。若该数不在a中,则打印出相应信息。试编程。 参考程序:
main()
{int a[10]={1,3,5,7,9,11,13,15,17,19},top,bot,mid,m; printf(\ scanf(\
top=0;bot=9; /*字符型bot=strlen(a)-1*/ while(top<=bot) {mid=(top+bot)/2; if(a[mid]==m) break;
else if(a[mid]>m) top=mid+1; else bot=mid-1; }
if(top<=bot) printf(\else printf(\}
6.134 从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中。试编程。
参考程序:
#include
{char a[80],b[80]; int i=0,j;
printf(\ gets(a);gets(b); while(a[i]) i++;
for(j=0;j<5&&b[j];j++) a[i++]=b[j]; a[i]='\\0'; puts(a); }
5.108 编写程序,从键盘输入6名学生的五门成绩,分别统计出每个学生的平均成绩。
参考程序:
26
main() {int i,j;
float s,sum,ave; for(i=0;i<6;i++) {sum=0;
for(j=1;j<=5;j++) {scanf(\ sum=sum+s; }
ave=sum/5;
printf(\ } }
5.95下面程序的运行结果是 。
#include
while(k
if(k%3==0) goto loop; } }
loop:printf(\}
参考答案:2,3
5.96 下面程序段的运行结果是 。
i=1;s=3; do{s+=i++;
if(s%7==0) continue; else ++i; }while(s<15); printf(\参考答案:8
5.99 下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。请分析程序填空。
#include
for(i=1;i<=10;i++) {scanf(\
if(a%7==0) {printf(\【1】;} }
if(【2】) printf(\}
参考答案:【1】break 【2】i>10
5.100 下面程序的功能是输出100以内个位数为6且能被3整除的所有数。请分析程序填空。
27
#include
for(i=0;【1】;i++) {j=i*10+6;
if(【2】) continue; printf(\ } }
参考答案:【1】i<=9 【2】j%3
5.57 下面程序段是从键盘输入的字符中统计数字字符的个数,当输入换行符时结束循环。请分析程序填空。
int n=0,c; c=gethar(); while(【1】) {if(【2】) n++; c=getchar(); }
参考答案:【1】c!='\\n' 【2】c>='0'&&c<='9'
5.58 下面程序的功能是用公式π2/6≈1/12+1/22+1/32+...+1/n2求π的近似值,直到最后一项的值小于10-6为止,请分析程序填空。
#include
printf(\}
参考答案:【1】double 【2】pi+1/i/i
5.59 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请分析程序填空。
#include
{int day,x1,x2; day=0;x1=1020;
while(【1】){x2=【2】;x1=x2;day++;} printf(\}
参考答案:【1】x1 【2】x1/2-2
5.60 下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。
#include
scanf(\
28
共分享92篇相关文档