- C語言程序設(shè)計習(xí)題與實驗指導(dǎo)
- 孟東霞主編
- 2904字
- 2025-04-02 16:22:10
2.3 測試題
一、單項選擇題
1. 以下選項中正確的整型常量是( )。
A. 5.
B. ?10
C. 1.000
D. 4/5
2. 不合法的八進制數(shù)是( )。
A. 0
B. 028
C. 07700
D. 01
3. 不合法的十六進制數(shù)是( )。
A. oxff
B. 0Xabc
C. 0x11
D. 0x19
4. 以下選項中不正確的實型常量是( )。
A. 2.670E?1
B. 0.05e+1.5
C. ?77.77
D. 456e?2
5. 與十進制數(shù)97不等值的字符常量是( )。
A. 'a'
B. '\101'
C. '\x61'
D. '\141'
6. 以下選項中合法的用戶標(biāo)識符是( )。
A. wb?1
B. file
C. Main
D. PRINTF
7. 可在C程序中用作標(biāo)識符的一組標(biāo)識符是( )。

8. C語言中的簡單數(shù)據(jù)類型有( )。
A. 整型、實型、邏輯型
B. 整型、實型、字符型
C. 整型、字符型、邏輯型
D. 整型、實型、邏輯型、字符型
9. C語言中,字符型(char)數(shù)據(jù)在內(nèi)存中的存儲形式是( )。
A. 反碼
B. 補碼
C. EBCDIC碼
D. ASCII碼
10. C語言中不合法的字符常量是( )。
A. '\xff '
B. '\65'
C. '&'
D. '\028'
11. C語言中不合法的字符串常量是( )。
A. "\121"
B. 'y='
C. "\n\n"
D. "ABCD\x6d"
12. 設(shè)有語句char a='\172';,則變量a( )。
A. 包含1個字符
B. 包含2個字符
C. 包含3個字符
D. 說明不合法
13. Turbo C中int類型變量所占字節(jié)數(shù)是( )。
A. 1
B. 2
C. 3
D. 4
14. C語言中運算對象必須是整型的運算符是( )。
A. %
B. /
C. *
D. +
15. 若變量已正確定義并賦值,符合C語言語法的表達式是( )。
A. a=a+7;
B. a=7+b+c,a++
C. int(12.3%4)
D. a=a+7=c+b
16. 以下非法的賦值語句是( )。
A. n=(i=2,++i);
B. j++;
C. ++(i+1);
D. x=j>0;
17. 設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是( )。
A. 6.500000
B. 6
C. 5.500000
D. 6.000000
18. 已有定義:int x=3, y=4, z=5;,則表達式!(x+y)+z?1&&y+z/2的值是( )。
A. 6
B. 0
C. 2
D. 1
19. 若有以下程序段,c3中的值是( )。
int c1=1, c2=2, c3; c3=c1/c2;
A. 0
B. 1/2
C. 0.5
D. 1
20. 以下敘述中正確的是( )。
A. a是實型變量,C允許以下賦值a=10,因此可以這樣說,實型變量中允許存放整型值
B. 在賦值表達式中,賦值號右邊既可以是變量,也可以是任意表達式
C. 執(zhí)行表達式a=b后,在內(nèi)存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?
D. 已有a=3, b=5。當(dāng)執(zhí)行了表達式a=b、b=a后,則a中的值為5,b中的值為3
21. 若a、b、c、d都是int類型變量且初值為0,以下選項中不正確的賦值語句是( )。
A. a=b=c=100;
B. d++;
C. c+b;
D. d=(c=22)?(b++);
22. 在以下選項中,不是C語句的是( )。
A. {int i; i++; printf("%d\n", i); }
B. ;
C. a=5, c=10
D. { ; }
23. 以下合法的C語言賦值語句是( )。
A. a=b=58
B. k=int(a+b);
C. a=58, b=58
D. ??i;
24. 以下程序的輸出結(jié)果是( )。
void main() { int x=10, y=3; printf("%d\ n", y=x/y ); return 0; }
A. 0
B. 1
C. 3
D. 不確定的值
25. 若已定義變量為int類型,要給a、b、c輸入數(shù)據(jù),以下輸入語句正確的是( )。
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);
26. 若已定義變量為float類型,要將a賦值10、b賦值22、c賦值33,以下不正確的輸入形式是( )。
scanf("%f %f %f", &a, &b, &c);

27. 已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i值為1、j值為2、k值為3,在以下選項中,正確的輸入語句是( )。
A. scanf("%2d%2d%2d", &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);
28. 若有以下程序:
void main() { int k=2, i=2, m; m=(k+=i*=k); printf ("%d, %d\ n", m,i); return 0; }
執(zhí)行后的輸出結(jié)果是( )。
A. 8, 6
B. 8, 3
C. 6, 4
D. 7,4
29. 若變量已正確定義,要將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;
30. 有以下程序:
void main() { int i=10, j=1; printf("%d,%d \ n", i ??, ++j); return 0; }
執(zhí)行后輸出結(jié)果是( )。
A. 9, 2
B. 10, 2
C. 9, 1
D. 10, 1
31. 若變量已正確定義,以下程序段的輸出結(jié)果是( )。
x=5.16894; printf("%f\ n", (int)(x*1000+0 . 5)/(float)1000);
A. 輸出格式說明與輸出項不匹配,輸出無定值
B. 5.17000
C. 5.168000
D. 5.169000
32. 若有以下程序段,其輸出結(jié)果是( )。
int a=0, b=0, c=0; c=( a?=a?5), (a=b, b+3); printf("%d, %d, %d\ n", a,b,c);
A. 0, 0, ?10
B. 0, 0, 5
C. ?10, 3, ?10
D. 3, 3, ?10
33. 當(dāng)運行以下程序時,在鍵盤上從第一列開始,輸入9876543210<回車>,則程序輸出的結(jié)果是( )。
void main() { int a; float b, c; scanf("%2d%3f%4f", &a, &b, &c); printf(" \ na=%d, b=%f, c=%f\ n", a, b, c); }
A. a=98, b=765, c=4321
B. a=10, b=432, c=8765
C. a=98, b=765.000000, c=4321.000000
D. a=98, b=765.0, c=4321.0
34. 以下程序的輸出結(jié)果是( )。
void main() { int a=2, b=5; printf("a=%%d, b=%%d\ n", a, b); reture 0; }
A. a=%2, b=%5
B. a=2, b=5
C. a=%%d, b=%%d
D. a=%d, b=%d
35. 若int類型占兩個字節(jié),則以下程序段的輸出是( )。
int a= ?1; printf("%d, %u\ n", a, a);
A. ?1, ?1
B. ?1, 32767
C. ?1, 32768
D. ?1, 65535
36. 以下程序段的輸出是( )。
int x=496; printf("*%?06d*\ n", x);
A. *496 *
B. * 496*
C. *000496*
D. 輸出格式不合法
37. 以下程序段的輸出是( )。
float a=3.1415; printf("|%6.0f|\ n", a);
A. |3.1415|
B. | 3.0|
C. | 3|
D. | 3.|
38. 以下程序段的輸出是( )。
printf("|%10.5f| \ n", 12345.678);
A. |2345.67800|
B. |12345.6780|
C. |12345.67800|
D. |12345.678|
39. 若從終端輸入以下數(shù)據(jù),要給變量c賦值283.19,則正確的輸入語句是( )。
A. scanf("%f", c);
B. scanf("%8.4f", &c);
C. scanf("%6.2f", &c);
D. scanf("%8f", &c);
40. 若變量已正確聲明,要給a賦值3.12、給b賦值9.0,則正確的輸入形式是( )。
scanf("a=%f, b=%f", &a, &b);
A. 3.12 9.0
B. a=3.12b=9
C. a=3.12, b=9.0
D. a=3.12 , b=9
41. 以下程序的輸出結(jié)果是( )。
#include <math.h> void main() { double a= ?3.0, b=2; printf("%3.0f %3.0f\ n", pow(b,fabs(a)), pow(fabs(a), b) ); }
A. 9 8
B. 8 9
C. 6 6
D. 以上三個都不對
42. 以下程序的輸出結(jié)果是( )。
void main() { char c1='A', c2 = 'Y'; printf("%d, %d\ n", c1, c2); }
A. 因輸出格式不合法,無法正確輸出
B. 65, 90
C. A, Y
43. 以下程序段的輸出結(jié)果是( )。
D. 65, 89
void main() { char ch1, ch2; ch1 = 'A' + '5' ? '3'; ch2 = 'A' + '5' ? '3'; printf("%d, %c\ n", ch1,ch2); }
A. 67, C
B. B, C
C. C, D
D. 不確定的值
44. 若變量已正確聲明,要求用以下語句給c1賦值字符%、給c2賦值字符#、給a賦值2.0、給b賦值4.0,則正確的輸入形式是( )。
scanf("%f%c%f%c", &a, &c1, &b, &c2);
A. 2.0 % 4.0 #
B. 2.0%4.0#
C. 2 % 4#
D. 2 %4 #
45. 下列程序段的輸出結(jié)果是( )。
int a=1234; float b=123.456; double c=12345.54321; printf ("%2d,%2.1f,%2.1f ", a,b,c);
A. 無輸出
C. 1234,123.5,12345.5
B. 12,123.5,12345.5
D. 1234,123.4,1234.5
二、填空題
1. 若k為int型變量且賦值11,請寫出運算k++后表達式的值______和變量的值______。
2. 若x為double型變量,請寫出運算x=3.2,++x后表達式的值______和變量的值______。
3. 在C語言程序中,用關(guān)鍵字______定義基本整型變量,用關(guān)鍵字______定義單精度實型變量,用關(guān)鍵字______定義雙精度實型變量。
4. 把a1、a2定義成單精度實型變量,并賦初值1的說明語句是______。
5. C程序中定義的變量,代表內(nèi)存中的一組______。
6. 表達式3.5+1/2的計算結(jié)果是______。
7. 對于數(shù)學(xué)式,寫出3個等價的C語言表達式是:______、______、______。
8. 表達式s=10應(yīng)當(dāng)讀作“______”。
9. 計算機中內(nèi)存儲器的最小單位稱為______,其中能容納的數(shù)是______。
10. 以下程序的輸出結(jié)果是______。
void main() { int a=0; a+= ( a=8 ); printf ("%d \ n", a ); }
11. 通常1個字節(jié)包含______個二進制位。在1個字節(jié)中能存放的最大十進制整數(shù)是______,它的二進制數(shù)的形式是______;最小十進制整數(shù)是______,它的二進制形式是______。
12. 當(dāng)計算機用兩個字節(jié)存放1個整數(shù)時,其中能存放的最大十進制整數(shù)是______、最小十進制整數(shù)是______,它們的二進制形式是______、______。
13. 若有以下定義,請寫出以下程序段中輸出語句執(zhí)行后的結(jié)果:
(1)_______(2)_______(3)______。
int i=-200, j=2500; printf(" (1) %d %d\ n ", i, j); printf(" (2) i=%d, j=%d\ n", i, j); printf(" (3) i=%d\ n j=%d \ n", i, j);
14. 變量i、j、k已定義為int類型并賦初值0,用以下語句輸入時:
scanf("%d", &i); scanf("%d", &j); scanf("%d", &k);
當(dāng)執(zhí)行第一條輸入語句時從鍵盤輸入:
12.3 <回車>
則變量i、j、k的值分別是______、______、______。
15. 復(fù)合語句在語法上被認(rèn)為是______;空語句的形式是______。
16. 以下程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的3種可能的輸入形式______、______、______。
int k; float a; double x; scanf("%d%f%lf", &k, &a, &x); printf("k=%d, a=%f, x=%f \ n", k, a, x);
17. 以下程序段的輸出結(jié)果是______。
int x=0177; printf("x=%3d, x=%6d, x=%6o, x=%6x, x=%6u\ n", x, x, x, x, x);
18. 以下程序段的輸出結(jié)果是______。
double a=513.789215; printf("a=%8.6f, a=%8.2f, a=%14.8f, a=%14.8lf\n", a,a,a,a);
19. 若要通過以下語句給a、b、c、d分別輸入字符A、B、C、D,給w、x、y、z分別輸入10、20、30、40,正確的輸入形式是______。(請用<CR>代表【Enter】鍵)
scanf("%d%c%d%c%d%c%d%c", &w, &a, &x,&b, &y, &c, &z, &d);
20. 若有以下說明和輸入語句,要求給c1、c2輸入字符A和B,給a1、a2輸入7.29和101.298,從鍵盤正確輸入數(shù)據(jù)的形式是______。
char c1, c2; float a1, a2; scanf("%f%f", &a1, &a2); scanf("%c%c", &c1, &c2);
21. 若有以下說明和輸入語句,要求給c1、c2、c3輸入字符A、B和C,請寫出從鍵盤正確輸入數(shù)據(jù)的形式是______。
char c1, c2, c3; scanf("%4c", &c1); scanf("%4c", &c2); scanf("%4c", &c3);
22. 下列程序的輸出結(jié)果是16.00,請?zhí)羁誣_____。
void main() { int a=9, b=2; float x=______, y=1.1, z; z=a/2+b*x/y+1/2; printf ("%5.2f\ n", z); }
- Android Wearable Programming
- UI設(shè)計基礎(chǔ)培訓(xùn)教程
- C#程序設(shè)計基礎(chǔ):教程、實驗、習(xí)題
- Multithreading in C# 5.0 Cookbook
- Node.js:來一打 C++ 擴展
- Babylon.js Essentials
- QGIS 2 Cookbook
- 大學(xué)計算機基礎(chǔ)實驗指導(dǎo)
- 從程序員角度學(xué)習(xí)數(shù)據(jù)庫技術(shù)(藍橋杯軟件大賽培訓(xùn)教材-Java方向)
- C++程序設(shè)計
- Android編程權(quán)威指南(第4版)
- Learning Shiny
- Java程序設(shè)計入門(第2版)
- Windows 10 for Enterprise Administrators
- SAP HANA Starter