順序結構程序設計練習題_第1頁
順序結構程序設計練習題_第2頁
順序結構程序設計練習題_第3頁
順序結構程序設計練習題_第4頁
順序結構程序設計練習題_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言練習題總匯一、 單選題:【順序結構程序設計】1己知int k,m=1;執(zhí)行語句k=-m+;后k的值是( A )。(提示:負號與自加運算符同級,結合方向從右向左)A)-1 B) 0 C)1 D)22若有定義int x=4;則執(zhí)行語句 x + = x * = x + 1;后,x的值為( C )。A)5 B)20 C)40 D)無答案3若有定義:float a=3.0,b=4.0,c=5.0;則表達式 1/2*(a+b+c)的值為( C )。A)6.0 B)6 C)0.0 D)無答案 4以下程序段的輸出結果是( C )。(提示:a當約束過嚴時,約束失效。按自由格式輸出。 )int a=1234

2、;printf("%2dn",a);A)12 B)34 C)1234 D)提示出錯,無結果5.下列程序段的輸出結果是(C)。int a=1234;float b=123.456;double c=12345.54321;printf("%2d,%3.2f,%4.1f",a,b,c);A)無輸出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.56.設x, y均為整型變量,且x=8, y=5,則以下語句的輸出結果是(D)。printf("%d,%dn",x-

3、,+y);A)8,5 B)7,5 C) 7,6 D) 8,67.以下程序的輸出結果是( A )。int main() int a=20,b=10; printf("%d,%dn",a+b,a-b); A) 30,%d B)30,10 C)30,%10 D)以上答案均不正確 (%d中第一個%后面的表示字符)8下列程序的運行結果是(A)。int main() float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y); A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2

4、.500000,y=2.0000009.以下程序的輸出結果是(A)。int main() char c=z; printf("%c",c-25);A)a B)z C)z-25 D)y (字母共有26個,而z是最后一個)10下面程序的輸出結果是(C)。int main( ) double d=3.2 ;int x=1.2, y ;y=(x+3.8)/5.0 ; printf("%dn",d*y);A) 3 B) 3.2 C)0 D) 3.0711.下面程序的輸出結果是( C )。(提示:輸出時無定界符)int main() int k=17; printf

5、("%d,%o,%xn",k,k,k);A)17,17,17 B)17,021,0x11 C)17,21,11 D)17,0x11,02112下列程序執(zhí)行后的輸出結果是(C)。int main() char x =OxFFFF; printf("%dn",x-);A)-32767 B)FFFE C)-1 D)=-32768 13.printf("abre'hi'yboun");的輸出結果是(C)。A)abre'hi'ybou B)abre'hi'ybouC)re'hi'y

6、ou D)abre'hi'ybou14有定義語句:int x,y;若要通過scanf("%d,%d",&x,&y);語句使變量x得到數值11,變量y得到數值12,下面四組輸入形式中錯誤的是(A)。A)11<空格>12<回車> B)11,<空格>12<回車> C)11,12<回車>D)11,<回車>12<回車> 15有以下程序段:int m=0,n=0;char c=a'scanf("%d%c%d",&m,&c,&am

7、p;n);printf("%d,%c,%dn",m,c,n);若從鍵盤上輸入:10A10 <回車>,則輸出結果是(A)。A)10,A,10 B)16,a,10 C)10,a,0 D)10,A,016.若變量已正確說明為int類型,要通過語句scanf("%d %d %d ",&a,&b,&c);給a賦值1,b賦值2,c賦值3,不正確的輸入形式是(B)。A) 1<空格>2<空格>3<回車> B)1,2,3<回車> C)1<回車>2<空格>3<回

8、車> D)1<空格>2<回車>3<回車>17.a, b,c被定義為int型變量,若從鍵盤給a, b,c輸入數據,正確的輸入語句是(D)A)input a,b,c; B)read("%d%d%d",&a,&b,&c); C)scanf("%d%d%d",a,b,c); D)scanf("%d%d%d",&a,&b,&c);18已知a,b,c為int型變量,若從鍵盤輸入:1,2,3<回車>,使a的值為1,b的值為2,c的值為3,以下選項中

9、正確的輸入語句是(B)。A)scanf("%2d,%2d,%2d",a,b,c); B)scanf("%d,%d,%d",&a,&b,&c);C)scanf("%d %d %d",&a,&b,&c); D)scanf("i=%dj=%d,k=%d",&a,&b,&c);19.執(zhí)行下程序時輸入:123<空格>456<空格>789<回車>,輸出結果是( D )。int main()char s; int c,i;

10、 scanf("%c",&c); scanf("%d",&i);scanf("%c",&s);printf("%c,%d,%cn",c,i,s);A)123,456,789 B)1,456,789 C)1,23,456,789 D) 1,23,20.已定義c為字符型變量,則下列語句中正確的是( C )。A)c=97 B)c=“97 “ C)c=97 D)c=“a”21.以下程序的功能是:給r輸入數據后計算半徑為r的圓面積s。程序在編譯時出錯。#include <stdio.h>v

11、oid main() int r; float s;scanf("%d",&r);s=p*r*r;printf("s=%fn",s);出錯的原因是( )。A)注釋語句書寫位置錯誤B)存放圓半徑的變量r不應該定義為整型C)輸出語句中格式描述符非法D)計算圓面積的賦值語句中使用了非法變量答案:D22.有以下程序#include <stdio.h>void main( ) int m=12,n=34;printf("%d%d",m+,+n);printf("%d%dn",n+,+m);程序運行后的輸出

12、結果是( )。A)12353514 B)12353513 C)12343514 D)12343513答案:A23.數字字符0的ASCII值為48,若有以下程序#include <stdio.h>void main( ) char a='1',b='2'printf("%c,",b+);printf("%dn",b-a);程序運行后的輸出結果是_。A)3,2 B)50,2 C)2,2D)2,50答案:C24.有以下程序#include <stdio.h>void main( ) char c1=

13、9;1',c2='2'c1=getchar( ); c2=getchar( ); putchar(c1); putchar(c2);當運行時輸入:a<回車> 后,以下敘述正確的是_。A)變量c1被賦予字符a,c2被賦予回車符B)程序將等待用戶輸入第2個字符C)變量c1被賦予字符a,c2中仍是原有字符2D)變量c1被賦予字符a,c2中將無確定值答案:A25.【選擇結構程序設計】1.有變量說明語句int a,b ,c;,順序執(zhí)行下面語句: a=b=c=1; +a|+b&&+c;那么,變量b的值應是( B )A2 B1 C0 D32.有變量說明in

14、t a=3;,則表達式a<1&&-a>1的運算結果和a的值應該是( B )A0和2 B0和3 C1和2 D1和33.設int a=3,b=4,c=5;,下列表達式的值不為1的是( A )。A)a+b>c&&b=c B)a|b+c&&b-c C)!(a>b)&&!c|1 D)!(a+b)+c-1&&b+c/24.#include<stdio.h>int main( ) int a,b,c; a=10;b=50;c=30; if(a>b) a=b;b=c;c=a; printf

15、(“a=%d,b=%d,c=%dn”,a,b,c); 程序的輸出結果是( C )。A.a=10, b=50, c=10 B. a=10, b=50, c=30C.a=10, b=30, c=10 D. a=50, b=30, c=505.若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達式a<b?a:c<d?c:d的值是( A )。(A)1 (B)2 (C)3 (D)46.若x和y代表整型數,以下表達式中不能正確表示數學關系|x-y|<10的是( C )。A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)!(x

16、-y)<-10|!(y-x)>10 D)(x-y)*(x-y)<1007.若有定義:int a7;f1oat x2.5,y4.7;則表達式x+a3*(int)(x+y)24的值是( A )。A) 2.5 B) 2.7 C) 3.5 D) 4.78.若有定義和語句:int s,p;s=p=5; p=s+,+p,p+2,p+; 則執(zhí)行語句后 p的值是( C )A)9 B)8 C)7 D)69.若有定義:int a,b;則表達式 a=4,b=3,a+b+2,a+,a+b+2的值為( C )。A) 12 B)11 C)10 D)無答案10.己知int k=10 , m=3,n;則下列

17、語句的輸出結果是( B )。 printf("%dn",n=(k%m,k/m);A) 2 B)3 C)4 D)511.設x和y均為int型變量,則以下語句:x+=y; y=x-y; x-=y; 的功能是( )。A) 把x和y按從大到小排列 B) 把x和y按從小到大排列 C) 無確定結果 D) 交換x和y中的值答案:D12.設int i=2,j=3,k=4,a=4,b=5,c=3;,則執(zhí)行表達式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是( )。A)0 B)1 C)2 D)3答案:D13.若x、a、b、c均 為i

18、nt型變量,則執(zhí)行表達式x= (a = 4, b = 8, c = 12)后,x的值為_。A)4 B)8 C)12 D)24答案:C14.以下程序的輸出結果是_。#include <stdio.h>void main()int a=-1, b=4, k;k = ( +a < 0) && ( b += 5);printf ("%d%d%d n", k, a, b );A)104 B)103 C)003 D)004答案:D15.下列運算符中,結合方向為自左向右的是( )。(A)?: (B), (C)+ = (D)+ +答案:(B)16.下列運算

19、符中優(yōu)先級最高的是( )A)! B)% C)- = D)&&答案:(A)17.有以下程序#include <stdio.h>void main( ) int m=3,n=4,x;x=-m+;x=x+8/+n;printf("%dn",x);程序運行后的輸出結果是( )。A)3 B)5 C)-1 D)-2答案:D18.【循環(huán)結構練習題】1.下面有關for循環(huán)的正確描述是( )Afor循環(huán)只能用于循環(huán)次數已經確定的情況Bfor循環(huán)是先執(zhí)行循環(huán)體語句,后判定表達式C在for循環(huán)中,不能用break語句跳出循環(huán)體Dfor循環(huán)體語句中,可以包含多條語句,但

20、要用花括號括起來答案:D2.對于for(表達式1;表達式3)可理解為( )Afor(表達式1:1;表達式3)Bfor(表達式1;1;表達式3)Cfor(表達式1;表達式1;表達式3)Dfor(表達式1;表達式3;表達式3)答案:B3.以下正確的描述是( )。Acontinue語句的作用是結束整個循環(huán)的執(zhí)行B只能在循環(huán)體內和switch語句體內使用break語句C在循環(huán)體內使用break語句或continue語句的作用相同D從多層循環(huán)嵌套中退出時,只能使用goto語句答案:B4.下面程序段不是死循環(huán)的是( )。Aint I=100; Bfor ( ; ; );while(1) I=I%100+1

21、; if(I>100) break;Cint k=0; Dint s=36;do- -k; while(s);while(k>=0); -s;答案:C5.以下能正確計算1*2*3*10的程序是( )。Adoi=1;s=1; Bdoi=1;s=0;s=s*i; s=s*i;i+; i+;while(i<=10); while(i<=10);Ci=1;s=1; Di=1;s=0;do s=s*i; do s=s*i;i+; i+;while(i<=10); while(i<=10);答案:C6.下面程序的運行結果是( )。#include <stdio.h

22、>int main( ) int y=10;doy-;while(-y);printf("%dn",y-);A-1 B1 C8 D0答案:D7.下面程序的運行結果是( )。#include<stdio.h>int main() int num=0;while(num<=2)num+;printf("%dn",num);A1 B1 2 C1 2 3 D1 2 3 4答案:C8.若運行以下程序時,從鍵盤輸入3.6 2.4<CR>(<CR>表示回車),則下面程序的運行結果是( )。#include<math

23、.h>#include<stdio.h>void main( ) float x,y,z; scanf(“%f%f”,&x,&y); z=x/y; while(1) if(fabs(z)>1.0) x=y;y=z;z=x/y; else break; printf(“%fn”,y);A1.500000 B1.600000 C2.000000 D2.400000答案:B9.有以下程序:#include <stdio.h>void main( ) int i=0,s=0;for(; ;) if(i=3|i=5)continue;if(i=6) b

24、reak;i+; s+=i;printf("%dn",s);程序運行后的輸出結果是( )。A)10 B)13 C)21 D)程序進入死循環(huán)答案:D10.若有程序段:for (m=1;m<=100;m+)scanf("%d",&y);if(y<0) continue;printf("%3d",m);正確的描述是( )。A)當y<0時整個循環(huán)結束 B)y>=0時什么也不輸出C)printf函數永遠也不執(zhí)行 D)最多允許輸出100個非負整數答案:D11.下列程序的運行結果是( )。# include “std

25、io.h”void main( ) int i=23; do+i; while(i); printf(“%d”,i);A)23 B)24 C)死循環(huán) D)無任何結果答案:C12.二、填空題【順序結構程序設計】1有以下程序:int main() int m,n,p; scanf("m=%dn=%dp=%d",&m,n,&p);printf("%d%d%dn",m,n,p);若想從鍵盤上輸入數據,使變量m中的值為123, n中的值為456, p中的值為789,則正確的輸入是 m=123n=456p=789。2.以下程序段的輸出結果是 28 。

26、int main() int a=2,b=3,c=4; a*16 +(b+)-(+c);printf("%d",a);3以下程序段的輸出結果是 5 。int x=17,y=26;printf("%d",y/=(x%=6);4下列程序的輸出結果為 12 。int main() int x=3,y=5; printf("%d",x= (x-)*(-y));5.若有以下程序:int main() char a; a=H-A+0; (0,o) printf("%c, %dn",a,a); 執(zhí)行后的輸出結果是 7,55 。6

27、.以下程序段的輸出結果是 261 。void main() int a=177; printf("%on",a); 7.以下程序的輸出結果是 0 (-3276732767int) 。void main( ) unsigned short a=65536; int b; printf("%dn",b=a); 提示:當unsigned short和int 均占2個字節(jié)時。8.輸入“12345,xyz”,下列程序輸出的結果是 。int main( ) int x;char y; scanf (“%3d%3c”,&x,&y); printf (“

28、%d,%c”,x,y);答案:123,49.以下程序的運行結果是 。#include <stdio.h>void main( ) int i=8,j=9,m,n;m=+i;n=j+;printf("%d,%d,%d,%dn",i,j,m,n);答案:9,10,9,910.下列程序的輸出結果是 。#include <stdio.h>void main( ) int a = 3 , b = 14 , c = 5 ;c = c + a *a + b % 5 * 10 ;printf("%on" , c );答案:6611.閱讀程序,并按

29、給定的輸出格式將程序運行結果寫在“運行結果:”之后#include <stdio.h>void main( )int a, b, c;a = (b = (c = 3) * 5)*5;printf ("a=%d, b=%d, c=%d n", a, b, c);運行結果是:答案:運行結果是:a = 75, b = 15, c = 312.【選擇結構程序設計】1.以下程序運行的結果是 。#include <stdio.h>void main( ) int a,b,c;a=1;b=2;c=3;a=b-<=a|a+b!=c;printf("%

30、d,%d",a,b);答案:1,12.以下程序的運行結果是 。#include <stdio.h>void main( ) int a,b,c;a=b=c=1;if (a+|+b) c+;printf("%d,%d,%dn",a,b,c);答案:2,1,23.以下程序的輸出結果是 。#include <stdio.h>void main( )int k, i=0, j=2;k = i+&&j+;printf ("%d,%d,%dn", i, j, k);答案:1,2,04.【循環(huán)結構程序設計】1.若運行以

31、下程序時,從鍵盤輸入ADescriptor,則下面程序的運行結果是 v0=12,v1=4,v2=12 。#include <stdio.h>void main( )char c;int v0=0,v1=0,v2=0;doswitch(c=getchar()case a:case A:case e:case E:case i:case I:case o:case O:case u:case U:v1+=1;default:v0+=1;v2+=1;while(c!=n);printf(“v0=%d,v1d,v2=%dn”,v0,v1,v2);2.下面程序的運行結果是 8,-2 。#in

32、clude<stdio.h>void main( ) int i,b,k=0;for(i=1;i<=5;i+) b=i%2; while(b- ->=0) k+;printf(“%d,%d”,k,b);3.下面程序的運行結果是 8,22 。#include<stdio.h>void main( ) int a,b; for (a=1,b=1;a<=100;a+) if(b>=20) break; if(b%3=1) b+=3; continue; b-=5; printf(“%d,%dn”,a,b);4.下面程序的運行結果是 x=8 。#incl

33、ude<stdio.h>void main( ) int i,j,x=0; for (i=0;i<2;i+) x+; for(j=0;j<=3;j+) if(j%2) continue; x+; x+; printf(“x=%dn”,x); 5.下面程序的運行結果是 *#*#*#$ 。#include<stdio.h>void main( ) int i; for (i=1;i<=5;i+) if(i%2) printf(“*”); else continue; printf(“#”); printf(“$n”);6.下面程序的運行結果是 4 。#include<stdio.h>void main() int i,j,a=0; for(i=0;i<2;i+) for (j=0; j<4; j+) if (j%2) break;a+;a+;printf(“%dn”,a);7.有以下程序, 若從鍵盤輸入:247<回車>,則程序的輸出結果是 。#include <stdio.h>void main( ) int c;while (c=getchar()!='n') switch (

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論