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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、真誠為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請(qǐng)指正。試 題 二參考答案與評(píng)分標(biāo)準(zhǔn)一、單項(xiàng)選擇題:(10分,每題2分,評(píng)分標(biāo)準(zhǔn):正確得2分,錯(cuò)誤扣2分)1 以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是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));程序運(yùn)行后的輸出結(jié)果是:A)編譯出錯(cuò)B)9C)21D)9.

2、03若有以下調(diào)用語句,則不正確的fun函數(shù)的函數(shù)原型是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í)行結(jié)果是:#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í)行后的輸出結(jié)果是#include main

4、() int a33, *p, i;p = &a00;for (i=1; i9; i+)pi=i+1;printf(%dn,a12);A)3B)6C)9D)隨機(jī)數(shù)二、寫出下列程序的運(yùn)行結(jié)果。(10分,評(píng)分標(biāo)準(zhǔn):正確得2分,完全錯(cuò)誤扣2分,如果部分錯(cuò)誤,少一行或者多了一行,或者其他提示信息,則扣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);程序運(yùn)行結(jié)果是: 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); 程序的運(yùn)行結(jié)果是: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,那么當(dāng)程序輸入:a97123,程序運(yùn)行結(jié)

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);程序運(yùn)行結(jié)果是:Max=85位式運(yùn)算符是C語言作為中級(jí)語言的體現(xiàn),可以實(shí)現(xiàn)以二進(jìn)制比特位為單位的操作,其中 “&” 是“位式與運(yùn)算符”,有如下程序:#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);當(dāng)用戶輸入為15時(shí),程序運(yùn)行結(jié)果是:The result is: 4三、閱讀程序,在標(biāo)有下劃線的空白處填入適當(dāng)?shù)谋磉_(dá)式或語句,使程序完整并符合題目要求。(8分,評(píng)分標(biāo)準(zhǔn):每空1分,正確得1分,錯(cuò)誤扣1分)1.由鍵盤輸入一個(gè)班的某課程的學(xué)生成績,計(jì)算其平均分,然后輸出。(注:使用動(dòng)態(tài)數(shù)組實(shí)現(xiàn))#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. 輸入一個(gè)字符數(shù)小于100的字符串string,然后在string所保存字符串中的每個(gè)字符間加一個(gè)空格。 #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個(gè)程序中,共有16處錯(cuò)誤(包括語法錯(cuò)誤和邏輯錯(cuò)誤),請(qǐng)找出其中的錯(cuò)誤,并改正之。(30分,每找對(duì)1個(gè)錯(cuò)誤,加1分,每修改正確1個(gè)錯(cuò)誤,再加1分。只要找對(duì)15個(gè)即可,多找不加分。)1設(shè)計(jì)一個(gè)函數(shù)MaxCommonFactor(),利用歐幾里德算法,即稱輾轉(zhuǎn)相除法計(jì)算兩個(gè)正整數(shù)的最大公約數(shù)。 #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個(gè)整型數(shù)據(jù),放入數(shù)組a 中,求其最大值、最小值及其所在元素的下標(biāo)位置,并輸出。#include m

12、ain()int a10, n, max, min, maxPos, minPos;for (n=0; n10; n+)scanf(%d, &an);max = min = a0;/應(yīng)初始化為數(shù)組中的某一元素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下面的函數(shù)MyStrcmp()用于實(shí)現(xiàn)函數(shù)strcmp

13、()的功能,將兩個(gè)字符串s和t進(jìn)行比較,要求將兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼值之差作為MyStrcmp()函數(shù)的返回值。#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個(gè)整數(shù),用函數(shù)編程實(shí)現(xiàn)將其中最大數(shù)與最小數(shù)的位置對(duì)換后,再輸出調(diào)整后的數(shù)組。#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分)總的原則:每出現(xiàn)一處簡(jiǎn)單語法錯(cuò)誤就扣1分,具體評(píng)分標(biāo)準(zhǔn)見各題。1. 規(guī)定一個(gè)工人工作時(shí)間每個(gè)月160小時(shí),每小時(shí)工資為5元,如果加班的話,每小時(shí)增加4元,請(qǐng)編程計(jì)算并打印此工人一個(gè)月的工資,要求由鍵盤輸入工作時(shí)間(14分)。參考答案:/2分 包括標(biāo)識(shí)符命名、縮進(jìn)等代碼風(fēng)格#include main()int t,salary; /2分printf(Please input the time:n);scanf(%d,&t); /1分 if(t 744

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

18、14分)已知一元二次方程的求根公式為:參考答案:/2分 包括標(biāo)識(shí)符命名、縮進(jìn)等代碼風(fēng)格#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分與零比較,求絕對(duì)值各一分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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論