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 個位元組,雖然你加入了一個結束符,但 因...