版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言復習題熟讀理論教材,理解相關知識,并復習理論教材課后練習題(切記:以理論教材知識、例題和課后練習為主復習)熟讀課本例題及知識,完成以下知識點的復習及總結。一填空1. 一個C語言的執(zhí)行是從本程序的_開始,到_結束?2. C語言中用戶的標識符命名規(guī)則是_。3. 在一個c語言程序中,main函數(shù)的位置是_。4. 若有代數(shù)式p(mne)/(bcd),其中p、m、n、e、b、c、d為變量,則該代數(shù)式的 C語言表達式為_。5. char a; int x; float y,m; double z,p;則表達式“a*x*m+z-y*x*p”值的數(shù)據類型為_。6. C語言的常用關鍵字有_(舉例說明,越多
2、越好)。7. printf函數(shù)中用到格式符%ms,其中數(shù)字m表示輸出的字符串占用m列。如果字符串長度大于m,則輸出時的規(guī)則是_。若如果字符串長度小于m,則輸出時的規(guī)則是_。若如果字符串長度等于m,則輸出時的規(guī)則是_。當m>0時是左對齊還是右對齊?m<0呢?8已有定義“int x; float y;”且執(zhí)行“scanf(“%4d%f”,&x,&y);”語句,若從第一列開始輸入數(shù)據9876543,則x的值為_。10.能正確表示a-100或a100的關系表達式是_。能正確表示a-100且a100的關系表達式是_。11.判斷邏輯值為“真”的判斷方法是_。邏輯值為“假”的判斷
3、方法是_。12.已知“int x=100,y=200,z=300”,則執(zhí)行if(x>y)z=x;x=y;y=z;語句后,x、y、z的值是_。13.若m和n均為int型變量,則以下for語句循環(huán)執(zhí)行的次數(shù)_及輸出結果是_。for(n=8,m=8;m!=8;m+,+n) printf(“Welcome you!n”);14.若n為int型變量,則循環(huán)語句“for(n=0;n<100;n+)”控制循環(huán)體執(zhí)行_次。15.在循環(huán)語句循環(huán)體中執(zhí)行continue語句,其作用是_,break的作用是_;在swich()Case語句中break語句作用是_。16.關于函數(shù)的參數(shù),實參可以是_,形參
4、可以是_,A.表達式;B.變量 c.常量 D.默認值17.C語言的編譯系統(tǒng)對宏命令的處理是在什么時間進行_18.在C語言中,函數(shù)返回值的類型最終取決于_19.定義二維整型數(shù)組b時,該數(shù)組行號和列號是否可以為變量?20.對一維數(shù)組和二維數(shù)組定義及初始化的方法進行總結,并舉例說明_21.若有以下語句,char a=”abcdefgh”; char b=a,b,c,d,e,f,g,h;則a和b數(shù)組長度分別為_和_22.設有定義“int n1=0,n2,*p=&n2,*q=&n1;”,以下賦值語句中與“n2=n1;”語句等價的是另外一種表示語句為_23.如有語句“int q=100,*
5、p=&q;”,下面均代表地址的一組選項是_A. q,p,*&q B. &*q,&q,*p C. *&p, p,&q D. float *q,&*p ,p24.若有說明語句“int m, a1010;”,則不能將a11的值賦給變量m的語句是_A. m=*(*(a+1)+1); B. m=a11 C. m=*(*(a+1) D. m=*(a1)+1)25.下面程序的運行結果是_char str=”ABCDEFGGH”,*p=str; printf(“%dn”,*(p+3);26.C語言結構體類型變量在程序執(zhí)行期間駐留在內存中的包括_27.以下
6、關于結構體與共用體的共同點和區(qū)別是_,他們如何分配空間的?28.已有定義“int a,b,c;”,且a=b=c=20,執(zhí)行if(a+|b+) c+;語句后,a、b、c的值是分別是_、_、_。已有定義“int a,b,c;”,且a=b=c=20,執(zhí)行if(a+&&b+) c+;語句后,a、b、c的值是分別是_、_、_29. 在一個源文件中定義的全局變量和局部變量的作用域為_和_。30. 在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據傳遞方式是什么?如果實參是地址值呢?不同的是什么?31.有以下程序, 結果為_。 void main( ) int a5=1, 2, 3,
7、4, 5; int *pa=&a1; printf(“%d”, pa1);32.下面函數(shù)調用語句含有實參的個數(shù)為_。 y = fun(a, b, c, min(d ,e),max(a,b); 33.以下程序的輸出結果是_。long fib(int n) if(n>2) return(fib(n-1)+fib(n-2); else return (2); void main( ) printf("%ldn", fib(5); 34.若有以下語句int a,*p,*p; a=808;p=&a;pp=&p;則*PP的值是_。35. 設有如下定義:in
8、t *p( ); int a10, *q10;qi=&ai則p表示的意義是_,*q的表示的含義是_,其值是_。 38.若有 #define MU(x,y) x*y , 則表達式24/MU(1+2,2)的值是_。39.若有 int a=1; 則執(zhí)行完循環(huán)語句while( a+<100 );后a的值為_。40.以下所列的C語言常量中,錯誤的是_。A 0xFF B2.8e0.2 C25.3 D'B'41.所有的字符串都是以_字符結束的。42假定double類型變量占用8個字節(jié),且有定義:double x10=1,2,3;,則數(shù)組x在內存中所占字節(jié)數(shù)是_ 43判斷char
9、型變量ch是否為小寫字母的正確表達式是_44. 以下語句正確的有_,錯誤的有_ A char a='P', b='M' B float a=b=101.0;C int m=101, *n=&m; D double *a, b=&a; 45.以下4個選項中,不能看做一條語句的是_Aa-=23; Ba=8,b=12.5,c=13.68; B if(a<15) p+; Dif(b!=5)x=2; y=6;46.關于if后一對圓括號中的表達式,可以是哪種類型的表達式_ 47.以下有關變量使用范圍不正確的說法是_。 A 在不同函數(shù)中可以使用同名的變量
10、 B 形式參數(shù)是局部變量 C 在函數(shù)內定義的變量只在本函數(shù)內有效 D 全局變量可以在所有函數(shù)中使用48.若有說明語句:int a,b,*d=&b;,則能正確從鍵盤讀入2個整數(shù)分別賦給變量a、b的語句是_。Ascanf("%d%d", &a,d); Bscanf("%d%d", &a,&d); C scanf("%d%d" ,a,d); Dscanf("%d%d", a,*d);49.已知 int p=20; 則執(zhí)行 if(p<=0) if(p!=0) printf(“AAAAA
11、”); else printf(“BBBBB”); else printf(“CCCCC”);語句后,輸出的結果是_。50.要使字符數(shù)組str存放一個字符串"Goodbye",正確的定義語句是_。51.若用二維數(shù)組名作為函數(shù)調用的實參,傳遞給形參的值是_。52.若有 int x=20,y=8,z;,則執(zhí)行語句z=0.7+x/y后z的值為_。53.設有以下語句:struct SSint no; char name10;PERSON;則下面敘述中錯誤的是_。A struct是結構體類型的關鍵字 B struct SS是結構體類型C PERSON是結構體類型名 D name是結構
12、體成員名 54.已知:char ch='m';則下列表達式的值是_。 ch = (ch>='a'&&ch<='z') ? (ch-32) : ch; 55.下面程序的運行結果是_。 char c8='a','0,b','0','c','0' printf("%s",c);56.以下程序的輸出結果是_。 main() char st20= "10987654321ntnt" printf("%
13、d n",strlen(st); 57.有如下程序, 該程序的輸出結果是_。main( ) float x=2.0, y; if( x<0.0 ) y=0.0; else if( x<10.0 ) y=1.0/x+1/4; else y=10.0; printf( "%fn", y); 58.以下程序段的輸出結果是_。main( ) int a10=1,2,3,4,5,6,7,8,9,10, *p=&a2;printf( "%d", *(p+3) );59.有如下程序, 該程序的執(zhí)行結果是_。 main() int i, s
14、um=0; for(i=1; i<=10; i+) sum += i; printf( "%dn", sum); 60.以下程序段,while 循環(huán)執(zhí)行的次數(shù)是_。 int k=0; while( k = 2) k = k -1; 60.語言使用的磁盤文件系統(tǒng)中,數(shù)據文件存儲的的形式有哪兩種_。 61.文件函數(shù)中,用于打開文件的函數(shù)是_,用于關閉文件的函數(shù)是_,讀寫文件中字符的函數(shù)是_,將一個字符寫入磁盤文件的函數(shù)是_。二編程1.已知某班10個學生的C語言成績?yōu)閷W號9901990299039904990599069907990899099910C成績65.486.76
15、9.888.510092.687.354.896.379.6要求:按成績大小排序輸出,格式如下:學號 成績 名次 9905 100.0 1 9909 96.3 2 參考答案:#include "stdio.h"void main() static int num10=,i,j,p,t; static float sc10=65.4,86.7,69.8,88.5,100,92.6,87.3,54.8,96.3,79.6,f; printf("the original data:n"); printf(" 學號 成績n=n"); for(
16、i=0;i<10;i+) printf("%6d %6.1fn",numi,sci); for(i=0;i<9;i+) p=i; for(j=i+1;j<10;j+) if(scp<scj) p=j; if(p!=i) for(j=0;j<10;j+) t=nump; nump=numi; numi=t; f=scp; scp=sci; sci=f; printf("the sorted data:n"); printf(" 學號 成績 名次n=n"); for(i=0;i<10;i+) print
17、f("%6d %6.1f %dn",numi,sci,i+1);2.例8.3編寫一個交換兩個變量的函數(shù),在主程序中調用,實現(xiàn)兩個變量值的交換。#include <stdio.h>void main() int a,b;int *pa,*pb;void swap(int *p1,int *p2);/*函數(shù)聲明*/scanf(%d%d,&a,&b);pa&a; /* pa指向變量a */pb&b; /* pb指向變量b */swap(pa,pb);printf(na%d,b%dn,a,b);void swap(int *p1,int
18、*p2)int temp; temp*p1; /*三行語句交換指針p1,p2所指向的變量的值*/ *p1*p2; *p2temp; 3. 例6.5編程求組合C=分別定義求組合的函數(shù)和求階乘的函數(shù):#include <stdio.h>long fac(int k) /* 定義求階乘的函數(shù)*/ long f1; int i; for(i1;i<k;i)f f * i; return f;long comb(int n,int m) /* 定義組合函數(shù)*/ long c;c fac(m)/ (fac(n)* fac(mn); /* 嵌套調用階乘函數(shù)*/return c;main()
19、 int n,m; long c; scanf(%d,%d,&n,&m); c comb (n,m); /* 調用組合函數(shù)*/ printf (%ld,c);4.例6.6輸入兩個數(shù),輸出其中較大的數(shù)。#include <stdio.h>void main() int a,b,m; int max(int,int ); /*對函數(shù)max的聲明*/ scanf(%d,%d,&a,&b); m max(a,b); /*調用函數(shù)max,a、b已有具體的值*/ printf(max%d,m);int max(int x,int y) int t; if (x&
20、gt;y)t x; else t y;return t; 如果運行時輸入:10,5輸出為105. 例6.8用遞歸計算n!。程序:#include <stdio.h>long fac(int n)long f;if (n0)f1;eslef n * fac(n1); /* 遞歸調用,求(n1)!*/return f;void main()long y; int n; scanf(%d,&n); y fac(n); /*調用fac(n)求n!*/ printf(%d!%ld,n,y);程序運行時如果輸入:36. 例5.9找出31 000中的全部素數(shù)。程序:#include &l
21、t;math.h>void main() unsigned int i,j,count,flag;/* 用flag作標志*/count0; /* 計數(shù)器清0*/for(i3;i<1000;i)flag 0; for(j2;j< sqrt(i);j)if (i % j 0) /*能整除,不是素數(shù),標志設為1 */ flag 1;break; /* 內循環(huán)結束 */if (flag 0) /* 若flag為0,則i是素數(shù) */ printf(%4d,i ); count;if (count % 8 0)printf(n); /* 每行輸出8個素數(shù)*/* 外循環(huán) */7.例8.1從
22、鍵盤輸入兩個整數(shù)到a、b,按由大到小輸出。#include <stdio.h>void main()int a,b,*pa&a,*pb&b,*p;/*定義指針變量pa、pb,并進行初始化,如圖8.4(a)所示*/scanf(%d%d,&a,&b); if (*pa*pb) ppa;/*進行指針交換,如圖8.4(b)和圖8.4(c)所示*/papb;pbp;printf(n a%d,b%dn,a,b);printf(n max%d,min%d,*pa,*pb);/* pa指向大數(shù),pb指向小數(shù)*/輸入:1222輸出: a12,b22max22,min128.例8.14用指向一維
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2363-2026200 W~30 kW 激光功率計校準規(guī)范
- 山西藥科去年單招題目及答案
- 思辯作文題目模板及答案
- 養(yǎng)老院入住申請制度
- 養(yǎng)老院老人心理咨詢師職業(yè)道德制度
- 養(yǎng)老院老人臨終關懷服務制度
- 理綜最容易錯的題目及答案
- 養(yǎng)老院老年人節(jié)假日活動制度
- 挫折心理測試題目及答案
- 長安坊市制度
- 2025年秋季散學典禮校長講話:以四馬精神赴新程攜溫暖期許啟寒假
- 2026貴州省黔晟國有資產經營有限責任公司面向社會招聘中層管理人員2人備考考試試題及答案解析
- 躁狂發(fā)作的護理診斷及護理措施
- 第六節(jié)暫準進出口貨物課件
- 通信工程冬季施工安全培訓
- 中醫(yī)外科乳房疾病診療規(guī)范診療指南2023版
- 壓實瀝青混合料密度 表干法 自動計算
- 田口三次設計
- 《我的戒煙》閱讀答案
- GB/T 7442-2007角向磨光機
- GB/T 324-2008焊縫符號表示法
評論
0/150
提交評論