C语言习题库(4)

2018-12-15 17:56

第十章 结构体与共用体 一、单选题

(1) 以下对结构体类型变量的定义中不正确的是_________. A)#define STUDENT struct student

STUDENT {int num; float age; }std1;

B)struct student

{int num; float age;

}std1; C)struct {int num; float age; }std1; D)struct {int num; float age; }student;

struct student std1; (2) 设有以下语句 (3) struct stu

{int a; float b; }stutype;

则下面叙述正确的是__________. A)struct是结构体类型的关键字

B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 (4) 设有以下定义:

struct sk {int n; float x; }data,*p;

若要使p指向data中的n域,正确的赋值语句是_________ A) p=&data.n; B) *p=data.n;

C) p=(struct sk *)&data.n;

D) p=(struct sk *) data.n; (5) 设有以下语句:

struct st {int n;

struct st *next; }

static struct st a[3]={5,&a[1],7,&a[2],9,‘\\0‘},*p; p=&a[0];

则以下表达式的值为6的是_______. A) p++->n B) p->n++ C) (*p).n++ D) ++p->n

二、填空题

(1)以下程序用以输出结构体变量bt所占内存单元的字节数,请在()内填上适当的内容。 Struct ps {double I;

char arr[20]; }

main()

{struct ps bt;

ptintf(―bt size :%d\\n:,( ));

(2)设有三人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄,请在()内填上正确的内容。 Static struct man {char name[20]

int age;

}person[]{―li—ming‖,18, ―wang—hua‖,19, ―zhang—ping‖,20 }; main()

{int i, j, max, min; max=min=person[0].age; for( i=1; i<3; i++)

if (person[i].age>max) ( ); else if (person[i].age

if(person[i].age!=max( )person[i].age!=min) {printf(―%s %d\\n‖,person[i].name,person[i].age); break;

} }

(3)若以定义:

struct num {int a; int b; float f;

}n={1, 3, 5.0};

struct num *pn=&n;

则表达式pn->b/n.a*++pn->b的值是( ( )。

(4)以下程序的功能是计算并打印复数的差。请在( Struct comp

{float re;

float im; }

struct comp *m(x,y) struct comp *x, *y; {( );

z=(struct comp *)malloc(sizeof(struct comp)); z->re=x->re-y->re; z->im=x->im-y->im; return( ( ) ); }

main()

{struct comp *t; struct xomp a,b; a.re=1; a.im=2; b.re=3; b.im=4; t=m(( ));

printf(―z.re=%f, z.im=%f‖, t->re,t->im); }

(5)以下程序的运行结果是( )

struct ks {int a; int *b; }s[4],*p;

main() {

int n=1, i;

),表达式(*pn).a+pn->f的值是 )内填入正确的内容。 printf(―\\n‖); for(i=0; i<4;i++) { s[i].a=n;

s[i].b=&s[i.a;

n=n+2;

}

p=&s[0]; p++;

printf(―%d, %d\\n‖, (++p)>a, (p++)->a); }

三、判断题

(1)当定义一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和。 (2)C语言中,结构体变量在程序执行期间只有部分成员驻留在内存中。 (3)一个共用体类型定义中不能出现结构体类型的成员。

(4)用typedef只是将已存在的类型用一个新的标识符来代表,而不能增加新类型。 (5)用typedef可以定义各种类型名,但不能用来定义变量。 四、编程题(可选作)

(1)试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。

(2)请定义枚举类型 ,用枚举元素代表人民币的面值。包括1,2,5分;1,2,5角;1,2,5,10,50,100元。 第十一章 位运算 一、单选题

(1)以下运算符中优先级最低的是 优先级最高的是 。 A)&& B) & C) || D) |

(2)若有运算符<<,sixeof,^,&= 则它们按优先级按由高到低的正确排列次序是 。 A) sizeof,&=,<<,^ B) sizeof,<<,^,&= C) ^,<<,sizeof,&= D) <<,^,&=,sizeof

(3)在C语言中,要求运算数必须是整型的运算符是 。 A)^ B)% C)! D)>

(4) 在C语言中,要求运算数必须是整型或字符型的运算符是 。 A) && B) &

C) ! D) ||

(5)sozeof(float)是 。 A)一种函数调用

B)一种不合法的表示形式 C)一个整型表达式 D)一个浮点表达式 二、填空题

(1)在C语言中,&运算符作为单目运算符时表示的是( )运算;作为双目运算符时表示的是( )运算。

(2)与表达式a&=b等价的另一书写形式是( )。 (3)设有char a, b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第1位),则b的二进制数是( ).

(4)测试char型变量a 第六位是否为1的表达式是( )(设最右位是第一位)。

(5)设二进制数x的值是11001101,若想通过x&y 运算使x中的低4位不变,高4位清零,则y的二进制数为( )。 三、判断题

(1)利用fseek函数可以实现文件的随机读写的操作。

(2) 函数rewind的作用是使位置指针重新返回文件的开头。

(3) 在C程序中,文件可以用随机读写的方式存取,也可以用顺序读写的方式存取。 (4) 函数ftell(fp)的作用是得到流式文件中的当前位置。

(5) fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是只读的。 四、编程题

(1)请编程序:从终端读入16进制无符号整数M,调用函数 rightrot 将M中的原始数据循环右移N位。并输出 移位前后的内容。

(2)请编写函数getbits从一个16位的单元中取出以n1开始至n2结束的某几位,起始位和结束位都从左向右计算。同时编写主函数调用getbits进行验证。

第十二章 文件 一、单选题

(!)系统的标准输入文件是指 。 A)键盘 B)显示器 C)软盘 D)硬盘

(2)以下可作为函数fopen中第一个参数的正确格式是 。 A) c:user\\text.txt B) c:\%user\\text.txt

C) "c:\user\\text.txt" D) "c:\\\%user\\text.txt"

(3)若执行fopen函数时发生错误,则函数的返回值是 .


C语言习题库(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年至2008年高考时态语态真题详解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: