日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全国计算机等级考试题库二级C操作题100套(第32套)

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全国计算机等级考试题库二级C操作题100套(第32套) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第32套:
給定程序中,函數fun的功能是:在形參ss所指字符串數組中,將所有串長超過k的字符串中右邊的字符刪除,只保留左邊的k個字符。ss所指字符串數組中共有N個字符串,且串長小于M。 請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #include <string.h> #define N 5 #define M 10 void fun(char (*ss) __1__, int k) { int i=0 ; while(i< __2__) { ss[i][k]=__3__; i++; } } main() { char x[N][M]={"Create","Modify","Sort","skip","Delete"}; int i; printf("\nThe original string\n\n"); for(i=0;i<N;i++)puts(x[i]); printf("\n"); fun(x,4); printf("\nThe string after deleted :\n\n"); for(i=0; i<N; i++) puts(x[i]); printf("\n"); }

解題思路:
本題是根據給定的字符串數組中刪除串長大于某個值的右邊字符串。
第一處:函數的定義,試題中已用M作為字符串的長度,所以應填:M。
第二處:利用while循環,分別對字符串數組中的每個字符串置字符串結束符,程序中已經給定了N個字符串,所以應填:N。
第三處:置字符串結束符,所以應填:0(或’\0’)。


給定程序MODI1.C中函數fun的功能是:根據以下公式求π值,并作為函數值返回。
例如,給指定精度的變量eps輸入0.0005時,應當輸出Pi=3.140578。
π 1 1 2 1 2 3 1 2 3 4
─=1+ ─ + ─×─ + ─×─×─ + ─×─×─×─+……
2 3 3 5 3 5 7 3 5 7 9
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
給定源程序:

#include <math.h> #include <stdio.h> double fun(double eps) { double s,t; int n=1; s=0.0; t=0; while( t>eps) { s+=t; t=t * n/(2*n+1); n++; } return(s); } main() { double x; printf("\nPlease enter a precision: "); scanf("%lf",&x); printf("\neps=%lf, Pi=%lf\n\n",x,fun(x)); }

解題思路:
第一處: 初始化t的值,根據程序中的計算程序和試題的要求得出,t應為1。
第二處: 根據公式π/2得出,所以返回時應原有s的基礎上乘以2作為返回值。


假定輸入的字符串中只包含字母和號。請編寫函數fun,它的功能是:使字符串的前導號不得多于n個;若多于n個,則刪除多余的號; 若少于或等于n個,則什么也不做,字符串中間和尾部的號不刪除。函數fun中給出的語句僅供參考。例如,字符串中的內容為:ABCDEFG,若n的值為4,刪除后,
字符串中的內容應當是:ABCDEFG***;若n的值為8,則字符串中的內容仍
為:ABCDEFG。n的值在主函數中輸入。 在編寫函數時,不得使用C語言提供的字符串函數。
注意: 部分源程序在文件PROG1.C文件中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入
你編寫的若干語句。
給定源程序:

#include <stdio.h> void fun( char *a, int n ) { int i=0,j,k=0; while(a[k]=='*') k++; /* k為統計*字符個數 */ if(k>n) { i=n;j=k; /* 以下完成將下標為k至串尾的字符前移k-n個位置 */ } } main() { char s[81]; int n; printf("Enter a string:\n");gets(s); printf("Enter n : ");scanf("%d",&n); fun( s,n ); printf("The string after deleted:\n");puts(s); NONO(); }

解題思路:
本題是考察字符串的操作。
利用for循環來判斷a[j]的字符是否是字符串結束符,如果不是字符串結束符,則把a[j]
的字符依次存放到a[i]。其中,變量i是n的初始值,變量j是字符串前導的*號數。
參考答案:

void fun( char *a, int n ) { int i=0,j,k=0; while(a[k]=='*') k++; /* k為統計*字符個數 */ if(k>n) { i=n;j=k; /* 以下完成將下標為k至串尾的字符前移k-n個位置 */ for(; a[j] !=0 ; j++) a[i++]=a[j]; a[i] = 0; } }

總結

以上是生活随笔為你收集整理的全国计算机等级考试题库二级C操作题100套(第32套)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。