C語言程序設(shè)計(jì)習(xí)題集(3).doc_第1頁
C語言程序設(shè)計(jì)習(xí)題集(3).doc_第2頁
C語言程序設(shè)計(jì)習(xí)題集(3).doc_第3頁
C語言程序設(shè)計(jì)習(xí)題集(3).doc_第4頁
C語言程序設(shè)計(jì)習(xí)題集(3).doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

指針一 單項(xiàng)選擇題(每題2分,共40分)1 以下敘述中錯(cuò)誤的是B。A 在程序中凡是以“#”開始的語句行都是預(yù)處理命令行B 預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束C #define MAX是合法的宏定義命令行D C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的2 若程序中有宏定義行:#define N 100 ,則以下敘述中正確的是B。A 宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100B 在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符NC 對(duì)C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識(shí)符ND 在運(yùn)行時(shí)用100替換標(biāo)識(shí)符3 若有如下宏定義:#define N 2#define y(n) (N+1)*n)則執(zhí)行下列語句:z=4*(N+y(5);后的結(jié)果是B。A 語句有錯(cuò)誤 B z值為68 C z值為60 D z值為1804 以下程序運(yùn)行后的輸出結(jié)果是A。#define F(X,Y) (X)*(Y)main() int a=3,b=4;printf(%dn,F(a+,b+);A 12 B 15 C 16 D 205 以下程序運(yùn)行后的輸出結(jié)果是C。#define f(x) (x*x)main() int i1,i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf(%d,%dn,i1,i2);A 64,28 B 4,4 C 4,3 D 64,646 若已定義a為int型變量,則D是對(duì)指針變量p的正確說明和初始化。A int p=&a; B int *p=a; C int *p=*a; D int *p=&a;7 已知下列說明語句:static int a=2,4,6,8static int *p=a,a+1,a+2,a+3;int *q;q=p;則表達(dá)式*(q+2)的值是A。A 6 B 2 C 4 D 88 下面是一個(gè)初始化指針的語句:int *px=&a;,其中指針變量的名字應(yīng)該C。A *px B a C px D &a9 若指針px為空指針,則B。A px指向不定 B px的值為零 C px的目標(biāo)為零 D px的地址為零10 對(duì)下語句int *px10;,下面正確的說法是B。A px是一個(gè)指針,指向一個(gè)數(shù)組,數(shù)組的元素是整數(shù)型。B px是一個(gè)數(shù)組,其數(shù)組的每一個(gè)元素是指向整數(shù)的指針。C A和B均錯(cuò),但它是C語言的正確語句。D C語言不允許這樣的語句。11 具有相同基類型的指針變量p和數(shù)組y,下列寫法中不合法的是D。A p=y B *p=yi C p=&yi D p=&y12 已知static int a=5,4,3,2,1,*p=a+3,a+2,a+1,a,*q=p; ,則表達(dá)式 *(p0+1)+*(q+2) 的值是A。A 5 B 4 C 6 D 713 說明語句int *(*p)();的含義為D。A p是一個(gè)指向int型數(shù)組的指針B p是指針變量,它構(gòu)成了指針數(shù)組C p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型D p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)指向整型的指針14 設(shè)有如下程序段char s20=Beijing,*p; p=s;則執(zhí)行p=s;語句后,以下敘述正確的是A。A 可以用*p表示s0B s數(shù)組中元素個(gè)數(shù)和p所指字符串長度相等C s和p都是指針變量D 數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相同15 設(shè)int型變量i、n均已定義,指針變量s1、s2各指向一個(gè)字符串。在for(i=0;in;i+)循環(huán)中,下列語句用以實(shí)現(xiàn)將s2所指字符串中前n個(gè)字符復(fù)制到s1所指字符串中,其中代碼正確的是A。A *s1+=*s2+; B s1n-1=s2n-1;C *(s1+n-1)=*(s2+n-1); D *(+s1)=*(+s2);16 給出下列程序的運(yùn)行結(jié)果B。#include void main() static char a=language,b=program;char *ptr1=a,*ptr2=b;int k;for(k=0;k7;k+)if(*(ptr1+k)=*(ptr2+k) printf(%c,*(ptr1+k);A gae B ga C language D 有語法錯(cuò)誤17 以下程序執(zhí)行后的輸出結(jié)果是A。void fun1(char *p) char *q;q=p;while(*q!=0) (*q)+; q+; main() char a=Program,*p;p=&a3; fun1(p); printf(%sn,a);A Prohsbn B Prphsbn C Progsbn D Program18 以下程序執(zhí)行后的輸出結(jié)果是C。void swap(char *x,char *y) char t;t=*x; *x=*y; *y=t;main() char *s1=abc,*s2=123;swap(s1,s2); printf(%s,%sn,s1,s2);A 123,abc B abc,123 C 1bc,a23 D 321,cba19 以下程序執(zhí)行后的輸出結(jié)果是C。main() char *p=3697,2584;int i,j; long num=0;for(i=0;i2;i+) j=0;while(pij!=0) if(pij-0)%2) num=10*num+pij-0;j+=2;printf(%dn,num);A 35 B 37 C 39 D 397520 下列程序運(yùn)行后的輸出結(jié)果是A。void main() char str=The_Microsoft; int n=4;sub(str,0,n-1);sub(str,0,strlen(str)-1);printf(%sn,str);sub(str,n1,n2)char *str;int n1,n2; char c,*p;p=str+n2;str=str+n1;while(strp) c=*str; *str=*p; *p=c;str+; p-;A tfosorciMThe_ B. ehT_Microsoft C tfosorciM_ehT D. Microsoft_The二 填空題(每空3分,共30分)1 以下程序的定義語句中,x1的初值是 2 ,程序運(yùn)行后輸出的內(nèi)容是 2468 。main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i;for(i=0; i4; i+) pi=&x2*i+1; printf(%d, pi0); printf(n);2 以下程序的輸出結(jié)果是 2 5 。void swap(int *a, int *b) int *t;t=a; a=b; b=t;main() int i=2,j=5,*p=&i,*q=&j;swap(p,q); printf(%d %dn,*p,*q)3 以下程序的輸出結(jié)果是 4 。main() int a5=2,4,6,8,10, *p;p=a; p+;printf(%d, *p);4 以下程序的輸出結(jié)果是_55_。#define M 5#define N M+Mmain() int k;k=N*N*5; printf(%dn,k);5 若有定義語句:int a4=0,1,2,3,*p;p=&a1;則+(*p)的值是 2 。6 若有定義:int a23=2,4,6,8,10,12;則*(&a00+2*2+1)的值是 12 ,*(a1+2)的值是 12 。7 若有程序段:int *p3,a6,i;for(i=0;i3;i+) pi=&a2*i ;則*p0引用的是a數(shù)組元素 a0 ,*(p1+1)引用的是a數(shù)組元素 a3 。三 程序填空題(每空3分,共30分)1 下面函數(shù)的功能是從輸入的十個(gè)字符串中找出最長的那個(gè)串,請(qǐng)?zhí)羁帐钩绦蛲暾oid fun(char str1081,char *sp) int i;*sp = 【1】str0 ;for(i=1;i10; i+)if(strlen(*sp)age B student.age C *p.age D stud1.student.age2 說明語句如下,則正確的敘述是D。union data int x; char y; float z; a;A data和a均是共用體類型變量B a所占內(nèi)存長度等于其成員x、y、z各在內(nèi)存所占長度之和C 任何情況下,均不能對(duì)a作整體賦值D a的地址和它的各成員地址都是同一地址3 共用體成員的數(shù)據(jù)類型B。A 相同 B 可以不同也可以相同C 長度一樣 D 是結(jié)構(gòu)體變量4 由系統(tǒng)分配和控制的標(biāo)準(zhǔn)輸出文件為D。A 鍵盤 B 磁盤 C 打印機(jī) D 顯示器5 下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是 C 。A C語言只能讀寫文本文件B C語言只能讀寫二進(jìn)制文件C 文件由字符序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件D 文件由二進(jìn)制數(shù)據(jù)序列組成6 若要用fopen函數(shù)建一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則文件方式字符串應(yīng)該為B。A ab+ B wb+ C rb+ D ab7 下列程序運(yùn)行后的輸出結(jié)果是A。struct s int n; char *c; *p;char d=a,b,c,d,e;struct s a=10,&d0,20,&d1,30,&d2,40,&d3,50,&d4;#include main() p=a;printf(%dn,+p-n);printf(%dn,(+p)-n);printf(%cn,+(*p-c);A 11 B 11 C 10 D 1020 20 20 20c b c b8 已知struct student char *name; int student_no; char grade; ;struct student temp,*p=&temp;=chou;則下面不正確的是B。表達(dá)式 值A(chǔ) p-name chouB (*p)-name+2 hC *p-name+2 eD *(p-name+2) o9 下面程序運(yùn)行后,其輸出結(jié)果是B。#includestruct tree int x; char *s; t;func(struct tree t) t.x=10; t.s=computer; return 0; main() t.x=1; t.s=minicomputer; func(t); printf(%d,%sn,t.x,t.s);A 10,computer B 1,minicomputer C 1,computer D 10,minicomputer10 下列程序的輸出結(jié)果是B。#includemain() union int i2;long k;char c4; t,*s=&t;s-i0=0x39;s-i1=0x38;printf(%lx ,s-k);printf(%cn,s-c0);A 390038 39 B 380039 9 C 3938 38 D 3839 811 若已定義了如下的共用體類型變量x,則x所占用的內(nèi)存字節(jié)數(shù)為C。union data int i; char cha; double f; x;A 7 B 11 C 8 D 1012 如下說明語句:enum A A0=1,A1=3,A2,A3,A4,A5;enum A B;執(zhí)行 B=A3; printf(%dn,B); 輸出是A。A 5 B 3 C 2 D 編譯時(shí)出錯(cuò)13 有以下說明語句,則結(jié)構(gòu)變量s的成員num的不正確引用是B。struct student int num;int age;s,*p;A s.num B *p.num C p-num D (*p).num14 以下各選項(xiàng)試圖說明一種新的類型名,其中正確的是 C 。A typedef integer int; B typedef integer=int;C typedef int integer; D typedef int=integer;15 運(yùn)行下面程序,其輸出結(jié)果是C。#include struct sample int a,b; char *ch; ;main() struct sample arg;arg.a=1000;arg.b=100;arg.ch=abcd;f1(arg);f1(struct sample param) param.a+=param.b;param.ch2=x;printf(%dn,param.a);printf(%sn,param.ch);A 1000 B 1100 C 1100 D 100abcd abcd abxd abcd16 fwrite函數(shù)的一般調(diào)用形式是D。A fwrite(buffer,count,size,fp); B fwrite(fp,size,count,buffer);C fwrite(fp,count,size,buffer); D fwrite(buffer,size,count,fp);17 C語言文件操作函數(shù)fread(buffer,size,n,fp)的功能是B。A 從文件fp中讀n個(gè)字節(jié)存入bufferB 從文件fp中讀n個(gè)大小為size字節(jié)的數(shù)據(jù)項(xiàng)存入buffer中C 從文件fp中讀入n個(gè)字節(jié)放入大小為size字節(jié)的緩沖區(qū)buffer中D 從文件fp中讀入n個(gè)字符數(shù)據(jù)放入buffer中18 若有如下定義:struct data int i; char ch; float f; b;則結(jié)構(gòu)體變量b占用內(nèi)存的字節(jié)數(shù)是 A 。A

溫馨提示

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

評(píng)論

0/150

提交評(píng)論