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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

第52套:
給定程序中,函數fun的功能是:將N×N矩陣中元素的值按列右移1個位置, 右邊被移出矩陣的元素繞回左邊。例如,N=3,有下列矩陣
1 2 3
4 5 6
7 8 9
計算結果為
3 1 2
6 4 5
9 7 8
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #define N 4 void fun(int (*t)[N]) { int i, j, x; for(i=0; i<___1___; i++) { x=t[i][___2___] ; for(j=N-1; j>=1; j--) t[i][j]=t[i][j-1]; t[i][___3___]=x; } } main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("The original array:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%2d ",t[i][j]); printf("\n"); } fun(t); printf("\nThe result is:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%2d ",t[i][j]); printf("\n"); } }

解題思路:
第一處:函數fun是對N×N矩陣進行操作,for循環的終止值為N。
第二處:把最后一列的元素值賦值給臨時變量x保存用來交換,所以應填:N-1。
第三處:第1列元素值使用x替換,由于C語言的下標是從0開始的,所以應填:0。


例如,若q的值為: 50.0,則函數值為: 49.394948。
請改正程序中的錯誤,使程序能輸出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> double fun( double q ) { int n; double s,t; n = 2; s = 2.0; while (s<=q) { t=s; s=s+(n+1)/n; n++; } printf("n=%d\n",n); return s; } main ( ) { printf("%f\n", fun(50)); }

解題思路:
第一處:如果兩個整數類型相除,結果仍為整數,所以必須轉換其中一個數的類型,所以應改為:s+=(float)(n+1)/n;。
第二處:返回結果錯誤,應改為:return t;。


編寫函數fun,它的功能是:求Fibonacci數列中大于t的最小的一個數,結果由函數返回。其中Fibonacci數列F(n)的定義為:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如:當t = 1000時,函數值為:1597。
注意: 部分源程序在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
給定源程序:

#include <math.h> #include <stdio.h> int fun( int t) { } main() /* 主函數 */ { int n; n=1000; printf("n = %d, f = %d\n",n, fun(n)); NONO(); }

解題思路:
本題是考察考生用遞推算法來求出斐波那契數列中每項的值。給出的程序就是用變量f、f0 和f1來表示遞推的過程,給變量f0和f1最初分別置數列中第1項和第2項的值0和1,然后進入循環,執行語句f=f0+f1;將所得和值存入f中,這就是數列的第3項,把f1的值移入f0中,將f的值移入f1中,為求數列的下一列作好準備;接著進入下一次循環,通過語句f=f0+f1求得數列的第4項,不斷重復以上步驟,每重復一次就依次求得數列的下一項,直至某項滿足要為止。
參考答案:

int fun( int t) { int f0 = 0, f1 = 1, f ; do { f = f0 + f1 ; f0 = f1 ; f1 = f ; } while(f < t) ; return f ; }

總結

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

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