吉林大學(xué)C語言習(xí)題2_第1頁
吉林大學(xué)C語言習(xí)題2_第2頁
吉林大學(xué)C語言習(xí)題2_第3頁
吉林大學(xué)C語言習(xí)題2_第4頁
吉林大學(xué)C語言習(xí)題2_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 C 語言程序設(shè)計(jì)習(xí)題李玲 張海蓉 黃玉蘭 孫大洋 趙曉京 溫泉 厲茜吉林大學(xué)通信工程學(xué)院、選擇題已知函數(shù)abc的定義為:void abc()則函數(shù)定義中A .執(zhí)行函數(shù)C.執(zhí)行函數(shù)2.3.已知:int p();,p 是(C )。A. int型變量B .函數(shù)p的調(diào)用C. 一個函數(shù)聲明,該函數(shù)的返回值是D .強(qiáng)制類型轉(zhuǎn)換表達(dá)式中的變量 以下正確的函數(shù)形式是(D )。A. double fun(int x, int y) z=x+y; retur n z; C. fun(x, y) int x, y; double z; z=x+y; retur n z; int型的值fun (i nt x, y)

2、 int 乙 return 乙 double fun (i nt x, int y) double z; z=x+y; retur n z; 4.以下說法正確的是(C)A .定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)B. return后邊的值不能為表達(dá)式C. 如果函數(shù)值的類型與返回值表達(dá)式的類型不一致,以函數(shù)值類型為準(zhǔn) D .如果形參與實(shí)參的類型不一致,以實(shí)參類型為準(zhǔn)5. C語言允許函數(shù)值類型缺省定義,此時該函數(shù)值隱含的類型是A. float 型B .int 型C. lo ng 型6. 下面函數(shù)調(diào)用語句含有實(shí)參的個數(shù)為(B )。fun c(exp1, exp2), (exp3, exp4, e

3、xp5);A . 1B. 2C. 47. 以下程序的功能是計(jì)算函數(shù)F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)#i nclude <stdio.h>(B )。D. double 型D. 5的值,請選擇填空。#in clude <math.h>float f(float, float);mai n()float x, y, z, sum;scanf("%f%f%f", &x, &y, &z);sum=f(B )+f(C );(注:或者選擇 sum=f(C )+f(B ) prin tf("sum

4、=%fn", sum);float f(float a, float b)float value;第6章練習(xí)6-1答案void的含義是(A )。abc后,函數(shù)沒有返回值B.執(zhí)行函數(shù)abc后,函數(shù)不再返回abc后,可以返回任意類型D.以上三個答案全是錯誤的value=a/b; return(value); A x-y, x+y A x-y, x+yBx+y, x-yBx+y, x-yC z+y, z-yC z+y, z-yDz-y, z+yDz-y, z+y、填空題8 以下程序的功能是根據(jù)輸入的"y"("Y")與"n"(&qu

5、ot;N"),在屏幕上分別顯示出"This is YES."與"This is NO."。請?zhí)羁眨?break;)、是(getchar()或 getch()或 getche() )。#include <stdio.h>void YesNo(char ch)switch (ch) case 'y':case'Y': printf("nThis is YES.n"); ;case 'n':case 'N': printf("nThis is

6、NO.n");main()char ch;printf("nEnter a char 'y', 'Y' or 'n', 'N':");ch= ;printf("ch:%c", ch);YesNo(ch);9下面函數(shù) pi 的功能是:根據(jù)以下公式,返回滿足精度 (0.0005)要求的 的值,請 填空,是(t=n=1, s=0 )、是(s*2 )。/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+#includ

7、e <conio.h>#include <math.h>#include <stdio.h>double pi(double eps)double s, t; int n;for ( ; t>eps; n+)s+=t;t=n*t/(2*n+1);return( );main()double x;printf("nPlease enter a precision:"); scanf("%1f", &x);printf("neps=%1f, =%1f", x, pi(x); 三、讀程序,寫

8、結(jié)果 10下列程序的運(yùn)行結(jié)果是 ( 5 )。#include <stdio.h>fun(int p) int a=10;p=a;+p;main() int a=5;fun(a); printf("%dn", a); 11下列程序的運(yùn)行結(jié)果是 ( 8 )。#include <stdio.h>int abc(int u, int v);main() int a=24, b=16, c; c=abc(a, b); printf("%dn", c);int abc(int u, int v) int w;while (v) w=u%v;u

9、=v; v=w; return u;12下列程序的運(yùn)行結(jié)果是:( before swap a=5,b=10 in swap x=10,y=5 after swap a=5,b=10)。#include <stdio.h>main() int a, b;a=5; b=10;printf("before swap a=%d,b=%dn", a, b);swap(a, b);prin tf("after swap a=%d,b=%dn",a, b);swap(i nt x, int y) int temp;temp=x; x=y; y=temp;p

10、rintf("in swap x=%d,y=%dn", x, y);13以下程序的運(yùn)行結(jié)果是:(i=5i=2i=2i=0i=2 )。int i=0;mai n() int i=5;reset(i/2);prin tf("i=%dn",i);reset(i=i/2);prin tf("i=%dn", i);reset(i/2);prin tf("i=%dn",i);workover(i);prin tf("i=%dn", i);workover(i nt i)i=(i%i)*(i*i)/(2*i)

11、+4);prin tf("i=%dn", i);return(i);reset(i nt i)i=i<=2?5:0;return(i);練習(xí)6-2答案一、選擇題1 將一個函數(shù)說明為static后,該函數(shù)將(A )。A .既能被同一源文件中的函數(shù)調(diào)用,也能被其他源文件中的函數(shù)調(diào)用 B .只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用 C.只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用 D .既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用2. 如果在一個函數(shù)中的復(fù)合語句中定義了一個變量,則該變量(A )A .只在該復(fù)合語句中有效B

12、.在該函數(shù)中有效C.在本程序范圍內(nèi)均有效D .為非法變量3. 以下不正確的說法是(D )。A .在不同函數(shù)中可以使用相同名字的變量B .形式參數(shù)是局部變量C.在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D .在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效4. 以下程序的正確運(yùn)行結(jié)果是(D )。#defi ne MAX 10int aMAX, i;mai n()printf("n"); sub1(); sub3(); sub2(); sub3(); sub2()int aMAX, i, max;max=5;for (i=0; i<max; i+) ai=i;sub1()fo

13、r (i=0; i<MAX; i+) ai=i+i;sub3()int i;for (i=0; i<MAX; i+) prin tf("%d", ai);prin tf("n");A . 0 2 4 6 8 10 12 14 16 180 1 2 3 4B . 0 1 2 3 40 2 4 6 8 10 12 14 16 18C. 0 1 2 3 4 5 6 7 8 9D . 0 2 4 6 8 10 12 14 16 180 1 2 3 40 2 4 6 8 10 12 14 16 185. 凡是函數(shù)中未指定存儲類別的局部變量,其隱含的存儲

14、類別為(A )。A .自動(auto) B .靜態(tài)(static) C.外部(extern)D .寄存器(register)6. 以下程序的正確運(yùn)行結(jié)果是(D )mai n()int a=2, i;for (i=0; i<3; i+) pri ntf("%4d", f(a); f(int a)int b=0; static int c=3; b+; c+;return(a+b+c);D. 7 8 9A7 7 7B7 10 13C7 9 11二、讀程序,寫結(jié)果7. 寫出下面程序的運(yùn)行結(jié)果,是(8 )、是(17 )。#include <stdio.h>main

15、()int k=4, m=1, p;p=fun(k, m); printf("%d", p);/* */p=fun(k, m); printf("%d", p);/* */fun(int a, int b)static int m=0, i=2;i+=m+1;m=i+a+b;return(m);8. 下面程序的運(yùn)行結(jié)果是 ( 8 4 )。#include <stdio.h>int d=1;fun(int p)int d=5;d+=p+;printf("%d", d);main()int a=3;fun(a);d+=a+;p

16、rintf("%d", d);第7練習(xí) 7-1 答案選擇題1. 已知:int *p, a;,則語句“ p=&a; ”中的運(yùn)算符“ & ”的含義是(D )。A .位與運(yùn)算B .邏輯與運(yùn)算C.取指針內(nèi)容D .取變量地址2. 已知:int a, x;,則正確的賦值語句是(C )。A. a=(a1+a2)/2; B. a*=*a+1; C. a=(x=1, x+, x+2); D. a="good"3. 已知:int a, *p=&a;,則下列函數(shù)調(diào)用中錯誤的是(D )。A. scanf("%d", &a);

17、B . scanf("%d", p); C. printf("%d", a); D. scanf("%d", *p);4. 已知:char *p, *q;,選擇正確的語句(C )。A. p*=3;B.p/=q;C.p+=3;D. p+=q;5. 已知:int x;,則下面的說明指針變量pb的語句(C)是正確的。A. int pb=&x;B.int *pb=x;C.int *pb=&x;D. *pb=*x;練習(xí) 7-2 答案一、選擇題1 .設(shè)有說明int (*ptr)M;,其中的標(biāo)識符ptr是(C )。A. M 個指向整

18、型變量的指針B .指向M個整型變量的函數(shù)指針C. 一個指向具有M列的二維數(shù)組的一行的指針D .具有M個指針元素的一維數(shù)組的指針2. 已知: double *p6; ,它的含義是 ( C )。A. p是指向double型變量的指針B. p是double型數(shù)組Cp 是指針數(shù)組D p 是數(shù)組指針3. 已知:char s10, *p=s,貝U在下列語句中,錯誤的語句是(B )。A p=s+5;Bs=p+s;C s2=p4;D*p=s0;4. 已知:char s100; int i;,則在下列引用數(shù)組元素的語句中,錯誤的表示形式是(D )Asi+10B*(s+i)C*(i+s)D*(s+)+i)5已知:

19、 char b5, *p=b; ,則正確的賦值語句是 ( C )。A b="abcd"B*b="abcd"C p="abcd"D*p="abcd"6下列對字符串的定義中,錯誤的是 ( A )。Achar str7="FORTRAN"Bchar str="FORTRAN"Cchar *str="FORTRAN"Dchar str='F', 'O', 'R', 'T', 'R',&

20、#39;A','N',0;7 .已知:char s20="programming", *ps=s;,則不能引用字母 o的表達(dá)式是(A )。 Aps+2Bs2Cps2Dps+=2,*ps8已知: char *s; ,正確的語句是 ( B )。As="computer"B*s="computer" C*s="computer" D *s='A'9已知: char c8="beijing", *s=c; int i; ,則下面的輸出語句中,錯誤的是 ( B )。

21、Aprintf("%sn", s);Bprintf("%sn", *s);Cfor (i=0; i<7; i+)Dfor(i=0; i<7; i+)printf("%c", ci);printf("%c", si);101112131415161718192021二、22已知: char *aa2="abcd", "ABCD" ,則以下說法正確的是 ( D )。A. aa數(shù)組元素的值分別是"abed"序列和"ABCD"序列B

22、. aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組C. aa數(shù)組的兩個元素分別存放的是含有 4個字符的一維字符數(shù)組的首地址D. aa數(shù)組的兩個元素中各自存放了字符a'和'A'的地址已知:int a34, *p=&a00; p+=6;,那么*p 和(D )的值相同。A *(a+6)B*(&a0+6)C *a1+2Da12已知:int a=1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, *p=a;,則值為 3 的表達(dá)式是(A )。A p+=2, *(p+) Bp+=2, *+pC p+=3, *p+ D *(&a0

23、0+6)已知:int *p;,則變量p是(B )。A .指向int的指針B .指向指針的指針C. int型變量D.以上三種說法均是錯誤的已知:int a=1,2, 3, 4, y, *p=&a1;,則執(zhí)行語句 y=(*-p)+;之后,變量 y 的 值為( A )。A1B2C3D4已知:int b=1,2, 3, 4, y, *p=b;,則執(zhí)行語句y=*p+;之后,變量y的值為(A )。A1B2C3D4已知:int x=1,3, 5, 7, 9, 11, *ptr=x;,則能夠正確引用數(shù)組元素的表達(dá)式是(B ) AxB*(ptr-)Cx6D*(-ptr)已知: int x=1, 3, 5

24、, 7, 9, 11, *ptr=x; ,則不能夠正確引用數(shù)組元素的表達(dá)式是 ( B )。A *(ptr-)B*(-ptr)C *(ptr+)D*(+ptr)若有以下語句且0<=k<6,則正確表示數(shù)組元素地址的表達(dá)式是(C )。statie int x=1, 3, 5, 7, 9, 11, *ptr=x, k;A x+B &ptrC &ptrkD &(x+1)已知:int i, x34;,貝U不能將x11的值賦給變量i的語句是(C )。 Ai=*(*(x+1)+1);Bi=x11;Ci=*(*(x+1);Di=*(x1+1);已知: int a23=2, 4

25、, 6, 8, 10, 12;,正確表示數(shù)組元素的地址是 ( A )。A *(a+1)B*(a1+2)C a1+3Da00已知:int *p;,使用如下語句動態(tài)申請一個int型的存儲單元,應(yīng)當(dāng)使用(D )。 p=( )malloe(sizeof(int);AintBint *C(* int)D(int *)填空題閱讀程序,下面程序的輸出結(jié)果是 ( 15 )。#inelude <stdio.h>main() statie int a23=1, 2, 3, 4, 5, 6;int m, *ptr;ptr=&a00;m=(*ptr)*(*(ptr+2)*(*(ptr+4); pr

26、intf("%dn", m);23下面程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出 該字符串則是('0'或0 )、是(+ )。main() char str81, *sptr;int i;for (i=0; i<80; i+) stri=getchar();if (stri='n') break;stri= ;sptr=str;while (*sptr) putchar(*sptr );24在下面的程序中若第一個printf語句的輸出為ffe2,則其余語句的輸出結(jié)果分別 為:是(fff4 )、是(a)、是(0 )、是

27、(b )。main() static short a=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *p=a;printf("%xn", p);/*輸出結(jié)果為 ffe2*/printf("%xn", p+9);/* 輸出*/printf("%xn", *p+9);/*輸出*/printf("%xn", *(p+9);/*輸出*/printf("%xn", *+p+9);/* 輸出*/25.下面程序的輸出結(jié)果,是(m )、是(a)、是(w )、是(z )、是(mnopqr )#inc

28、lude <stdio.h>char *pp23="abc", "defgh", "ijkl", "mnopqr", "stuvw", "xyz" main() printf("%cn", *(pp+1);/* 輸出*/printf("%cn", *pp0);/*輸出*/printf("%cn", (*(*(pp+1)+1)4);/*輸出*/printf("%cn", *(pp12+2

29、);/*輸出*/printf("%sn", *(pp+1);/* 輸出*/三、讀程序,寫結(jié)果26.下面程序的運(yùn)行結(jié)果是:( 1口 3口 5口 7 9口 11口 13口 15 17口 19口 21口 23 )。(注:表示空格。) #include <stdio.h>main() int a34=1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23; int *p, i;for (p=a, i=0; p<&a00+12; p+, i+) if (i%4=0) printf("n");printf(&qu

30、ot;%4d", *p);27下面程序的運(yùn)行結(jié)果是 ( 3,3,3 )。#include <stdio.h>main() int a=2, *p, *pp; pp=&p; p=&a;a+;printf("%d,%d,%dn", a, *p, *pp); 練習(xí) 7-3 答案 、選擇題1. main(argc, argv)中形式參數(shù)argv的正確說明形式應(yīng)當(dāng)為(A ).Achar *argvBchar argvC char argvDchar *argv2 .說明語句int (*p)();的含義是(C )。A. p 是一個指向一維數(shù)組的指針

31、變量B. p 是指針變量,指向一個整型數(shù)據(jù)C. p 是一個指向函數(shù)的指針,該函數(shù)的返回值是一個整型D .以上都不對3.說明語句 int *(*p)(); 的含義是( D )。A. p 是一個指向 int 型數(shù)據(jù)的指針B. p 是指針變量,它構(gòu)成了指針數(shù)組C. p 是一個指向函數(shù)的指針,該函數(shù)的返回值是一個整型D. p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個指向整型的指針 4已知函數(shù)說明語句 void *f(); ,則它的含義是 ( A )。A .函數(shù)f的返回值是一個通用型指針B .函數(shù)f的返回值可以是任意的數(shù)據(jù)類型C.函數(shù)f無返回值D .指針f指向一個函數(shù),該函數(shù)無返回值5.函數(shù)的功能是交換

32、變量x和y中的值,并且通過正確調(diào)用返回交換的結(jié)果。能正確執(zhí)行此功能的函數(shù)是 ( D )Afuna(int *x, int *y) int *p;*p=x; *x=*y; *y=*p;Cfunc(int *x, int *y) *x=*y; *y=*x;Bfunb(int x, int y)int t;t=x; x=y; y=t;Dfund(int *x, int *y)*x=*x+*y; *y=*x-*y; *x=*x-*y; 6閱讀程序,下面程序的輸出結(jié)果是 ( B )。假設(shè)可執(zhí)行文件的文件名為: PROG.EXE運(yùn)行時鍵入的命令行為:PROG -386 NET3回車#include <

33、;stdio.h>main(int argc, char *argv)int i;for (i=0; i<argc; i+) printf("%sn", argvi);A-386BPROG.EXENET3-386NET3CPROG.EXE386NET3DPROG-386NET37下面程序的運(yùn)行結(jié)果是 ( A ) #include <stdio.h> f(int x, int y) return(y-x);main()int a=5, b=6, c=2;int f();int (*g)()=f; c=(*g)(a, b); printf("%

34、dn", c);A1B2C. 3 D 前面三個答案均是錯誤的8若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是( A )。A .數(shù)組的首地址B .數(shù)組第一個元素的值C.數(shù)組中全部元素的值D .數(shù)組元素的個數(shù)二、填空題9.下面的函數(shù)fun的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位 放在一維數(shù)組中返回,二進(jìn)制的最低位放在下標(biāo)為 0 的元素中,其他依次類推, 則是(2 )、是(2 )。fun(int x, int b)int k=0, r;do r=x% bk+=r; x/= ; while(x);10函數(shù) expand(char s, char t) 在將字符串 s 復(fù)制到字符

35、串 t 時,將其中的換行符 和制表符轉(zhuǎn)換為可見的轉(zhuǎn)義字符,即用 "n" 表示換行符,用 "t" 表示制表符。則 是(j+ )、是('')、是(j+ )、是('')、是(j+ )、是('0')。 expand(char s, char t) int i, j;for (i=j=0; si!='0' i+)switch (si) case 'n': t = ; tj+='n' break;case 't': t = ; tj+='t'

36、; break;default: t =si; break;tj= ;三、讀程序,寫結(jié)果11以下程序的運(yùn)行結(jié)果是 ( 10 7 5 3 -7 )。main() int a5=5, 10, -7, 3, 7, i, j, t;sort(a);for (i=0; i<=4; i+) printf("%d ", ai);sort(int a) int i, j, t;for (i=0; i<4; i+)for (j=0; j<4-i; j+)if (aj<aj+1) t=aj; aj=aj+1; aj+1=t; 12以下程序的運(yùn)行結(jié)果是 ( -1 3 6

37、8 9 )。main() int a5=9, 6, 8, 3, -1, i, j, t, p;sort(a);for (i=0; i<=4; i+) printf("%d ", ai);sort(int a) int i, j, t, p;for (j=0; j<4; j+) p=j;for (i=j; i<=4; i+) if (ai<ap) p=i;t=ap; ap=aj; aj=t;13以下程序的運(yùn)行結(jié)果是 ( sum=6 )。main() int a33=1, 3, 5, 7, 9, 11, 13, 15, 17; int sum; sum=

38、func(a);printf("nsum=%dn", sum);func(int a3) int i, j, sum=0;for (i=0; i<3; i+) for (j=0; j<3; j+) aij=i+j;if (i=j) sum=sum+aij;return(sum);14下面程序的運(yùn)行結(jié)果是:( before swap a=5,b=10 in swap x=10,y=5 after swap a=10,b=5)。#include <stdio.h> main() int a, b;a=5; b=10; printf("befor

39、e swap a=%d,b=%dn", a, b); swap(&a, &b);printf("after swap a=%d,b=%dn", a, b);swap(int *px, int *py) int temp;temp=*px;*px=*py;*py=temp;printf("in swap x=%d,y=%dn", *px, *py); 15下面程序的運(yùn)行結(jié)果是 ( 0 1 2 3 )。#include <stdio.h>func(int b) int j;for (j=0; j<4; j+) bj

40、=j;main() int a4, i;func(a);for (i=0; i<4; i+) printf("%d ", ai);則程序的運(yùn)16運(yùn)行下面程序,如果從鍵盤上輸入字符串 "qwerty" 和字符串 "abcd 行結(jié)果是 ( 10 )。#include <stdio.h>strle(char a, char b) int num=0, n=0;while (anum!='0') num+;while (bn) anum=bn; num+; n+; return(num);main() char str

41、181, str281;gets(str1);gets(str2);printf("%dn", strle(str1, str2);17下面程序的運(yùn)行結(jié)果是 ( AGAAGAG )。#include <stdio.h>#include <string.h>void fun(char *w, int m) char s, *p1, *p2;p1=w;p2=w+m-1;while (p1<p2) s=*p1+; *p1=*p2-; *p2=s; main() static char a="ABCDEFG"fun(a, strle

42、n(a);puts(a);練習(xí)8答案選擇題1 在程序中要使用語句:printf("%sn", STRING);輸出一個長度為5個字符的提示信 息"0K!",則應(yīng)使用宏定義語句(D )。A . #define STRING "OK!"B. #define STRING ""OK!""C. #define STRING "OK!"D. #define STRING ""OK!""2. 以下正確的描述為(C )。A .每個C語言程序必須在開頭

43、用預(yù)處理命令 #include <stdio.h>B .預(yù)處理命令必須位于C源程序的首部C.在C語言中預(yù)處理命令都以"#"開頭D . C語言的預(yù)處理命令只能實(shí)現(xiàn)宏定義和條件編譯的功能3. C語言的編譯系統(tǒng)中宏命令是(D )。A .在程序運(yùn)行時進(jìn)行代換處理的B .在程序連接時進(jìn)行處理的C.和源程序中其他C語句同時進(jìn)行編譯的D .在對源程序中其他成分正式編譯之前進(jìn)行處理的4. 從下列選項(xiàng)中選擇不會引起二義性的宏定義是(D )。A. #define POWER(x) x*xB. #define POWER(x) (x)*(x)C . #defi ne POWER(x)

44、 (x*x)D . #defi ne POWER(x) (x)*(x)5. 若有宏定義如下:#defi ne X 5#define Y X+1#defi ne Z Y*X/2則執(zhí)行以下printf語句后,輸出結(jié)果是(D )。int a; a=Y;prin tf("%d,", Z);prin tf("%dn", -a);A . 7,6B . 12,6C . 12,5D . 7,56 .若a、b、c、d、t均為int型變量,則執(zhí)行以下程序段后結(jié)果為(C )。#define MAX(A, B)(A)>(B)?(A):(B)#define PRINT(Y)

45、 printf("Y=%dn", Y)a=1; b=2; c=3; d=4;t=MAX(a+b, c+d);D . Y=0PRINT(t);A . Y=3B.存在語法錯誤C . Y=7第9章練習(xí) 9-1 答案一、選擇題1. typedef unsigned long LONG 的作用是(D )。A .建立了一種新的數(shù)據(jù)類型B.C.定義了一個長整型變量D .2. 下面的 4個運(yùn)算符中,優(yōu)先級最低的是 ( D )A. ( )B. .3. 已知:structint i;char c;float a; test;貝U sizeof(test)的值是(D )。A. 4B. 5定義了一

46、個整形變量 定義了一個新的數(shù)據(jù)類型標(biāo)識符CC4. 當(dāng)聲明一個結(jié)構(gòu)變量時系統(tǒng)分配給它的內(nèi)存是A .各成員所需內(nèi)存量的總和C.成員中占內(nèi)存量最大者所需的容量5. 以下對結(jié)構(gòu)類型變量的定義中錯誤的是A. typedef struct student int num;float age; STUDENT std1;C. struct int num;float age; std1;BD ( D )B0->D+D76( A ) 結(jié)構(gòu)中第一個成員所需內(nèi)存量 結(jié)構(gòu)中最后一個成員所需內(nèi)存量struct student int num; float age; std1;D. struct int num;

47、 float age; student; struct student std1;M 的語句是 ( D )。6. 根據(jù)下面的定義,能打印出字母struct personchar name9;int age;struct person class10="John", 17, "Paul", 19, "Mary", 18, "adam", 16;A. printf("%cn", );B. printf("%cn", 1);C. prin

48、tf("%cn", 1);D. printf("%cn", 0);7. 以下scanf函數(shù)調(diào)用語句中對結(jié)構(gòu)變量成員的錯誤引用是(D )。struct pupilchar nam20;int age;int sex pup5, *p;p=pup;A scanf("%s", );B scanf("%d", &pup0.age);Cscanf("%d", &(p->sex);D scanf("%d"

49、, p->age);8若有以下程序段:struct dentint n;int *m;int a=1, b=2, c=3;struct dent s3=101, &a, 102, &b, 103, &c;struct dent *p=s;則以下表達(dá)式中值為 2的是( D )。A (p+)->mB*(p+)->mC (*p).mD*(+p)->m二、填空題 9已知:structint x, y; s2=1, 2, 3, 4, *p=s;則表達(dá)式 +p->x 的值 ( 2 ),表達(dá)式 (+p)->x 的值是 ( 3 )。10下面的程序從終

50、端上輸入n個人的年齡、性別和姓名,然后輸出。則是(p+n )、是(gets(p->name)或 seanf("%s", p->name)、是(p+n )。#include "stdio.h"struet man ehar name20; unsigned age; ehar sex7;main() struet man person5; data_in(person, 5); data_out(person, 5);data_in(struet man *p, int n) struet man *q= ;for (; p<q; p+)

51、 printf("age:sex:name"); seanf("%u%s", &p->age, p->sex); ;data_out(struct man *p, int n) struct man *q= ;for (; p<q; p+) printf("%s;%u%sn", p->name, p->age, p->sex); 三、讀程序,寫結(jié)果。 11下面程序的運(yùn)行結(jié)果是 ( Zhao )。#include <stdio.h>struct stu int num;char name10;int age;void fun(struct stu *p) printf("%sn", (*p).name);main() struct stu students3=9801,"Zhang",20,9802,"Wang",19,9803,"Zhao",18; fun(students+2); 12下列程序輸出結(jié)果是 ( 1, ninicompu

溫馨提示

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

最新文檔

評論

0/150

提交評論