网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

【填空题】下面函数的功能是将一个字符串转换为一个整数,例如将"1234"转换为整数1234。请填空使程序完整、正确。 int chnum(char *p) { int num = 0, k, len, j; len = strlen(p); for(; (1____); p++); { k = (2____); j = (--len); while ((3____)) k = k * 10; num = num + k; } return (num); }


参考答案和解析
A
更多 “【填空题】下面函数的功能是将一个字符串转换为一个整数,例如将"1234"转换为整数1234。请填空使程序完整、正确。 int chnum(char *p) { int num = 0, k, len, j; len = strlen(p); for(; (1____); p++); { k = (2____); j = (--len); while ((3____)) k = k * 10; num = num + k; } return (num); }” 相关考题
考题 ●试题五阅读以下程序说明和C程序,将应填入(n)处的子句,写在答卷纸的对应栏内。【程序说明】函数int commstr(char *str1,char *str2,int *sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。【程序】int strlen(char *s){char *t=s;while(*++);return t-s-1;}intcommstr(char)*str1,char *str2,int *sublen{char*s1,*s2;int count=0,len1,len2,k,j,i,p;len1=strlen(str1);len2=strlen(str2);if(len1len2){s1=str1;s2=str2;}else{len2=len1;s1=str2;s2=str1;}for(j=len2;j0;j--)/*从可能最长子串开始寻找*{for(k=0; (1) =len2;k++)/*k为子串s2的开始位置*/{for(i=0;s1[ (2) ]!='\0';i++;)/* i为子串s1的开始位置*/{/* s1的子串与s2的子串比较*/for(p=0;pj) (3) ;p++);if ( (4) )/*如果两子串相同*/{for(p=0);pj;p++}/*输出子串*/printf("%c",s2[k+p]);printf("\n");count++;/* 计数增1*/}}}if (count0)break;*sublen=(count0)? (5) :0;return count;}

考题 有以下程序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

考题 以下程序的输出结果是【18】。unsigned fun6(unsigned num){ unsigned k=1;do{k *=num;num/=10;}while (num);return k;}main(){ unsigned n=26;printf("%d\n", fun6(n));}

考题 有如下程序: include using namespace std; int strle(char a[],char b[]) {int num= 有如下程序:include <iostream>using namespace std;int strle(char a[],char b[]){int num=O,n=O;while (* (a+num) !='\0')num++;while (b [n] ){* (a+num)=b [n];num++;n++;}return(num);}int main (){char strl[80],str2[80],*p1=str1,*p2=str2;cin>>p1;cin>>p2;cout<<strle(p1,p2)<<end1;return 0;}运行上述程序,如果从键盘输入字符串qwerty和字符串abcd,则程序的输出结果是【 】。

考题 下面程序的输出结果是______。 unsigned fun(unsigned num) { unsigned k=1; do{ k*=num%10; num/=10; }while(num); return(k); } main() { unsigned n=26; printf("%d\n",fun(n)); }A.0B.4C.12D.无限次循环

考题 下面函数返回数组中最大元素的下标,数组中元素个数为t,将程序补充完整。int findmax(int s[],int t) {int k,p;for(p=0,k=p;p<t;p++) {if 【 】k=p;}return k;}

考题 请补充函数fun(),该函数的功能是:按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。例如:输入“x=112385713.456+0.909*bc”,结果为:1 =3,3=2,5=2,7=1,9=2。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>define N 1000void fun(char*tt,int num[]){int i,j;int bb[10];char *p=tt;for(i=0;i<10;i++){num[i]=0;bb[i]=0;}while (【 】){if(*p>=‘0’*p<=‘9’)【 】;p++;}for(i=1;j=0;i<10;i=i+2,j++)【 】;}main(){char str[N];int num[10],k;clrscr();printf("\nPlease enter a char string:");gets(str);printf("\n**The original string**\n");puts(str);fun(str,num);printf("\n**The number of letter**\n");for(k=0;k<5;k++){printf("\n");printf("%d=%d",2*k+1,num[k]);}printf("\n");return;}

考题 面程序执行完后k的值是【 】。void main(){unsigned num=26,k=1;do{K * = num%10;num/ = 10;{while(num);cout<<k;}

考题 下列给定程序中,函数fun()的功能是:统计字符串substr在字符串srt中出现的次数。例如,若字符串为aaas 1 kaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>fun (char *str, char *substr){int i, j, k, num=0;/*************found**************/for (i=0, str [i], i++)for (j=i, k=O; substr [k]==str [ j ]; k++, j ++ )if (substr [k+l]==' \0'){num++;break;}return num;}main ( ){ char str[80],substr[80];printf("Input a string: ");gets (str);printf("Input a sbustring: ");gets (substr);printf ("%d\n ", fun (str, substr) );

考题 阅读以下程序说明和C程序,将应填入(n)处的子句,写在对应栏内。【程序说明】函数int commstr(char * str1,char * str2,int * sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。【程序】int strlen(char * s){char *t=s;while( * ++);return t-s-1;}int commstr(char) *str1,char *str2,int *sublen{ char*s1, *s2;int count=0,len1 ,len2,k,j,i,p;len1:=strlen(str1)len2 = strlen(str2);if(len1>len2){s1=str1 ;s2=str2;}else {len2 = len1;s1 = str2;s2 = str1;}for(j=len2;j>0;j--) /*从可能最长子串开始寻找*/{for(k=0;(1)<:len2;k++) /*k为子串s2的开始位置*/{for(i=0;s1[(2)]!='\0';i++;) /*i为子串s1的开始位置*/{ /*s1的子串与s2的子串比较*/for (p=0;p<j)(3);p++);if ((4)) /*如果两子串相同*/{for(p=0);p<j;p++} /*输出子串*/printf ("%c",s2[k+p]);printf ("\n");count++;/*计数增1 */}}}if (count>0) break;*sublen=(count>0)?(5):0;return count;}

考题 下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。例如:输入352,则输出应该是38;若输入328,则输出应该是77。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>include <conio.h>long fun(long num){/*+**+*+*+*found************/long k=1;do{k+=(num%10)*(num%10);num/=10;/*********+found*+**+*+******/}while(num)return(k);}main(){long n;clrscr();printf("\Please enter a number:");scanf("%ld",n);printf("\n%ld\n",fun(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]-t\0)%2)num=10*num+p[j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。A.35B.37C.39D.3975

考题 有以下程序 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 usingnamespacestd; intmain() { intnum[2][3],*p; intt,i,j,k= 有以下程序: #include <iostream> using namespace std; int main() { int num[2][3],*p; int t,i,j,k=10; p=num[0]; for(i=0;i<2;i++) { for(j=0;j<3;j++) { k++; *p=k; for(t=2;t<*p;t++) { if(!(*p%t)) { j--; *p--; break; } *p++; } } cout<<*(p-1)<<end1; return 0; } 程序运行后的输出结果是( )。A.19B.11C.29D.23

考题 有以下程序: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

考题 有以下程序: 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

考题 运行下列程序时,若输入数据为“321”,则输出结果是( )。 main() {int num,i,j,k,s; scanf("%d",num); if(num>99) s=3; else if(num>9) s=2; else s=1; i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch(s) {case 3:printf("%d%d%d\n",k,j,i); break; case 2:printf("%d%d\n",k,j); case 1:printf("%d\n",k); } }A.123B.1,2,3C.321D.3,2,1

考题 有下列程序: 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

考题 What will be the output of the following C code?main(){int k, num= 30;k =(num 5 ? (num =10 ? 100:200): 500);printf("%d", k);}

考题 下列给定程序中,函数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");}

考题 以下程序的输出结果是unsigned fun6(unsigned num){ unsigned k=1; do{k *=num%10;num/=10;} while (num); return k;}main(){ unsigned n=26; printf("%d\n", fun6(n));}

考题 函数fun的功能是将一个数字字符串转换为一个整数,请将函数补充完整。int fun(char*str){int hum=0;while(*str){num*=10;num+=______str++;}return num;}

考题 先在窗体上添加一个命令按钮,然后编写如下程序: Function fun(ByValnum As Long)As Long Dim k As Long k=1 num=Abs(nam) Do While num k=k*(num Mod 10) num=num\10 Loop Fun=k End Function PrivateSubCommandl_ClickA.0B.100C.200D.300

考题 下面程序的输出结果是【 】。unsigned fun6(unsigned num){ unsigned k=1;do { k*=hum%10;num/=10;}while(num);return(k); }main(){ unsigned n=26;printf("%d\n",fun6(n));}

考题 下列给定程序中,函数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"); }

考题 阅读以下说明和C语言函数,将解答填入对应栏内。【说明】下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。下面给出的C程序代码中有五个错误,请指出所有的错误。【C程序代码】01 include <stdio.h>0203 int main()04 {05 long n, num;06 int i;0708 do {09 printf("请输入一个正整数:");10 scanf("%ld", n);11 }while(n <= 0);12 k = 1;13 for (i = 1; n >= 0; i++) {14 if (i % 2 = 1) {15 num= num+ (n % 10) * k;16 k = k * 10;17 }18 n = n / 10;19 }20 printf("新数据为: %d \n",num);21 return 0;22 }

考题 问答题请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。  注意:部分源程序存在文件PROG1.C文件中。  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/#include #include long fun(char *p){ int i,len;/* len为串长*/ long x=0; len=strlen(p); /*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/   return x;}void main() { char s[6]; long n; printf(Enter a tring:); gets(s); n = fun(s); printf(%ld,n);}