若已有定義intmn則m為奇數或者n為奇數的表示式為

時間 2021-06-18 03:52:01

1樓:糜含之

neusoft

《c語言程式設計》習題集

《c程式設計》習題集

第一章c語言基礎知識

1.1 填空題

1.要把高階語言編寫的源程式轉換為目標程式,需要使用

a) 編輯程式 b) 驅動程式 c) 診斷程式 d) 編譯程式

2. 若有說明語句:int a,b,c,*d=&c;,則能正確從鍵盤讀入三個整數分別賦給變數a、b、c的語句是

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

3.以下選項中合法的使用者識別符號是______。

a) long b) _2test c) 3dmax d) a.dat

4.設a和b均為double型常量,且a=5.5、b=2.5,則表示式(int)a+b/b的值是______。

a) 6.500000 b) 6 c) 5.500000 d) 6.000000

5.已知i、j、k為int型變數,若從鍵盤輸入:1,2,3《回車》,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是______。

6.c語言程式的執行,總是起始於()。

a) 程式中的第一條可執行語句

b) 程式中的第一個函式

c) main函式

d) 包含檔案中的第一個函式

7.下列說法中正確的是()

a) c程式書寫時,不區分大小寫字母

b) c程式書寫時,一行只能寫一個語句

c) c程式書寫時,一個語句可分成幾行書寫

d) c程式書寫時每行必須有行號

8.若有說明語句:int a; float b;,以下輸入語句正確的是()

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

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

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

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

9.以下程式的輸出結果是()

main( )

a) 11,11 b) 10,10 c) 10,11 d) 11,10

10.執行下面程式段,給x、y賦值時,不能作為資料分隔符的是()

int x,y;

scanf("%d%d",&x,&y);

a) 空格 b) tab鍵 c) 回車 d) 逗號

11.執行下面程式時,欲將25和2.5分別賦給a和b,正確的輸入方法是。

int a;

float b;

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

a) 25□2.5

b) 25,2.5

c) a=25,b=5.5

d) a=25□b=2.5

12.英文小寫字母d的ascii碼為100,英文大寫字母d的ascii碼為

a) 50 b) 66 c) 52 d) 68

13.以下定義語句中錯誤的是( )。

a)int a=3,b=5; b)float x1; x2;

c)char c1,c2,c3; d)double y3, y4;

14.若將整數4和5賦給整型變數a和b,對於語句scanf("%d%d" , &a,&b);在從鍵盤輸入資料時,正確的資料輸入格式為( )。

a)4,5 b)4 5 c)4:5 d)4#5

15.若整型變數a和b的值分別為6和8,則下列語句printf("a=%d,b=%d",a,b); 的輸出結果為( )。

a)6, 8 b)6 8 c)a=6 b=8 d)a=6, b=8

16.c語言中的字元常量是以( )括起來的一個字元。

a)雙引號 b)單引號 c)\……\ d)*……*

17.c語言中的轉義字元\n的作用是( )。

a)回車換行 b)橫向跳格

c)縱向跳至本列下行 d)將游標移至本行行首

18.若有定義:int a=8,b=5,c;,執行語句c=a/b+0.4;後,c的值為

a) 1.4 b) 1 c) 2.0 d) 2

19.如果要把常量327存入變數a中,a可以定義成哪些型別?(多選)

a. int b. char

c. long d. float

20.下面哪個表示式的值為4.(單選)

a. 11/3 b. 11.0/3

c. (float)11/3 d. (int)(11.0/3+0.5)

#include

#include

main( )

a).9.800000 b).9.300000 c).8.500000 d).8.000000

21.main( )

a).0 b).1 c).3 d).不確定的值

22.main( )

a).65 b).20 c).15 d).10

23.已知小寫字母a的ascii碼為97,大寫字母a的ascii碼為65。以下程式

main()

的結果為:

a).66 b).98 c).b d).b

24.設有如下定義

int x=10,y=3,z;

則語句printf("%d\n",z=(x%y,x/y));

的輸出結果是

a).1 b).0 c).4 d).3

25.#define sqr(x) x*x

main()

a).10 b).1 c).9 d).0

26.#define max(x, y) (x)>(y)?(x):(y)

main()

的執行結果為:

a).500 b).5 c).3 d).300

27.以下程式的輸出結果是

main()

a).10 10 b).9 9 c).0 10 d).10 9

28.語句:printf("%d",(a=2)&&(b= -2));的輸出結果是

a).無輸出 b).結果不確定 c).-1 d).1

33、當c的值不為0時, 能正確將c的值賦給變數a、b

a).c=b=a;

b).(a=c)||(b=c)

c).(a=c)&&(b=c)

d).a=c=b

29.能正確表示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

30.下面合法的賦值語句是

a) x+y=2002; b) ch="green"; c) x=(a+b)++; d) x=y=0316;

31.下面哪個表示式的值為4.(單選)

a. 11/3 b. 11.0/3

c. (float)11/3 d. (int)(11.0/3+0.5)

32.已知a為整型變數,那麼與表示式 a!=0 真假值情況相同的表示式有哪些?(多選)

a. a>0||a<0 b. a

c. !a= =0 d. !a

33.以下非法的賦值語句是

a) n=(i=2,++i); b) j++; c) ++(i+1); d) x=j>0;

34.若有以下程式:

main()

執行後的輸出結果是______。

a) 8,6 b) 8,3 c) 6,4 d) 7,4

35.已有定義:int x=3,y=4,z=5;,則表示式!(x+y)+z-1&&y+z/2的值是______。

a) 6 b) 0 c) 2 d) 1

36.以下程式的輸出結果是

main()

a) -6 b)12 c) 0 d) –12

37.設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的值為

a) 0 b) 1 c)2 d) 3

38.假定w、x、y、z、m均為int型變數,有如下程式段:

w=1; x=2; y=3; z=4;

m=(wb?(a>c?a:c):(b));

}7.以下程式的輸出結果是。

main()

8.當a=3,b=4,c=5時,寫出下列各式的值。

ac&&b==c的值為___。

9.整型變數a的值是5,表示式a/=a+a;的值。

10.已知a=3,b=4,c=5,邏輯表示式a||b+c&&b-c的值

11.已知a=3,b=4,c=5,邏輯表示式!(a>b)&&!c||1的值

1.3 程式設計題

1.編寫程式:在螢幕上顯示一句話「hello neusoft!」。

2.編寫程式在螢幕上輸出如下圖型:

****

*****

*******

3.已知圓的半徑是5.6,求其直徑、周長、面積並輸出。

4.從鍵盤輸入圓的半徑,求其直徑、周長、面積並輸出。

5.編寫程式求任意圓的體積

6.求任意一元二次方程度兩個實根。

第二章 順序程式結構設計

2.1 填空題

1.計算機語言提供三種基本控制結構,即,,。人們提倡使用這三種結構編寫程式,並稱這樣的程式設計為。

2.2 程式設計題

1.從鍵盤輸入5個整數,求它們的和、平均值並輸出。

2.編寫程式,從鍵盤輸入兩個整數分別存放在變數c1,c2中,要求通過程式交換它們的值。

第三章 分支結構程式設計

3.1 填空題

1.能正確表示「當x的值在[1,10]和[200,210]範圍內為真,否則為假」的表示式是()。

a)(x>=1)&& (x<=10) && (x>=200) || (x<=210)

b)(x>=1)|| (x<=10) || (x>=200) || (x<=210)

c)(x>=1)&& (x<=10) || (x>=200) && (x<=210)

d)(x>=1)|| (x<=10) && (x>=200) || (x<=210)

2.判斷char型變數ch是否為大寫字母的正確表示式是()。

a)』a』<=ch<=』z』 b) (ch>=』a』) & (ch<=』z』)

c) (ch>=』a』) && (ch<=』z』) d)(『a』<=ch) and (『z』>=ch)

3.請閱讀以下程式:

main()

以上程式()。

a) 有語法錯誤不能通過編譯 b) 可以通過編譯但不能通過連線

c) 輸出*** d) 輸出$$$

4.當a=1,b=3,c=5,d=4時,執行完下面一段程式後x的值是()。

if (a12?x+10:x-12;

printf(「%d\n」, y);

}a) 0 b) 22 c) 12 d) 10

3.2 填空題

1.輸入一個字元,如果它是一個大寫字母,則把它變成小寫字母;如果它是一個小寫字母,則把它變成大寫字母;其它字元不變。請在橫線上填寫正確的內容。

main()

2.以下程式實現:輸入三個整數,按從大到小的順序進行輸出。請在橫線上填寫正確內容。

main()

3.以下程式的執行結果是。

main()

4.下面程式根據以下函式關係,對輸入的每個x值,計算出y值。請在橫線上填寫正確內容。

x y2

main()

a) (int)(i/7)==i/7 b) (int)i/7==i/7

c) i%7= 0 d) i%7==0

3.下面程式段的執行結果是

a=1;b= 2;c=2;

while(a

main()

printf("偶數之和=%d\n",a);

printf("奇數之和=%d\n",c-11),

}a)b=i-- b) b=i+1 c)b=i++ d)b=i-1

5.下面程式段:

for (t=1; t<=100;t++)

a) 當x<0時整個迴圈結束

b) x>=0時什麼也不輸出

c) printf函式永遠也不執行

d)最多允許輸出100個非負整數

6.下面程式的執行結果是:

#include "stdio.h"

main()

printf("#");}

a) *#*#$ b) #*#*#*$ c) *#*#$ d)#*#*$

7.設有程式段

int k=10;

while(k=5) k=k-1;

則下面描述正確的是

a)while迴圈執行10次 b)是死迴圈

c)迴圈語句一次也不執行 d)迴圈體語句執行一次

8.以下程式執行後的輸出結果是________。

main()

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

}4.2 程式設計題

1.求1~1000內所有能被3整除的整數,所有數右對齊,每行輸出10個數,每屏輸出20行。

2.從鍵盤上接受10個數,求和。要求:

(1)、先提示「請輸入第1個數:」 ,輸入第一個數後再提示「請輸入第2個數」,依次類推;

(2)、輸入完十個數後,輸出十個數求和的結果。

3.求n! ,n的值從鍵盤輸入.

4.從鍵盤上輸入一個正整數(vc下少於10位,wintc下小於32767),求其各數位之和.

5.從鍵盤輸入10個數,找出其中最大的數。分別用while和for語句實現。

6.輸出2~100(不含100)之間的全部同構數。所謂同構數是指:如果某數與其右起若干位的平方數相等,則稱該數為同構數。

7.編寫輸出以下圖形的程式(要求行數從鍵盤輸入)。112

1231234

12345

123456

……8.計算200以內的所有素數的和。

5.1 選擇題

1.以下對一維陣列a的正確說明是( )

(a)int a(10);

(b)int n=10,a[n];

(d)#define size 10

int a[size];

2.對以下說明語句的正確理解是( )

int a[10]=;

(a)將5個初值依次賦給a[1]至a[5]

(b)將5個初值依次賦給a[0]至a[4]

(c)將5個初值依次賦給a[6]至a[10]

(d)因為陣列長度與初值的個數不相同,所以此語句不正確

3.下面程式的執行結果是( )

char c[5]=; printf(「%s」,c);

(a)ab (b)abc (c)abc+亂碼 (d)ab\0c\0

4.對兩個陣列a和b進行如下初始化

char a=」abcdef」;

char b=;

則以下敘述正確的是 ( )

(a)a與b陣列完全相同 (b)a與b長度相同

(c)a和b中都存放字串 (d)a陣列比b陣列的長度長

5.下面是對s的初始化,其中不正確的是( )

(a)char s[5]=; (b)char s[5]=;

(c)char s[5]=」」; (d)char s[5]=」abcdef」;

6.以下程式執行的結果是( )

char s[6];

s=」abcd」;

printf(「%s\n」,s);

(a)」abcd」 (b)abcd (c)abcd+亂碼 (d)編譯出錯

7.若有說明語句char u=」microsoft」,則陣列的大小是( )

(a)100 (b)80 (c)10 (d)9

8.以下不正確的定義語句是 ( )

(a)double y[5]=;

(b)int y[5]=;

(c)char c=;

(d)char c=;

9.當執行下面的程式時,如果輸入abc,則輸出結果是( )

a) abc6789 b) abc67 c) 12345abc6 d) abc456789

#include "stdio.h"

#include "string.h"

main()

10.下列程式段的輸出結果是 。

main()

11. 以下程式的輸出結果是( )

main()

a) 258 b) 741 c) 852 d) 369

12.在定義int a[10];之後,對a的引用正確的是( )。

a.a[10] b.a[6.3] c.a(6) d.a[10-10]

13.以下對一維陣列a進行正確初始化的是( )。

a.int a[10]=(0,0,0,0,0); b.int a[10]={};

c.int a=; d.int a[10]=;

14.以下對字元陣列word進行不正確初始化的是( )。

a.char word=』trubo\0』;

b.char word=;

c.char word=;

d.char word=」trubo\0」;

15.以下正確的定義語句是( )。

a.int a[『a』]; b.int a[3,4]; c.int a[3]; d.int a[10];

16.以下給字元陣列str定義和賦值正確的是( )。

a.char str[10]; str=;

b.char str=;

c.char str[10]; strcpy(str,「abcdefghijklmnop」);

d.char str[10]=;

17.在執行char str[10]=」china\0」; strlen(str)的結果是( )。

a.5 b.6 c.7 d.9

18.在執行char str[10]=」ch\nina\0」; strlen(str)的結果是( )。

a.5 b.6 c.7 d.9

19.當接受使用者輸入的含空格的字串時,應使用( )函式。

a.scanf() b.gets() c.getchar() d.getc()

20.當輸出含空格的字串時,應使用( )函式。

a.printf() b.puts() c.putchar() d.putc()

5.2 填空題

1. 若有定義語句char c[10]=」hello」,s=」world」;,則字元陣列c的長度為,字元陣列c的長度為,字串」hello」的長度是,字串「world」的長度為_。

2. 字串」hello,world!」的長度為,若有說明語句char s=」hello,world!」,則陣列s的大小是。

3.以下程式執行時輸入language programming《回車》的結果是。

#include

main( )

4.以下程式執行時輸入language programming《回車》的結果是。

#include

main( )

5.以下程式的執行結果是。

#include

main( )

printf(「s=%d\n」, s);

}6.以下程式的執行結果是。

#include

main( )

5.3 程式設計題

1.從鍵盤輸入5個整數,儲存到陣列a中,先正序輸出再逆序輸出

2.從鍵盤輸入6個整數儲存到陣列中,求值最大的元素,將這個值最大的元素與陣列的最後一個元素交換。最後輸出整個陣列

3.從鍵盤輸入8個整數儲存到陣列中,運用選擇法按從大到小排序後輸出陣列。

4.程式設計實現:從鍵盤輸入10個字元,儲存到字元型一維陣列str中,再從鍵盤上輸入另一個字元ch,要求將str中出現的第一個ch字元刪除。將刪除ch後的陣列str輸出到螢幕上。

5.編寫程式實現:將兩個字串陣列進行交換。

6.程式設計求兩個3×4 (3行4列)矩陣之和,然後輸出(矩陣元素的值從鍵盤輸入)

7.定義一個4行5列的二維整型陣列,對其進行賦值,然後從該陣列中選擇出一個最小數及該數的下標值(行和列的下標值都要記錄)。

c語言程式 定義二維陣列int m 3並初始化,完整題目如下

include int main void file fp 寫入操作 fp fopen data w 以只寫方式開啟檔案 fwrite m,sizeof m 1,fp 寫入資料 fclose fp 關閉檔案 開啟操作 int newm 3 3 int i,j fp fopen data r 以只讀方...

已有定義int i float f1,f2執行scanf2f 3d ff1,i,f2 時,輸入

墨汁諾 45.000000,少了兩個0。scanf 3d f 3d 就是擷取前三位放在x裡面,那麼45就賦值給了y 又因為float預設有效位數是6,所以 結果少了兩個0。scanf中的 3d代表只接收前三個數字。所以是123,又因為scanf中輸入格式為 3d f,所以遇到空格的時候就會停止,即當...

c語言填空若字元陣列定義為char aancdn

金色潛鳥 char a ancdn 0 字串長度為 5。因為 字串長度 算到 字串結束符 以前,不包括 字串結束符。例如 123456 089abcd 0 字串長度計算到第一次遇到的結束符 0,長度是 6,後面不算。char a ancdn 0 佔記憶體 7 個位元組,雖然你加入了一個結束符,但 因...