c語言試卷參考模板_第1頁
c語言試卷參考模板_第2頁
c語言試卷參考模板_第3頁
c語言試卷參考模板_第4頁
c語言試卷參考模板_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、C語言試卷一、選擇題(40分,每題1分)1、C語言規定:在一個源程序中,main函數的位置(C)。A、必須在最開始B、必須在系統調用的庫函數的后面C、可以任意 D、必須在最后2、組成C語言程序的是(A)。 A、函數 B、 子程序C、過程 D、主程序和子程序 3、C語言中,用戶能使用的合法標識符是(C)。 A、a_b!B、 xyz C、fa2D、5i 4、若定義inti; 則以下循環語句的循環執行次數是(B)。 for(i=2; i=0;) printf("%d", i-); A、 無限次 B、0次 C、1次 D、2次 5、以下關于宏替換的敘述不正確的是(D)。A、宏替換只是

2、字符替換 B、宏名無類型C、宏替換不占用運行時間 D、宏替換不占用編譯時間6、在循環語句的循環體中,continue語句的作用是(C)。 A、立即終止整個循環 B、繼續執行continue語句之后的循環體 C、結束本次循環 D、結束本次循環并跳出循環 7、以下對C語言中字符數組的錯誤描述是(C)。 A、字符數組可以存放字符串 B、字符數組中的字符串可以整個輸入、輸出 C、可以在賦值語句中通過賦值運算符=對字符數組整體賦值 D、字符數組中字符串的結束標志是0 8、C語言規定,函數返回值的類型由(D)所決定。 A、return語句中的表達式類型 B、調用該函數時的主調函數類型 C、調用該函數時的形

3、參類型 D、在定義該函數時所指定的函數類型 1 / 99、以下關于do-while循環的不正確描述是(B)。A、do-while的循環體至少執行一次B、do-while循環由do開始,用while結束,在while(表達式)后面不能寫分號C、在do-while循環體中,一定要有能使while后面表達式的值變為零("假")的操作D、do-while的循環體可以是復合語句10、若a=-14,b=3,則條件表達式 a<b? a:b+1的值為(A)。A、-14 B、-13 C、3 D、411、已知:int n,i=1,j=2;執行語句n=i<j?i+:j+;則i和j的值

4、是(C)。A、1,2 B、1,3 C、2,2 D、2,312、為了判斷兩個字符串s1和s2相等,應當使用(D)。A、if (s1=s2) B、if(s1=s2)C、if (strcmp(s1,s2)D、if (strcmp(s1,s2)=0)13、若有說明:int a10; 則對a數組元素的正確引用是(C)。A、a10B、a3.5C、a5-3D、a-114、以下正確的函數形式是(D)。A、double fun(int x,int y) z=x+y;return z;B、fun(int x,y) int z; return z;C、fun(x,y) int x,y; double z; z=x+

5、y; return z;D、double fun( int x,int y) double z; z=x+y; return z; 15、對于條件表達式:(M)?(a+):(a-),其中的表達式等價于(C)。A、M = 0B、M = 1C、M != 0D、M != 116、若有以下定義和語句:char *s1 = “12345”, *s2 = “1234”;printf(“%dn”, strlen(strcpy(s1, s2);則輸出結果是:(A)。A、4B、5C、9D、1017、以下哪一項是不正確的字符串賦值或賦初值的方式:(C)。A、char *str;str = “string”;B、c

6、har str7 = s, 't', 'r', 'i', 'n', 'g'C、char str110; str1 = “string”;D、char str1 = “string”, str2 = “12345678”;18、在以下一組運算符中,優先級最高的運算符是(C)。A、<=B、=C、%D、&&19、設有定義:struct skint a; float b;data, *p; 若有p = &data; 則對data中的a域的正確引用是(B)。A、(*p).data.aB、(*p)

7、.aC、p->data.aD、p.data.a20、執行下列語句后,sum變量的值是(B)。int sum = 0, i;for(i = 0; i < 10; i+, sum += i);A、45B、55C、0D、編譯錯誤21、以下關于typedef的敘述中錯誤的是(A)。A、用typedef可以增加新的類型B、用typedef可以定義各種類型名,但不能用來定義變量C、用typedef只是將已有的類型用新的標識符來代替D、使用typedef有利于程序的通用和移植22、表達式1&3&5&7的值為(A)。A、1B、3C、5D、723、語句printf(“st”)

8、;的輸出結果為(B)。A、stB、stC、sD、s24、語句:strcat(strcpy(str1, str2), str3)的功能是(C)。A、將字符串str1復制到字符串str2中,再連接到字符串str3之后B、將字符串str1連接到字符串str2之后,再復制到字符串str3中C、將字符串str2復制到字符串str1中,再將字符串str3連接到字符串str1之后D、將字符串str2連接到字符串str1之后,再將字符串str1復制到字符串str3中25、執行下列語句后,a的值為(B)。int a;#define M(x, y) (x*y)a = M(1+2, 3);A、9B、7C、5D、以上

9、均不是26、能正確表示“當x取值在1,10和200,210范圍內為真,否則為假”的表達式是(B)。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) && (

10、x <= 10) | (x >= 200) | (x <= 210)27、若用數組作為函數調用的實參,傳遞給形參的是(A)。A、數組的首地址B、數組的第一個元素C、數組中全部元素的值D、數組元素的個數28、算術運算符、賦值運算符和關系運算符的運算優先級按從高到低的次序為(B)。A、算術運算、賦值運算、關系運算B、算術運算、關系運算、賦值運算C、關系運算、賦值運算、算術運算D、關系運算、算術運算、賦值運算29、假如指針p已經指向變量x,則&*p相當于(A)。A、xB、*pC、&xD、*p30、若執行以下語句,則輸出的結果是(B)。char sp = “tv0wi

11、lln”;printf(“%d”, strlen(sp);A、14B、3C、9D、字符串中有非法字符31、下述程序的輸出結果是(A)。int x = 10;y = x+;printf(“%d, %d”, (x+, y), y+);/(x+,y) 逗號取其最后的值 單從后向前計算A、11, 10B、11, 11C、10, 10D、10, 1132、假設指針p1已經指向來某個整型變量,要使指針p2也指向同一個變量,則下面各項中正確的是(D)。A、p2 = *p1B、p2 = &p1C、p2 = *p1D、p2 = &*p133、執行以下程序段后,c3中的值是(A)。int c1=1

12、,c2=2,c3;c3=c1/c2;A、0B、1/2C、0.5D、134、兩個指針變量的值相等時,表明兩個指針變量是(B)。A、占據同一內存單元B、指向同一內存單元地址或者都為空C、是兩個空指針D、都沒有指向35、C語言中運算對象必需是整型的運算符是(C)。A、/B、!C、%D、*36、下列程序的輸出結果是(D)。void fun(int a, int b, int c) c =a*b; void main( )int c; fun(2,3,c); printf(”%dn”,c);A、0B、1C、6D、無法確定37、下面敘述正確的是(C)。A、算法的執行效率與數據的存儲結構無關B、算法的空間復

13、雜度是指算法程序中指令(或語句)的條數C、算法的有窮性是指算法必須能在執行有限個步驟之后終止D、算法的時間復雜度是指執行算法程序所需要的時間38、以下數據結構屬于非線性數據結構的是(C)。A、隊列 B、線性表 C、二叉樹D、棧39、以下錯誤的描述是(B)。A、break語句不能用于循環語句和switch語句外的任何其他語句B、在switch 語句中使用break語句或continue語句的作用相同C、在循環語句中使用continue語句是為了結束本次循環,而不是終止整個循環D、在循環語句中使用break語句是為了使流程跳出循環體,提前結束循環40、在c語言中,函數中變量的隱含存儲類別是(A)。

14、A、autoB、staticC、externD、無存儲類別二、填空題(30分,每空1.5分)1、一個C源程序中至少應包括一個_main_函數。 2、結構化程序設計所規定的三種基本控制結構是 順序 結構 循環 結構和 分支 結構。3、定義int i=1;執行語句 while(i+<5);后,i的值為_6_。4、若a是int型變量,且a的初值為6,則計算表達式a+=a-=a*a后,a的值為 _-60_。 5、C語言提供的三種邏輯運算符是&&、_|_和_!_。 6、printf(“%5.3fn”, 123456.12345);輸出為_123456.123_。7、表達式: 3 &

15、amp; (2 & 3 4)的值為_4_。8、整型變量m的值為27,語句printf(“%xn”, m);的輸出為_1b_。9、數組聲明為int a66; 表達式:*a+3指向 _a【0】【3】, *(a+3)指向 _a【3】【0】_,*a指向 _a【0】【0】_。(注:答案的形式是:a11)10、定義一個帶參數的宏,若變量中的字符為大寫字母則轉換成小寫字母_#defineFUNC(c)(c)+32 或#define FUNC(c)(c)+'a'-'A'_。三、編程題(30分,每題10分)1、設計一個遞歸函數實現將任意一個十進制正整數輸出為八進制數。 1

16、 void function(int num) 2 3 if(num) 4 5 function(num>>3); 6 printf("%d", num%8); 7 8 2、打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位 數字立方和等于該數本身。例如:153是一個“水仙花數”,因為 153=1的三次方5的三次方3的三次方。 1 #include <stdio.h> 2 3 int isflower(int num); 4 5 int main() 6 7 int i; 8 printf("The flowers are :

17、n"); 9 for (i=100;i<1000;i+) 10 if(isflower(i)=1) 11 printf("%d ",i); 12 printf("n"); 13 14 return 0; 15 16 17 int isflower(int num ) 18 19 int a , b , c; 20 a=num%10; 21 c=num/100; 22 b=(num%100)/10; 23 if(a*a*a+b*b*b+c*c*c=num) 24 return 1; 25 return 0; 26 3、編寫一個函數實現將兩個

18、從小到大排列的鏈表合并為一個也是從小到大排列的鏈表。鏈表節點的類型為:struct nodeint num, struct node *next;(按num大小排列)函數形式:void func(struct node *list, struct node *list1, struct node *list2)將list1和list2合并為list。注:list1和list2都有頭節點 1 void func(struct node *list, struct node *list1, struct node *list2) 2 3 struct node *p, *p1, *p2; 4 p1 = list1->ne

溫馨提示

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

評論

0/150

提交評論