久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

武漢理工大學《C語言程序設計》期末考試試卷(A卷)

時間:2019-05-15 01:00:11下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《武漢理工大學《C語言程序設計》期末考試試卷(A卷)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《武漢理工大學《C語言程序設計》期末考試試卷(A卷)》。

第一篇:武漢理工大學《C語言程序設計》期末考試試卷(A卷)

武漢理工大學《C語言程序設計》期末考試試卷(A卷)(2011級各專業(yè))

一、單項選擇題(本大題共20題,每題2 分,共40分)

1、以下不是C語言的特點的是。

A、C語言簡潔、緊湊

B、能夠編制出功能復雜的程序

C、C語言可以直接對硬件進行操作

D、C語言移植性好

2、以下不正確的C語言標識符是 A、ABC B、abc C、a_bc D、ab.c

3、一個C語言程序是由。

A、一個主程序和若干子程序組成 B、函數組成 C、若干過程組成 D、若干子程序組成

4、一個算法應該具有“確定性”等5個特性,對另外4個特性的描述中錯誤的是 A、有零個或多個輸入

B、有零個或多個輸出 C、有窮性

D、可行性

5、設變量a是整型,f是實型,i是雙精度型,則表達式10+‘a’+i*f值的數據類型為 A、int B、float C、double D、不確定

6、在C語言中,char型數據在內存中的存儲形式是。A、補碼 B、反碼 C、源碼 D、ASCII碼

7、有如下程序,輸入數據:12345M678<cR>后(表示回車),x的值是。#include main(){ int x;float y;scanf(“=%f”,&x,&y);} A、12345 B、123 C、45 D、345

8、若有以下定義int a,b;float x,則正確的賦值語句是。A、a=1,b=2

B、b++;

C、a=b=5

D、b=int(x);

9、以下程序的執(zhí)行結果是。#include {

int i=10,j=10;printf(“%d,%dn”,++i,j--);

} A、11,10 B、9,10 C、11,9 D、10,9

10、巳知字母A的ASCII碼是65,以下程序的執(zhí)行結果是。#include main(){

char c1='A',c2='Y';printf(“%d,%dn”,c1,c2);A、A,Y B、65,65 C、65,90 D、65,89

11、下列運算符中優(yōu)先級最高的是。A、< B、十 C、% D、!=

12、設x、y和z是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是。A、’x’&&’y’

B、x<=y(tǒng)

C、x||y+z&&y-z

D、!((x<y)&&!z ||1)

13、判斷char型變量cl是否為小寫字母的正確表達式為。

A、’a’<=c1<=f’z’

B、(c1>=a)&&(c1<=z)C、(‘a’>=c1)(‘z’<=c1)D、(c1>=’a’)&&(c1<=’z’)

14、字符串“a”在內存中占據的字節(jié)個數為。A、0 B、1 C、2 D、3

15、下面有關for循環(huán)的正確描述是。

A、for循環(huán)只能用于循環(huán)次數已經確定的情況

B、for循環(huán)是先執(zhí)行循環(huán)體語句,后判定表達式 C、在for循環(huán)中,不能用break語句跳出循環(huán)體

D、for循環(huán)體語句中,可以包含多條語句,但要用花括號括起來

16、下面程序的運行結果是。#include main(){int num=0;while(num<=2){num++;printf(“%d ,num);

} } A、1

B、1 2

C、1 2 3

D、1 2 3 4

17、以下描述正確的是。

A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內不能使用復合語句。

B、do-while循環(huán)由do開始,用while結束,在while(表達式)后面不能寫分號。

C、在do-while循環(huán)體中,一定要有能使while后面表達式的值變成零(“假”)的操作。

D、do-while循環(huán)中,根據情況可以省略while。

18、以下對一維整形數組a的正確說明是。

A、int a(10);B、int n=10,a[n];

C、int n;D、int a[10];scanf(“%d”,&n);

int a[n];

19、以下對二維數組a的正確說明是。

A、inta[3][];B、float a(3,4);

C、double a[1][4];D、float a(3)(4);20、若二維數組a有m列,則在a[i][j]前面的元素個數為。A、j*m+i

B、i*m+j

C、i*m+j-1

D、i*m+j+1

二、填空題(本大題共10空,每空2分,共20分)

1、結構化設計中的三種基本結構是、、。

2、在C語言中的實型變量分為兩種類型,它們是 和。

3、當a=5,b=4,c=2時,表達式 a>b!= c的值是。

4、下列程序運行后的輸出結果是。

#include main(){ int i,j;for(i=4;i>=1;i--){printf(“* ”);for(j=1;j<=4-i;j++)printf(“* ”);printf(“n”);} }

5、若有定義:int a[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

6、在C語言中,二維數組元素的內存中的存放順序是。

三、程序分析題(本大題共2題,每題4分,共8分,描述程序功能并寫出程序執(zhí)行結果)

1、#include main(){int a,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;} printf(“s=%d”,s);}

2、#include main(){int a=[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)sum=sum+a[i][j];printf(“sum=%dn”,sum);}

四、編程題(本大題共4題,每題8分,共32分)

1、編寫攝氏溫度、華氏溫度轉換程序。要求:從鍵盤輸入一個攝氏溫度,屏幕就顯示對應的華氏溫度,輸出取兩位小數。轉換公式:F=(C+32)×9/5。

2、試編程判斷輸入的正整數是否既是5又是7的正倍數。若是,則輸出yes;否則輸出no。

3、判斷數m是否為素數(只能被1和它本身整除的整數)?

4、對15個數進行排序,按從小到大的順序輸出。

武漢理工大學《C語言程序設計》期末考試試卷(A卷)(2011級各專業(yè))

評分標準及標準答案

一、單項選擇題(本大題共20題,每題2 分,共40分)

1、B

2、D

3、B

4、B

5、C

6、D

7、B

8、B

9、A

10、D

11、C

12、D

13、D

14、C

15、D

16、C

17、C

18、D

19、C 20、B

二、填空題(本大題共10空,每空2分,共20分)

1、順序結構 分支結構 循環(huán)結構

2、單精度型(或:float型)雙精度型(或;double型] 3、1

4、*

* *

* * *

* * * * 5、0 6

6、按行主順序存放

三、程序分析題(本大題共2題,每題4分,共8分)

能正確表達出題目的含義、要求,即可得分,部分正確可按比例得分,否則不得分。

1、功能:求S=0+2+4+8+16+32+64+128 和。輸出結果:s=254

2、功能:出矩形陣a的主對角線上的元素之和。輸出結果:27

四、編程題(本大題共4題,每題8分,共32分)

能正確表達出題目的含義、要求,且格式正確,即可得滿分,不要求形式完全相同。部分正確可按比例得分,否則不得分。

1、#include main(){ float c,f;printf(“input c:”);…………………………………………….2分

scanf(“%f”,&c);…………………………………………….2分

f=(c+32.0)*9.0/5.0;…………………………………………….2分

printf(“F=%.2f n ”,f);…………………………………………….2分 }

2、#include main(){int x;scanf(“%d”,&x);…………………………………………….2分 if(x%5==0&&x%7==0)…………………………………………….2分 printf(“yes”);…………………………………………….2分 else printf(“no”);…………………………………………….2分 }

3、# include # include main(){int m,i,k;scanf(“%dn”,&m);k=sqrt(m);…………………………………………….2分

for(i=2;i<=k;i++)…………………………………………….2分 {if(m%i==0)break;…………………………………………….2分

} if(i>k)printf(“m is a prime number!n”);…………………………………………….2分 }

4、# include main(){int i,j,a[15],t;printf(“input 15 numbers:n”);for(i=0;i<15;i++)scanf(“%d”,&a[i]);…………………………………………….2分

for(j=0;j<15;j++)…………………………………………….2分

for(i=0;i<15-j;i++)…………………………………………….2分

if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} …………………………………………….2分 for(i=0;i<15;i++)printf(“m”,a[i]);}

第二篇:2018年 C語言程序設計A卷答案

一、選擇題答案

1、B

2、C

3、D

4、B

5、B

6、A

7、B

8、C

9、B

10、D

11、C

12、B

13、C

14、D

15、B

二、填空題答案

1、n=%dn m=%dn

2、i=5;i>=1;--i 3、1.0/(i*i)

4、x avg/n

5、{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}

三、閱讀題1、3

2、67,D

3、x=6,y=14、123

5、s=54321

6、四、程序設計題答案

1、求兩個整數中的較大者 #include int main(){ int max(int x,int y);int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%dn”,c);return 0;} int max(int x,int y){ int z;if(x>y)z=x;else z=y;return(z);}

《C語言程序設計》考試試卷(A)參考答案

第1頁

共2頁

246

2、求一維數組a中所有元素的平均值。

例如,當一維數組a中的元素為:10,4,2,7,3,12,5,34,5,9 #include void main(){ int a[10]={10,4,2,7,3,12,5,34,5,9},i;double aver,s;s = a[0];for(i=1;i<10;i++)s = s + a[i];aver = s / i;printf(“The aver is: %.2fn”, aver);} 《C語言程序設計》考試試卷(A)參考答案 第2頁

共2頁

第三篇:C語言程序設計

1.Problem A: Hello world!Description Xiao_ming有兩個哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學回家,父母分別跟他們打招呼。

Input 無

Output 請輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

HINT 請注意換行符

Append Code #include int main(){

printf(“Hello Da_min,n”);

printf(“Hello Er_min,n”);

printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圓的面積和周長 Description 從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。

Input 輸入一個浮點型數據,有效數字不會超過十進制的6位。

Output 輸出為兩行。

第一行為圓的面積,第二行為圓的周長,格式見sample。

Sample Input 3

Sample Output Area: 28.260000 Perimeter: 18.840000

HINT 了解浮點類型的輸入、輸出和算術運算符

Append Code 法一

#include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn”,s);printf(“Perimeter: %lfn”,p);} 法二

#include #define pi 3.14 int main(){

double r;

scanf(“%d”,&r);

printf(“Area: %lfn”,pi*r*r);

printf(“Perimeter: %lfn”,2*pi*r);

}

3.Problem C:平均值 Description 求3個數的平均值。

Input 輸入只有一行,為3個較小的整數。

Output 輸出為這3個整數的平均值,保留3位小數。

Sample Input 1 2 3 Sample Output 2.000

HINT 注意除法運算對整型數據和浮點型數據是不一樣的。

Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0);}

4.Problem D: 求字符的值 Description 從鍵盤輸入3個字符(不含雙字節(jié)字符),分別輸出每個字符的十進制值(ASCII碼)、八進制值和十六進制值。

Input 輸入為3個字符。

Output 輸出為3行。

每一行為每個字符(對應輸入順序)的十進制、八進制和十六進制值,用空格分隔開。每個輸出的值占3個字符,不足3個字符前面補0。

Sample Input 0 A

Sample Output 048 060 030 032 040 020 065 101 041

HINT 了解字符值的存儲和整型的關系。

Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”,a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3xn”,c,c,c);}

5.Problem A: 最簡單的程序 Description 輸出一行“Hello world!”。

Input 無

Output Hello world!

Sample Input Sample Output Hello world!

HINT Append Code #include int main(){

printf(“Hello world!”);}

6.Problem B: 算術基本運算 Description 計算兩整數x和y(0

Input 輸入只有一行,格式見sample。

Output 輸出為多行,按順序每行輸出x,y的和、差、積、商、余數、x的平方和y的三次方,格式見sample

Sample Input x = 11, y = 3

Sample Output x + y : 14 xy : %dn“,x-y);

printf(”x * y : %dn“,x*y);

printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y);

printf(”x ^ 2 : %dn“,x*x);

printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自減運算 Description C語言中有自增運算++、自減運算--,并且可以前置和后置。

編寫一個程序:對輸入的一個整數a,輸出a++、a--、++a、--a的值。

Input 一個整數a,a是很小的整數。

Output 輸出為5行,第一行為a的值,后面依次為--a、a--、a++、++a的值。

5行輸出縱向a要對齊,“:”對齊,“:”前后各一個空格,后面的數值不用對齊。每行行尾都有回車。

Sample Input 0

Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1

HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a

: %dn“,a);printf(”--a

: %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a

: %dn“,++a);}

8.Problem F: 絕對值 Description 求整型數據和浮點型數據的絕對值。

Input 輸入兩個數,第一個是整數,第二個是浮點數。

Output 輸出為兩行,第一行為整數的絕對值,第二行為浮點數的絕對值,注意浮點數的絕對值不輸出無意義的0。

Sample Input-1 1

Sample Output 1 1

HINT 求絕對值可以用標準庫函數來完成,也可以自己判斷。注意浮點數的輸出格式。求絕對值的函數在哪個頭文件?貌似很多人會搞錯,包括很多編書的人!

Append Code #include //#include int main(){

int n;

float m;

scanf(”%d%f“,&n,&m);

//n=abs(n);

//m=fabs(m);

if(n<0)

{

n=-n;

}

if(m<0)

{

m=-m;

}

printf(”%dn“,n);

printf(”%g“,m);

return 0;}

9.Problem A: 奇數還是偶數? Description 輸入一個整數,判讀它是奇數還是偶數。

Input 輸入只有一行,為一個100以內的正整數。

Output 輸出為一行。

若輸入為偶數則輸出“even”,奇數輸出“odd”。Sample Input 30

Sample Output even

HINT 用整數運算可以解決,練習“?:”表達式。

Append Code #include int main(){

int n;

scanf(”%d“,&n);

if(n>=0&&n<=100){

if(n%2==0)printf(”evenn“);

else printf(”oddn“);

}

return 0;}

10.Problem B: 簡單的打折計算 Description 商店規(guī)定:消費滿n元,可以打八八折。設某件商品標價m元,輸入購買的件數x,計算出需要支付的金額(單位:元),精確到分。

Input 輸入只有一行,三個整數m、n和x,且0

Sample Input 95 300 4

Sample Output 334.40

HINT 了解浮點型的輸出控制,注意整型和浮點型混合運算過程中的數據類型轉換。

Append Code #include int main(){

int m,x,n,a;

float b;

scanf(”%d%d%d“,&m,&n,&x);

0

x

m

a=m*x;

if(a>n)

b=0.88*a;

else

b=a;

printf(”%.2fn“,b);

}

11.Problem C: 判斷閏年 Description 輸入一個正整數的年份,判斷是否為閏年。

Input 輸入只有一行,為一個10000以內的正整數。

Output 輸出為一行。

若輸入為閏年偶數則輸出“Yes”,否則輸出“No”。

Sample Input 2010

Sample Output No

HINT 了解邏輯運算符和關系運算符。

Append Code #include int main(){

int x;

scanf(”%d“,&x);

if(x>0&&x<10000)

{

if(x%4==0&&x%100!=0)

printf(”Yesn“);

else if(x%400==0)

printf(”Yesn“);

else

printf(”Non“);

}

else

printf(”error“);}

12.Problem D: 水仙花數 Description 如果一個三位十進制數等于其各位數字的立方和,則稱這個數為水仙花數。如:13+53+33=153。

Input 一個整數x,100<=x<=999。

Output x是水仙花數,則輸出“YES”,否則為“NO”。

Sample Input 153

Sample Output YES

HINT Append Code #include int main(){

int a,b,c,x;

scanf(”%d“,&x);

a=x/100;

b=x/10%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf(”Yes“);

else

printf(”No“);}

13.Problem E: 三個數比較大小 Description 從鍵盤上輸入0~100之間的三個數,按從小到大的順序輸出。

Input 輸入只有一行,為三個整數。

Output 按從小到大輸出這三個數。

Sample Input 15 10 20

Sample Output 10 15 20

HINT 用if語句判斷各種情況可以解決這個問題。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a>=b)

{

if(b>=c)

printf(”%d %d %dn“,c,b,a);

else if(c>=a)

printf(”%d %d %dn“,b,a,c);

else

printf(”%d %d %dn“,b,c,a);

}

else

{

if(a>=c)

printf(”%d %d %dn“,c,a,b);

else if(b>=c)

printf(”%d %d %dn“,a,c,b);

else

printf(”%d %d %dn“,a,b,c);

} }

14.Problem F: 奇怪的求和之一 Description 給定3個正整數a、b和c,按照如下規(guī)則求和: 如果這個數字是偶數,則累加到和中;

如果這個數字是奇數,則將大于該數的最小偶數累加到和中。

Input 三個正整數,均在100以內。

Output 一個和。

Sample Input 2 3 5

Sample Output 12

HINT 如果不會使用分支語句,可使用條件運算符判斷到底將哪個數累積到和中。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a%2!=0)a++;

if(b%2!=0)b++;

if(c%2!=0)c++;

printf(”%dn“,a+b+c);

}

15.Problem G: 你過線了嗎? Description 經過四年的學習,你決定報考我國著名的“285”高校之一的北青大學,經過認真的復習,殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學的錄取分數線,請你編程判斷,自己過線了嗎? Input 輸入有2行,第一行有4個正整數,分別表示三門課程的分數線以及總分分數線。第二行有3個非負整數,分別表示你考的三門課程的成績。

Output 如果你的三門課程成績都不低于相應課程的分數線,且你的考試總分也不低于北青大學的總分分數線要求,則輸出“congratulations”,否則輸出“sorry”。

Sample Input 70 80 70 240 80 80 82

Sample Output congratulations

HINT 如果你不會使用分支語句,同樣可以使用條件運算符實現該程序。

Append Code #include int main(){

int a,b,c,d,e,f,g,h;

scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g);

h=e+f+g;

if(e>=a&&f>=b&&g>=c&&h>=d)

printf(”congratulations“);

else

printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入的第一行是一個整數N,后面有N對整數a和b,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的和,順序與輸入對應。

Sample Input 2 1 2 10 20

Sample Output 3 30

HINT N給出了測試樣例數,用for循環(huán)處理方便。

Append Code #include int main(){

int n,a,b,i;Scanf(“%d”,&n);For(i=0;i

17.Problem H: A+B Problem Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數a和b組成,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的值,順序與輸入對應。

Sample Input 1 2 10 20

Sample Output 3 30

HINT OJ系統(tǒng)上測試輸入結束符為EOF(End Of File),其值為-1。用scanf()把文件所有內容讀完后,會讀到EOF,所以可以用來判斷輸入是否完成,測試時可以用Ctrl+Z產生EOF。本題解法參看FAQ。Append Code #include int main(){

int a,b;

while(scanf(”%d%d“,&a,&b)!=EOF){

printf(”%dn“,a+b);

}

return 0;}

18.Problem A: 判斷是否是元音字母 Description 輸入一個英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

Input 輸入一個英文字母

Output 是元音字母,輸出“yes”,否則輸出“no”,行尾沒有回車。

Sample Input A

Sample Output yes

HINT Append Code #include void main(){

char ch;

scanf(”%c“,&ch);

if(ch>='A'&&ch<='Z')

ch=ch+32;

if(ch=='a')

printf(”yes“);

else if(ch=='e')

printf(”yes“);

else if(ch=='i')

printf(”yes“);

else if(ch=='o')

printf(”yes“);

else if(ch=='u')

printf(”yes“);

else

printf(”no“);

}

19.Problem B: 按順序輸出三個數 Description 對于輸入的3個整數,按照從小到大的順序輸出。

Input 輸入3個int類型內的整數,兩兩之間用一個空格隔開。

Output 按照從小到大的順序輸出上述三個數,兩兩之間用一個空格隔開。

Sample Input 2 1 3 Sample Output 1 2 3

HINT Append Code #include void main(){

int a,b,c,temp;

scanf(”%d%d%d“,&a,&b,&c);

if(a

{

temp=a;

a=b;

b=temp;

}

if(a

{

temp=a;

a=c;

c=temp;

}

if(b

{

temp=b;

b=c;

c=temp;

}

printf(”%d %d %dn“,c,b,a);}

20.Problem E: Description 判斷輸入整數的奇偶性。

判斷奇偶數 Input 輸入為一個整數。

Output 輸出只有一行,代表判斷結果。如果輸入的整數n是一個偶數,輸出: n is an even number.否則輸出:

n is an odd number.見樣例。

Sample Input 12

Sample Output 12 is an even number.HINT Append Code #include int main(){

int a;

scanf(”%d“,&a);

if(a%2==0)

printf(”%d is an even number.“,a);

else

printf(”%d is an odd number.“,a);}

21.Problem A: 判斷兩個整數的大小關系 Description 輸入2個整數a和b,如果a>b,則輸出1,否則輸出0。

Input 兩個整數a和b,均不超過int類型的表示范圍。

Output 表示a>b的結果:如果a>b,則輸出1,否則輸出0。

Sample Input 3 4

Sample Output 0

HINT

Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

printf(”1“);

else

printf(”0“);return 0;} 22.Problem D: 成績的等級 Description 把百分制的考試成績轉換成五級制的成績: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing

不在0~100之間的輸入是非法數據,輸出“Error”。

Input 輸入多行,每行一個整數。

Output 輸入所對應的成績等級。

Sample Input-1 81 92 35 68 72 100

Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch語句解決這個問題比較方便。

Append Code #include int main(){

int score;

while(scanf(”%d“,&score)!=EOF)

{

if(score<0||score>100)

printf(”Errorn“);

else

{

switch(score/10)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:printf(”Failingn“);break;

case 6:printf(”Passn“);break;

case 7:printf(”Averagen“);break;

case 8:printf(”Goodn“);break;

case 9:

case 10:printf(”Excellentn“);break;

}

}

}

return 0;}

23.Problem E: 輸出是m的倍數或n的倍數、但不是

m和n的公倍數的數 Description 輸出1~k之間是m的倍數或n的倍數、但不是m和n的公倍數的數,其中1<=m,n

Input 輸入三個整數,依次為k、m、n。

Output 從小到大輸出符合題意的所有整數,兩數之間用一個空格分開。

Sample Input 15 2 3

Sample Output 2 3 4 8 9 10 14 15

HINT 難點在于輸出格式的控制:空格在數的中間,學會用循環(huán)時邊界情況的特殊處理。

Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m

a=m;else

a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){

}

if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))

printf(” %d“,i);} return 0;

24.Problem B: 兩整數相加減 Description 計算a+b和a-b。

Input 輸入為一對整數a和b。a,b用空格分開。

Output 輸出a+b和a-b的計算結果,各占一行。

Sample Input 1 2

Sample Output 3-1

HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);

printf(”%dn“,a+b);

printf(”%dn“,a-b);} 25 Problem C: 它滿足條件嗎? Description 需要判斷給定的一個整數是否同時滿足如下三個條件: 1.它是一個完全平方數。2.它是一個偶數。3.它是一個正數。

注:若一個數能表示成某個自然數的平方的形式,則稱這個數為完全平方數。例如:

0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一個int范圍內的整數。

Output 如果輸入的數字滿足條件,則輸出yes,否則輸出no。

Sample Input 100

Sample Output yes

HINT 注意邏輯表達式判斷三個條件的順序。如果你不會使用分支語句,同樣可以使用條件運算符實現該程序。

庫函數sqrt()可以用于求一個數的平方根。

Append Code #include #include int main(){ int a;scanf(”%d“,&a);

if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

printf(”yes“);

else

printf(”no“);}

26.Problem F: 多路分支 Description 編寫一個完整的程序,運行時向用戶提問”你考試考了多少分?(0-100)“接受輸入后判斷其等級并顯示出來等級: 優(yōu):90<=分數<=100 良:80<=分數<90 中:60<=分數<80 差:0<=分數<60

Input 輸入任意一個整數分數值,顯示等級;再輸入任意一個整數分數值,顯示等級;....直到測試數據較充分,可輸入-1止。

Output 對任意輸入的分數值,輸出對應的等級,直到輸入的數為-1時才退出運行.Sample Input 102 100 90 80 70 60 50 0-80-1

Sample Output grad must between 0 and 100 優(yōu)

優(yōu)

grad must between 0 and 100 grad must between 0 and 100

HINT Append Code #include int main(){

int x;

while(scanf(”%d“,&x)!=EOF)

{

if(x<0||x>100)

printf(”grad must between 0 and 100n“);

else if(x>=90)

printf(”優(yōu)n“);

else if(x>=80)

printf(”良n“);

else if(x>=60)

printf(”中n“);

else if(x>=0)

printf(”差n“);

}

return 0;} Problem D: 有多少人? Description 學校舉行運動會,如果全體學生按照3人一隊列隊,則多了1個人;如果按照4人一隊列隊,則多了2個人;如果按照5人一隊排隊,則多了3個人。請問這個學校有多少學生?

Input 一個int類型的正整數N,是學生人數的上界,即:該校學生數不超過N。

Output 所有可能的學生數,每個數占一行。

Sample Input 200

Sample Output 58 118 178

HINT Append Code #include #include int main(){

int n,i;

scanf(”%d“,&n);

for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3)

printf(”%dn“,i);}

return 0;} Problem C: 正負數各有幾個? Description 輸入若干個整數,求其中正數、負數的個數。

Input 輸入分為2行:第一行是一個數字N>0,表示下面有N個整數。第2行是N個整數,都是int類型的。

Output 輸出所輸入的N個整數的正數個數和負數個數,并用空格分開2個輸出。Sample Input 10 2 3 4 5-1-2-3-4-5

Sample Output 5 5

HINT 貌似還有一種叫做0的數。

Append Code #include int main(){

int n,a,i,num1=0,num2=0;

scanf(”%d“,&n);for(i=0;i

{

scanf(”%d“,&a);

if(a>0)

num1++;

else if(a<0)

num2++;

}

printf(”%d %dn“,num1,num2);

return 0;} Problem A: A+B Problem(III): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數a和b組成,每對a和b占一行,a,b用空格分開。當測試樣為0 0時表示輸入結束,0 0不參與運算。

Output 每行輸出一個a+b的值,順序與輸入對應。

Sample Input 1 2 10 20 0 0

Sample Output 3 30

HINT 練習break的使用。

Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)

{

if(a!=0||b!=0)

}

printf(”%dn“,a+b);

else

break;

return 0;} 30 Problem B: A+B Problem(IV): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數a和b組成,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的值,順序與輸入對應。每個格式樣例之間用一個空行分隔開。

Sample Input 1 2 10 20 15 35

Sample Output 3 30 50

HINT 由于輸出的和比空行多一個,所以全部計算放在一個循環(huán)里是不行的,必須要特殊處理開頭或者結尾。

Append Code #include int main(){ int a,b,n=0;while(scanf(”%d %d“,&a,&b)!=EOF){

n++;

if(n==1)

printf(”%dn“,a+b);

else

printf(”n%dn“,a+b);

}

return 0;}

Problem C: n個數的最大值和最小值 Description 找出n個數中最大的數和最小的數,并將它們的值輸出出來。

Input 輸入為n+1個整數,都在int類型范圍內。這些數可能用若干空格或者換行符分隔開。輸入的第1個數為n,表示后續(xù)有n個數輸入。從輸入的第2個數開始,求出直到第n+1個數中最大的數和最小的數。

Output 輸出為兩行,格式見sample。

Sample Input 3 0 1-1

Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格還是回車都是空白符,對scanf(”%d“)來說沒有區(qū)別;先讀入n,然后用for循環(huán)就很容易控制讀入n個數的過程。

Append Code #include int main(){

int n,i,max,min;

scanf(”%d“,&n);

int a[n];

for(i=0;i

scanf(”%d“,&a[i]);

max=a[0];

min=a[0];

for(i=0;i

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

printf(”The maximum number is %d.n“,max);

printf(”The minimum number is %d.“,min);

return 0;} 32.Problem D: 求100以內的素數 Description 素數是只能被1和自身整除的正整數,根據數學定義1不是素數。素數也叫質數。

Input 輸入為兩個整數m和n,滿足0<=m<=n<=100。

Output 從大到小輸出m~n之間的所有素數,一個素數一行。如果m~n之間沒有素數,則不輸出任何數。

輸出的所有數在兩行“=====”之間。

Sample Input 2 12

Sample Output ===== 11 7 5 3 2 =====

HINT 利用素數的數學規(guī)律可以很容易的解出此題,題目給出的數據范圍是關鍵。

Append Code #include #include int main(){ int m,n,i,j,k,t;scanf(”%d %d“,&m,&n);printf(”=====n“);for(i=n;i>=m;i--){

t=0;

for(j=2;j<=sqrt(i);j++)

if(i%j==0)

t=1;

if(t==0&&i>1)

printf(”%dn“,i);} printf(”=====“);return 0;} 33.Problem E: 是否構成三角形? Description 給出三個整數,代表三條邊的長度,判斷這三條邊的長度是否能構成一個三角形?

Input 第一行是n(1<=n<=100),表示有n組測試數據

接下來有n行,每一行包含三個整數,表示三個邊長(1<=邊長<=100)

Output 如果三條邊能構成三角形,輸出YES,否則輸出NO

Sample Input 3 1 2 3 2 8 7 20 20 1

Sample Output NO YES YES

HINT Append Code #include int main(){ int a,b,c,n,i;scanf(”%d“,&n);for(i=0;i

{scanf(”%d%d%d“,&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

printf(”YESn“);else printf(”NOn“);}

return 0;} 34.Problem C: 簡單的整數排序 Description 對給出的若干整數按從小到大排序。

Input 輸入的第一個數為n(n<=1000),后接n個整數。

Output 按從小到大的順序輸出這些整數,每兩個整數之間用一個空格分隔開,最后一個整數后面沒有空格。

Sample Input 10 3 9 1 5 2 8 5 6 7 3

Sample Output 1 2 3 3 5 5 6 7 8 9

HINT 排序前必須把所有的整數都存儲下來。因為只有最多1000個數,1秒的時間足夠任何排序算法運行處結果來。

Append Code #include int main(){

int c,i,n,j;

int a[1000];

scanf(”%d“,&n);

for(i=0;i

scanf(”%d“,&a[i]);

for(i=1;i<=n-1;i++)

{

for(j=0;j

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

printf(”%d“,a[0]);

for(i=1;i

printf(” %d“,a[i]);

return 0;}

35.Problem A: Description

購物的路程 Saya和Kudo一起去購物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點。她們將車停在該直線最左端的店鋪處,然后從左向右開始逛每一個店鋪,然后從最右邊的店鋪再返回到停車處。你的任務是計算她們走了多少路。

Input 輸入有多組。每一組的第一行是N(0

Output 對每組輸入,輸出她們走的路長。

Sample Input 4 13 89 37 6 7 30 41 14 39 42 0

Sample Output 152 70

HINT Append Code #include int main(){

int n,i,max,min,a[100001];

while(scanf(”%d“,&n)&&n!=0)

{

scanf(”%d“,&a[0]);

min=max=a[0];

for(i=1;i

{

scanf(”%d“,&a[i]);

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

printf(”%dn“,(max-min)*2);

}

return 0;} 36.Problem B: 求累加和 Description 編程求min~max的累加和(含min和max),其中max>=min>0。部分程序已經給出,請?zhí)畛淦渲械目瞻渍Z句,并提交填充后的完整程序。

Input 輸入為多行。第一行是一個整數N>0,表示后面有N個測試用例。后面有N行,每行包含2個整數,分別是min和max。

Output 輸出為N行,每個測試用例的計算結果占據一行。每行的格式為: case i:sum=s.其中i表示測試用例的編號(從1開始),s是該測試用例對應的累加和(設不超過int的表示范圍)。

Sample Input 3 1 10 1 100 1 1

Sample Output case 1:sum=55.case 2:sum=5050.case 3:sum=1.HINT Append Code #include int main(){

int n,i,j,max,min,sum;

scanf(”%d“,&n);

for(i=0;i

{ sum=0;

scanf(”%d%d“,&min,&max);

if(max==min)

printf(”case %d:sum=%d.n“,i+1,min);

else

{

for(j=min;j<=max;j++)

sum=sum+j;

printf(”case %d:sum=%d.n“,i+1,sum);

}

} return 0;} 37.Problem G: 順序輸出字母 Description 按字母順序輸出兩個字母st和ed之間的所有字母,但不包括st和ed。不輸出逆序。

Input 兩個字母st和ed,都是大寫字母,用一個空格分開。

Output 在一行內按順序輸出st和ed之間的所有字母,但不包括st和ed。例如:

輸入為A和E,則輸出為BCD;

輸入為A和B,則什么字母也不輸出,只有一個空行; 輸入為E和A,也是什么字母也不輸出,只有一個空行。最后要輸出一行(行尾不回車): ***END***

Sample Input A C

Sample Output B

***END***

HINT Append Code #include int main(){

char st,ed,a;

int i;

scanf(”%c%c%c“,&st,&a,&ed);

{

for(i=st+1;i

printf(”%c“,i);

printf(”n***END***“);

}

return 0;} 38.Problem F: 單字母變換 Description Tom和Jack是密碼學愛好者,他們在聊天時經常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個字母之后的某個字母。現在要求你寫一個程序,將一個字母變成它之后的某個字母。

Input 輸入有2個:一個大寫字母c和一個正整數d(0

Output 輸出字母c之后的第d個字母。大小寫與c一致。如果c之后的某個字母已經超出'Z',則再從字母'A'開始計數。

如:c='A',d=3,則輸出應為:D。若:c='Y',d=3,則輸出應為:B。

Sample Input A 3

Sample Output D

HINT Append Code #include int main(){

char c;

int d;

scanf(”%c%d“,&c,&d);

if(c+d<='Z')

printf(”%c“,c+d);

else

printf(”%c“,c+d-26);

return 0;}

39.Problem B: 登錄密碼驗證 Description 編寫一個程序,模擬用戶登錄系統(tǒng)的密碼驗證過程。系統(tǒng)提供給用戶的密碼長度最長為20個字符,若密碼輸入錯誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯誤超過5次就會鎖定賬號一段時間。

Input 輸入為若干個串,至EOF結束。輸入的第一個串是用戶的正確密碼,后面的串為模擬用戶登錄時的輸入的密碼。

Output 每次輸入錯誤的密碼,輸出一個“Wrong!”,若輸入的密碼為正確的,輸出一個“Welcome!”,并結束密碼測試。若前5次輸入的密碼都是錯誤的,則后面的輸入中不管是否有正確的密碼都輸出“Out of limited!”。

Sample Input abcdefg

123456 kkkkkkkk abcdefg

Sample Output Wrong!Wrong!Welcome!

HINT 輸入可以用scanf(”%s“)處理,密碼比較用字符串的比較可以完成。

Append Code #include #include int main(){

char a[20],b[20];

int i,j=1;

scanf(”%s“,a);

while(scanf(”%s“,b)!=EOF)

{

if(j<=5)

{

if((strcmp(a,b)==0))

{

printf(”Welcome!n“);

break;

}

else

printf(”Wrong!n“);

j++;

}

else printf(”O(jiān)ut of limited!n");

} } 40.Problem C: 兔子的繁殖問題 Description 假設一對兔子每月能生一對小兔(一雌一雄),每對小兔出生后的下一個月是沒有繁殖能力的,至出生后的第三個月開始又可以每月生一隊小兔,問從一對剛出生的小兔開始,經過若干個月后一共有多少兔子(假設在此過程中兔子沒有死亡)?

這個問題是意大利數學家菲波那契(Fibonacci)在他1202年出版的《算盤全書》中提出來的,從第一對剛出生的小兔開始每月的兔子數被乘坐菲波那契序列。

Input 輸入的第一個數為n,接下來有n個數字。每個數字為一個月份m(m<=45)。

Output 輸出為n行,每行為第m個月后的兔子總數。

第四篇:C 語言程序設計

《C 語言程序設計》主要在計算機軟件、計算機網絡、計算機應用、通信技術、智能電子、電子信息工程、多媒體以及核工程與核技術等專業(yè)中開設,是電子信息類、機械類等工科專業(yè)的重要專業(yè)基礎課。

本校從2001至今,每年都開設《C語言程序設計》課程,由于,我校最開始時的特殊情況,主要把重點放在C語言中的各類重點、難點的語法、語義上,使得學生經過比較復雜和痛苦的過程后,對C語言在使用上很難做到自己編寫程序。而且很多學生產生了畏懼心理。

2004年,學院成立計算機科學與技術系,為了更好學習和掌握C語言,計算機科學與技術專業(yè)和計算機維護專業(yè)(計算機應用技術前身)除了開設《C語言程序設計》課程外,在后續(xù)一學期還開設了《C語言程序設計課程設計》,使得計算機專業(yè)學生編程思想和能力得到了極大提高。

2005年,為了讓我院工科學生更好的掌握C語言編程以及通過四川省計算機二級考試,在《C語言程序設計》課程后設置《C語言程序設計課程設計》,極大地提高了學生的動手機會和能力,過級率顯著提高!

2007年,依托我校建設精品課程的契機,我們將C語言中的各個知識點進行重新規(guī)整,提出適用于三本院校學生的語言設計學習的方法。我們提出,先了解C語言,再學習C語言,再用C語言的思想。即在開始時讓學生初步知道C語言,然后引入比較簡單的運算符以及基本輸入、輸出和簡單的順序結構程序設計。通過這樣的方式,我們發(fā)現,學生在C語言的學習就不會從開始的時候陷入大量難懂的語法、語義和數據結構中。有了以上鋪墊再層層進入,最終進入復雜的各類數據結構以及指針等學習。通過以上的內容規(guī)整后,教學效果有明顯提高。

第五篇:《C語言程序設計》期末考試試卷以及答案提示

一、單項選擇題(本大題共20題,每題2 分,共40分)

1、以下不是C語言的特點的是 B。A、C語言簡潔、緊湊

B、能夠編制出功能復雜的程序(任何程序都可以,不算特點)C、C語言可以直接對硬件進行操作 D、C語言移植性好

2、以下不正確的C語言標識符是 D

A、ABC B、abc C、a_bc D、ab.c(只能是字母,下劃線,數字;另外數字不可開頭)

3、一個C語言程序是由 B。A、一個主程序和若干子程序組成 B、函數組成 C、若干過程組成 D、若干子程序組成

4、一個算法應該具有“確定性”等5個特性,對另外4個特性的描述中錯誤的是 B A、有零個或多個輸入

B、有零個或多個輸出(有一個或多個輸出)C、有窮性

D、可行性

5、設變數a是整型,f是實型,i是雙精度型,則表達式10+?a?+i*f值的數據類型為 C A、int B、float C、double D、不確定(低類型要轉換為高類型)

6、在C語言中,char型數據在內存中的存儲形式是 D。A、補碼 B、反碼 C、源碼 D、ASCII碼

7、有如下程序,輸入數據:12345M678<cR>后(表示回車),x的值是 B。#include main(){ int x;float y;scanf(“%3d%f”,&x,&y);} A、12345 B、123 C、45 D、345(由scanf語句可知取三位數值給X)

8、若有以下定義int a,b;float x,則正確的賦值語句是 B。A、a=1,b=2(少了分號)B、b++;C、a=b=5(句末少了分號)D、b=int(x);(右側要是確切的值)

9、以下程序的執(zhí)行結果是 A。#include { int i=10,j=10;printf(“%d,%dn”,++i,j--);} A、11,10 B、9,10 C、11,9 D、10,9(i是先加一再使用,j是先使用再減一)

10、巳知字母A的ASCII碼是65,以下程序的執(zhí)行結果是 D。#include main(){ char c1='A',c2='Y';printf(“%d,%dn”,c1,c2);A、A,Y B、65,65 C、65,90 D、65,89(輸出ASCII代碼)

11、下列運算符中優(yōu)先級最高的是 C。

A、< B、十 C、% D、!=(算術,關系,邏輯,賦值)

12、設x、y和z是int型變數,且x=3,y=4,z=5,則下面表達式中值為0的是A、?x?&&?y? B、x<=y(tǒng) C、x||y+z&&y-z D、!((x<y)&&!z ||1)

算術,關系,邏輯,賦值

13、判斷char型變量cl是否為小寫字母的正確表達式為 D。A、?a?<=c1<=f?z? B、(c1>=a)&&(c1<=z)C、(?a?>=c1)(?z?<=c1)D、(c1>=?a?)&&(c1<=?z?)

14、字符串“a”在內存中占據的字節(jié)個數為 C。

A、0 B、1 C、2 D、3(字符串末尾默認還有一個結束字符?

主站蜘蛛池模板: 亚洲欭美日韩颜射在线| 国产成人精品综合久久久| 免费1级做爰片1000部视频| 欧美综合区自拍亚洲综合绿色| 看全色黄大色黄大片 视频| 亚洲色婷婷久久精品av蜜桃| 成年男女免费视频网站| 久久久久国产精品人妻aⅴ果冻| 精品一区二区ww| 亚洲国产精品久久精品| 99国产成人综合久久精品| 亚洲精品久久久久中文字幕一区| 无码国产精品一区二区免费vr| 麻豆人妻无码性色av专区| 国产精品亚洲二区在线看| 亚洲欧美国产另类视频| 国产精品99久久久久久宅男小说| 精品一区二区久久久久久久网站| 亚洲精品乱码久久久久久| 亚洲色成人网站永久| 成人无码影片精品久久久| 精品无码一区在线观看| 日木av无码专区亚洲av毛片| 亚洲欧美激情在线一区| 久久久久国产一区二区| 亚洲精品日本一区二区三区| 亚洲国产精品无码aaa片| 无码色av一二区在线播放| 亚洲午夜精品久久久久久浪潮| 国自产拍偷拍精品啪啪一区二区| 国内少妇高潮嗷嗷叫在线播放| 亚洲区小说区图片区qvod| 隔壁老王国产在线精品| 欧美成人在线视频| 久久老子午夜精品无码| 韩国无码色视频在线观看| 一本久久a久久精品vr综合| av大帝| 国产精品国产高清国产av| 亚洲日本欧美日韩高观看| 老少配老妇老熟女中文普通话|