官术网_书友最值得收藏!

習題

一、選擇題

3.1 若a、b、c、d都是int型變量且初值為0,以下選項中不正確的賦值語句是(  )。

A)a=b=c=100;

B)d++; 

C)c+b; 

D)d=(c=22)-(b++);

3.2 下列選項中不是C語句的是(  )。

A){int i;i++;printf("%d\n",i);}   

B);

C)a=5,c=10  

D){;}

3.3 合法的C語言賦值語句是(  )。

A)A=B=58 

B)K=int(a+b)

C)a=58,b=58 

D)--i;

3.4 使用getchar()函數時應在程序的開頭嵌入的頭文件是(  )。

A)"math.h" 

B)"stdio.h" 

C)"alloc.h"  

D)"dos.h"

3.5 有如下程序段:

char ch1,ch2;

ch1=getchar();

ch2=getchar();

putchar(ch1);

putchar(ch2);

若運行時輸入:A B↙

則輸出結果是(  )。

A)AB 

B)A B 

C)A

D)AA

3.6 有以下程序

#include"stdio.h"

void main()

{ int x=10,y=3;

   printf("%d\n",y=x/y);

}

執行后的輸出結果是(  )。

A)0  

B)1  

C)3  

D)不確定的值

3.7 若變量已正確定義為int型,要給a、b、c輸入數據,正確的輸入語句是(  )。

A) read(a,b,c);                    

B) scanf("%d%d%d",a,b,c);

C) scanf("%D%D%D",&a,&b,&c);           

D) scanf("%d%d%d",&a,&b,&c);

3.8 若變量已正確定義為float型,要通過輸入語句:scanf("&f &f &f",&a,&b,&c);給a、b、c分別賦值為11.0、22.0、33.0,不正確的輸入形式是(  )。

A)11  

22

33

B)11.0,22.0,33.0_           

C)11.0             

22.0 33.0

D)11 22

33

3.9 若變量a、b、t已正確定義,要將a和b中的數進行交換,以下選項中不正確的是(  )。

A)a=a+b,b=a-b,a=a-b;  

B)t=a;a=b;b=t;

C)a=t;t=b;b=a;     

D)t=b;b=a;a=t;

3.10 若有正確定義語句double x=5.16894;

則語句printf("%f\n",(int)(x*1000+0.5)/(double)1000);的輸出結果是(  )。

A)輸出格式不對

B)5.170000

C)5.168000 

D)5.169000

3.11 若有以下程序段:

int c1=1,c2=2,c3;

c3=c1/c2;

printf("%d\n",c3);

執行后的輸出結果是(  )。

A)0 

B)1/2 

C)0.5          

D)1

3.12 若有以下程序段:

 int a=0,b=0,c=0;

 c=(a-=a-5),(a=b,b+3);

 printf("%d,%d,%d\n",a,b,c);

執行后的輸出結果是(  )。

A)3,0,-10         

B)0,0,5

C)-10,3,-10 

D)3,0,3

3.13 有以下程序段:

 char ch; int k;

 ch='a';k=12;

 printf("%c,%d,",ch,ch,k);

 printf("k=%d\n",k)

已知字符'a'的ASCII碼值為97,則執行上述程序段后輸出結果是(  )。

A) 因變量類型與格式符的類型不匹配輸出無定值

B) 輸出項與格式描述符個數不符,輸出為0值或不定值

C) a,97,12k=12

D) a,97,k=12

3.14 有以下程序段:

 int a=1,b=1;

 scanf("%d%d",&a,&b);

 printf("a=%d,b=%d\n",a,b);

運行時輸入:12.36↙,則輸出結果是(  )。

A)a=12,b=36 

B)a=12.36,b=1 

C)a=12,b=1   

D)a=12,b=0

3.15 有以下程序段:

int a;

float b;

scanf("%2d%1f",&a,&b);

printf("%d,%f\n",a,b);

運行時輸入:876543.0,則輸出結果是(  )。

A)87,6.000000 

B)876,543.000000 

C)76,543.00000    

D)87,6543.000000

3.16 若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是(  )。

A)*p=&a;scanf("%lf",p);

B)*p=&a;scanf("%f",p);

C) p=&a;scanf("%lf",*p);   

D) p=&a;scanf("%lf",p);

二、填空題

3.17 若有以下定義,請寫出輸出結果。

int i=-200,j=2500;

printf("(1)%d,%d".i.j);

printf("(2)i=%d,j=%d\n",i,j);

printf("(3)i=%d\nj=%d\n",i,j,);

3.18 變量i、j、k已定義為int型且初值為0,用以下語句進行輸入:

scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);

從鍵盤輸入:12.3↙,則i、j、k的值分別是      。 

3.19 復合語句在語法上被認為是    ,空語句的形式為  。 

3.20 C語句的最后用  結束。 

3.21 以下程序段是要求scanf語句給變量賦值,寫出運行時給k、a、x分別輸入100、15.81、1.89234時的三種輸入形式。

int k;float a;double x;

scanf("%d%f%lf",&k,&a,&x);

printf("k=%d,a=%f,x=%f\n",k,a,x);

三、編程題

3.22 從鍵盤輸入一個小寫字母,用大寫形式輸出該字母。

3.23 輸入任意一個三位數,將其各位數字反序輸出。

3.24 編寫程序,讀入三個整數給a、b、c,然后交換它們中的數,交換原則:a給b、b給c、c給a,然后輸出a、b、c。

主站蜘蛛池模板: 社旗县| 衡山县| 凌云县| 丰镇市| 博爱县| 甘谷县| 新乡市| 正阳县| 定边县| 武威市| 九龙县| 信宜市| 桂平市| 祥云县| 克拉玛依市| 栾川县| 谢通门县| 喀喇沁旗| 光山县| 永康市| 邻水| 紫金县| 浮山县| 英吉沙县| 安化县| 江口县| 和平县| 惠安县| 盖州市| 大冶市| 正定县| 海晏县| 金乡县| 垣曲县| 兖州市| 来凤县| 抚宁县| 永福县| 梓潼县| 凌云县| 成武县|