1314班方剛C高級編程考試(修改)_第1頁
1314班方剛C高級編程考試(修改)_第2頁
1314班方剛C高級編程考試(修改)_第3頁
1314班方剛C高級編程考試(修改)_第4頁
1314班方剛C高級編程考試(修改)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、嵌入式C高級程考試上嵌嵌入式高級編程考試試卷12345678910BBBCBCCDCD11121314151617181920ADBDACBBAB一、選擇題(1.5*20)(1)下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是() A)線性鏈表 B)棧 C)循環(huán)鏈表 D)順序表 (2)下列表達式中,結(jié)果為5的是 ()A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3 (3)關(guān)于C語言的主函數(shù)描述正確的是 ()A)C程序可以有多個main函數(shù) B)C程序必有一個而且只能有一個main函數(shù) C)C程序可以沒有main函數(shù) D)C程序的執(zhí)行不一定在main函數(shù)開始執(zhí)行 (4)已知x,

2、y,z均為整型變量,且值均為1,則執(zhí)行語句+x|+y&&+z;后,表達式x+y的值為 ()A)1 B)2 C)3 D)4 (5)若int i,j;,則for(i=j=0;i<10&&j<8;i+,j+=3)控制的循環(huán)體執(zhí)行的次數(shù)是 ()A)9 B)8 C)3 D)2 (6)下列關(guān)于棧的描述正確的是 ()A)在棧中只能插入元素而不能刪除元素 B)在棧中只能刪除元素而不能插入元素 C)棧是特殊的線性表,只能在一端插入或刪除元素 D)棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素 (7)閱讀下列程序,則執(zhí)行結(jié)果是 ()#include "

3、;stdio.h" main() int a=0,b=0,c=0,i; for(i=0;i<4;i+) switch(i) case 0:a=i+; case 1:b=i+; case 2:c=i+; case 3:i+; printf("%d,%d,%d,%dn",a,b,c,i); A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 (8)以下描述錯誤的是 ()A)C程序中,函數(shù)可以直接或間接的調(diào)用自己 B)函數(shù)調(diào)用時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致 C)函數(shù)說明語句中的類型必須與函數(shù)返回值的類型一致 D)實參數(shù)可以與形

4、參個數(shù)不一致 (9)閱讀下面程序,則執(zhí)行后的結(jié)果為 ()#include "stdio.h" int fun1() int k=20; return k; int fun2() int a=15; return a; fun3(int a,int b) int k; k=(a-b)*(a+b); printf("%dn",k); main() fun3(fun1(),fun2();A)0 B)184 C)175 D)編譯不通過 (10)以下對一維數(shù)組c進行正確的定義初始化的語句是()A)int c10=0; B)int c10=0*10; C)int c

5、1=0,0,0,0,0,0,0; D)int c10=0; (11)閱讀下列程序,則執(zhí)行后輸出的結(jié)果是() #include "stdio.h" int k=1; fun(int k) k+; k=k*6; main() fun(k); printf("%dn",k); A)1 B)2 C)6 D)12 (12)現(xiàn)有如下程序段 #include "stdio.h" void fun(int *a, int *b, int *c) *c=*a+*b; main() int a2=12,23,c; fun(a,a+1,&c); p

6、rintf("%dn",c); 則程序的輸出結(jié)果為 ()A)23 B)12 C)0 D)35 (13)若有以下語句,則正確的描述是 ()char a="toyou" char b=t,o,y,o,u; A)a數(shù)組和b數(shù)組的長度相同 B)a數(shù)組長度小于b數(shù)組長度 C)a數(shù)組長度大于b數(shù)組長度 D)a數(shù)組等價于b數(shù)組 (14)已知:char a15,b15="I love china"則在程序中能將字符串I love china賦給數(shù)組a的正確語句是 ()A)a="I love china" B)strcpy(b,a)

7、; C)a=b; D)strcpy(a,b); (15)閱讀下面程序,則執(zhí)行后的結(jié)果為 ()#include "stdio.h" main() char *str="abcdefghijklmnopq" while(*str+!=e); printf("%cn",*str); A)f B)a C)e D)q (16)現(xiàn)有如下程序段 #include "stdio.h" int fun(int k,int *m);if(k%3)*m=k*k; else *m=k/3; main() int (*p)(int,int

8、*), m; p=fun; (*p)(78,&m); printf("%dn",m); 則程序段的輸出結(jié)果為 ()A)24 B)25 C)26 D)27 (17)閱讀下列程序,則執(zhí)行后的輸出結(jié)果為 ()#include "stdio.h" fun(int x) if(x/2>0)fun(x/2); printf("%d",x%2); main() fun(20); putchar(n); A)11100 B)10100 C)10101 D)10110 (18)閱讀如下程序段,則執(zhí)行后程序的輸出結(jié)果是 ()#include

9、 <stdio.h> main() struct aint x; int y;num2=20,5,6,7; printf("%dn",num0.x / num0.y * num1.y); A)0 B)28 C)20 D)5 (19)閱讀下列程序段 #include "stdio.h" typedef struct aa int a; struct aa *next; M; void set(M *k, int i, int *b) int j, d=0; for(j=1; j<i; j+) kj-1.next = &kj; kj

10、-1.a = bd+; kj-1.a = bd; main() M k5,*p; int d5=23,34,45,56,67; set(k,5,d); p=k+1; printf("%dn",table); 則下面的表達式在table處,能使程序執(zhí)行后,打印輸出數(shù)據(jù)45的是 ()A)p->next->a B)+p->a C)(*p).a+ D)p+->a (20)閱讀下面程序,程序?qū)崿F(xiàn)的功能是(a123.txt在當前盤符下已經(jīng)存在) ()#include "stdio.h" void main() FILE *fp; int a1

11、0, *p=a; fp=fopen("a123.txt","w"); while( strlen(gets(p)>0 ) fputs(a,fp); fputs("n",fp); fclose(fp); A)從鍵盤輸入若干行字符,按行號倒序?qū)懭胛谋疚募123.txt中 B)從鍵盤輸入若干行字符,取前2行寫入文本文件a123.txt中 C)從鍵盤輸入若干行字符,第一行寫入文本文件a123.txt中 D)從鍵盤輸入若干行字符,依次寫入文本文件a123.txt中 二、填空題(2×12分)(1)閱讀下面程序,則在執(zhí)行時候的輸出

12、為 _1,2_ 。 #include "stdio.h" main() int x=1, y=2, z=0; if(x=2)z=x,x=y,y=z; printf("%d,%dn",x,y); (2)語句printf("%dn",H-0+64);的執(zhí)行結(jié)果為_88_ 。 (3)閱讀下面程序,則程序的執(zhí)行結(jié)果為_10_ 。 #include "stdio.h" fun(int x) x=50; main() int a=10; fun(a); printf("%dn",a); (4)以下程序的輸出

13、結(jié)果是_12,1_ 。 int fun(int x, int y, int *p, int *q) *p=x*y; *q=x/y; main() int a,b,c,d; a=4;b=3; fun(a,b,&c,&d); printf("%d,%dn",c,d); (5)下面程序是求出數(shù)組arr的兩條對角線上元素之和,請?zhí)羁铡?#include "stdio.h" main() int arr33=2,3,4,8,3,2,7,9,8, a=0, b=0, i, j; for(i=0;i<3;i+) for(j=0;j<3;j+

14、) if( _i=j_ )a=a+arrij; for(i=0;i<3;i+) for( _j=2_ ; j>=0; j-) if( _j=2-i_ ) b=b+ arrij; printf("%d,%dn",a,b); (6)下面程序的功能是:對字符串從小到大進行排序并輸出,請?zhí)羁铡?#include "string.h" #include "stdio.h" sort(char *a,int n) int i, j; char *p; for(j=1;j<=n-1;j+) for(i=0; _i<n-j-1

15、_; i+) if( _strcmp(ai,ai+1)_ > 0) p=ai; ai=ai+1; ai+1=p; main() int i; char *book="itisme","itisyou","howareyou","fine","goodnight","goodbye" sort( _book,6_ ); for(i=0;i<6;i+) printf("%sn",booki); (7)下面的函數(shù)是完成1n的累加,完成函數(shù)。 a(in

16、t k) if(k<=0)printf("errorn"); if(k=1) _return 1_ ; else_return_(k+a(k-1)_ ; 三、以下為Windows NT下的32位C+程序,請計算sizeof的值(6分)char str = “Hello” ;char *p = str ;int n = 10;請計算sizeof (str ) = 6 sizeof ( p ) = 4 sizeof ( n ) = 4void Func ( char str100)請計算 sizeof( str ) = 100 void *p = malloc( 100

17、);請計算sizeof ( p ) =0四、簡答題(9分)1、頭文件中的 ifndef/define/endif 干什么用?防止該頭文件被重復(fù)引用2、#include <filename.h> 和 #include “filename.h” 有什么區(qū)別?#include <filename.h>指示預(yù)處理程序到預(yù)定義的缺省路徑下尋找文件#include “filename.h”指示預(yù)處理程序先到當前目錄下尋找文件,再到預(yù)定義的缺省路徑下尋找文件3、const 有什么用途?(請至少說明兩種)1,可以定義const常量2,const可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義

18、體。被const修飾的東西都受到強制保護,可以預(yù)防意外的變動,能提高程序的健壯性。機試:一、編寫strcpy函數(shù),并驗證;求字符串長度(7)已知strcpy函數(shù)的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。(1) 不調(diào)C的字符串庫函數(shù),請編寫函數(shù) strcpy,至少用三種方式實現(xiàn)。方法1:#include<stdio.h>char *strcpy(char *strDest,const char *strSrc);int main() char str120,str22

19、0; scanf("%s",str2); printf("%sn",StrCpy(str1,str2);/ return 0;char *strcpy(char *strDest,const char *strSrc)if(strDest=NULL|strSrc=NULL)return; while(*strSrc!='0')*strDest=*strSrc;strSrc+; strDest+;strDest='0' return strDest方法2:#include <stdio.h>char* StrCp

20、y(char *strDest, const char *strSrc)if(!strDest|!strSrc)return NULL; if (strSrc!=0) *strDest='0' return strDest; char* tmp=strDest; do *tmp+=*strSrc; while (*strSrc+); return strDest;int main() char str120,str220; scanf("%s",str2); printf("%sn",StrCpy(str1,str2);/ return

21、0;方法三:#include <stdio.h>char* StrCpy(char *strDest, const char *strSrc)While(*strDest +=* strSrc +)!='0');return strDest;int main() char str120,str220; scanf("%s",str2); printf("%sn",StrCpy(str1,str2);/ return 0;(2)計算strDest字符串的長度main()int i=0;while(*strDest != 0) i+;strDest+;printf(“%d”,i); 二、編寫一個遞歸版本的reve

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論