当前位置:首页 > 公务员-计算机类C语言复习参考答案.doc
第十章指针
一.
知识点
1. 指针的概念 2. 指针变量 3. 指针与数组 4.指针与字符串
alOj 10
alU 20
a[2j 30
a[3J 40
a[4J 50
二.练习 ㈠.填空题:
图8.1
P t
1.若有定义:char ch;
⑴使指针P可以指向变量ch的定义语句是char *p=&ch;。 ⑵使指针P指向变量ch的赋值语句是p=&ch;。
⑶通过指针P给变量ch读入字符的scanf函数调川语句是scanf (“%c”,p);。 ⑷通过指针P给变量ch赋字符的语句是*p= ’ a';。 ⑸通过指针p输出ch屮字符的语句是吻人“%c”,郎)。
2. 若有如图8. 1所示五个连续的int类型的存储单元并赋值,且p和s的基类型皆为int, P已指向存储单元a[l]。
⑴通过指针P,给s赋值,使其指向最后一个存储单元a[4]的语句是s=p十3;。
⑵用以移动指针s,使之指向中间的存储单元a[2]的表达式是s-=2或S-,S-。 ⑶己知k=2,指针s已指向屮间的存储单元a[2],表达式* (s+k)的值是奶。
(4)指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]的表达式是
*(s+l)。
⑸指针S指向存储单元a[2],P指向存储单元a[0],表达式s_P的值是2 。 ⑹若P指向存储单元a[0],则以下语句的输出结果是川汲沏卵50。
for (i=0; i〈5; i++) printf (“%d ”,* (p+i)); printf (“\\n’’); ㈡.选择题:
1. 若有定义:int x, *pb;则以下正确的赋值表达式是(A )。 八.pb=&x B. pb=x C. *pb=&x D. *pb=*x 2. 以下程序的输出结果是(B )。 A.因变量无定义输出不定值 B. 0 C. -1 D. 1
^include “stdio. h” main () { printf (“%d\\n”, NULL); }
3. 已知指针p的指向如图8. 1所示,则表达式*+作的值是(B )。 A. 20 B. 30 C. 21 D. 31
4. 己知指针p的指向如图8.1所示,则表达式++*p的值是(C )。 A. 20 B. 30 C. 21 D. 31 5. 以下程序的输出结果是(D )。 A. 23 B. 24 C. 25 D. 26 void prtv (int *x) { printf (“%d\\n”, ++*x); main ()
{ int a=25; prtv (&a); }
}
第十一章结构体与共用体
一.知识点
1. 结构体的概念与定义 2. 结构体变量的定义 3. 结构体变量的引用 4. 结构体数组 5. 共用体的概念与定义 6. 枚举类型 7. 用户自定义类型
二.练习
㈠.填空题:
1. 为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结
点的指针域),请填空。
next
struct link { char data;
struct link next ; }node;
2. 访问结构体数组元素a [k]的成员b,写作a[k]. b 。
㈡.选择题:
1. 根据以下定义,能输出字母M的语句是( A. D L printf (“%c\\n”, class[3]. name); B. printf (“%c\\n”, class[3], name[l]); C. printf (“%c\\n”, class[2]. name[l]); struct class[10]={ “John”, 17 2. 以下程序的输出结果是(D )。
D. printf (“%c\\n”, class[2]. name[0]); “Paul”,19,“Mary”,18,“Adam”,16};
person{ char name[9]; int age; struct person };
A. 32 B. 16 C. 8 D. 24
typedef union{ long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE them;
main () { printf (“%d\\n”, sizeof (them)); }
3. 设有定义语句
enum weekday {sun, mon, tue, wed, thu, fri, sat} workday;
则以下语句中编译能通过的语句为(B )。
A. sun=0; B. workday=thu; C. workday=3; D. workdays1/7; 4. 以下对结构体类型变量的定义屮,不正确的是(C )。 A) typedef struct aa { int n;
float m; }AA; AA tdl;
C) struct { int n;
float in; }aa;
stuct aa tell;
B) ^define AA struct aa AA { int n;
float m; }tdl; D) struct { int
n;
float m; } tdl ;
第十二章位运算
一. 知识点
1. 位运算符与位运算赋值运算符
二. 练习
(-).填空题:
1. 设变量a的二进制数是00101101,若想通过运算a\使a的高4位取反,低4位不变,
则b的二进制数应是11110000
。
。
。
2. a为任意整数,能将变量a清零的表达式是a&0 3. a为任意整数,能将变S a屮的各二进制位均置成1的表达式是a| 1 4. 能将两字节变量x的高8位置全1,低字节保持不变的表达式是x|ff00 。
5. 运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是a=012500〉〉2。 6. 运用位运算,能将变量ch中的大写字母转换成小写字母的表达式是ch+=l〈〈5 ㈡.选择题:
1. 以下程序的输出结果是(D )。 A. 100 B. 160
C. 120
D. 64
。
main () { char x=040; printf (“%d\\n”, X=X<<1); }
2. 以下程序段中c的二进制值是(B )。
A. 00011011 B. 00010100 C. 00011100 D. 00011000 char a=3, b=6, c;
c=a^b<<2;
3. 以下程序的输出结果是(B )。 A. 0
B. 1
C. 2
D. 3
main () { int x=35; char z= *A’; printf (“%d\\n,’,(x&15) && (z< ‘a’)); } 4. 以下程序的输出结果是(A )。 A. 0 main ()
B. 1
C. 2
D. 3
{ int a=5, b=6, c=7, d=8, m=2, n=2; printf (“%d\\n”, (m=a>b) & (n=c〉d)); }
第十三章文件
一. 知识点
1. 2. 3. 4. 5.
文件类型指针:FILE
文件的打开与关闭:fopen ()、fclose ()
文件的读写:fputc ()、fgetc ()、fread ()、fwrite ()、fprintf ()、fscanf () 文件的定位:rewind ()、fseek ()、ftell ()
出错检测:ferror ()、clearerr ()
二. 练习
㈠.填空题:
1. 在C程序屮文件可以用两种方式存取,它们是顺序和随机。
2. 在C程序屮数据可以用两种代码形式存放,它们是ASCn码和二进制码。 3. 在C语言中,文件的存取是以字节为单位的,这种文件被称作流式文件。 4. 在C语言屮,文件的打开使用fopen 0,文件的关闭使用fcloseO 。 5. 在C语言中,文件类型为文本文件或二进制文件。 ㈡.选择题:
1. 若执行fopen函数吋发生错误,则函数的返回值是(D )。 A.随机值 B. 1 C. NULL I). EOF
2. 若用fopen函数打开一个新的二进制文件,要求文件既能读也能写,则应选用的文件方 式字符串是(A )。 A. “wb+”
B. “r+”
C. “rb+”
D. “ab+”
3. 当正常执行了文件关闭操作吋,fclose函数的返回值是(C )。 A. -1 B.随机值 C. 0 I). 1
共分享92篇相关文档