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

華中科技大學C語言期末考試題庫試題及答案匯總

時間:2019-05-11 23:51:12下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《華中科技大學C語言期末考試題庫試題及答案匯總》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《華中科技大學C語言期末考試題庫試題及答案匯總》。

第一篇:華中科技大學C語言期末考試題庫試題及答案匯總

華中科技大學C語言期末考試題庫試題及答案匯總

1.設int a=12,則執行完語句a+=a-=a*a后,a的值是__D____。A、552 B、264 C、144 D、-264 知識點:算術表達式

2.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數字式子x/(y*z)的C語言表達式是___A___。

A、x/y*z B、x*(1/(y*z))C、x/y*1/z D、x/y/z 知識點:算術表達式

3.若有定義:int a=8,b=5,c;,執行語句c=a/b+0.4;后,c的值是__B____。A、1.4 B、1 C、2.0 D、2 知識點:算術表達式 4.有如下程序 main(){ int a;char c=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(“%d %d %3.1f%3.1fn”,a,c,f,x);} 程序運行后輸出結果是___B___。

A、1 65 1 6.5B、1 65 1.5 6.5C、1 65 1.0 6.5D、2 65 1.5 6.5 知識點:賦值表達式

5.若變量a、i已正確定義,且i已正確賦值,合法的語句是___B___。A、a==1 B、++i;C、a=a++=5;D、a=int(i);知識點:賦值表達式

6.若變量已正確定義并賦值,下面符合C語言語法的表達式是__B____。A、a:=b+1 B、a=b=c+2C、int 18.5%3 D、a=a+7=c+b 知識點:賦值表達式

7.設變量x為float型且已賦值,則以下語句中能將x中的數值保留到小數點后兩位,并將第三位四舍五入的是__C____。

A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0 C、x=(int)(x*100+0.5)/100.0???D、x=(x/100+0.5)*100.0 知識點:賦值表達式

8.在一個C程序中___B___。

A、main函數必須出現在所有函數之前B、main函數可以在任何地方出現 C、main函數必須出現在所有函數之后D、main函數必須出現在固定位置 知識點:簡單C語言程序的構成和格式 9.以下說法中正確的是__D____。

A、#define和printf都是C語句B、#define是C語句,而printf不是 C、printf是C語句,但#define不是D、#define和printf都不是C語句 知識點:簡單C語言程序的構成和格式 10.若k是int型變量,且有下面的程序片段 k=-3 if(k<=0)printf(“####”)else printf(“&&&&”);上面程序片段的輸出結果是___D___。

A、#### B、&&&&C、####&&&&D、有語法錯誤,無輸出結果 知識點:簡單C語言程序的構成和格式

11.以下4個選項中,不能看作一條語句的是___D___。

A、{;} B、a=0,b=0,c=0;C、if(a>0);D、if(b==0)m=1;n=2;??? 知識點:簡單C語言程序的構成和格式 12. 有以下程序 main(){ int a=0,b=0;a=10;/* 給a賦值 */ b=20;/* 給b賦值 */ printf(“a+b=%dn”,a+b);} 程序運行后的輸出結果是___B___。A、a+b=10 B、a+b=30 C、30 D、出錯 知識點:簡單C語言程序的構成和格式

13.以下選項中,不能作為合法常量的是__B____。A、1.234e04 B、1.234e0.4C、1.234e+4 D、1.234e0 知識點:實型數據

14.以下符合C語言語法的實型常量是___C___。A、1.2E0.5 B、3.14159E C、.5E-3 D、E15 知識點:實型數據

15.表達式3.6-5/2+1.2+5%2的值是__D____。A、4.3 B、4.8 C、3.3 D、3.8 知識點:算術表達式

16.下列定義變量的語句中錯誤的是__D____。A、int _int B、double int_C、char For D、float US$ 知識點:常量、變量和標識符

17.以下不合法的用戶標識符是__C____。A、j2_KEY B、DoubleC、4d D、_8_ 知識點:常量、變量和標識符

18.以下4組用戶定義標識符中,全部合法的一組是__A____。A、_main enclude sinB、If-max turbo C、txt REAL 3COMD、int k_2 _001 ??? 知識點:常量、變量和標識符

19.以下定義語句中正確的是__C____。

A、char a='A' b='B';B、float a=b=10.0;(正解a=10.0 b=10.0)C、int a=10,*b=&a;D、float *a,b=&a;??? 知識點:常量、變量和標識符

20.以下不能定義為用戶標識符的是__D____。A、scanf B、VoidC、_3com_ D、int 知識點:常量、變量和標識符

21.以下有4組用戶標識符,其中合法的一組是___C___。

A、For-sub CaseB、4d DO SizeC、f2_G3 IF abcD、WORD Void define 知識點:常量、變量和標識符

22.C語言中最簡單的數據類型包括_B_____。A、整型、實型、邏輯型B、整型、實型、字符型

C、整型、字符型、邏輯型D、整型、實型、邏輯型、字符型 知識點:常量、變量和標識符

23.下列選項中,合法的C語言關鍵字是__D____。A、VAR B、cher C、integer D、default 知識點:常量、變量和標識符

24.以下不能定義為用戶標識符的是__D____。A、MainB、_0 C、_int D、sizeof 知識點:常量、變量和標識符 25.下列敘述中正確的是_D_____。

A、C語言中既有邏輯類型也有集合類型B、C語言中沒有邏輯類型但有集合類型 C、C語言中有邏輯類型但沒有集合類型D、C語言中既沒有邏輯類型也沒有集合類型 知識點:常量、變量和標識符

26.當c的值不為0時,在下列選項中能正確將c的值賦給變量a、b的是____C__。A、c=b=a;B、(a=c)‖(b=c);C、(a=c)&&(b=c);D、a=c=b;知識點:賦值表達式

27.以下選項中非法的表達式是___D___。

A、0<=x<100 B、i=j==0 C、(char)(65+3)D、x+1=x+1 知識點:賦值表達式

28.以下程序的輸出結果是___B___。#include 7main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%dn”,a,b);??? } A、6,1 B、2,1 C、6,0 D、2,0 知識點:賦值表達式

29.以下循環體的執行次數是___C___。main(){ int i,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf(“%d n”,i);} A、3 B、2 C、1 D、0 答案:C 知識點:賦值表達式 30.有以下定義語句 double a,b;int w;long c;若各變量已正確賦值,則下列選項中正確的表達式是___C___。A、a=a+b=b++B、w%((int)a+b)C、(c+w)%(int)aD、w=a=b;知識點:賦值表達式

31.設int a=12,則執行完語句a+=a-=a*a后,a的值是__D____。A、552 B、264 C、144 D、-264 知識點:算術表達式

32.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數字式子x/(y*z)的C語言表達式是___A___。

A、x/y*z B、x*(1/(y*z))C、x/y*1/z D、x/y/z 知識點:算術表達式

33.若有定義:int a=8,b=5,c;,執行語句c=a/b+0.4;后,c的值是__B____。A、1.4 B、1 C、2.0 D、2 知識點:算術表達式

34.設有定義:float a=2,b=4,h=3;,以下C語言表達式與代數式 1/2((a+b)h)計算結果不相符的是___B___。

A、(a+b)*h/2 B、(1/2)*(a+b)*hC、(a+b)*h*1/2 D、h/2*(a+b)知識點:算術表達式

35.假定x和y為double型,表達式x=2,y=x+3/2的值是___D___。A、3.500000 B、3 C、2.000000 D、3.000000 知識點:算術表達式

36.若已定義x和y為double類型,則表達式x=1,y=x+3/2的值是___C___。A、1 B、2 C、2.000000 D、2.500000 知識點:算術表達式 37.若有以下程序段 int c1=1,c2=2,c3;c3=1.0/c2*c1;則執行后,c3中的值是___A___。A、0 B、0.5 C、1 D、2 知識點:算術表達式

38.設有int x=11;則表達式(x++ * 1/3)的值是___A___。?? A、3 B、4 C、11 D、12 知識點:算術表達式

39.下列程序的輸出結果是___C___。main(){ double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d n”,d*y);} A、3 B、3.2 C、0 D、3.07 知識點:算術表達式 40.請讀程序片段: int i=65536;printf(“%dn”,i);上面程序片段的輸出結果是___B___。

A、65536 B、0C、有語法錯誤,無輸出結果D、-1 知識點:整型數據 41.若有以下定義和語句: int u=010,v=0x10,w=10;printf(“%d,%d,%dn”,u,v,w);則輸出結果是: __A____。

A、8,16,10 B、10,10,10C、8,8,10 D、8,10,10 知識點:整型數據

42.在C語言中,不正確的int類型的常數是___A___。A、32768 B、0 C、037 D、0xAF 知識點:整型數據

43.以下程序的輸出結果是__D____。main(){ int k=17;printf(“%d,%o,%x n”,k,k,k);} A、17,021,0x11 B、17,17,17C、17,0x11,021 D、17,21,11 知識點:整型數據

44.下面程序的輸出是__C____。main(){ unsigned a=32768;printf(“a=%dn”,a);} A、a=32768 B、a=32767C、a=-32768D、a=-1 知識點:整型數據

45.在C語言中,合法的長整型常數是___A___。A、0L B、4962710C、324562& D、216D 知識點:整型數據 46.C語言中運算對象必須是整型的運算符是__A____。A、%= B、/ C、= D、<= 知識點:整型數據

47.以下選項中不屬于C語言的類型名稱是___D___。

A、signed short intB、unsigned long intC、unsigned intD、long short 知識點:整型數據 48.有以下程序 main(){ int m=0256,n=256;printf(“%o %on”,m,n);} 程序運行后的輸出結果是___C___。

A、0256 0400 B、0256 256C、256 400 D、400 400 知識點:整型數據

49.若執下面程序時從鍵盤上輸入5,main(){ int x;scanf(“%d”,&x);if(x++>5)printf(“%dn”,x);else printf(“%dn”,x--);} 則輸出是__B____。A、7 B、6 C、5 D、4 知識點:自加、自減運算符和逗號運算符 50.有以下程序 main(){ char a1='M', a2='m';printf(“%cn”,(a1,a2));} 以下敘述中正確的是___B___。

A、程序輸出大寫字母MB、程序輸出小寫字母m C、格式說明符不足,編譯出錯D、程序運行時產生出錯信息 知識點:自加、自減運算符和逗號運算符 51.以下程序的輸出結果是 __B____。main(){ int a;printf(“%dn”,(a=3*5,a*4,a+5));} A、65 B、20 C、15 D、10 知識點:自加、自減運算符和逗號運算符 53.設有如下程序段 int x=2002,y=2003;printf(“%dn”,(x,y));則以下敘述中正確的是__D____。

A、輸出語句中格式說明符的個數少于輸出項的個數,不能正確輸出 B、運行時產生錯誤信息 C、輸出值為2002 D、輸出值為2003 知識點:自加、自減運算符和逗號運算符 54.有以下程序 main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%dn”,x,y,z);} 程序運行后的輸出結果是___C___。A、2,3,3 B、2,3,2 C、2,3,1 D、2,2,1 知識點:自加、自減運算符和逗號運算符 55.設有以下定義 int a=0;double b=1.25;char c='A';#define d 2 則下面語句中錯誤的是__D____。A、a++;B、b++;C、c++;D、d++;知識點:自加、自減運算符和逗號運算符 56.以下程序的輸出結果是___D___。main(){ int x=10,y=10;printf(“%d %dn”,x--,--y);} A、10 10 B、99 C、9 10 D、10 9 知識點:自加、自減運算符和逗號運算符

57.若x和y都是int型變量,x=100、y=200,且有下面的程序片段 printf(“%d”,(x,y));上面程序片段的輸出結果是___A___。

A、200 B、100 C、100 200D、輸則格式符不夠, 輸出不確定的值 知識點:自加、自減運算符和逗號運算符 58.設有如下定義: int x=10,y=3,z;則語句

printf(“%dn”,z=(x%y,x/y));的輸出結果是___D___。A、1 B、0 C、4 D、3 知識點:自加、自減運算符和逗號運算符

59.兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結果是___A___。main(){ int x;scanf(“%d”,&x);if(x++ > 5)printf(“%d”,x);else printf(“%dn”,x--);} A、7和5 B、6和3 C、7和 D、6和4 知識點:自加、自減運算符和逗號運算符 60.若t為double類型,表達式t=1,t+5,t++的值是___D___。A、1 B、6.0 C、2.0 D、1.0 知識點:自加、自減運算符和逗號運算符 61.以下程序的輸出結果是__A____。#include main(){ int i=10,j=10;printf(“%d,%dn”,++i,j--);} A、11,10 B、9,10 C、010,9 D、10,9 知識點:自加、自減運算符和逗號運算符 62.有以下程序 main(){ int y=10;while(y--);printf(“y=%dn”,y);} 程序執行后的輸出結果是__B___。

A、y=0 B、y=-1 C、y=1D、while構成無限循環 知識點:自加、自減運算符和逗號運算符 63.以下敘述中正確的是__B____。

A、全局變量的作用域一定比局部變量的作用域范圍大 B、靜態(static)類別變量的生存期貫穿于整個程序的運行期間 C、函數的形參都屬于全局變量 D、未在定義語句中賦初值的auto變量和static變量的初值都是隨機值 知識點:局部變量及其作用域和生存期 64.下面程序的輸出是___C___。fun3(int x){ static int a=3;a+=x;return(a);} main(){ int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%dn”,n);} A、3 B、4 C、6 D、9 知識點:局部變量及其作用域和生存期 65.以下敘述中正確的是___A___。

A、局部變量說明為static 存儲類,其生存期將得到延長 B、全局變量說明為static 存儲類,其作用域將被擴大 C、任何存儲類的變量在未賦初值時,其值都是不確定的 D、形參可以使用的存儲類說明符與局部變量完全相同 知識點:局部變量及其作用域和生存期 66.有以下程序 int fun(int x[],int n){ static int sum=0,i;for(i=0;iy)f(x,y);else if(y>z)f(y,z);else f(x,z);printf(“%d,%d,%dn”,x,y,z);} 執行后輸出結果是___C___。

A、1,2,3 B、3,1,2 C、1,3,2 D、2,3,1 知識點:調用函數和被調用函數之間的數據傳遞 74.有以下程序 void f(int x,int y){ int t;if(x

A、3,4,5B、5,3,4C、5,4,3D、4,3,5 知識點:調用函數和被調用函數之間的數據傳遞 75.有以下程序

int fun1(double a){ return a*=a;} int fun2(double x,double y){ double a=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);} main(){ double w;w=fun2(1.1,2.0);} 程序執行后變量w中的值是___C___。A、5.21 B、5 C、5.0 D、0.0 知識點:調用函數和被調用函數之間的數據傳遞

80.在調用函數時,如果實參是簡單變量,它與對應形參之間的數據傳遞方式是___B___。A、地址傳遞B、單向值傳遞C、由實參傳給形參D、再由形參傳回實參 知識點:函數的調用

81.當執行下面的程序時,如果輸入ABC,則輸出結果是___A___。#include “stdio.h” #include “string.h” main(){ char ss[10]=“12345”;gets(ss);strcat(ss,“6789”);printf(“%sn”,ss);} A、ABC6789 B、ABC67C、12345ABC6 D、ABC456789 知識點:函數的調用 82.有如下程序 long fib(int n){ if(n>2)return(fib(n-1)+fib(n-2));else return(2);} main(){ printf(“%ldn”,fib(3));} 該程序的輸出結果是___B___。A、2 B、4 C、6 D、8 知識點:函數的調用

83.設函數fun的定義形式為 void fun(char ch,float x){……}

則以下對函數fun的調用語句中,正確的是__D____。

A、fun(“abc”,3.0);B、t=fun('D',16.5);C、fun('65',2.8);D、fun(32,32);知識點:函數的調用 84.有以下程序

char fun(char x,char y){ if(x

程序的執行結果是___D___。A、函數調用出錯 B、8 C、9 D、7 知識點:函數的調用

85.若已定義的函數有返回值,則以下關于該函數調用的敘述中錯誤的是___D___。A、函數調用可以作為獨立的語句存在B、函數調用可以作為一個函數的實參 C、函數調用可以出現在表達式中D、函數調用可以作為一個函數的形參 知識點:函數的調用 86.有如下函數調用語句

func(rec1,rec2+rec3,(rec4,rec5));該函數調用語句中,含有的實參個數是__A____。A、3 B、4 C、5 D、有語法錯 知識點:函數的調用

92.以下函數值的類型是___A___。fun(float x){ float y;y=3*x-4;return y;} A、int B、不確定 C、void D、float 知識點:函數的定義和返回值

93.在C語言中,形參的缺省存儲類是___A___。A、auto B、register C、static D、extern 知識點:函數的定義和返回值 94.有以下程序 int f(int a){ return a%2;} main(){ int s[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf(“%dn”,d);} 程序運行后的輸出結果是__A____。A、9 B、11 C、19 D、21 知識點:函數的定義和返回值

95.在C語言中,函數的隱含存儲類別是___C___。A、auto B、static C、extern D、無存儲類別 知識點:函數的定義和返回值 97.若程序中定義了以下函數 double myadd(double a,double b){ return(a+b);} 并將其放在調用語句之后,則在調用之前應該對該函數進行說明,以下選項中錯誤的說明是__A____。

A、double myadd(double a,b);B、double myadd(double,double);C、double myadd(double b,double a);D、double myadd(double x,double y);知識點:函數的定義和返回值 98.若有以下程序 #include void f(int n)main(){ void f(int n);f(5);} void f(int n);{ printf(“%dn”,n);} 則以下敘述不正確的是___C___。

A、若只在主函數中對函數f進行說明,則只能在主函數中正確調用函數f B、若在主函數前對函數f進行說明,則在主函數和其它函數中都可以正確調用函數f C、對于以上程序,編譯時系統會出提示出錯信息:提示對f函數重復說明 D、函數f無返回值,所以可用void將其類型定義為無值型 知識點:函數的說明

99.下列敘述中正確的是___D___。

A、C語言編譯時不檢查語法B、C語言的子程序有過程和函數兩種 C、C語言的函數可以嵌套定義D、C語言所有函數都是外部函數 知識點:庫函數

101.以下不能正確定義二維數組的選項是__D____。A、int a[2][2]={{1},{2}};B、int a[][2]={1,2,3,4};C、int a[2][2]={{1},2,3};D、int a[2][]={{1,2},{3,4}};知識點:二維數組的定義和二維數組元素的引用 102.以下能正確定義二維數組的是___B___。

A、int a[][3];B、int a[][3]={2*3};C、int a[][3]={};D、int a[2][3]={{1},{2},{3,4}};知識點:二維數組的定義和二維數組元素的引用 103.以下程序的輸出結果是___A___。main(){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(“%dn”,s);} A、18 B、19 C、20 D、21 知識點:二維數組的定義和二維數組元素的引用 104.以下程序的輸出結果是__C____。main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)

printf(“%d,”,x[i][2-i]);} A、1,5,9 B、1,4,7 C、3,5,7 D、3.6.9 知識點:二維數組的定義和二維數組元素的引用 知識點:二維數組的定義和二維數組元素的引用 106.以下數組定義中錯誤的是___B___。

A、int x[][3]={0};B、int x[2][3]={{1,2},{3,4},{5,6}};C、int x[][3]={{1,2,3},{4,5,6}};D、int x[2][3]={1,2,3,4,5,6};知識點:二維數組的定義和二維數組元素的引用 107.以下數組定義中不正確的是___D___。A、int a[2][3];B、int b[][3]={0,1,2,3};C、int c[100][100]={0};D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};知識點:二維數組的定義和二維數組元素的引用 108.有以下程序 main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++){ printf(“%d ”,m[k][i]);} } 執行后輸出結果是___C___。

A、4 5 6 B、2 58 C、3 6 9 D、7 8 9 知識點:二維數組的定義和二維數組元素的引用

109.以下能正確定義數組并正確賦初值的語句是___D___。A、int N=5,b[N][N];B、int a[1][2]={{1},{3}};C、int c[2][]={{1,2},{3,4}};D、int d[3][2]={{1,2},{34}};知識點:二維數組的定義和二維數組元素的引用 111.以下程序的輸出結果是___A___。main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%dn”,a[0][3],a[1][2],a[2][1],a[3][0]);} A、0650 B、1470 C、5430D、輸出值不定 知識點:二維數組的定義和二維數組元素的引用 112.定義如下變量和數組: int i;int x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是__C____。for(i=0;i<3;i++)printf(“%d ”,x[i][2-i]);A、1 5 9 B、1 47 C、3 5 7 D、3 6 9 知識點:二維數組的定義和二維數組元素的引用 113.有以下程序 main(){ int x[3][2]={0},i;for(i=0;i<3;i++)scanf(“%d”,x[i]);printf(“%3d%3d%3dn”,x[0][0],x[0][1],x[1][0]);} 若運行時輸入:2 4 6<回車>,則輸出結果為___B___。A、2 0 0 B、2 0 4C、2 4 0 D、2 4 6 知識點:二維數組的定義和二維數組元素的引用

130.當調用函數時,實參是一個數組名,則向函數傳送的是___B___。

A、數組的長度B、數組的首地址C、數組每一個元素的地址D、數組每個元素中的值 知識點:函數之間對一維數組和數組元素的引用 132.有以下程序 void sum(int a[]){ a[0]=a[-1]+a[1];} main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%dn”,a[2]);} 程序運行后輸出結果是__A____。A、6 B、7 C、5 D、8 知識點:函數之間對一維數組和數組元素的引用 138.有以下程序 main(){ char s[]=“abcde”;s+=2;printf(“%dn”,s[0]);} 執行后的結果是___D___。

A、輸出字符a的ASCII碼B、輸出字符c的ASCII碼C、輸出字符cD、程序出錯 知識點:函數之間對一維數組和數組元素的引用 139.請讀程序: #include f(int b[],int n){ int i,r;r=1;for(i=0;i<=n;i++)r=r*b[i];return r;} main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%dn”,x);} 上面程序的輸出結果是___B___。A、720 B、120 C、24 D、6 知識點:一維數組的定義和一維數組元素的引用

140.若要求定義具有10個int形元素的一維數組a,則以下的定義語句中錯誤的是____D__。

A、#define N 10int a[N];B、#define n 5int a[2*n];C、int a[5+5];D、int n=10,a[n];知識點:一維數組的定義和一維數組元素的引用 141.合法的數組定義是__D____。

A、int a[]=“string”;B、int a[5]={0,1,2,3,4,5};C、char s=“string”;D、char a[]={0,1,2,3,4,5};知識點:一維數組的定義和一維數組元素的引用 144.以下能正確定義一維數組的選項是___B___。A、int a[5]={0,1,2,3,4,5};B、char a[]={0,1,2,3,4,5};C、char a={'A','B','C'};D、int a[5]=“0123”;知識點:一維數組的定義和一維數組元素的引用 145.有如下程序 main(){ int n[5]={0,0,0},i,k=2;for(i=0;i=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);} A、258 B、741 C、852 D、369 知識點:一維數組的定義和一維數組元素的引用

147.執行下面的程序段后,變量k中的值為___A___。int k=3,s[2];s[0]=k;k=s[1]*10;A、不定值B、32

C、30 D、10 知識點:一維數組的定義和一維數組元素的引用

170.以下能正確計算定義且賦初值的語句是___B___。A、int n1=n2=10;B、char c=32;C、fioat f=f+1.1;D、double x=12.3E2.5 知識點:賦值語句

171.以下合法的賦值語句是___B___。

A、x=y=100 B、d--;C、x+y;D、c=int(a+b);172.下列語句中符合C語言語法的賦值語句是___D___。A、a=7+b+c=a+7;B、a=7+b++=a+7;C、a=7+b,b++,a+7 D、a=7+b,c=a+7;173.請選出合法的C語言賦值語句___B___。

A、a=b=58 B、i++;C、a=58,b=58 D、k=int(a+b);174.下面程序的輸出是___C___。main(){ int x=10,y=3;printf(“%dn”,y=x/y);} A、0 B、1 C、3 D、不確定的值 知識點:數據輸出

175.已知字母A的ASCII碼為十進制的65,下面程序的輸出是___A___。main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf(“%d,%cn”,ch1,ch2);} A、67,D B、B,C C、C,D D、不確定的值 知識點:數據輸出

176.下列程序的運行結果是___B___。#include main(){ int a=2,c=5;printf(“a=%d,b=%d n”,a,c);} A、a=%2,b=%5 B、a=2,b=5C、a=d,b=d D、a=%d,b=5d 177.以下程序的輸出結果是___D___。#include main(){ int a=2,c=5;printf(“a=%%d,b=%%dn”,a,c);} A、a=%2,b=%5 B、a=2,b=5C、a=%%d,b=%%d D、a=%d,b=%d 178. 有以下程序 main(){ int x=102,y=012;printf(“%2d,%2dn”,x,y);}

執行后輸出結果是___C___。

A、10,01 B、02,12C、102,10 D、02,10 179. 有以下程序 main(){ int a=666,b=888;printf(“%dn”,a,b);} 程序運行后的輸出結果是___B___。A、錯誤信息B、666 C、888 D、666,888 180.有以下程序 #include main(){ char c1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);} 當運行時輸入:a <回車>后,以下敘述正確的是___A___。A、變量C1 被賦予字符a,c2被賦予回車符 B、程序將等待用戶輸入第2個字符

C、變量c1被賦予字符a, c2中仍是原有字符2 D、變量c1 被賦予字符a,c2中將無確定值

181.執行下列程序時輸入:123<空格>456<空格>789<回車>,輸出結果是___D___。main(){ char s[100];int c,i;scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,s);printf(“%c,%d,%s n”,c,i,s);} A、123,456,789 B、1,456,789C、1,23,456,789 D、1,23,456 182.有定義語句:int b;char c[10];,則正確的輸入語句是__B____。A、scanf(“%d%s”,&b,&c);B、scanf(“%d%s”,&b,c);C、scanf(“%d%s”,b,c);D、scanf(“%d%s”,b,&c);184.若要求從鍵盤讀入含有空格字符的字符串,應使用函數___B___。A、getc()B、gets()C、getchar()D、scanf()186.有以下程序 #include main(){ char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(“%c%cn”,c5,c6);} 程序運行后,若從鍵盤輸入(從第1列開始)___D___。123<回車> 45678<回車> 則輸出結果是

A、1267 B、1256 C、1278 D、1245 188.有以下程序 main(){ int m,n,p;scanf(“m=%dn=%dp=%d”,&m,&n,&p);printf(“%d%d%dn”,m,n,p);} 若想從鍵盤上輸入數據,使變量 m 中的值為 123,n 中的數值為 456,p 中的值為 789,則正確的輸入是___A___。

A、m=123n=456p=789B、m=123 n456 p=789 C、m=123,n=456,p=789D、123 456 789 189.有以下程序段 int m=0,n=0;char c='a';scanf(“%d%c%d”,&m,&c,&n);printf(“%d,%c,%dn”,m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結果是___A___。A、10,A,10 B、10,a,10C、10,a,0 D、10,A,0 192.有定義語句:int x,y;,若要通過scanf(“%d,%d”,&x,&y);語句使變量x得到數據11,變量y得到數值12,下面四組輸入形式中,錯誤的是___A___。

A、11 12<回車>B、11,12<回車>C、11, 12<回車>D、11,<回車>12<回車> 193.在嵌套使用if語句時,C語言規定else總是___C___。A、和之前與其具有相同縮進位置的if配對B、和之前與其最近的if配對 C、和之前與其最近的且不帶else的if配對D、和之前的第一個if配對 知識點:if語句和用if語句構成的選擇結構

195.假定所有變量均已正確說明,下列程序段運行后x的值是___B___。a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;A、34 B、4 C、35 D、3 196.有以下程序 main(){ int i;for(i=1;i<40;i++){ if(i++%5==0)if(++i%8==0)printf(“%d ”,i);} printf(“n”);} 執行后的輸出結果是___C___。A、5 B、24 C、32 D、40 198.有如下程序 main(){ int a=2,b=-1,c=2;if(a #include main(){ float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(z){ if(fabs(z)>1.0){ x=y;y=z;z=x/y;} else break;} printf(“%fn”,y);} 若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是___B___。A、1.500000 B、1.600000C、2.000000 D、2.400000 204.有以下程序 main(){ int k=5,n=0;while(k>0){ switch(k){ default : break;case 1: n+=k;case 2: case 3: n+=k;} k--;} printf(“%dn”,n);} 程序運行后的輸出結果是___D___。A、0 B、4 C、6 D、7 知識點:switch語句以及用switch語句和break語句構成的選擇結構 207.有以下程序 main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf(“%d”,i);case 2: printf(“%d”,i);default: printf(“%d”,i);} } 執行后輸出結果是___A___。

A、011122 B、012 C、012020 D、120 209.如下程序 main(){ int x=1,a=0,b=0;switch(x){ case 0: b++;case 1: a++;case 2: a++;b++;} printf(“a=%d,b=%dn”,a,b);} 該程序的輸出的結果是___A___。

A、a=2,b=1 B、a=1,b=1C、a=1,b=0 D、a=2,b=2 210以下程序的輸出結果是___A___。main(){ int a=0,i;for(i=1;i<5;i++){ switch(i){ case 0: case 3: a+=2;case 1: case 2: a+=3;default: a+=5;} } printf(“%dn”,a);} A、31 B、13 C、10 D、20 212.下列敘述中正確的是___D___。A、break語句只能用于switch語句 B、在switch語句中必須使用default C、break語句必須與switch語句中的case配對使用 D、在switch語句中,不一定使用break語句

213.設a為整型變量,不能正確表達數學關系:1010 && a<15D、!(a<=10)&&!(a>=15)知識點:關系運算和邏輯運算

214.以下程序的輸出結果是___A___。main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%dn”,d);} A、1 B、0 C、非0的數D、-1 215.語句:printf(“%d”,(a=2)&&(b=-2));的輸出結果是___D___。A、無輸出 B、結果不確定C、-1 D、1 216.設a、b、c、d、m、n均為int型變量,且a=

5、b=

6、c=

7、d=

8、m=

2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為___C___。A、0 B、1 C、2 D、3 217.若變量c為char類型,能正確判斷出c為小寫字母的表達式是__D____。A、'a'<=c<='z'B、(c>='a')||(c<='z')C、('a'<=c)and('z'>=c)D、(c>='a')&&(c<='z')218.能正確表示邏輯關系:“a≥10 或 a≤0”的C語言表達式是___D___。A、a>=10 or a<=0 B、a>=0 | a<=10 C、a>=10 && a<=0 D、a>=10 || a<=10 219.有如下程序 main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a

A、a<>0 B、!a C、a=0 D、a 223.有如下程序段 int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');執行該程序段后,x的值為___D___。A、true B、false C、0 D、1 224.能正確表示a和b同時為正或同時為負的邏輯表達式是___D___。A、(a>=0‖b>=0)&&(a<0‖b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>0 知識點:條件表達式構成的選擇結構 227.以下程序的輸出結果是___C___。main(){int a=5,b=4,c=6,d;printf(“%dn”,d=a>b?(a>c?a:c):(b));} A、5 B、4 C、6 D、不確定

228.若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達式 a0)B、(x-y<0)C、(x-y<0||x-y>0)D、(x-y= =0)230.有以下程序段 int k=0,a=1,b=2,c=3;k=ac?k:b;執行該程序段后,k的值是___B___。A、3 B、2 C、1 D、0 231.以下程序段中與語句 k=a>b?(b>c?1:0):0;功能等價的是___A__。A、if((a>b)&&(b>c))k=1;else k=0;B、if((a>b)||(b>c))k=1;else k=0;C、if(a<=b)k=0;else if(b<=c)k=1;D、if(a>b)k=1;else if(b>c)k=1;else k=0;232.假定w、x、y、z、m均為int型變量,有如下程序段: w=1;x=2;y=3;z=4;m=(w

A、321 B、23C、不輸出任何內容D、陷入死循環 知識點:do-while語句和do-while語句構成的循環結構 235.有以下程序 main(){ int s=0,a=1,n;scanf(“%d”,&n);do { s+=1;a=a-2;} while(a!=n);printf(“%dn”,s);} 若要使程序的輸出值為2,則應該從健盤給n輸入的值是___B___。A、-1 B、-3 C、-5 D、0 236.有以下程序段 int n,t=1,s=0;scanf(“%d”,&n);do { s=s+t;t=t-2;} while(t!=n);為使此程序不陷入死循環,從鍵盤輸入的數據應該是___D___。A、任意正奇數 B、任意負偶數C、任意正偶數 D、任意負奇數 239.有以下程序 main(){ int i=0,s=0;do { if(i%2){ i++;continue;} i++;s+=i;} while(i<7);printf(“%dn”,s);} 執行后輸出結果是__A____。A、16 B、12 C、28 D、21 240.下面的程序的運行結果是___B___。main(){ int x=3;do { printf(“%dn”,x-=2);} while(!(--x));} A、輸出的是1 B、輸出的是1和-2C、輸出的是3和0 D、是死循環 241.以下敘述正確的是___D___。

A、do-while語句構成的循環不能用其它語句構成的循環來代替 B、do-while語句構成的循環只能用break語句退出

C、用do-while語句構成的循環,在while后的表達式為非零時結束循環 D、用do-while語句構成的循環,在while后的表達式為零時結束循環 242.以下程序的輸出結果是___D___。main(){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d %d ”,x--,y);} A、10 1 9 2 B、9 8 7 6C、10 9 9 0 D、10 10 9 1 知識點:for語句和用for語句構成的循環結構 244.以下程序的輸出結果是___B___。main(){ int i, k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf(“%dn”,k);} A、20 B、21 C、22 D、23 245.設變量已正確定義,則以下能正確計算f=n!的程序段是___D___。A、f=0;for(i=1;i<=n;i++)f*i;B、f=1;for(i=1;i1;i++)f*i;D、f=1;for(i=n;i>=2;i--)f*=i;247.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c 均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;B 則上述程序段功能等價的賦值語句是______。A、s=a+b;B、s=a+c;C、s=s+c;D、s=b+c;248.有以下程序 main(){ int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%dn”,s);}

程序執行后的輸出結果是___D___。

A、自然數1~9的累加和B、自然數1~10的累加和 C、自然數1~9中奇數之和D、自然數1~10中偶數之和 249.有如下程序 main(){ int i,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);} 該程序的執行結果是___C___。A、6 B、3 C、死循環D、0 250.若i,j已定義為int類型,則以下程序段中內循環體的總的執行次數是___A___。for(i=5;i;i--)for(j=0;j<4;j++){ …… } A、20 B、25 C、24 D、30 251.有以下程序 main(){ int k=5;while(--k)printf(“%d”,k-=3);printf(“n”);} 執行后的輸出結果是___A___。A、1 B、2 C、4 D、死循環

知識點:while語句和while語句構成的循環

253.以下程序中,while循環的循環次數是___D___。main(){ int i=0;while(i<10){ if(i<1)continue;if(i==5)break;i++;} …… } A、1 B、10 C、6 D、死循環,不能確定次數 254.t為int類型,進入下面的循環之前,t的值為0 while(t=1){ …… } 則以下敘述中正確的是___B___。

A、循環控制表達式的值為0B、循環控制表達式的值為1 C、循環控制表達式不合法D、以上說法都不對 255.有如下程序 main(){ int n=9;while(n>6){ n--;printf(“%d”,n);} } 該程序段的輸出結果是___B___。A、987 B、876 C、8765 D、9876 256.有以下程序 main(){int p[7]={11,13,14,15,16,17,18};int i=0,k=0;while(i<7&&p[i]%2){ k=k+p[i];i++;} printf(“%dn”,k);} 執行后輸出結果是___D___。A、58 B、56 C、45 D、24 257.要求通過while循環不斷讀入字符,當讀入字母N時結束循環。若變量已正確定義,以下正確的程序段是___A___。A、while((ch=getchar())!='N' printf(“%c”,ch);B、while(ch=getchar()!='N' printf(“%c”,ch);C、while(ch=getchar())=='N' printf(“%c”,ch);D、while((ch=getchar())=='N' printf(“%c”,ch);258.有以下程序段 int k=0;while(k=1)k++;while循環執行的次數是___A___。

A、無限次B、有語法錯,不能執行C、一閃也不執行D、執行1次 259.以下程序的輸出結果是___C___。main(){ int n[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];printf(“%d n”,n[i][j]);} A、14 B、0 C、6 D、值不確定 知識點:循環結構的嵌套 260.有以下程序 main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if(j%2)continue;x++;} x++;} printf(“x=%dn”,x);} 程序執行后的輸出結果是___B___。A、x=4 B、x=8 C、x=6 D、x=12 261.下列程序的輸出結果是___C___。main(){ int i,j,m=0,n=0;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf(“%d n”,n);} A、4 B、2 C、1 D、0 262.有以下程序 main(){ int i,n=0;

第二篇:c語言試題及答案

一、單選題

1.在C語言中,下列類型屬于構造類型的是(D)A.整型 B.字符型 C.實型 D.數組類型 2.下列字符串不是標識符的是(D)A.sum B.Average C.Day_night D.M.D.JOHN 3.在C語言中,回車換行符是(A)A.n B.t C.v D.b 4.在C語言中,語句和數據定義是用(C)作為結束標記的 A.句號 B.逗號 C.分號 D.括號 5.設有如下定義: int x=10,y=5,z;則語句printf(“%dn”,z=(x+=y,x/y));的輸出結果是(C)A.0 B.1 C.3 D.4 6.10.以下程序的輸出結果是(B)main(){char c1=’8’,c2=’2’;

printf(“%c,%c,%d,%dn”,c1,c2,c1-c2,c1+c2);} A.因輸出格式不合法,輸出出錯信息 B.8,2,6,106 C.8,2,6,10 D.8,2,5,9 7.兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結果是(A)main(){int x;scanf(“%d”,&x);

if(x++>5)printf(“%dn”,x);else printf(“%dn”,x--);} A.7和5 B.7和4 C.6和4 8.表達式(int)2.1416的值時(A)A.2 B.2.1 C.0 D.3 9.下列運算符優先級最高的是(B)A.> B.+ C.&& D.!= 10.C語言容許函數值類型缺省定義,此時該函數值隱含的類型時(B)A.float型 B.Int型 C.Long 型 D.Double型

11、C程序的基本構成單位是(C)A、子程序 B、過程 C、函數 D、文件

12、C語言中要求操作數都為整型數據的算術符是(C)A、/ B、!C、% D、= =

13、若int x=1,y=1;則表達式(!x||y--)的值是(B)。A、0 B、1 C、2 D、-1

14、能正確表示邏輯關系:a≥10或a≤0的C語言表達式(D)A、a>=10 or a<=0 B、a>=0|a<=10 C、a>=10 && a<=0 D、a>=10||a<=0

15、double x,y;表達式x=1,y=x+3/2的值是(C)。A、1 B、2 C、2.0 D、2.5

16、運行C源程序的命令是(D)A、ALT+F5 B、ALT+F9 C、CTRL+F5 D、CTRL+F9

17、運行完C程序后,查看C程序運行結果的命令是(A)A、ALT+F5 B、ALT+F9 C、CTRL+F5 D、CTRL+F9 18.若有程序段:int i=2,j;j=i++;printf(“%d,%d”,++i,j);該程序段的輸出結果是:(D)A、3,2 B、4,3 C、3,3 D、4,2 19設 int a=12;表達式a+=a-=a*=a的值是(C)。A 12 B 144 C 0 D 132 20、若給定條件表達式(M)?(a++):(a--),則其中表達式M和(D)等價。A M==0 B M=1 C M!=1 D M!=0

21、在C語言中,if語句后的一對圓括號中,用以決定分支流程的表達式為(D)。A 只能是邏輯表達式 B只能是關系表達式

C 只能是邏輯表達式或關系表達式 D可以是任意表達式

22、下列選項中,(A)給變量賦初值是錯誤的。

A int a=b=3;B int a,b,c=5;C int a=3,b,c=a;D float f=3.56;

23、在C語言中,一個字符變量在內存中占用(A)個字節。A 1 B 2 C 3 D 4

24、int a=12,b=13,c;c=(a

25、設有int i;則表達式i=1,++i,++i||++i,i的值為(C)A.1 B.2 C.3 D.4 30以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是(A)A)if((a>b)&&(b>c))k=1;B)if((a>b)||(b>c))k=1 else k=0;C)if(a<=b)k=0;D)if(a>b)k=1;else if(b<=c)k=1;else if(b>c)k=1;else k=0;

31、算法具有五個特性,以下選項中不屬于算法特性的是(A)有窮性(B)簡潔性(C)可行性(D)確定性 32以下選項中可作為C語言合法常量的是(A)(A)-80.(B)-080(C)-8e1.0(D)-80.0e

33、以下敘述中正確的是(C)

(A)用C語言實現的算法必須要有輸入和輸出操作(B)用C語言實現的算法可以沒有輸出但必須要有輸入(C)用C程序實現的算法可以沒有輸入但必須要有輸出(D)用C程序實現的算法可以既沒有輸入也沒有輸出

33、以下選項中,不能作為合法常量的是(B)(A)1.234e04(B)1.234e0.4(C)1.234e+4(D)1.234e0

34、有以下程序

B)(main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(“%d %d %dn”,i,j,k);} 程序運行后的輸出結果是(D)(A)1 2 3(B)2 3 4(C)2 2 3(D)2 3 3

35、判斷變量ch中的字符是否為數字字符,正確表達式是____D___。

A)ch>=0&&ch<=9 B)’0’<=ch<=’9’ C)ch>=’0’||ch<=’9’ D)ch>=’0’&&ch<=’9’

36、若執行以下程序時從鍵盤上輸入9,則輸出結果是__B_____ A)11 B)10 C)9 D)8 main()

{ int n; scanf(“%d”,&n); if(n++<10)printf(“%dn”,n); else printf(“%dn”,n--); }

37、若w=1,x=2,y=3,z=4;則條件表達式w>x?w:y

38、以下非法的賦值語句是(C)A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;

39、設a和b均為double型變量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是(D)A)6.500000 B)6 C)5.500000 D)6.000000 40、已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為

1、j的值為

2、k的值為3,以下選項中正確的輸入語句是(C)A)scanf(“---”,&i,&j,&k);B)scanf(“%d %d %d”,&i,&j,&k);C)scanf(“%d,%d,%d”,&i,&j,&k);D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

41、若有以下程序: main(){ int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%dn”,m,i);} 執行后的輸出結果是(C)A)8,6 B)8,3 C)6,4 D)7,4 

42、已有定義:int x=3,y=4,z=5;,則表達式!(x+y)+z-1 && y+z/2的值是(D)A)6 B)0 C)2 D)1

43 以下選項中,與k=n++完全等價的表達式是(A)A)k=n,n=n+1 B)n=n+1,k=n C)k=++n D)k+=n+1

39、若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是B A)i= *P;B)*P=*&J;C)i=&j;D)i=* *p;40、若有以下說明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為6的表達式是C A)*p+6 B)*(p+6)C)*p+=5 D)p+5

二、填空題

1.C語言是通過 庫函數 來進行輸入和輸出的。

2.C語言的數據類型有四大類,他們是 基本類型、構造類型、指針類型和 空類型。

4.下面程序的運行結果是 3.600000,3 main(){float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);} 5.數組名定義規則和變量名相同,遵守 標識符 命名規則。

6、main(){char c1,c2,c3;c2=’c’;c1=c2-1;c3=c2+1;printf(“%c,%d,%cn”,c1,c2,c3);} 程序的運行結果是: b,99,d

7、main(){int a=5,b=6,c;c=a;if(a>b)c=1;else if(a= =b)c=0;else c=-1;printf(“c=%dn”,c);} 程序的運行結果是:-1 11.設x的值為15,n的值為2,則表達式x%=(n+=3)運算后,x的值為 0。12.設 int a=7,b=9,t;執行完表達式t=(a>b)?a:b后,t的值是 9。14.求100~200間的全部素數。# include main(){ int m,k,i,n=0;for(m=101;m<=200;m+=2){ if(n==0)printf(“n”);k=sqrt(m);for(i= 2;i<=k;i++)if(m%i==0)break;if(i== k){ printf(“%d ”,m);n++;} } }

15、main(){ int x,y=1,z=10;if(y!=0)x=5; printf(“x=%dt”,x);x=1;if(z<0)if(y>0)x=3;else x=5;printf(“x=%dn”,x);if(z=y<0)x=3;else if(y==0)x=5;else x=7;printf(“x=%dt”,x);printf(“z=%dn”,z);} 寫出程序的運行結果:x=5 x=1 x=7 z=0

16、百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹? main(){ int hb,hm,hl,n=0;for(hb=0;hb<=100;hb+= 3)for(hm=0;hm<=100-hb;hm+= 2){ hl=100-hb-hm;if(hb/3+hm/2+2* hl ==100){ n++;printf(“hb=%d,hm=%d,hl=%dn”,hb/3,hm/2,2*hl);} } printf(“n=%dn”,n);}

17、寫出程序運行結果,并簡述功能(運行結果5分,功能描述3分,共8分)#include main(){ int i,t;int a[10]={2,4,6,8,10,1,3,5,7,9};for(i=0;i<=4;i++){ t=a[i];a[i]=a[9-i];a[9-i]=t;} for(i=0;i<=9;i++)printf(“%d ”,a[i]);} 運行結果: 7 5 3 1 10 8 6 4 2 功能描述:

將整型數組a以逆序形式顯示出來

18、有以下語句段 int n1=10,n2=20;printf(“ n1=%dnn2=%d ”,n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請填空。n1=10 n2=20

19、有以下程序 main(){ int n=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(“%dn”,x);} 執行后輸出結果是-4。

21、.以下程序運行后的輸出結果是____ main(){ int a,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);printf(“%d %d %dn”,a,b,c);} 答案:10 20 0

22、任意輸入三條邊(a,b,c)后,若能構成三角形且為等腰、等邊和直角,則分別輸出DY、DB和ZJ,若不能構成三角形則輸出NO。main(){ float a,b,c,a2,b2,c2 scanf(“%f%f%f%,&a,&b,&c);printf(”%5.1f,%5.1f,%5.1f“,a,b,c);if(a+b>c&&b+c>a&&a+c>b){ if(a==b || b==c || a==c)printf(”DY“);if(a==b && b==c)printf(”DB“);a2=a*a;b2=b*b;c2=c*c;if((a2+b2==c2)||(a2+c2==b2)||(b2+c2==a2))printf(”ZJ“);printf(”n“);} else printf(”NOn“);}

23、當a=1,b=3,c=5,d=4時,執行完下面一段程序后x的值是___x=2______ if(a

24、以下程序運行后的輸出結果是 20,0。 main(){ int x=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(“%d,%d n”,x,y);}

三、程序題

1、在購買某物品時,若所花的錢x在下述范圍內,所付錢y按對應折扣支付:

x x<1000 0.9x 1000≤x<2000 0.8x 2000≤x<3000 0.7x x.≥3000 y=

2、編一程序根據上網時間計算上網費用,計算方法如下:

費用= 30元基數 <10小時 每小時3元 10 ~50 每小時2.5元 ≥50小時

同時為了鼓勵多上網,每月收費最多不超過150元。

3、已知輸入某課程的百分制成績mark,要求顯示對應五級制的評定,評定條件如下:

等級= 優 mark≥90 良 80≤mark<90 中 70≤mark<80 及格 60≤mark<70 不及格 mark<60 第一題答案: #include void main(){ float y;int x;scanf(”%d“,&x);if(x<1000)y=x;if(x>=1000 && x<2000)y=0.9*x;if(x>=2000 && x<3000)y=0.8*x;if(x>=3000)y=0.7*x;printf(”%f“,y);} 第二題答案: #include void main(){ float y;int x;scanf(”%d“,&x);if(x<10)y=30;if(x>=10 && x<50)y=3*x;if(x>=50)y=2.5*x;if(y>150)y=150;printf(”%f“,y);} 第三題答案: #include void main(){ int mark;scanf(”%d“,&mark);if(mark>=90)printf(”優“);else if(mark>=80)printf(”良“);else if(mark>=70)printf(”中“);else if(mark>=60)printf(”及格“);else printf(”不及格");}

第三篇:西北農林科技大學c語言實習答案

實習1

1、簡單程序設計 編程寫程序,在屏幕上輸出信息:Happy New

Year!

/* 輸出圖形*/ #include void main()

{

printf(“Happy New Year!n”);

}

2、簡單計算 由鍵盤任意輸入2個數,分別計算它們的和、差、積、商。/*簡單計算*/ #include void main()

{ float a,b;float h,c,j,s;scanf(“%f%f”, &a,&b);

h=a+b;c=a-b;j=a*b;

s=a/b;printf(“和=%f,差=%f,積=%f,商=%fn”,h,c,j,s);

}

3、計算梯形的面積 已知梯形的上底、下底和高,計算梯形的面積。

/*計算梯形的面積*/ #include void main()

{

float supline,dowline,high;

double area;scanf(“%f”,&supline);

scanf(“%f”,&dowline);

scanf(“%f”,&high);area =((supline+dowline)*high)/2.0;

printf(“%f n”,area);

}

4、輸出字符對應的ASCII碼 任意輸入一個字符,輸出此字符對應的ASCII碼。

/*輸出字符對應的ASCII碼*/

#include void main()

{

char c;scanf(“%c”,&c);printf(“%dn”,c);

}

5、數據類型長度測試

編寫程序,測試所使用的計算機系統字符型、短整型、整形、長整型、單精度實型、雙精度實型所占有的字節數量。

/*數據類型長度測試*/ #include void main()

{ printf(“size of char=%dn”,sizeof(char));

printf(“size of short=%dn”,sizeof(short));

printf(“size of int=%dn”,sizeof(int));

printf(“size of long int=%dn”,sizeof(long int));

printf(“size of float=%dn”,sizeof(float));

printf(“size of double=%dn”,sizeof(double));

}

1.成績判斷

輸入一個學生的數學成績,如果它低于60,輸出“Fail”,否則,輸出“Pass”。不要改變與輸入輸出有關的語句。

/*成績判斷*/ #include

void main()

{ float mark;

scanf(“%f”,&mark);

if(mark<60)

printf(“Failn”);

else

printf(“Passn”);

} 2.字符轉換

輸入一個字符,如果它是大寫字母,輸出相應的小寫字母;如果它是小寫字母,輸出相應的大寫字母;否則,原樣輸出。不要改變與輸入輸出有關的語句。

#include

main(){char ch;ch=getchar();

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

{ch=ch+32;

printf(“%cn”,ch);}

else if(ch>='a'&&ch<='z')

{ch=ch-32;

printf(“%cn”,ch);}

else

printf(“%cn”,ch);

} 3.利用海倫公式求三角形面積 三角形三個邊長

/*計算三角形面積*/ #include “math.h” #include “stdio.h” void main()

{

double a,b,c,s,area;

printf(“請輸入3條邊長:”);scanf(“%lf%lf%lf”,&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b)

{

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“三角形的面積是:%fn”,area);

scanf(“%lfn”,area);

} else

printf(“這3個數無法組成三角形!n”);

} 4.判斷是否能構成一個三角形

從鍵盤輸三個數,判斷是否能將它們作為三角形的三條邊構成一個三角形。若能,輸出“Yes”,否則,輸出“No”。

/*判斷是否能構成一個三角形*/

#include void main()

{ float a,b,c;

printf(“請輸入3條邊長:”);scanf(“%f%f%f”,&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&& b+c>a)

printf(“Yesn”);

else printf(“Non”);

} 5.按從大到小排序三個數 從鍵盤輸入三個數,將它們按從大到小進

行排序,然后輸出。/*按從大到小排序三個數*/

#include

main(){ int a,b,c,d,e,f;

printf(“請輸入三個整數n1,n2,n3:”);

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

printf(“排序前:%d, %d, %dn”, a, b, c);

if(a>b){ {

d=c;e=a;f=b;

} { if(c

} else { d=a;e=c;f=b;} } }

else{if(bc){d=b;e=a;f=c;} else{d=b;e=c;f=a;} } } printf(“排序后:%d, %d, %dn”, d, e, f);

} 1.數據統計 任意輸入n個整數,分別統計奇數的和、奇數的個數、偶數的和、偶數的個數。

/*數據統計*/ #include

void main()

{

int i,n,m,jishuhe=0,oushuhe=0,jishuge=0,oushuge=0;

scanf(“%d”,&n);

for(i=0;i

{

scanf(“%d”,&m);

if(m%2!=0)

{

jishuhe=jishuhe+m;

jishuge++;

}

else

{

oushuhe=oushuhe+m;

oushuge++;

}

}

printf(“%dn%dn%dn%dn”,jishuhe,jishuge,oushuhe,oushuge);

}

2.愛因斯坦階梯問題

愛因斯坦階梯問題。設有一階梯,每步跨2階,最后剩1階;每步跨3階,最后剩2階;每步跨5階,最后剩4階;每步跨6階,最后剩5階;每步跨7階,正好到階梯頂。問滿足條件的最少階梯數是多少。

/*愛因斯坦階梯問題*/ #include void main()

{

int x;x=7;while(!((x%3==2)&&(x%5==4)&&(x%6==5)))

x+=14;

printf(“%dn”,x);

}

3.猴子吃桃問題

一天一只猴子摘下一堆桃子,吃了一半,覺得不過癮,又多吃了一個,第2天接著吃了前一天剩下的一半,再多吃了一個,以后每天如此,直到第n天,只剩下1個桃子,問猴子一共摘了多少桃子?

/*猴子吃桃問題*/ #include void main()

{ int n;int x=1,i;

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

{ x=2*(x+1);

}

printf(“%dn”,x);

}

┏(^ω^)=???????????????? 4.求兩個數的最大公約數和最小公倍數

用輾轉相除法(即歐幾里得算法)求兩個正整數的最大公約數和最

小公倍數。

/* 求兩個數的最大公約數和最小公倍數*/

#include

void main()

{ int a,b,rem,temp;int Div,Multi;int a1,b1;

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

a1=a;b1=b;if(a

temp=a;a=b;b=temp;} while(rem)

{

rem = a%b;

a=b;b=rem;} Div=a;Multi = a1*b1/Div;

printf(“%dn%dn”,Div,Multi);

}

5.求sin(x)的近似值

利用公式求sin(x)的近似值(精度為10e-6)。sin(x)=x-x3/3!+x5/5!-x7/7!+....(-1)nx(2n+1)/(2n+1)!+.../*求sin(x)的近似值*/ #include #include

main(){ float a,b=1;float i,sinx,x;scanf(“%f”,&x);

a=x;sinx=0;

for(i=1;fabs(a/b)>=1e-6;i++)

{ sinx+=a/b;a=-a*x*x;b=b*2*i*(2*i+1);

}

printf(“%fn”,sinx);

} 6.圖形輸出

輸入一個字符及行數n,用該字符在屏幕上輸出如下圖形:

*

***

***** ******* ********* 輸入: 一個字符及要輸出的行數n。

輸出: 用該字符在屏幕上構成的要求圖形。

#include

void main()

{

int n,i,j;char ch;ch=getchar();scanf(“%d”,&n);for(i=0;i

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

printf(“ ”);

for(j=0;j<(2*i+1);j++)printf(“%c”,ch);

printf(“n”);}

}

(^ω^)=?1.字符串連接

由鍵盤任意輸入兩串字符,不用庫函

數strcat,連接將兩串字符。

輸入: 兩串字符

輸出: 連接將兩串字符

輸入樣例: abc

def

輸出樣例: abcdef /*字符串連接*/ #include #include void main()

{

┏ int i,j,k;

char str[20]={“

主站蜘蛛池模板: 熟妇无码熟妇毛片| 色屁屁www影院免费观看入口| 精品成人一区二区三区四区| 亚洲人成人伊人成综合网无码| 性色av一区二区三区无码| 精品人妻无码专区中文字幕| 在线成人精品国产区免费| 国产日韩欧美不卡在线二区| 东北少妇不戴套对白第一次| 欧洲精品免费一区二区三区| 亚洲性无码av在线欣赏网| 国产日产欧产精品精品蜜芽| 成人国产一区二区三区精品不卡| 人妻少妇精品视中文字幕国语| 免费无码又爽又刺激网站| 永久免费看啪啪网址入口| 草色噜噜噜av在线观看香蕉| 免费无码又爽又刺激高潮视频| 天堂网在线最新版www| 国产精品久久久久久一级毛片| 天天爽天天爽天天爽| 性刺激视频免费观看| 欧美丰满熟妇xxxx性| 极品粉嫩嫩模大尺度无码| 国产精品乱码一区二区三区| 欧美精品久久96人妻无码| 国产av午夜精品一区二区入口| 欧美成人va免费大片视频| 欧美性猛交xxxx乱大交丰满| 日本丶国产丶欧美色综合| 亚洲精品一线二线三线无人区| 国内精品久久人妻朋友| 久久亚洲sm情趣捆绑调教| 国产精品户外野外| av无码免费岛国动作片片段欣赏网| 少妇被躁爽到高潮无码人狍大战| 国产不卡视频一区二区三区| 亚洲精品一区二区成人| 84pao国产成视频永久免费| 人人玩人人添人人澡免费| 中文字幕av一区二区三区人妻少妇|