套題2C語言程序設計答案_第1頁
套題2C語言程序設計答案_第2頁
套題2C語言程序設計答案_第3頁
套題2C語言程序設計答案_第4頁
套題2C語言程序設計答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、真誠為您提供優(yōu)質參考資料,若有不當之處,請指正。試 題 二參考答案與評分標準一、單項選擇題:(10分,每題2分,評分標準:正確得2分,錯誤扣2分)1 以下不能對二維數組a進行正確初始化的語句是A)int a23=0;B)int a3=1,2,0;C)int a23=1,2,3,4,5,6;D)int a3=1,2,3,4,5,6;2有以下程序片斷float fun(int x,int y) return(x+y);main() int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),a-c));程序運行后的輸出結果是:A)編譯出錯B)9C)21D)9.

2、03若有以下調用語句,則不正確的fun函數的函數原型是main() int a50,n;fun(n, &a9);A)void fun(int m, int x);B)void fun(int s, int h41);C)void fun(int p, int *s);D)void fun(int n, int a);4下面程序片段的執(zhí)行結果是:#define MAX 10int aMAX, i;main( )printf(n); sub1( ); sub3(a); sub2( ); sub3(a);sub2( )int aMAX, i, max=5; for(i=0; imax; i+) ai

3、=i;sub1( )for(i=0; iMAX; i+) ai=i+i;sub3(int a )int i; for(i=0; iMAX; i+)printf(%d,ai); printf(n);A) 0 2 4 6 8 10 12 14 16 18 0 1 2 3 4 10 12 14 16 18B) 0 1 2 3 4 0 2 4 6 8 10 12 14 16 18C) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4D) 0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 185. 下列程序執(zhí)行后的輸出結果是#include main

4、() int a33, *p, i;p = &a00;for (i=1; i9; i+)pi=i+1;printf(%dn,a12);A)3B)6C)9D)隨機數二、寫出下列程序的運行結果。(10分,評分標準:正確得2分,完全錯誤扣2分,如果部分錯誤,少一行或者多了一行,或者其他提示信息,則扣1分)1main()int i,j,x =0;for(i=0;i2;i+)X+;for(j=0;j3;j+)if(j%2) continue;X+;X+;printf(x=%dn,x);程序運行結果是: x=82#include struct STU char num10; float score3; ;

5、 main()struct STU s3=20021,90,95,85, 20022,95,80,75, 20023,100,95,90, *p=s; int i; float sum = 0; for (i=0; iscorei; printf(%6.2fn,sum); 程序的運行結果是:270.003#include main( ) char s100; char c, i; scanf(%c, &c); scanf(%d, &i); scanf(%s, s); printf(%d,%c,%sn, c, i, s);已知字符a的ASCII碼值為97,那么當程序輸入:a97123,程序運行結

6、果是:97 a 1234#include int a=13, b=8;int max(int a, int b)int c; c=ab?a: b; return(c);main( )int a=5; printf(Max=%dn, max(a, b);程序運行結果是:Max=85位式運算符是C語言作為中級語言的體現,可以實現以二進制比特位為單位的操作,其中 “&” 是“位式與運算符”,有如下程序:#include int func(unsigned int x)int i, mask = 1, total = 0;for (i=1; i=16; i+)if (x & mask) = mask)

7、total+;mask = mask *2;return total;main()unsigned int input;printf(please input an number: );scanf(%u,&input);printf(The result is :%dn,func(input);當用戶輸入為15時,程序運行結果是:The result is: 4三、閱讀程序,在標有下劃線的空白處填入適當的表達式或語句,使程序完整并符合題目要求。(8分,評分標準:每空1分,正確得1分,錯誤扣1分)1.由鍵盤輸入一個班的某課程的學生成績,計算其平均分,然后輸出。(注:使用動態(tài)數組實現)#inclu

8、de #include main()int *p=NULL,n,i,sum;printf(please enter array size: );scanf(%d, &n ); p=(int *)malloc(n* sizeof(int); if (p=NULL)printf(no enough memory!n);exit(0);/或者 return ;printf(please enter the score: );for(i=0;in;i+)scanf(%d,p+i); sum=0 ; for(i=0;in;i+) sum=sum+*(p+i) ; printf(aver=%dn,sum/

9、n);free(p); 2. 輸入一個字符數小于100的字符串string,然后在string所保存字符串中的每個字符間加一個空格。 #include#define MAX 100void CopyString(char c,char s);void Insert(char s);main()char stringMAX;scanf(%s,string);Insert(string);printf(%s,string);void CopyString(char c, char s)int i;for (i=0; si!=0; i+)ci = si;ci = 0;void Insert(char

10、 srcStr)char strTempMAX;int i = 0, j = 0;CopyString(strTemp, srcStr);while (strTempj != 0)srcStri = strTempj;i+;j+;srcStri = ; i+;srcStri = 0;四、在下面給出的4個程序中,共有16處錯誤(包括語法錯誤和邏輯錯誤),請找出其中的錯誤,并改正之。(30分,每找對1個錯誤,加1分,每修改正確1個錯誤,再加1分。只要找對15個即可,多找不加分。)1設計一個函數MaxCommonFactor(),利用歐幾里德算法,即稱輾轉相除法計算兩個正整數的最大公約數。 #inc

11、lude int MaxCommonFactor(int a, int b);main()int a, b, x;printf(Input a,b:);scanf(%d,%d,&a,&b);x = MaxCommonFactor(a,b);printf(MaxCommonFactor = %dn, x);int MaxCommonFactor(int a, int b) ; int r;dor = a % b;a = b;b = r;while (r != 0);return a;2從鍵盤輸入10個整型數據,放入數組a 中,求其最大值、最小值及其所在元素的下標位置,并輸出。#include m

12、ain()int a10, n, max, min, maxPos, minPos;for (n=0; n10; n+)scanf(%d, &an);max = min = a0;/應初始化為數組中的某一元素maxPos = minPos = 0;for (n=1; n max) max = an; maxPos = n; else if (an min) min = an;minPos = n;printf(max=%d, pos=%dn,max, maxPos);printf(min=%d, pos=%dn,min, minPos);3下面的函數MyStrcmp()用于實現函數strcmp

13、()的功能,將兩個字符串s和t進行比較,要求將兩個字符串中第一個不相同字符的ASCII碼值之差作為MyStrcmp()函數的返回值。#include int MyStrcmp(char s, char t);main()char str120,str220;printf(Input string:);gets(str1);printf(Input another string:);gets(str2);if (MyStrcmp(str1,str2) 0) printf(str1str2n);else if (MyStrcmp(str1,str2) 0) printf(str1str2n);el

14、se printf(str1=str2n);int MyStrcmp(char s, char t) int i;for (i=0; si = ti; i+) if (si = 0 ) return 0 ;return (si - ti);4從鍵盤任意輸入10個整數,用函數編程實現將其中最大數與最小數的位置對換后,再輸出調整后的數組。#include #define ARRSIZE 10 /去掉末尾的; void MaxMinExchang(int a, int n)int maxValue=a0, minValue=a0, maxPos=0, minPos=0;int i, temp;for

15、 (i=1; i maxValue)maxValue = ai; maxPos = i; else if (ai minValue)minValue = ai; minPos = i; temp = amaxPos;amaxPos = aminPos;aminPos = temp;main()int aARRSIZE, i, n;printf(Input n(n=10):);scanf(%d, &n) ;printf(Input %d Numbers:n, n); for (i=0; in; i+) scanf(%d, &ai); MaxMinExchang(a, n);printf(Afte

16、r MaxMinExchange:n);for (i=0; in; i+) printf(%4d, ai);printf(n) ;五、編程(42分)總的原則:每出現一處簡單語法錯誤就扣1分,具體評分標準見各題。1. 規(guī)定一個工人工作時間每個月160小時,每小時工資為5元,如果加班的話,每小時增加4元,請編程計算并打印此工人一個月的工資,要求由鍵盤輸入工作時間(14分)。參考答案:/2分 包括標識符命名、縮進等代碼風格#include main()int t,salary; /2分printf(Please input the time:n);scanf(%d,&t); /1分 if(t 744

17、) /1分一個月超過31天每天24小時,考慮到最大最小范圍判斷,而且合理即可printf(Error, The time you entered is beyondscope!n);return;if(t=160)/2分 if else結構正確salary=t*5;/2分elsesalary=160*5+(t-160)*9; /2分printf(The salary is:%dn,salary); /2分2.編程計算并打印一元二次方程ax2+bx+c = 0的根,a、b、c由鍵盤輸入,其中a不等于0。要求考慮一元二次方程根的所有情況(無根,有兩個相等實數根,有兩個不等實數根,有兩個虛數根)。(

18、14分)已知一元二次方程的求根公式為:參考答案:/2分 包括標識符命名、縮進等代碼風格#include #include #include /1分#define EPS 1e-6/1分main()float a,b,c, disc,p,q;/1分變量定義與輸入printf(Please enter a,b,c);scanf(%f,%f,%f,&a,&b,&c); if(fabs(a) = EPS) /1分與零比較,求絕對值各一分printf(It is not a quadratic equation!n);exit(0); /1分disc = b*b -4 * a* c; /1分if(fabs(disc) EPS)/2分 printf(Two unequal real roots: x1=%6.2f, x2=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論