當前位置:首頁 » 編程語言 » c語言輸入項可以為一個實型常量
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸入項可以為一個實型常量

發布時間: 2022-07-22 18:16:47

c語言,實型常量

嚴格來說,C語言中沒有「實型」(real type)這種數據類型。
C語言中非構造類型只有整型(int、short、long、long long和對應的unsigned修飾的類型,以及同義寫法),以及浮點型(包括單精度浮點型float,雙精度浮點型double,長雙精度浮點型long double)兩大類。其中float和double內部儲存形式遵循IEEE 754標准,long double取決於編譯平台。C語言中的浮點型數內部儲存形式為指數計數法分段存儲的二進制形式的小數,即使在規定大小和字長精度范圍之內也不能嚴格無誤差地表示所有十進制小數、有理數,更不用說實數。(而C語言源代碼中除了16進制整數表示的實際存儲形式以外,直接表示的所有浮點數都只能是十進制的,因此除非在二進制下也是有限小數(分數形式中分母是2的冪),且不是太長,否則在編譯過程中即會產生誤差。)
盡管如此,有時候float、double、long double這三者(或者前兩者)會被不嚴格地統稱為「實型」。
C語言中,數值常量的後綴(大小寫同義)可以表達常量的類型,例如0UL表示unsigned long型數0。如果沒有後綴,則通過具體的寫法來確定。總的原則是盡可能避免精度損失。不過也不是范圍越小越好,例如0是int型而不是char型常量。對於沒有後綴的十進制小數(小數部分或整數部分之一完全不寫的也算,當作省略了0),默認為double常量,例如3.1415等同於3.1415D。(如果要用float常量,應該使用3.1415f或3.1415F。)對於指數形式的,默認也是double,例如0.329e2(或者0.329E+2之類的也可以)。至於0.329*10^2如果出現在源代碼中,會被當做是一個表達式,先計算0.329和10的積,結果再和2作^(位異或)運算。但由於積是double類型的,不能參與位運算,會給出編譯錯誤。
871是int常量,不是「實型」常量。
871.、871.f、871.0F、871.d、871.0D、8.71E+2、0.871e3這類才是「實型」常量。
回答者: 幻の上帝 - 十四級 2010-1-16 19:52

⑵ 以下說法正確的是( )。 A. 輸入項可以為一實型常量,如scanf(「%f」,3.5);

正確答案是D
因為scabf函數必須帶地址才能正常輸入。
A沒有地址&
B沒有輸入項程序沒有意義
C實行數據不是非要規定

⑶ 14. 有下面程序段 Char a[3],b[ ]=」hello」; a=b; printf(「%s」,a); 則輸出

一、選擇題(15小題,每小題2分,共計30分)
1.下面不正確的字元串常量是 A 。
A)'abc' B)"12'12" C)"0" D)" "
2.以下正確的敘述是 D
A)在C程序中,每行中只能寫一條語句
B)若a是實型變數,C程序中允許賦值a=10,因此實型變數中允許存放整型數
C)在C程序中,無論是整數還是實數,都能被准確無誤(精確)地表示
D)在C程序中,%是只能用於整數運算的運算符
3.已知字母A的ASCII碼為十進制數65,且c2為字元型,則執行語句c2='A'十'6'一'3';後,c2中的值為 A
A)D B)68 C)不確定的值 D)C
4.sizeof(float)是 B :
A)一個雙精度型表達式 B)一個整型表達式
C)一種函數調用 D)一個不合法的表達式
5.以下說法正確的是 D :
A)輸入項可以為一實型常量,如scanf("%f",3.5);
B)只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d");
C)當輸入一個實型數據時,格式控制部分應規定小數點後的位數,如scanf("%4.2f",&f);
D)當輸入數據時,必須指明變數的地址,如scanf("%f",&f);
6.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當從第一列開始輸入數據時,正確的數據輸入方式是 D (註:表示回車)。
int a1,a2; char c1,c2;
scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);
A) 1020AB B)10 20AB
C)10 20 AB D)10 20AB
7.請閱讀以下程序:
void main()
{int a=5,b=0,c=0;
if(a=b+c) printf("***\n");
e1se printf("$$$\n");
以上程序 D :
A)有語法錯不能通過編譯 B)可以通過編譯但不能通過連接
C)輸出*** D)輸出$$$
8.下面程序段的運行結果是 C 。
x=y=0;
while(x<15) {y++;x+=++y;}
printf("%d,%d",x,y);
A)20,7 B)6,12 C)20,8 D)8,20
9.若有說明:int a[3]={0};則下面正確的敘述是D。
A) 只有元素a[0]可得到初值0
B) 此說明語句不正確
C) 數組a中各元素都可得到初值,但其值不一定為0
D) 數組a中每個元素均可得到初值0
10.在c語言中,引用數組元素時,其數組下標的數據類型允許是_ C _。
A)整型常量 B)整型表達式
C)整型常量或整型表達式 D)任何類型的表達式
11.下面程序段的運行結果是 _ B _。
char c[5]={'a','b','\0','c','\0'};
printf("%s",c);}
A)』a』』b』 B)ab C)ab c D)a b
12.以下敘述正確的是 C 。
A) 在C程序中,main函數必須位於程序的最前面
B) C程序的每行中只能寫一條語句
C) C語言本身沒有輸入輸出語句
D) 在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤
13.簡單變數做實參時,實參與其對應的形參之間的數據傳遞方式是 C 。
A)雙向值傳遞方式 B)地址傳遞方式
C)單向值傳遞方式 D)用戶指定傳遞方式
14.編輯程序的功能是 A 。
A)修改並建立源程序 B)將源程序翻譯成目標程序
C)調試程序 D)命令計算機執行指定的程序
15.在C語言中,5種基本數據類型的存儲空間長度排列順序為C。
A)char
C)char
二、計算表達式(每小題1.5分,共計15分):
設int x=25,y=-20;float a=102.56,b=50.87;(注意:各式結果不影響後續的題目!)
1.(++y)+(x--) ( 6 )
2.y*=y+=25 ( 25 )
3.x+y>=0?(x-2*y):(x+2*y) ( 65 )
4.(x+y)/2+(int)(a-b)%(int)b ( 3 )
5.x/2+(a-b)/2 ( 37.845 )
6.!(x=a)&&(y=b)&&1 ( 0 )
7.!(a+b-1)||y+x/2 ( 1 )
8.計算(y>=0)&&(++y)後y的值為: ( -20 )
9.printf(「%d」,』\102』);結果為 ( 66 )
10.已知』a』的ASCII碼為97,則:printf(「%c」,』\x64』);結果為( d )
三、寫出下列程序的的執行結果(每小題5分,共計20分,注意輸出格式)
1.#include
Int main()
{ int a=23389,b=45;float x=647.3586,y=13643.5538;
char c1=』A』,c2[]="Hello";
printf("a=%4d,b=%4d\n",a,b);
printf("%-9.2f,%9.2f\n",x,y);
printf("%o,%x,%u\n",b,b,b);
printf("%d,%c\n",c1,c1);
printf("%s,%6.4s\n",c2,c2);
return 0;
2.#include
#define N 10
int main( )
{ int a=1,b=0, i;
for (i=0; i
{ printf("%6d%6d",a,b);
printf("\n");
a=b+a;
b=a+b;}
return 0;}
3.#include
int main()
{ int i,j,k=0;
for(i=1;i<31;i++)
{ for(j=2;j<=i-1;j++)
if(i%j==0) break;
if(j==i)
{ printf("%7d",i) ;
k++;
if(k%2==0) printf("\n");
Return 0;
4.#include
int main()
{ int i=16,j,x=6,y,z;static char c[]=」I am a student」;
j=i+++1; printf(「%5d\n」,j);
x*=i=j; printf(「%5d\n」,x);
x=1,y=2,z=3;
x+=y+=z;
printf(「%5d\n」,(z+=x)>y? z++:y++);
x=y=z=-1;
++x||++y||z++;
printf(「%5d,%5d,%5d\n」,x,y,z);
printf(「%s,%5.4s\n」,c,c);
return 0;
四、程序填空(每空1.5分,共計15分)
1.下面程序的功能是:將字元數組s2中的全部字元拷貝到字元數組s1中,不用strcpy函數。
#include
main()
{ char s1[80], s2[80];
int i;
printf("input s2:");
gets(s2);
for(i=0;s2[i]!=』\0』; i++ )
s1[i]=s2[i] ;
s1[i]=』\0』;
printf("s1: %s \n",s1);
return 0;
2.輸入20個整數,找出其中的最大數及最小數,並求其和值。
#include
int main()
{ int a[20],i,max,min,sum;
printf("input a[0]-a[19]:");
for(i=0;i<20;i++)
scanf(「%d」, &a[i] );
max=a[0]; min=a[0]; sum= a[0] ;
for(i=1; i<20 ;i++)
{ if(a[i]>max) max=a[i];
if(a[i]
sum+=a[i];
printf(%d,%d,%d\n",max,min,sum);
return 0;
3.輸入一行字元到字元數組中,將其中的小寫字母轉化成大寫字母,大寫字母轉化成小寫字母,然後輸出。
#include
#include
main()
{ char c,str[80];
int i;
gets(str);
for(i=0;(c=str[i])!= 』\0』 ;i++)
{ if( c>=』A』&&c<=』Z』 ) c=c+32;
else if(c>=』a』&&c<=』z』) c=c-32;
str[i]=c; }
puts( str );
return 0;
五、編寫程序(每小題10分,共計20分)
(注意:可做在試卷反面)
1.輸出100到300之間能被5整除卻不能被3整除的所有數之和。
#include
int main()
{ int n,sum=0;
for(n=100; n<=300; n++)
if(n%5==0 && n%3!=0) sum += n;
printf(「%d\n」, sum);
return 0;
2.編寫main函數及一個求x階乘(x!)的用戶自定義函數fun( ),並在主函數中調用該函數求組合數c的值
#include
int main()
{ long int fun(long int x);
long res, res1, res2, res3,m, n;
scanf(「%ld,%ld」,&m,&n);
res1=fun(m); res2=fun(n); res3=fun(m-n);
res=res1/(res2*res3);
printf(「%ld\n」,res);
return 0;
long int fun(long int x);
{ long int i, res=1;
for(i=2; i<=x; i++)
res *= i;
return(res);

⑷ 一些關於C語言的問題

C,C,A,C,A,C,A,B,A,D,B,A,D,D,B

⑸ C語言,選什麼

D

輸入語句一定是聲明了變數如float f,讀取是也指定好類型和變數地址
scanf("f=%f",&f)

⑹ 幫忙解答下C語言

1、以下選項中合法的字元常量是(
B)
A、「B」
B、』\010』
C、68
D、D
(字元常量須用單引號括起來)
2、一個C語言標志符(
D)
A)只能是數字
B)只能是字母
C)只能是下劃線或字母
D)可以由字母、數字或下劃線組成,但是數字不能作為開始符號
3、以下選項中,與k=n++完全等價的表達式是(A

A)k=n,n=n++
B)n=n+1,k=n
C)k=++n
D)k+=n+1
(k=n++
n先賦值後增1)
4、設x,y,z,t均為int型變數,則執行以下語句後,t的值為(
C)
x=y=z=1

t=x
|
|
y
&&
z

A)不定值
B)2
C)1
D)0
5、以下敘述中正確的是(D

(輸入項需要取地址符&,輸出位數不限)
A)輸入項可以是一個實型常量,如:scanf(」%f」,3.5);
B)只有格式控制,沒有輸入項,也能正確輸入數據到內存,例如:
scanf(」a=%d,b=%d」)

C)當輸入一個實型數據時,格式控制部分可以規定小數點後的位數,例如:scanf(」%4.2f」,&d)

D)當輸入數據時,必須指明變數地址,例如:scanf(」%f」,&f)

6、有如下程序:
main()
{
int
x=1,a=0,b=0;
switch(x){
case
0:
b++;
case
1:
a++;
case
2:a++;b++;
}
printf(「a=%d,b=%d\n」,a,b);
}
該程序的輸出結果是(
A)
A)a=2,
b=1
B)a=1,b=1
C)a=1,
b=0
D)a=2,b=2
7、有如下程序:
main()
{
float
x=2.0,
y;
if(x<0.0)y=0.0;
else
if(x<10.0)y=1.0/x;
else
y=1.0;
printf(「%f\n」,y);
}
該程序的輸出結果是(C

A)
0.000000
B)0.250000
C)
0.500000
D)1.000000

⑺ C語言題目 分少是少,誠心請教,麻煩告訴下,看看自己選的是對的嗎望請批改!

1、c語言規定:在一個源程序中,main函數的位置 c
A)必須在最開始
B)必須在系統調用的庫函數的後面
C)可以任意
D)必須在最後
2、下面程序的運行結果是_____d_。
main()
{struct cmplx {int x;
int y;
}cnum[2]={1,3,2,7};
printf(」%d\n」,cnum[0].y/cnum[0].x *cnum[l].x);
}
A)0 B)1 C)3 D)6
3、表達式18/4*2/8值的數據類型為_A____
A)int B)float C)double D)不確定
4、以下不正確的敘述是 D 。
A)在c程序中,逗號運算符的優先順序最低
B)在C程序中,APH和aph是兩個不同的變數
c)若a和b類型相同,在執行了賦值表達式a=b後b中的值將放入a中,而b中的值不變。
D)當從鍵盤輸入數據時,對於整型變數只能輸入整型數值.對於實型變數只能輸入實型數值。
5、以下程序的運行結果是__d____。
#include "stdio.h」
main()
{struct date
{int year,month,day;
}today;
printf(「%d\n」,sizeof(struct date));
}
A)6 B)8 C)10 D)12
6、以下說法正確的是 d 。 不知道C錯哪請解說下
A)輸入項可以為一實型常量,如scanf("%f",3.5);
B)只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d」);
C)當輸入一個實型數據時,格式控制部分應規定小數點後的位數,如scanf (「%4.2f",&f);// 不應該指定位數,scanf不同於printf
D)當輸入數據時,必須指明變數的地址,如scanf(「%f",&f);
7、己知各變數的類型說明如下:
int i=8,k,a,b;
unsigned long w=55;
double x=1.42,y=5.2;
則以下符合c語言語法的表達式是__a___。不知道 請解說下
A)a+=a-=(b=4)*(a=3) B)a=a*3=2 // a*3不能被賦值
C)x%(-3) // x是浮點型,不能進行%操作,只有整型可以 D)y=float(i) // 應該是 y=(float)i
8、已知ch是字元型變數,下面不正確的賦值語句是_a_____。 // 錯誤的是a,a+b是多個字元!
A)ch='a+b'; B) ch='\0'; C)ch='7'+'9'; D)ch=5+9
9、有輸入語句:scanf("a=%d,b=%d,c=%d",&a,&b,&c),為使變數a的值為1.b為3,c為2,從鍵盤輸入數據的正確形式應當是__d____。 // 答案是d,輸入應該和scanf格式一致
A)132<回車>
B)1,3,2<回車>
C)a=l b=3c=2<回車>
D)a=1,b=3,c=2<回車>
10、邏輯運算符兩側運算對象的數據類型___D__。
A)只能是0或l
B)只能是0或非0正數
c)只能是整型或字元型數據
D)可以是任何類型的數據

⑻ c語言下面哪個選項是正確的

C:
不規定一般默認是6位小數,不是必須規定
D:
你所說的指針和數組本身就代表變數地址。加&是取變數的地址,並不代表不加&不是代表地址。
其實指針也是變數,也可以加地址,變數也可以不加&,也能編譯,不過運行會出錯,因為它會把變數值當地址,就非法地址訪問

⑼ 求C語言試題

《C語言》綜合練習題一
注意:以下 「□」為空格,<CR>為回車
一、 單選題
1、閱讀以下程序,當輸入數據的形式為:25,13,10 <CR>,正確的輸出結果為( )
void main( )
{ int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);}
A) x+y+z=48 B) x+y+z=35 C) x+y+z=38 D) 不確定值
2、下面程序的輸出是( )
void main()
{ int y=0;
while(y--);
printf("y=%d\n",y); }
A) y=0 B) while 構成無限循環 C) y=-1 D) y=1
3、在以下各組標識符中,合法的用戶標識符是( )。
A) xy_ B) longdouble C) *p D) CHAR
變數1 signed history Float
4、以下能正確計算1*2*3…*10的程序段是( )
A) do { i=1;s=1;s=s*i;i++;}while (i<=10);
B) do {i=1;s=0;s=s*i;i++;} while(i<=10);
C) i=1;s=1; do{ s=s*i;i++;}while (i<=10);
D) i=1;s=0; do{ s=s*i;i++;}while (i<=10);
5、在下列各m的值中,能使表達式m%3==2 &&m%5==3 && m%7==2為真的是( )
A) 8 B) 23 C)17 D) 6
6、運行以下程序後,如果從鍵盤上輸入 china#<回車>,則輸出結果為( )
A) 2,3 B) 3,5
C) 5,2 D) 2,5
#include <stdio.h>
void main()
{ int v1=0,v2=0; char ch;
while((ch=getchar())!='#')
switch(ch)
{ case 'a':
case 'h': v1++;
default: v2++;
}
printf("%d,%d\n",v1, v2);
}
7、有如下程序
void main( )
{ int i,sum=0;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
該程序的執行結果是( )
A) 6 B) 3 C) 死循環 D) 0
8、能正確表示a和b 同時為正或同時為負的邏輯表達式是( )
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
9、下列定義數組正確的是( )
A) #define size 10 B) int n=5;
char str1[size],str2[size+2]; int a[n][n+2];
C) char str[]; D) int num['10'];
10、以下程序的功能是計算:s= 1+1/2+1/3+… …+1/10
void main()
{ int n; float s
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序運行後輸出結果錯誤,導致錯誤結果的程序行是
A)s=1.0; B)for(n=10;n>1;n--)
C)s=s+1/n; D)printf("%6.4f\n",s);
11、以下說法正確的是( )
A) 輸入項可以為一個實型常量,如scanf("%f",3.5);
B) 只有格式控制,沒有輸入項,也能進行正確的輸入,如scanf("a=%d,b=%d");
C) 當輸入一個實型數據時,格式控制部分應規定小數點後的位數,如scanf("%4.2f",&f);
D) 當輸入數據時,必須指明變數的地址,如scanf("%f",&f);
12、設x=2.5、a=7,則算術表達式x+2*++a/3%3的值為( )。
A) 2.5 B)3.5
C) 4.5 D)5.5
13、若有說明:int a[3][4]={0}; 則下面正確的敘述是( )
A) 只有元素a[0][0]可得到初值0
B) 此說明語句不正確
C) 數組a中個元素都可以得到初始值,但其值不一定為0
D) 數組a中個元素都可得到初值0
14、設a=3,b=4,c=5, 則表達式 !(a+b)+c-1&&b+c/2的值為( )。
A)6.5 B) 6
C) 0 D)1
15、在下列有關#include命令的敘述中,錯誤的一條是( )
A)在#include命令中,文件名可以用雙引號或尖括弧括起來
B)在一個包含文件中又可以包含另一個被包含文件
C)在一個#include命令中可以指定一個包含文件
D)在一個#include命令中可以指定多個包含文件
16、以下不正確的if語句形式是( )
A) if(x>y && x!=y);
B) if( x= = y) x+=y;
C) if (x!=y) scanf("%d",&x) else scanf("%d",&y);
D) if(x<y) {x++;y++;}
17、有如下程序
void main()
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++
case 2: a++;b++
}
printf("a=%d,b=%d\n ",a,b);
}
該程序的輸出結果是
A) a=2,b=1 B) a=1,b=1
C) a=1,b=0 D) a=2,b=2
18、閱讀以下程序:
void main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
程序運行後,如果從鍵 盤上輸人5,則輸出結果是
A)3 B) 4 C) 5 D) 6
19、請閱讀以下程序:
void main( )
{ int a=5,b=0,c=0;
if(a=b+c) printf("***\n");
else printf("$$$\n");
}
以上程序( )
A) 有語法錯誤不能通過編譯 B) 可以通過編譯但不能通過連接`
C) 輸出 *** D) 輸出$$$
20、執行以下程序段時 ( )
x=-1; do {x=x*x; } while(! x);
A) 循環體將執行一次 B) 循環體將執行兩次
C) 循環體將執行無限次 D) 系統將提示有語法錯誤
21、若x是int型變數,且有下面的程序片段:
for(x=3; x<6; x++) printf((x%2)?("**%d"):("##%d\n"),x);
上面程序片段的輸出結果是
A) **3 B) ##3 C) ##3 D) **3##4
##4 **4 *4##5 **5
**5 ##5
22、以下敘述中不正確的是( )。
A. 一個好的程序應該有詳盡的注釋
B.C程序中的#include和#define均不是C語句
C. 在C程序中,賦值運算符的優先順序最低
D. 在C程序中,j++;是一條賦值語句二、 填空題
1、其後標有/* */的語句的執行次數是【 】
int y,i;
for(i=0;i<20;i++)
{
if(i%2==0) continue;
y+=i; /* */
}
2、下面程序的功能是從鍵盤輸入的10個數中,找出第一個能被7整除的數。若找到,列印此數後退出循環;若未找到,列印"not exist"。 請填空。
main( )
{ int n,a;
for(n=1; n<=10; n++)
{ scanf("%d",&a);
if(a%7==0) { printf("%d",a); 【 】;}
}
if (n==【 】) printf("not exist\n");
}
3、設i、j、k均為int型變數,則執行下面語句後k的值為【 】:
for(i=0, j=10, k=0; i<j; i++, j--)
k+=i+j;
4、. 以下程序是計算某年某月有幾天。判斷閏年的條件是:能被4整除但不被100整除或能被400整除的年份為閏年。
void main( )
{ int yy,mm,len;
printf(「輸入年份和月份:」);scanf(「%d%d」,&yy,&&mm);
switch(mm)
{ case 1: case 3: case 5: case 7: case 8: case 10: case 12: len=31 ; break;
case 4: case 6: case 9: case 11: len=30; break;
case 2:
if(【 】) len=29;
else len=28 ;
break;
default: printf(「輸入得月份無效!\n」);
}
printf(「%d年%d月有%d天\n」, 【 】);
}
5、下面程序讀入20個整數,然後統計非負數的平均值。
main ( )
{ int i, a[20], s, count;
s=count=0;
for ( i=0; i<20; i++ )
scanf (" %d" , 【 】 );
for ( i=0; i<20; i++ )
if ( a[i]>=0 ) {【 】; count++; }
printf ("ave=%f\n" , 【 】);
}
6、下面程序為求最小正整數n,使調和級數前n項之和大於預先給定的實數a。
> a,
main( ){
int n=0;
float s=0.0;
while (【 】) { 【 】; n++; }
print("「所求的數值為%f\n" ,s);
}
7、設數組a的元素均為正整數,以下程序是求a中偶數的個數和偶數的平均值。請填空。
main( )
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int k,s i;float ave;
for(k=s=i=0; i<10;i++)
{ if ( a[i]%2 !=0) 【 】;
s+=【 】;
k++;
}
if(k!=0) { ave=s/k; printf("%d,%d\n", k,ave);}
}
8.下面的程序輸出是【 】。
void main( ) {
int a=7, b=5;
printf("%d\n",b=a/b);
}
9. 若a=2,b=4,則表達式 !(x=a)||(y=b) && 0 的值是【 】.
10. 下面程序的運行結果是 【 】。
main()
{ int a[5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++) a[i][j]=n++;
printf("The result is \n");
for(i=0;i<3;i++)
{ for(j=0;j<=i;j++) printf("%3d",a[i][j]);
printf("\n");
}
}
11. .以下程序實現輸出x,y, z三個數中的最大者。
void main( )
{ int x,y,z,u;
scanf(「%d%d%d」,&x,&y,&z);
if【 】u=z; else u=y;
if【 】 u=x;
printf(「最大為:%d\n」,u);
}
12、以下程序的運行結果是【 】
void main()
{ int a1,a2,b1,b2; int i=5,j=7,k=0;
a1 = !k; a2=i!=j;
printf("a1=%d\ta2=%d\n",a1,a2);
b1=k &&j; b2= k||j;
printf("b1=%d\tb2=%d\n",b1,b2);
}
13、下面程序的運行結果是【 】。
void main()
{ int k,t,sum=0;
for(t=k=1; k<=10;)
{ sum+=t; ++k;
if(k%3==0) t=-k;
else t=k;
}
printf("sum=%d",sum);
}
14、下面程序的功能是輸入5個整數, 找出最大數和最小數所在的位置,並把二者對調,然後輸出調整後的5個數。請填空。
void main()
{ int a[5], max,min,i,j.k;
for(i=0;i<5;i++) scanf("%d",&a[i]);
min=a[0];max=a[0];
for(i=1;i<5;i++)
if((a[i]<min) {min=a[i];【 】;}
for(i=1;i<5;i++)
if((a[i]>max) {max=a[i];【 】;}
【 】;
printf("\n The position of min is : %3d\n",k);
printf("The position of max is: %3d\n",j);
for(i=0;i<5;i++) printf("%5d",a[i]);
}
15、變數x不小於1且小於10的表達式是【 】。
16、若有int ⅰ=10, j=0;
則執行完語句if (j=0)ⅰ+ +; else ⅰ- -; 後變數ⅰ的值為【 】。
17、下面程序段的運行結果是【 】。
x=2;
do { printf("*"); x--;} while(!x==0);
18.輸入以下數據:
How are you?<回車>
則下面程序段的執行結果是: 【 】。
#include <stdio.h>
main( )
{ while (putchar(getchar( )) !='?');
}
19、main( )
{ int number=3;
while(――number>0) printf(「*%d,」, number);
printf(「**%d」, number);
}
這個程序的輸出結果是:【 】。
20.華氏和攝氏的轉換公式為C=5/9*(F-32),其中C表示攝氏的溫度,F表示華氏的溫度。以下程序輸出從華氏0度到華氏300度,每隔20度輸出一個值,請填空。
main( )
{ int upper, step;
float fahr=0, celsius;
upper=300; step=20;
while (fahr <upper)
{ 【 】 ;
printf ("%4.Of, %6.1f\n", fahr, celsius);
【 】 ;
} }
21、求下列數列前20項之和

main( )
{ int i,f1=1,f2=2; float s=0.0;
for(【 】)
{ s=s+(float)f2/f1;
f2=f1+f2;
f1= 【 】。 ;
}
printf("%f\n",s);
}
22、程序讀入50個整數,統計非負數個數,並計算非負數之和。
#include " stdio.h"
main ( )
{ int i, a[50], s, count;
s=count=o;
for ( i=0; i<20; i++ )
scanf (" %d" , 【 】);
for ( i=0; i<20; i++ )
{ if ( a[i]<0 ) 【 】;
s += a[i];
count++;
}
printf ("s=%d\t count=%d\n" , s, count);
}
三、編程題(類似課本習題,如)
1. 按下面的近似公式計算
s = 1/1 -1/2 +1/3 - … +(-1)n-11/n +…
使誤差小於給定的e .
(其他略)
參考答案:
一、 單項選擇題
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
D C D C B C C D A C D C D D D C A B D C D C二、 填空題
1 2 3 4 5 6
10
break
11 50 (yy%4==0&&yy%100!=0||yy%400==0)
yy, mm, len &a[i]
s=s+a[i]
(float)s/conut s<=a
s=s+1.0/n7 8 9 10 11 12
continue
a[i]
1 0 The result is:
1
6 7
11 12 13 z>y
x>u
a1=1 a2=1
b1=0 b2=113 14 15 16 17 18
sum=19
j=i
k=i
a[j]=max;a[k]=min; (x>=1) && ( x<10) 9 ** How are you?19 20 21 22
*2, *1 , **0 Celsius=5/9*(fahr-32)
fahr+=step i=1;i<=20;i++ f2-f1 &a[i]
continue 三、 編程題 (答案不唯一!)#define E 1E5
void main( )
{
int n=1,k=-1;
float s=0;
do{
k=-k;
s=s+(float)k/n;
n++;
while(n<=E);
printf(「s=%f\n」, s2);
}