




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 指針71 選擇題1 若有說(shuō)明:int a=2, *p=&a, *q=p;,則以下非法的賦值語(yǔ)句是(D)。A p=q; B *p=*q; C a=*q; D q=a;a是整型數(shù),int *p,*q定義了指針,p,q是指向整型的指針。p取得a的地址,而q取得p的地址p,q是指針(也就是一個(gè)地址),而*p和*q是這個(gè)指針指向的整型數(shù)值(存放在這個(gè)地址的值)。A) 把q的地址賦給p,則p和q完全一樣了,都指向一個(gè)數(shù)2B) 把q中數(shù)據(jù)個(gè)pC) 把q中數(shù)據(jù)給aD) a中數(shù)據(jù)是2,不能夠給一個(gè)地址。除非*q=a2 若定義:int a=511, *b=&a;,則printf("
2、;%dn", *b);的輸出結(jié)果為:D A 無(wú)確定值 B a的地址 C 512 D 511int a=511,*b=&a;a 是整形變量b 是整形指針變量,指向 aprintf("%dn",*b);就是輸出指針變量 b,所指變量的值輸出結(jié)果5113 已有定義int a=2, *p1=&a, *p2=&a; 下面不能正確執(zhí)行的賦值語(yǔ)句是(B)。A a=*p1+*p2; B p1=a; C p1=p2; D a=*p1*(*p2);47、已知在程序中定義了如下的語(yǔ)句:int *P1,*P2;int k;p1=&k;p2=&k;則
3、下列語(yǔ)句中不能正確執(zhí)行是( B )A、k=*P1+*P2; B、p2=k; C、P1=P2; D、K=*P1 * (*P2);P1 P2是指針,K是整型變量,變量怎么可以賦值給指針呢?A其實(shí)是執(zhí)行了K=K+K(P1和P2都指向K,所以*P1 *P2其實(shí)都是指K)C是賦值語(yǔ)句D其實(shí)執(zhí)行了K=K*K4 變量的指針,其含義是指該變量的(B)。A 值 B 地址 C 名 D 一個(gè)標(biāo)志5 若有說(shuō)明語(yǔ)句:int a, b, c, *d=&c;,則能正確從鍵盤讀入三個(gè)整數(shù)分別賦給變量a、b、c的語(yǔ)句是(A)。A scanf("%d%d%d", &a, &b, d);
4、 B scanf("%d%d%d", a, b, d);C scanf("%d%d%d", &a, &b, &d); D scanf("%d%d%d", a, b,*d);對(duì)于int c,*d=&c;,c是一整型數(shù)據(jù),d是一指針,它指向變量c(即d=&c,*是指針類型的說(shuō)明符),所以,輸入c的值可以用scanf("%d",&c); 也可以用scanf("%d",d);6 若已定義int a=5; 下面對(duì)(1)、(2)兩個(gè)語(yǔ)句的正確解釋是(D)。(1
5、) int *p=&a; (2) *p=a;A 語(yǔ)句(1)和(2)中的*p含義相同,都表示給指針變量p賦值。B (1)和(2)語(yǔ)句的執(zhí)行結(jié)果,都是把變量a的地址值賦給指針變量p。C (1)在對(duì)p進(jìn)行說(shuō)明的同時(shí)進(jìn)行初始化,使p指向a;(2)變量a的值賦給指針變量p。D (1)在對(duì)p進(jìn)行說(shuō)明的同時(shí)進(jìn)行初始化,使p指向a; (2)將變量a的值賦予*p。A:(1):*p,定義p為int類型指針(2):*p,表示p所指向的變量B(1)把變量a的地址賦給指針變量p(2)把變量a的值,賦值給P所指向的變量C前半句正確,后半句錯(cuò)誤,(2)是把變量a的值賦值給P所指的變量。7 若有語(yǔ)句int *p, a
6、=10; p=&a; 下面均代表地址的一組選項(xiàng)是(D)。A a, p, *&a B &*a, &a, *pC *&p, *p, &a D &a, &*p, pint *p 是定義一個(gè)指針,p=&a ,p指向a的地址,*p=a, *指針名 是指取該指針?biāo)傅刂分械膬?nèi)容,&a 為a的地址,&*p=&a,p中放的為a 的地址0.2345px8 若需要建立如圖所示的存儲(chǔ)結(jié)構(gòu),且已有說(shuō)明double *p, x=0.2345; 則正確的賦值語(yǔ)句是()。 BA p=x; B p=&x; C *p=x;
7、D *p=&x;9 若有說(shuō)明:int *p, a=1, b; 以下正確的程序段是(B)。A p=&b; B scanf("%d", &b);scanf("%d", &p); *p=b;C p=&b; D p=&b;scanf("%d", *p); *p=a;A,B中 p是b的地址 那么如果要輸入b應(yīng)該是scanf("%d", p);C中 p還沒(méi)定義 給*p賦值就是給一個(gè)沒(méi)有開辟的地址賦值了D是正確的 意思是p為b的地址,將p地址上的數(shù)變成a, 等價(jià)于b=a10有如下語(yǔ)
8、句:int m=6, n=9, *p, *q; p=&m; q=&n; 如圖1所示,若要實(shí)現(xiàn)下圖所示的存儲(chǔ)結(jié)構(gòu),可選用的賦值語(yǔ)句是(C)。mpnqpmqn A *p=*q; B p=*q; C p=q; D *p=q;11以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是(B)。 #include <stdio.h> main() int *p, *q, a, b;p=&a;printf("input a:");scanf("%d", *p);A *p表示的是指針變量p的地址B *p表示的是變量a
9、的值,而不是變量a的地址C *p表示的是指針變量p的值D *p只能用來(lái)說(shuō)明p是一個(gè)指針變量scanf后面的參數(shù)是地址,是接收的值放到這個(gè)地址12下面程序的功能是從輸入的十個(gè)字符串中找出最長(zhǎng)的那個(gè)串。請(qǐng)?jiān)赺處填空。 #include "stdio.h" #include "string.h" #define N 10 main() char sN81, * t;int j; for (j=0; j<N; j+) gets (sj);t= *s; for (j=1; j<N; j+) if (strlen(t)<strlen(sj) _A_
10、; printf("the max length of ten strings is: %d, %sn", strlen(t), t);A t=sj B t=&sj C t= s+ D t=sj013下面判斷正確的是(C)。A char *s="girl" 等價(jià)于 char *s; *s="girl"B char s10="girl" 等價(jià)于 char s10; s10="girl"C char *s="girl" 等價(jià)于 char *s; s="girl&
11、quot;D char s4= "boy", t4= "boy" 等價(jià)于char s4=t4= "boy"14設(shè)char *s="ta017bc";則指針變量s指向的字符串所占的字節(jié)數(shù)是(C)。A 9 B 5 C 6 D 7首先,字節(jié)數(shù)不是指字符串長(zhǎng)度,字符串長(zhǎng)度比存儲(chǔ)字節(jié)數(shù)少一。t 是一個(gè)轉(zhuǎn)義字符 相當(dāng)于鍵盤“Tab”鍵a 普通字符017 轉(zhuǎn)義字符 ASCII代碼值為8進(jìn)制數(shù)17即10進(jìn)制數(shù)15的那個(gè)符號(hào)b 普通字符c 普通字符 字符串結(jié)束標(biāo)志0s是字符串類型。每一個(gè)都是char型變量;char型變量的二進(jìn)制長(zhǎng)度
12、是8,也就是一個(gè)字節(jié),所以指針變量s 指向的字符串所占字節(jié)數(shù)是6 ,字符串長(zhǎng)度是5.15下面程序段中,for循環(huán)的執(zhí)行次數(shù)是(C)。 char *s="ta018bc"for (;*s!='0';s+) printf("*");t a 018 b c 0各一次A 9 B 5 C 6 D 716以下不能正確進(jìn)行字符串賦初值的語(yǔ)句是(A)。A. char str5= "good!" B char *str="good!"C. char str="good!" D char str5=
13、'g', 'o','o', 'd'1 A.char str5="good!"/這個(gè)不符合C語(yǔ)言的語(yǔ)法規(guī)定,字符串初始化是這樣寫的:char str6="good!" /因最后還有一個(gè)結(jié)束符,因此數(shù)組元素應(yīng)該是6個(gè)。 2 題目表述有些不準(zhǔn)確 C,D叫初始化,B叫賦值。 3 題目中的單雙引號(hào)全部是中文的,這也不符合C語(yǔ)言語(yǔ)法。應(yīng)該改為英文的。17若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,不正確的語(yǔ)句是(A)。A p=2*(int *)malloc(sizeof(int);B p=
14、(int *)malloc(2*sizeof(int);C p=(int *)malloc(2*2);D p=(int*)calloc(2, sizeof(int);malloc的全稱是memory allocation,中文叫動(dòng)態(tài)內(nèi)存分配,當(dāng)無(wú)法知道內(nèi)存具體位置的時(shí)候,想要綁定真正的內(nèi)存空間,就需要用到動(dòng)態(tài)的分配內(nèi)存。18下面程序段的運(yùn)行結(jié)果是(C)。char *s="abcde" s+=2; printf("%d", s);A cde B 字符'c' C 字符'c'的地址 D 無(wú)確定的輸出結(jié)果19設(shè)有如下的程序段:ch
15、ar s="girl", *t; t=s;則下列敘述正確的是(D)。A s和t完全相同B 數(shù)組s中的內(nèi)容和指針變量t中的內(nèi)容相等C s數(shù)組長(zhǎng)度和t所指向的字符串長(zhǎng)度相等D *t與s0相等20以下正確的程序段是(B)。A char s20; B char *s; scanf("%s", &s); scanf("%s", s);C char s20; D char s20, *t=s; scanf("%s", &s2); scanf("%s", t2);21下面程序段的運(yùn)行結(jié)果是(C
16、)。#include "stdio.h"main() int m=10, n=20; char *format="%s, m=%d, n=%dn" m*=n; printf(format, "m*=n", m,n);A format, "m*=n", m, n B format, "m*=n"C m*=n, m=200, n=20 D 以上結(jié)果都不對(duì)22以下與庫(kù)函數(shù)strcpy(char *p, char *q)功能不相等的程序段是(D)。A strcpy1(char *p, char *q)
17、while (*p+=*q+)!='0');B strcpy2( char *p, char *q) while(*p=*q)!='0') p+; q+;C strcpy3(char *p, char *q) while (*p+=*q+); D strcpy4( char *p, char *q) while(*p) *p+=*q+;23下面程序段的運(yùn)行結(jié)果是(C)。#include "stdio.h" main() char s="example!", *t; t=s; while( *t!='p')
18、printf("%c", *t-32);t+; A EXAMPLE! B example! C EXAM D example!24以下正確的程序段是(C)。A char s="12345", t="6543d21" strcpy( s,t);B char s20, *t="12345" strcat(s,t);C char s20=" ", *t="12345" strcat(s, t);D char *s="12345", *t="54321&
19、quot; strcat (s,t);25以下與庫(kù)函數(shù)strcmp(char *s, chat *t)的功能不相等的程序段是(D)。A strcmp1( char *s, chat *t) for ( ;*s+=*t+ ;) if (*s='0') return 0; return (*s-*t);B strcmp2( char *s, char *t) for ( ;*s+=*t+ ;)if (!*s) return 0; return (*s-*t); C strcmp3( char *s, char *t) for ( ;*t=*s ;) if (!*t) return
20、0; t+; s+; return (*s-*t); D strcmp4( char *s, char *t) for( ;*s=*t;s+,t+) if (!*s) return 0;return (*t-*s);26若有以下定義和語(yǔ)句:int s45, (*ps)5; ps=s;則對(duì)s數(shù)組元素的正確引用形式是(C)。A ps+1 B *(ps+3) C ps02 D *(ps+1)+327不合法的main函數(shù)命令行參數(shù)表示形式是:(B)。A main( int a, char *c) B main(int argc, char *argv)C main( int arc, char *ar
21、v) D main( int argv, char*argc)28若有說(shuō)明語(yǔ)句:char s="it is a example", *t="it is a example."則以下不正確的敘述(B)。A s表示的是第一個(gè)字符i的地址,s+1表示的是第二個(gè)字符t的地址B t指向另外的字符串時(shí),字符串的長(zhǎng)度不受限制C t變量中存放的地址值可以改變D s中只能存放16個(gè)字符29若已定義char s10;則在下面表達(dá)式中不表示s1地址的是(B)。A s+1 B s+ C &s0+1 D &s130下面程序段的運(yùn)行結(jié)果是(A)。(注:代表空格) #
22、include "stdio.h" main() char s6;s="abcd"printf(""%s"n", s); A "abcd" B "abcd" C "abcd" D 編譯出錯(cuò)31執(zhí)行以下程序后,a的值為【1】, b的值為【2】。#include <stdio.h>main() int a, b, k=4, m=6, *p=&k, *q=&m; a=p=&m;b=(-*p)/(*q)+7;printf(&qu
23、ot;a=%dn", a);printf("b=%dn", b);【1】 A -1 B 1 C 0 D 4【2】 A 5 B 6 C 7 D 1032下面程序的功能是將字符串s的所有字符傳送到字符串t中,要求每傳遞三個(gè)字符后再存放一個(gè)空格,例如字符串s為"abcdefg",則字符串t為"abc def g",請(qǐng)選擇填空。C A#include "stdio.h" #include "string.h" main() int j, k=0;char s60, t100, *p;p=s;g
24、ets(p);while(*p) for (j=1; j<=3 && *p; 【1】) tk=*p;if (【2】) tk=' ' k+;tk='0'puts(t); 【1】 A p+ B p+,k+ C p+, k+, j+ D k+, j+【2】 A j=4 B *p='0' C !*p D j!=433下面程序的功能是將八進(jìn)制正整數(shù)字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。請(qǐng)選擇填空。錯(cuò)題 AB#include "stdio.h"#include "string.h"main() char *t,
25、 s8; int n; t=s; gets(t); n=【1】; while (【2】!= '0') n=n*8+*t-'0' printf("%dn", n);【1】A 0 B *t C *t-'0' D *t+'0'【2】A *t B *t+ C *(+t) D t34下面程序的功能是在字符串s中找出最大的字符并放在第一個(gè)位置上,并將該字符前的原字符往后順序移動(dòng),如:boy&girl變成ybo&girl。請(qǐng)選擇填空。BC#include "stdio.h"#include
26、 "string.h"main() char s80, *t, max, *w; t=s; gets(t); max=*(t+); while (*t!='0') if (max<*t) max=*t; w=t; t+; t=w; while (【1】) *t=*(t-1); 【2】; *t=max; puts(t); 【1】A t>s B t>=s C *t>s0 D *t>=s0【2】A t+ B s- C t- D w-35以下程序的功能是刪除字符串s中的所有空格(包括TAB符、回車符),請(qǐng)?zhí)羁?。AC #include &
27、quot;stdio.h" #include "string.h" #include "ctype.h" main() char s80;gets(s);delspace(s);puts(s); delspace(char *t) int m, n;char c80;for(m=0, n=0; 【1】; m+) if (!isspace(【2】) /*C語(yǔ)言提供的庫(kù)函數(shù),用以判斷字符是否為空格*/ cn=tm; n+;cn='0'strcpy(t, c); 【1】A tm B !tm C tm='0' D tm=
28、'0'【2】A t+m B *cm C *(t+m) D *(c+m)36下面程序的功能是統(tǒng)計(jì)字串sub在母串s中出現(xiàn)的次數(shù)。請(qǐng)選擇填空。BC #include "stdio.h" #include "string.h" main() char s80, sub80;int n;gets(s);gets(sub);printf("%dn", count(s,sub);int count( char *p, char *q) int m, n, k, num=0; for (m=0; pm; m+) for (【1】,
29、k=0; qk=pn; k+, n+) if(q【2】='0') num+; break; return (num);【1】A n=m+1 B n=m C n=0 D n=1【2】A k B k+ C k+1 D +k37下列程序的輸出結(jié)果是(C)。#include "stdio.h"main() int a=1,2,3,4,5,6,7,8,9,0, *p; p=a; printf("%dn", *p+9);A 0 B 1 C 10 D 938以下程序的輸出結(jié)果是(C)。#include "stdio.h"char c
30、char(char ch) if (ch>='A' && ch<='Z') ch=ch-'A'+'a' return ch;main() char s="ABC+abc=defDEF", *p=s;while(*p) *p=cchar(*p); p+;printf("%sn",s);A abc+ABC=DEFdef B abcaABCDEFdefC abc+abc=defdef D abcabcdefdef39以下程序的輸出結(jié)果是(D)。#include &quo
31、t;stdio.h" #include "string.h" main() char b18="abcdefg", b28, *pb=b1+3; while( -pb>=b1) strcpy(b2, pb); printf("%dn", strlen(b2); A 8 B 3 C 1 D 740有以下程序#include "string.h"#include "stdio.h"main() char *p="abcde0fghjik0"printf("
32、;%dn", strlen(p); 程序運(yùn)行后的輸出結(jié)果是(D)。 A 12 B 15 C 6 D 541有以下程序void ss( char *s, char t) while (*s) if (*s=t) *s=t-'a'+'A' s+;main() char str100="abcddfefdbd", c='d' ss(str, c); printf("%sn", str1);程序運(yùn)行后的輸出結(jié)果是(B)。AABCDDEFEDBD B abcDDfefDbD C abcAAfefAbA D
33、Abcddfefdbd42以下程序調(diào)用findmax函數(shù)返回?cái)?shù)組中的最大值。在下面劃線處應(yīng)填入的是(B)。#include "stdio.h"findmax( int *a, int n) int *p, *s;for (p=a, s=a; p-a<n; p+) if(_) s=p;return (*s);main() int x5=12,21,13,6,18; printf("%dn", findmax(x,5);A p>s B *p>*s C ap>as D p-a>p-s43有以下程序A#include "s
34、tdio.h"#include "malloc.h"main()char *q, *p; p=(char*) malloc (sizeof(char) *20); /*為指針p分配一個(gè)地址*/ q=p; scanf("%s%s", p, q); printf("%s %sn", p, q);若從鍵盤輸入:abc def,則輸出結(jié)果是:A def def B abc def C abc d D d d44下面程序的運(yùn)行結(jié)果是(D)。 #include "stdio.h" #include "str
35、ing.h" fun( char *s) char t10;s=t;strcpy(t, "example"); main() char *s;fun(s);puts(s); Aexample Bexample Cexample D不確定的值45下列程序段的輸出結(jié)果是(A)。#include "stdio.h"void fun( int *x, int *y) printf("%d%d", *x, *y);*x=3;*y=4;main() int x=1, y=2; fun(&y, &x); printf("%d %d", x, y);A 2 1 4 3 B 1 2 1 2 C 1 2 3 4 D 2 1 1 246下列程序的輸出結(jié)果是(C)。#include "stdio.h&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加盟連鎖項(xiàng)目服務(wù)合同范本
- 農(nóng)村小區(qū)搬遷合同范本
- 中學(xué)食堂承包團(tuán)隊(duì)合同范本
- 人力股分紅合同范例
- 個(gè)人技術(shù)投資合同范本
- 制造模具合同范本
- 中建施工員合同范本
- 中藥原料采購(gòu)合同范本
- 不需交社保員工合同范本
- 傳媒公司培訓(xùn)合同范例
- DBJ50-T-100-2022 建筑邊坡工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 2025年中考語(yǔ)文模擬試卷(含答案解析)
- 2025年寧夏工商職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025版校園樂(lè)器銷售代理與服務(wù)協(xié)議3篇
- DB11-T 1004-2023 房屋建筑使用安全檢查評(píng)定技術(shù)規(guī)程
- 2024-2025年天津河西區(qū)七年級(jí)上學(xué)期期末道德與法治試題(含答案)
- 《藝術(shù)與傳播》課件
- 烹飪安全知識(shí)培訓(xùn)課件
- 預(yù)制板粘貼碳纖維加固計(jì)算表格
- 2025年海南農(nóng)墾自然資源開發(fā)集團(tuán)有限公司筆試題
- 2025年湖北宜昌枝江金潤(rùn)源集團(tuán)招聘17人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論