### C语言-1 ```c /*--------------------------------------------------------- 【程序设计】程序将由数字字符组成的字符串转换为10进制实数, 例如将"123.4567"转换为123.45670。 输出如下: 123.45670 0.12345 4567.00000 ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在 Program-End之间填入若干语句。不要删除标志否则不得分。 ---------------------------------------------------------*/ #include #include double conver(char s[]){ int I,i,poi; double F,p; F=I=i=poi=0; p=0.1; /**********Program**********/ while(s[i] != '.'){ I*=10; I+=s[i]-48; i++; } i++; while(s[i] != '\0'){ F+=(s[i]-48)*p; p*=0.1; i++; } /********** End **********/ return I+F; } int main() { char d[3][15]={"123.4567","0.12345","4567.0"}; int i; for(i=0;i<3;i++) printf("%12.5f\n",conver(d[i])); return 0; } ``` ### C语言-2 ```c /* ------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 打印以下图案: ***** ***** ***** ***** ***** */ #include void main() { int i =0 , j =0 , k=0; /**********Program**********/ for(i=0;i<5;i++){ for(j=0;j #include main() { float a,b,c,s,l; scanf("%f,%f,%f",&a , &b , &c); if(a+b #include main() { int i,j,k; for(i=-3;i<=3;i++) { /**********Program**********/ for(j=0;j #include /**********Program**********/ int fun(int *a, int n){ int min = a[0], i; for(i=1;i a[i]){ min = a[i]; } } return min; } /********** End **********/ main() { int a[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); min=fun(a,10); printf("min=%d\n",min); } ``` ### C语言-6 ```c /*------------------------------------------------------------------------------ 【程序设计】编写函数rtrim,用来删除字符串尾部的空格,首部和中间的空格不删除。例如:字符串为:" A BC DEF ", 删除后的结果是" A BC DEF"。要求函数形参采用指针变量。 测试输入: A BC DEF 测试输出: A BC DEF 说明:测试输入中,A前有4个空格,F后有5个空格 ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,否则不得分。 仅在Program-End之间填入若干语句。不要删除标志否则不得分。 ------------------------------------------------------------------------------*/ #include #include void main() { void rtrim(char *p); char s[100]; gets(s); rtrim(s); puts(s); } void rtrim(char *p) { int i; /**********Program**********/ while(*p != '\0'){ p++; } p--;//定位到结束符前的位置 while(*p==' '){//如果当前指针位置是空格则指针向前移 p--; } p++;//移动当前位置后一个空格位 *p='\0'; /********** End **********/ } ``` ### C语言-7 ```c /*------------------------------------------------------------------------------ 【程序设计】输入字符串(不包含空格),将字符串按字符从小到大排序,然后输出字符串中除去ASCII码值能被3整除的字符。 输入输出如下: hello world 处理后的字符串为: dehw ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,否则不得分。 仅在Program-End之间填入若干语句。不要删除标志否则不得分。 ------------------------------------------------------------------------------*/ #include #include void main() { char str[100]; int n,i,j,t; gets(str); n=strlen(str); for(i=0;istr[j+1]) { t=str[j];str[j]=str[j+1];str[j+1]=t; } } printf("处理后的字符串为:"); /**********Program**********/ j=0; for(i=0;i int getsum(int m) { int i,s=0; /**********Program**********/ while(m){ s+=m%10; m/=10; } return s; /********** End **********/ } int main() { int n,sum; scanf("%d",&n); sum=getsum(n); printf("结果是%d\n",sum); } ``` ### C语言-9 ```c /*------------------------------------------------------------------------------ 【程序设计】有两个降序排列的集合A和B,A中无重复元素,B中也无重复元素, 求集合B-A的差集(即:这些元素属于集合B但不属于集合A),存放于数组c中,并输出。 输入输出如下: 请输入3个整数: 3 2 1 请输入5个整数: 9 6 5 3 2 结果为: 9 6 5 ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,否则不得分。 仅在Program-End之间填入若干语句。不要删除标志否则不得分。 ------------------------------------------------------------------------------*/ #include void main() { int a[3],b[5],c[5]; int t=0,i,j=0; printf("请输入3个整数:\n"); for(i=0;i<3;i++){ scanf("%d",&a[i]); } printf("请输入5个整数:\n"); for(i=0;i<5;i++){ scanf("%d",&b[i]); } i=0; /**********Program**********/ while(i<3 && j<5){ if(a[i] < b[j]){ c[t++]=b[j++]; }else if(a[i] > b[j]){ i++; }else{ i++; j++; } } /********** End **********/ while(j<5){ c[t++]=b[j++]; } printf("结果为:\n"); for(i=0;i #include void main() { char a[100],b[100]; int l,i,j; gets(a); l=strlen(a); j=0; /**********Program**********/ for(i=0;i '9' || a[i] < '0'){ b[j++] = a[i]; } } /********** End **********/ b[j]='\0'; printf("去掉数字后的字符串为:"); puts(b); } ```