程序设计语言C复习 ⑴通过指针p,给s赋值,使其指向最后一个存储单元a[4]的语句是 s=p+3; 。 ⑵用以移动指针s,使之指向中间的存储单元a[2]的表达式是 s-=2 或s--,s-- 。 ⑶已知k=2,指针s已指向中间的存储单元a[2],表达式*(s+k)的值是 50 。 ⑷指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]的表达式是 *(s+1) 。
⑸指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 2 。 ⑹若p指向存储单元a[0],则以下语句的输出结果是 10 20 30 40 50 。
for(i=0;i<5;i++) printf(“%d ”,*(p+i));printf(“\\n”);
㈡.选择题:
1.若有定义:int x,*pb;则以下正确的赋值表达式是( A )。 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所示,则表达式*++p的值是( 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.用户自定义类型
第 21 页 共 24 页
程序设计语言C复习 二.练习
㈠.填空题:
1.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),请填空。 data next
struct link { char data;
struct link next ;}node;
2.访问结构体数组元素a[k]的成员b,写作 a[k].b 。
㈡.选择题:
1.根据以下定义,能输出字母M的语句是( D )。 A.printf(“%c\\n”,class[3].name); B.printf(“%c\\n”,class[3].name[1]); C.printf(“%c\\n”,class[2].name[1]); D.printf(“%c\\n”,class[2].name[0]); struct person{ char name[9];int age;}; struct person class[10]={ “John”,17,“Paul”,19,“Mary”,18,“Adam”,16}; 2.以下程序的输出结果是( D )。
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.workday=1/7; 4.以下对结构体类型变量的定义中,不正确的是( C )。
A) typedef struct aa B) #define AA struct aa { int n; AA { int n; float m; float m; }AA; }td1; AA td1;
C) struct D) struct { int n; { int n; float m; float m; }aa; }td1; stuct aa td1;
第十二章 位运算
一.知识点
1.位运算符与位运算赋值运算符
第 22 页 共 24 页
程序设计语言C复习
二.练习
㈠.填空题:
1.设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低4位不变,则b的二进制数应是 11110000 。
2.a为任意整数,能将变量a清零的表达式是 a&0 。
3.a为任意整数,能将变量a中的各二进制位均置成1的表达式是 a|1 。 4.能将两字节变量x的高8位置全1,低字节保持不变的表达式是 x|ff00 。
5.运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是 a=012500>>2 。 6.运用位运算,能将变量ch中的大写字母转换成小写字母的表达式是 ch+=1<<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.0 B.1 C.2 D.3 main()
{ int a=5,b=6,c=7,d=8,m=2,n=2; printf(“%d\\n”,(m=a>b)&(n=c>d));}
第十三章 文件
一.知识点
1.文件类型指针:FILE
2.文件的打开与关闭:fopen()、fclose() 3.文件的读写:fputc()、fgetc()、fread()、fwrite()、fprintf()、fscanf() 4.文件的定位:rewind()、fseek()、ftell() 5.出错检测:ferror()、clearerr()
二.练习
㈠.填空题:
1.在C程序中文件可以用两种方式存取,它们是 顺序 和 随机 。
第 23 页 共 24 页
程序设计语言C复习 2.在C程序中数据可以用两种代码形式存放,它们是 ASCII码 和 二进制码 。 3.在C语言中,文件的存取是以 字节 为单位的,这种文件被称作 流式 文件。 4.在C语言中,文件的打开使用 fopen() ,文件的关闭使用 fclose() 。 5.在C语言中,文件类型为 文本文件或二进制文件 。
㈡.选择题:
1.若执行fopen函数时发生错误,则函数的返回值是( D )。 A.随机值 B.1 C.NULL D.EOF
2.若用fopen函数打开一个新的二进制文件,要求文件既能读也能写,则应选用的文件方式字符串是( A )。 A.“wb+” B.“r+” C.“rb+” D.“ab+” 3.当正常执行了文件关闭操作时,fclose函数的返回值是( C )。 A.-1 B.随机值 C.0 D.1
第 24 页 共 24 页