下面程序的功能是将十进制整数n转换成base进制。请填空使程序完整、正确。 #include <stdio.h> int main() { int i=0,base,n,j,num[20] ; scanf("%d",n); scanf("%d",base); do { i++ ; num[i]=______________; n=n/base; } while (n!=0); for (j=i ;j>=1 ;j--) printf("%d",num[j]); return 0; }

下面程序的功能是将十进制整数n转换成base进制。请填空使程序完整、正确。 #include <stdio.h> int main() { int i=0,base,n,j,num[20] ; scanf("%d",&n); scanf("%d",&base); do { i++ ; num[i]=______________; n=n/base; } while (n!=0); for (j=i ;j>=1 ;j--) printf("%d",num[j]); return 0; }


参考答案和解析
n%base;n/base;j=i;j>=0;j--

相关考题:

●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明2.1】以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。【函数2.1】void fun1(int a[]){int i,j,k,r,x,m;for(i=2;i=n;i++){ (1) ;k=1;r=i-1;while(k=r){m=(k+r)/2;if(xa[m])r=m-1;else (2) ;}for(j=i-1;j=k;j--)a[j+1]=a[j];(3) ;}}【说明2.2】以下程序可以把从键盘上输入的十进制数(1ong型)以二~十六进制形式输出。【程序2.2】#includestdio.hmain(){char 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(″%1d″,n);printf(″enter new basc:kn″);scanf(″%d″,base);do{c[i]= (4) ;i++;n=n/base;}while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c", (5) );}}

有以下程序main(){ char *p[]={"3697","2584"};int i,j; long num=0;for(i=0;i2;i++){j=0;while(p[i][j]!='\0'){ if((p[i][j]-'0') % 2)num=10*num+p[i][j]-'0';j+=2;}}printf(" % d\n",num);}程序执行后的输出结果是A)35B)37C)39D)3975

有以下程序:main(){ char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i2;i++) {j=0;while(p[i][j]!=’\0’){ if((p[i][j]-’0’)%2= =0)num=10*num+p[i][j]-’0’; j+=2;} } printf("%d\n",num);}程序执行后的输出结果是( )。A.35 B.37C.39 D.28

请补充函数fun(),该函数的功能是把数组bb中的数按从小到大的排列(数组的值及元素个数从土函数中输入)。例如,输入2 3 5 4 1,结果为1 2 3 4 5。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()吧的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 100void fun(int bb[], int n){int i,j,t;for (i=0;【 】;i++)for(j=0;【 】;j++)if(bb[j]bb[j+1] ){t=bb[j];bb [j]=bb [j+1];bb[j+1]=t;}}main(){int i=0, n=0;int bb[N];clrscr ();printf("\nInput n: \n");scanf ("%d", n);printf ("\nInput data: \n");while (i<n){printf ("bb [%d] =", i);scanf ("%d", bb [i]);i++;}fun (bb, n);printf("\n*** the result ***\n");for (i=0; i<n; i++ )printf ( "%4d'', bb [i]);}

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <string.h>include <stdio.h>include <alloc.h>define N 10typedef struct SS{char num[10];int s;}STU;STU *fun(STU a[],int m){STU b[N],*t;int i, j,k;/*************found*************/*t=calloc(m,sizeof(STU));for(i=0;i<N;i++)b[i]=a[i];for(k=0;k<m;k++){/*************found*************/for(i=j=0;i<N;j++)if(b[i].s<b[j],s)j=i;/*************found*************/t[k].s=b[j].s;b[j].s=100;}return t;}outresult(STU a[],FILE *pf){int i;for(i=0;i<N;i++)fprintf(pf,"NO=%S Mark=%d\n",a[i].num,a[i].S);fprintf(pf,"\n\n");}main(){STU a[N]={{“A01”,77},{“A02”,85},{“A03”,96},{“A04”,65},{“A05”,75},{“A06”,96},{“A07”,76},{“A08”,63},{“A09”,69},{“A10”,78}};STU *porder;int i,m;clrscr();printf(“*****THE RESULT*****\n”);outresult(a,stdout);printf(“\nGive the number of the students who have lower score:”);scanf(“%d”,m);while(m>10){printf(“\nGive the number of the students who have lower score:”);scanf(“%d”,m);}porder=fun(a,m);printf(“*****THE RESULT*****\n”);printf(“The low:\n”);for(i=0;i<m;i++)printf(“%s %d\n”,porder[i].num,porder[i].s);free(porder);}

以下程序可把输入的十进制数以十六进制数的形式输出,请填空。main(){char b[17]={"0123456789ABCDEF"};int c[64],d,i=0,base=16;long n;printf("Enter a number:\n");scanf("%ld",n);do{c[i]=【17】;i++;n=n/base;}while(n!=0);printf("Transmite new base:\n");for(--i;i=0;--i){d=c[i];printf("%c",b【18】);}printf("\n");}

有下列程序,功能是把输入的十进制长整型数以十六进制的形式输出,完成程序#include "stdio.h"main(){char b[17]={"0123456789ABCDEF"};int c[50],d,i=0,base=16;long n;scanf("%ld",n);do{c[i]=n%base;i++;n= 【14】 ;}while(n!=0);for(--i;i=0;--i){d= 【15】 ;printf( "%c",b[d]);}printf("H\n");}

请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include <stdio.h>include <conio.h>include <stdlib.h>include <math.h>define N 20double fun(【 】,int n){int i,j;int k;double s=0.0;double f=0.0;double aver=0.0;double sd=0.0;for(i=0;i<n;i++)for(j=0;j<n;j++)s+=a[i][j];aver=【 】;for(i=0;i<n;i++)for(j=0;i<n;j++)f+=(a[i][j]-aver)*(a[i][j]-aver);f/(n*n);sd=【 】;return sd;}main(){int a[N][N];int n;int i,j;double s;clrscr();printf("***+Input the dimension ofarray N*****\n");scanf("%d",n);printf("***** The array *****\n");for(i=0;i<n;i++){for(j=0;j<n;j++){a[i][j]=rand()%50;while(a[i][j]=0)a[i][j]=rand()%60;printf("%4d",a[i][j]);}printf("\n\n");}s=fun(a,n);printf("******* THE RESULT *******\n");printf("%4.3f\n",s);}

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:include <conio.h>include <string.h>include <stdio.h>include <alloc.h>define N 10typedef struct ss{char num[10];int s;} STU;STU *fun{STU a[], int m){ STU b[N] ,*t;int i, j,k;/*************found**************/*t=calloc (m, slzeof (STU));for(i=0;i<N;i++) b[i]=a[i];for(k=0; k<m; k++){ for (i=j=0;i<N;i++)if (b[i].s>b[j].s) j=i;/*************found**************/t[k].num=b [j].num;t[k].s=b[j] s;b[j].s=0;}return t;}outresult(STU a[],FILE *pf){ int i;for (i=0; i<N; i++)fprintf(pf, "No=%s Mark-%d\n ",a [i] .num, a[i].s);fprintf(pf, "\n\n ");}main ( ){ STU a[N]={{ "A01 ",81},{ "A02 ",89},{ "A03 ",66},{ "A04 ",87},{ "A05 ",77},{ "A06 ",90},{ "A07 ",79},{ "A08 ",61},{ "A09 ",80},{ "Al0 ",71}};STU *pOrder;int i, m;clrscr ();printf ("*****THE RESULT***** \n");outresult (a, stdout);printf ("\nGive the number of the studentswho have better score: ");scanf ("%d", m);while (m>10){ printf("lnGive the number of thestudents who have better score: ");scanf ("%d", %m);pOrder=fun (a,m);printf("***** THE RESULT*****kn");printf("The top :\n");for (i=0; i<m; i++)printf("%s %d\n",pOrder[i].num,p0rder [i]. s);free (pOrder);}

下列程序的输出结果是 #include"stdio.h" #define N 3 #define M 3 void fun(int a[M][N]) { printf("%d\n",*(a[1]+2));} main() { int a[M][N]; int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j); fun(a);}A.3B.4C.5D.6

以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序;main (){char b[17]={"0123456789ABCDEF"};int c[64] ,d,i=0,base=16;long n;printf("Enter a number:\n");scanf ("%ld", n);do {/*****************found****************/c[i]=______; i++; n=n/base; }while (n!=0);printf("Transmite new base:\n");for(--i;i>=0;--i)/***************found*******************/{ d=c[i];printf("%c",b______);}printf("\n");}

下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>include <stdlib.h>fun(int n, int *a){ int i,j,p,t;for (j=0;j<n-1;j++){ P=j;/***************found*******************/for(i=j+l;i<n-1;i++)if (a[p]>a[i])/***************found*******************/t=i;if (p!=j){t=a[j];a[j]=a[p];a[p]=t;}}}putarr( iht n,int *z){int i;for (i=l;i<=n;i++,z++){ printf("%4d",*z);if (!(i%10)) printf("\n");} printf ("\n");}main (){int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;clrscr();printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);fun(n,aa);printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);}

请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>include<stdlib.h>define N 20void fun(【 】){int i j;int t;for(i=0;i<n;i++)for(j=0;j<n;j++)if(【 】)b[i]=a[i][j];for(i=0;i<n;i++){for(j=0;i<n;j++)if(【 】){t=b[i];b[i]=b[j];b[j]=t;}}}main(){int a[N][N];int b[N];int n;int i,j;clrscr();printf("*****Input the dimension of array N*****\n");scanf("%d",n);printf("*****The array *****\n");for(i=0;i<n;i++){for(j=0;i<n;j++){a[i][j]=rand()%20;while(a[i][j]==0)a[i][j]=rand()%30;printf("%4d",a[i][j]);}printf(”\n\n”);}for(i=0;i<n;i++)b[i]=0;fun(a,b,n);printf("***** THE RESULT *****\n");for(i=0;i<n;i++)printf(“%d”,b[i]);}

有下列程序: main( ) { char*P[]={"3697","2584"); int i,j;long num=0; for(i=0;i2;i++) {j=0; while(p[i][j]!=\0) {if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。A.35B.37C.39D.3975

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明2.1】以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。【函数2.1】void fun1 (int a[]){ int i,j,k,r,x,m;for(i=2;i<=n;i++){ (1);k=1;r=i-1;while(k<=r){ m=(k+r)/2;if(x<a[m])r=m-1;else (2);}for(j=i-1;j>=k;j--)a[j+l]=a[j];(3);}}【说明2.2】以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。【程序2.2】include<stdio.h>main(){ charb[16]={'0','l','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("%1d",n);printf("enter new basc:\n");scanf("%d", base);do{ c[i]=(4);i++; n=n/base;} while(n!=0);printf("transmite new base:\n");for(--i;i>=0;--i){ d=c[i];printf("%c",(5));}}

下列程序的输出结果是【 】。includeiostreamusing namespace std;class Base{public:int m,n;Base(int i,int j):m(i),n(j){}};class Derived:public Base{public:int m,k,;Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}};int main(){Derived d(1,5);coutd.md.kd.n;return 0;}

有以下程序 main() { char *p[]={"3697","2548"}; int i,j; long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果上______。A.35B.37C.39D.3975

有以下程序:include main( ) char * p[ ] = {"3697" ,"2548" }; int i,j;long num =0 有以下程序: #include <stdio.h> main( ) char * p[ ] = {"3697" ,"2548" }; int i,j; long num =0; for(i =0;i<2;i ++ ) { j =0; while(p[i][j]! ='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+ =2; } printf( "%d \n" ,num);}程序执行后的输出结果是( )。A.35B.37C.39D.3975

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

有以下程序: main() {char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') {if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0'; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。A.35B.37C.39D.3975

有下列程序: include void fun(int * s,int n1,int n2) { int i,j, 有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。A.987654321B.4321098765C.5678901234D.987651234

有下列程序: main { char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i2:i++) { j=0; while(p[i][j]!=\0) { if((p[i][j]-\0 )%2)num=1O*num+p [j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输m结果是( )。A.35B.37C.39D.3975

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[函数2.1说明]下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。[函数2.1]include <stdio.h>main(){ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int c[64],n,i=0,base;printf("Enter a number:");scaaf("%d",n);printf("Enter new base:");scanf("%d",base);do{c[i]=(1);i++;n=n/base;}while((2));printf("Transmit new base:");for(- -i;i>=0;- -i)printf("%c",(3));}[函数2.2说明]所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。[函数2.2]int fun(char *str){ int i,j,l;for(i=0;str[i]! ='\0';i++);l=i/2;for(j=0,i- -;j<=1;(4))if((5)) return 0;return 1;}

下列给定程序中,函数fun()的功能是找出100~n(n不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include<stdio.h>define N 100int fun(int *s,int n){int i,j,k,a,b,c;j=0;for(i=100;i<n;i++){/*************found***********/k=n;a=k%10;k/=10;b=k%10;c=k/10;if(a==b+c)/************found**************/s[j]=i;}return j;}main(){int a[N],n,num=0,i;do{printf("\nEnter n(<=1000):”);scanf("%d",n);}while(n>1000);num=fun(a,n);printf("\n\nThe result:\n”);for(i=0;i<num;i++)printf("%5d",a[i]);printf("\n\n");}

有以下程序:main(){ char *p[]={"3697","2584"}; int i, j; long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') { if((p[il[j] -'0')%2) num=10*num+ p[i][j] -'0'; j+=2; } printf("%d\n", num);}程序执行后的输出结果是( )。A.35B.37C.39D.3975

请补充main函数,该函数的功能是:输出一个N×N矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 10main ( ){int bb[N] [N];int i, j,n;clrscr ();printf (" \nInput n:\n");scanf ("%d", n);for (i=0; i<n; i++)for (j=0; j<n; j++){【 】;if (i==j)bb[i] [j]=【 】;if (【 】)bb[i] [j]=1;}printf(" \n***** the result ***** \n");for (i=0; i<n; i++){printf (" \n\n");for (j=0; j<n; j++)printf ("%4d",bb [i] [j] );}}

下列给定程序中,函数proc的功能是找出100~m(m 不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值 返回。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: includestdio.h define M 1000 int proc(int*S.int n) { int i,j,k,a,b,c; j=0; for(i=100;in;i++) { //****found**** k=n: a=k%10; k/=10; b=k%10; c=k/10; if(a==b+c) //****found**** s[j]=i: } return j; } void main { int a[M],m,num=0,i; do { printf("\nEnter m(=1000):"); scanf("%d",&m); } while(m1000); num=proc(a,m); printf("\n\nThe result:\n"); for(i=0;inum;i++) printf("%5d",a[i]); printf("\n\n"); }

有下列程序:main{ char*p[]={3697,2584};int i,j;long num=0;for(i=0;i2:i++){ j=0;while(p[i][j]!=\0){ if((p[i][j]-\0 )%2)num=1O*num+p[j][j]-0;j+=2;}}printf(%d\n,num);}程序执行后的输m结果是( )。A.35B.37C.39D.3975