C語言練習(xí)題(帶答案).doc

上傳人:good****022 文檔編號:116485036 上傳時間:2022-07-05 格式:DOC 頁數(shù):39 大?。?40KB
收藏 版權(quán)申訴 舉報 下載
C語言練習(xí)題(帶答案).doc_第1頁
第1頁 / 共39頁
C語言練習(xí)題(帶答案).doc_第2頁
第2頁 / 共39頁
C語言練習(xí)題(帶答案).doc_第3頁
第3頁 / 共39頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言練習(xí)題(帶答案).doc》由會員分享,可在線閱讀,更多相關(guān)《C語言練習(xí)題(帶答案).doc(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、一、 單項選擇題1( A )是構(gòu)成C語言程序的基本單位。A、函數(shù) B、過程 C、子程序 D、子例程2C語言程序從 C 開始執(zhí)行。 A) 程序中第一條可執(zhí)行語句 B) 程序中第一個函數(shù)C) 程序中的main函數(shù) D) 包含文件中的第一個函數(shù)3、以下說法中正確的是( C )。 A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行 B、在C語言程序中,要調(diào)用的函數(shù)必須在main( )函數(shù)中定義 C、C語言程序總是從main( )函數(shù)開始執(zhí)行 D、C語言程序中的main( )函數(shù)必須放在程序的開始部分4.下列關(guān)于C語言的說法錯誤的是( B ) 。A) C程序的工作過程是編輯、編譯、連接、運行 B) C語言不區(qū)

2、分大小寫。C) C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán) D) C程序從main函數(shù)開始執(zhí)行5.下列正確的標(biāo)識符是(C)。A.-a1 B.ai C.a2_i D.int t6下列C語言用戶標(biāo)識符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union7下列四組選項中,正確的C語言標(biāo)識符是( C )。A) %x B) a+b C) a123 D) 1238、下列四組字符串中都可以用作C語言程序中的標(biāo)識符的是( A )。 A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow while D、Pxq

3、 My-book line# His.age 9.C語言中的簡單數(shù)據(jù)類型包括(D )。 A、整型、實型、邏輯型 B、整型、實型、邏輯型、字符型 C、整型、字符型、邏輯型 D、整型、實型、字符型10.在C語言程序中,表達(dá)式5%2的結(jié)果是 C 。 A)2.5 B)2 C)1 D)311如果int a=3,b=4;則條件表達(dá)式ab? a:b的值是_A_。A) 3 B) 4 C) 0 D) 112若int x=2,y=3,z=4 則表達(dá)式xage D) (*p).age33.設(shè)有如下定義:struck sk int a;float b;data;int *p;若要使P指向data中的a域,正確的賦值語

4、句是 C A) p=&a;B) p=data.a;C) p=&data.a;D)*p=data.a;34.設(shè)有以下說明語句: typedef struct stu int a; float b; stutype; 則下面敘述中錯誤的是( D )。 A、struct是結(jié)構(gòu)類型的關(guān)鍵字 B、struct stu是用戶定義的結(jié)構(gòu)類型 C、a和b都是結(jié)構(gòu)成員名D、stutype是用戶定義的結(jié)構(gòu)體變量名35 語句int *p;說明了 C 。A)p是指向一維數(shù)組的指針 B)p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)C)p是指向int型數(shù)據(jù)的指針 D)p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針36下列

5、不正確的定義是(A )。A. int *p=&i,i; B.int *p,i;Cint i,*p=&i; D.int i,*p;37. 若有說明:int n=2,*p=&n,*q=p,則以下非法的賦值語句是: (D )A)p=q B)*p=*q C)n=*q D)p=n38有語句:int a10,;則 B 是對指針變量p的正確定義和初始化。A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a;39.若有說明語句“int a5,*p=a;”,則對數(shù)組元素的正確引用是( C )。A.ap B.pa C.*(p+2) D.p+240. 有如下程序int a1

6、0=1,2,3,4,5,6,7,8,9,10,*P=a;則數(shù)值為9的表達(dá)式是 B A) *P+9 B) *(P+8) C) *P+=9 D) P+841. 在C語言中,以 D 作為字符串結(jié)束標(biāo)志A)n B) C) 0 D)0 42.下列數(shù)據(jù)中屬于“字符串常量”的是(A )。A.“a” B.ABC C.abc0 D.a43.已知char x=hello, y=h,e,a,b,e;, 則關(guān)于兩個數(shù)組長度的正確描述是 B .A)相同 B)x大于y C)x小于y D)以上答案都不對44. 下面各函數(shù)中能實現(xiàn)打開文件功能的是 A A) fopen B) fgetc C) fputcD) fclose45

7、. 下列語句中,把變量fp說明為一個文件型指針的是( A ) 。A) FILE *fp; B) FILE fp;C) file *fp; D) file fp;46以讀寫方式打開一個已有的文本文件file1,并且FILE *fp,下面fopen函數(shù)正確的調(diào)用方式是( B )。A.fp=fopen(“file1”,“r”)B.fp=fopen(“file1”,“r+”)C.fp=fopen(“file1”,“rb”)D.fp=fopen(“file1”,“w”)二、 讀程序基本輸入輸出及流程控制1.#include main() int a=1,b=3,c=5;if (c=a+b) printf

8、(yesn);else printf(non);運行結(jié)果為:no2. #include main() int a=12, b= -34, c=56, min=0;min=a; if(minb) min=b; if(minc) min=c;printf(min=%d, min);運行結(jié)果為: min=-343.#include main() int x=2,y= -1,z=5; if(xy)if(y0) z=0;else z=z+1; printf(“%dn”,z); 運行結(jié)果為:54. #include main() float a,b,c,t;a=3;b=7;c=1;if(ab) t=a;a

9、=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2f,a,b,c); 運行結(jié)果為:1.00, 2.00, 7.005#include main ( ) float c=3.0 , d=4.0;if ( cd ) c=5.0;else if ( c=d ) c=6.0;else c=7.0; printf ( “%.1fn”,c ) ;運行結(jié)果為:7.06.#include main()int m;scanf(%d, &m);if (m = 0) if (m%2 = 0)printf(%d is a posit

10、ive evenn, m); elseprintf(%d is a positive oddn, m);else if (m % 2 = 0) printf(%d is a negative evenn, m);else printf(%d is a negative oddn, m);若鍵入9,則運行結(jié)果為: -9 is a negative odd7. #include main() int num=0;while(num=2) num+;printf(%dn,num);運行結(jié)果為:1238#include main( ) int sum=10,n=1;while(n3) sum=sum-

11、n; n+; printf(“%d,%d”,n,sum); 運行結(jié)果為:3,79.#include main() int num,c; scanf(%d,&num); do c=num%10; printf(%d,c); while(num/=10)0);printf(n); 從鍵盤輸入23,則運行結(jié)果為:3210#include main() int s=0,a=5,n;scanf(%d,&n);do s+=1; a=a-2; while(a!=n);printf(%d,%dn,s,a); 若輸入的值1,運行結(jié)果為: 2,1 11#include stdio.h main() char c;

12、 c=getchar(); while(c!=?) putchar(c); c=getchar(); 如果從鍵盤輸入abcde?fgh(回車)運行結(jié)果為:abcde12#include main() char c; while(c=getchar()!=$) if(A=c&c=Z) putchar(c); else if(a=c&c=z) putchar(c-32); 當(dāng)輸入為ab*AB%cd#CD$時,運行結(jié)果為:ABABCDCD13. #include main() int x, y =0;for(x=1;x=10) break; y=y+x; printf(“%d %d”,y,x);運行

13、結(jié)果為:10 514.#include main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c”,A); case B : printf(“%c”,B); break; default: printf(“%sn”,”other”); 當(dāng)從鍵盤輸入字母A時,運行結(jié)果為:AB15. #include main( ) int a=1,b=0; scanf(“%d”,&a);switch(a) case 1: b=1;break;case 2: b=2;break;default : b=10;printf(%d , b);若鍵盤輸

14、入5,運行結(jié)果為:1016. #include main()_ char grade=C; switch(grade) case A: printf(“90-100n”); case B: printf(“80-90n”);case C: printf(“70-80n”);case D: printf(“60-70n”); break;case E: printf(“60n”); default : printf(“error!n”); 運行結(jié)果為:70-8060-7017.#include main() int y=9; for(;y0;y- -)if(y%3=0) printf(%d”,-

15、 -y); continue;運行結(jié)果為:85218. #include main() int i,sum=0; i=1;do sum=sum+i; i+; while(i=10);printf(“%d”,sum);運行結(jié)果為: 5519.#include #define N 4main() int i; int x1=1,x2=2;printf(n);for(i=1;i=N;i+) printf(%4d%4d,x1,x2);if(i%2=0) printf(n);x1=x1+x2;x2=x2+x1;運行結(jié)果為:1 2 3 58 13 21 3420#include main( ) int x

16、, y; for(x=30, y=0; x=10, y10; x-, y+) x/=2, y+=2; printf(“x=%d,y=%dn”,x,y);運行結(jié)果為:x=0,y=1221. #include #define N 4main( ) int i,j; for(i=1;i=N;i+) for(j=1;ji;j+) printf( ); printf(*); printf(n);運行結(jié)果為:* * *數(shù)組1.#include main() int i, a10;for(i=9;i=0;i-) ai=10-i;printf(“%d%d%d”,a2,a5,a8);運行結(jié)果為:8522. #i

17、nclude main() int i,a6; for (i=0; i=0 ; i-) printf(%3d,ai); 運行結(jié)果為:5 4 3 2 1 03. #include main( ) int i,k,a10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(%dn,k);運行結(jié)果為:214.#include int m33=1,2,3;int n33=1,2 ,3;main( ) printf(“%d,”, m10+n00); printf(“%dn”,m01+n10);

18、運行結(jié)果為:3,05.#include main() int i;int x33=1,2,3,4,5,6,7,8,9; for (i=1; i3; i+)printf(%d ,xi3-i); 運行結(jié)果為:6 8 6.#include main( ) int n33, i, j;for(i=0;i3;i+ )for(j=0;j3;j+ )nij=i+j;printf(“%d ”, nij);printf(“n”);運行結(jié)果為:0 1 21 2 32 3 47#include main()char diamond5=_,_,*,_,*,_,*,*,_,_,_,*,_,*,_,*,_,_,*;int

19、 i,j;for(i=0;i5;i+)for(j=0;j5;j+)printf(“%c”,diamondij);printf(“n”);注:“_”代表一個空格。運行結(jié)果為:* * * * *8. #include main( ) int i, f10; f0=f1=1; for(i=2;i10;i+) fi=fi-2+fi-1; for(i=0;i10;i+) if(i%4=0) printf(“n”); printf(“%d ”,fi); 運行結(jié)果為:1 1 2 35 8 13 2134 559 #include “stdio.h” func(int b ) int j; for(j=0;j

20、4;j+) bj=j; main( ) int a4, i; func(a); for(i=0; i4; i+) printf(“%2d”,ai); 運行結(jié)果為: 0 1 2 310. #include main() float fun(float x); float ave,a3=4.5,2,4; ave=fun(a); printf(“ave=%7.2f”,ave); float fun(float x) int j;float aver=1; for (j=0;j3;j+)aver=xj*aver; return(aver);運行結(jié)果為:ave= 36.0011.#include mai

21、n()int a23=1,2,3,4,5,6;int b32,i,j;for(i=0;i=1;i+)for(j=0;j=2;j+) bji=aij;for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); 運行結(jié)果為: 1 4 2 5 3 612#include f(int b,int n)int i,r; r=1; for (i=0;i=n;i+) r=r*bi; return (r);main() int x,a=1,2,3,4,5,6,7,8,9; x=f(a,3); printf(“%dn”,x);運行結(jié)果為: 24 13.#includestd

22、io.hmain()int j,k; static int x44,y44;for(j=0;j4;j+) for(k=j;k4;k+) xjk=j+k;for(j=0;j4;j+) for(k=j;k4;k+) ykj=xjk;for(j=0;j4;j+) for(k=0;k4;k+) printf(%d,yjk);運行結(jié)果為:0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6函數(shù)1.#include int Sub(int a, int b)return (a- b);main()int x, y, result = 0;scanf(%d,%d, &x,&y ); result

23、= Sub(x,y ) ; printf(result = %dn,result);當(dāng)從鍵盤輸入:6,3運行結(jié)果為:result =3 2. #include int min( int x, int y ) int m; if ( x y ) m = x;else m = y; return(m); main() int a=3,b=5,abmin ; abmin = min(a,b); printf(“min is %d”, abmin); 運行結(jié)果為:min is 53.#include func(int x) x=10; printf(“%d, ”,x); main( ) int x=2

24、0; func(x); printf(“%d”, x); 運行結(jié)果為:10, 204.#include int m=4;int func(int x,int y) int m=1;return(x*y-m);main()int a=2,b=3;printf(%dn,m);printf(%dn,func(a,b)/m); 運行結(jié)果為:41 5.#include int fun(int a, int b) if(ab) return(a);else return(b);main() int x=15, y=8, r;r= fun(x,y);printf(r=%dn, r);運行結(jié)果為:r=15 6

25、.#include int fac(int n) int f=1,i;for(i=1;i=n;i+) f=f * i;return(f);main() int j,s;scanf(“%d”,&j);s=fac(j);printf(%d!=%dn,j,s);如果從鍵盤輸入3, 運行結(jié)果為: 3!=67. #include unsigned fun6(unsigned num) unsigned k=1;do k*=num%10; num/=10;while(num); return k;main() unsigned n=26; printf(“%dn”,fun6(n); 運行結(jié)果為:128.#

26、include int max(int x, int y);main() int a,b,ca=7;b=8;c=max(a,b);printf(Max is %d,c);max(int x, int y) int z;z=xy? x : y;return(z) ;運行結(jié)果為:Max is 8指針1.# include main ( ) int x = 10, 20, 30, 40, 50 ;int *p ;p=x;printf ( “%d”, *(p+2 ) ); 運行結(jié)果為: 302.#include main( ) char s=”abcdefg”; char *p; p=s; print

27、f(“ch=%cn”,*(p+5);運行結(jié)果為: ch=f 3.#includemain ( ) int a=1, 2, 3, 4, 5 ;int x, y, *p;p=a;x=*(p+2);printf(%d:%d n, *p, x);運行結(jié)果為: 1:34.#includemain() int arr =30,25,20,15,10,5, *p=arr;p+; printf(“%dn”,*(p+3);運行結(jié)果為:105.#include main( ) int a =1, 2, 3, 4, 5, 6; int x, y, *p; p = &a0; x = *(p+2); y = *(p+4

28、); printf(“*p=%d, x=%d, y=%dn”, *p, x, y); 運行結(jié)果為: *p=1, x=3, y=56.#include main( ) static char a =”Program”, *ptr; for(ptr=a, ptra+7; ptr+=2) putchar(*ptr); 運行結(jié)果為: Prom7.#include char s=”ABCD”;main() char *p; for(p=s;ps+4;p+) printf(“%c %sn”,*p,p); 運行結(jié)果為: A ABCDB BCDC CDD D結(jié)構(gòu)體1.#includestruct st int

29、 x; int y; a2=5, 7, 2, 9 ;main() printf(%dn,a0.y*a 1.x);運行結(jié)果是:142.#includemain( )struct stu int num; char a5; float score;m=1234,”wang”,89.5; printf(“%d,%s,%f”,m.num,m.a,m.score);運行結(jié)果是:1234,wang,89.53.#include struct cmplx int x; int y; cnum2=1, 3, 2, 7; main( ) printf(“%dn”, cnum0.y * cnum1.x ); 運行

30、結(jié)果是:64.#include struct abc int a, b, c; ;main() struct abc s2=1,2,3,4,5,6; int t; t=s0.a+s1.b; printf(%d n,t);運行結(jié)果是:6三、 程序填空1輸入一個字符,判斷該字符是數(shù)字、字母、空格還是其他字符。main( ) char ch; ch=getchar(); if( ch=a&ch=A&ch=0&ch0) i= i+1 ; else j=j+1; printf(“i=%4d,j=%4dn”,i,j); 3編程計算135+101的值#include void main()int i, su

31、m = 0;for (i = 1; i=101 ; i+ )sum = sum + i;printf(sum=%dn, sum); 4編程計算13599的值main() int i, sum = 0;i=1;while ( i100 )sum = sum + i; i+ ; printf(sum=%dn, sum);5從鍵盤輸入一個字符,判斷它是否是英文字母。#include void main()char c; printf(input a character:); c=getchar();if(c= A &c=a &c= z) printf(Yesn); else printf(No);6

32、. 下面程序的功能是在a數(shù)組中查找與x值相同的元素所在位置,請?zhí)羁铡?#include void main() int a10,i,x; printf(“input 10 integers:”); for(i=0;i10;i+) scanf(“%d”,&ai); printf(“input the number you want to find x:”);scanf(“%d”, &x ); for(i=0;i10;i+)if( x=ai )break; if( i10 ) printf(“the pos of x is:%dn”,i); else printf(“can not find x!

33、n”); 7程序讀入20個整數(shù),統(tǒng)計非負(fù)數(shù)個數(shù),并計算非負(fù)數(shù)之和。 #include main( ) int i, a20, s, count; s=count=0; for(i=0; i20; i+) scanf(“%d”, &ai ); for(i=0; i20; i+) if( ai0 ) continue ; s+=ai ; count+; printf(“s=%dt count=%dn”, s, count”); 8. 輸入一個正整數(shù)n (1n10),再輸入n個整數(shù),用選擇法將它們從小到大排序后輸出。 #include int main(void) int i, index, k,

34、n, temp; /* 定義1個數(shù)組a,它有10個整型元素*/ printf(“Enter n: ); printf(“Enter %d integers: , n); for(i = 0; i n; i+) scanf(%d, &ai); for(k = 0; k n-1; k+) /* 對n個數(shù)排序 */ index = k; for( ) if( ) index = i; printf(After sorted: ); for(i = 0; i n; i+) /* 輸出n個數(shù)組元素的值 */ return 0; 四、 程序改錯一、 下面每個程序的劃線處有語法或邏輯錯誤,請找出并改正,使其

35、得到符合題意的執(zhí)行結(jié)果。求1234nmain() long int sum;int n,i=1;scanf(%d,n);printf(“n”);while(in) sum=sum*i;i+;printf(sum=%d,sum);sum應(yīng)初始化 即加入sum=1第四行改為:scanf(“%d”,&n);第六行改為:while(i=n) 第十行改為:printf(sum=%ld,sum); 2求一個數(shù)組中最大值及其下標(biāo)。main( ) int max,j,m; int a5; for(j=1;j=5;j+) scanf(“%d”,a); max=a0; for(j=1;jaj) max=aj; m

36、=j; printf(“下標(biāo):%dn最大值:%d”, j, max) 第四行改為:for(j=0;j5;j+)第五行改為:scanf(“%d”,&aj);第七行改為:for(j=0;j5;j+)第八行改為:if(maxaj)第十三行改為:printf(“下標(biāo):%dn最大值:%d”, m,max)3用一個函數(shù)求兩個數(shù)之和。sum(x,y) float z;z=x+y;return;main() float a,b;int c;scanf(%f,%f,&a,&b);c=sum(a,b);printf(nSum is %f,sum); 第一行改為:float sum(float x, float y ); 第四行改為:return(z); 第八行:float c; 第十一行:printf(nSum is %f,c);4 程序讀入20個整數(shù),統(tǒng)計非負(fù)數(shù)個數(shù),并計算非負(fù)數(shù)之和.#include “stdio.h”main() int i, s , count ,n=20;int an; s=count=1; for( i=1, i20, i- -) scanf(“%d”, ai ); for(i=0;i20;i+) if(ai0) break;

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!