C语言复习题 联系客服

发布时间 : 星期一 文章C语言复习题更新完毕开始阅读69ffcb4d59eef8c75fbfb3eb

104. 有以下的结构变量定义语句:

struct student { int num; char name[9]; } stu; 则下列叙述中错误的是( B )。 A.结构类型名为student B.结构类型名为stu C.num是结构成员名 D.struct是C的关键字 105. 设变量定义如下,则对其中的结构分量num正确的引用是( A )。 struct student { int num; char name[20]; float score; } stud[10];

A.stud[1].num = 10; B.student.stud.num = 10; C.struct.stud.num = 10; D.struct student.num = 10; 106. 对于以下的变量定义,语句( B )在语法和语义上都是正确的。 struct node { float x, y;

char s[10];

} point = {1, 2, \

A.*p = point; B.p = &point; C.point = p; D.p->x = point.y; 107. 设变量定义如下,则表达式( D )是正确的。

struct student { int num; char name[20]; float score; } stud[10];

A.stud[2]=stud[1]+3

B.stud[1]==stud[2]

C.stud[1]=stud[1]-stud[2] D.stud[1]=stud[2] 108. 有以下的定义语句:

struct student { int num; char name[9]; };

则不能正确定义结构数组并赋初始值的是( C )。

A.struct student stu[2]={1,\,2,\B.struct student stu[2]={{1,\,{2,\C.struct stu[2]={{1,\,{2,\

D.struct student stu[ ]={{1,\,{2,\

109. 若有以下定义语句:

struct date { int y,m,d; }; struct student

{ int num; char name[9]; struct date bir;}stu,*p=&stu;

则以下对结构变量stu成员的引用错误的是( A )。

A.p–>bir–>y B.p–>bir.y C.stu.bir.y D.stu.name

110. 若结构体定义如下,则下面正确的项是( C )

struct time

{ int hour,minute,second; } t;

A.time.hour=5; B.t={15,26,7};

C.struct time b={15,26,7}; D.struct time a.second=7; 111. 若结构体定义如下:则下面正确的项是( D )。

struct complex { float real; float image; };

A.complex.real=5.9 B.complex v2.real=5.9

C.struct v2; v2.real=6.5 D.struct complex v2={6.4,6.2}; 112. 若有以下定义语句:

struct student { int num; char name[9]; }stu[2]={1, \

则以下能输出字符串“lisi”的语句是( D )。 A.printf(\,stu[0].name); B.printf(\,&stu[1].name); C.printf(\,stu[1].name[0]); D.printf(\,&stu[1].name[0]); 113. 以下程序的输出结果是( B )。

#include void main()

{ int x=1,y=2,z=3;

struct aa { int a; int *p; } s[ ]={4,&x,5,&y,6,&z}; struct aa *q=s+1;

printf(\–>p)++); } A.1 B.2 C.3 D.4

114. 若有定义:struct person{char name[9];int age;};

struct person class[3]={“john”,17,”Mary”,19,”Paul”,21}; 能输出学生Pual名字的语句是( B )。

A.printf(“%s”,class[2].name[0]); B.printf(“%s”,class[2].name); C.printf(“%s”,class[3].name); D.printf(“%s”,class[3].name[0]); 115. 对于以下结构定义:

struct { int len; char *str; } *p;

则*p->str++中的++加在( A )。

A.指针str上 B.指针p上 C.str所指的内容上 D.以上均不是 116. 若有定义:struct person { char name[9]; int age; };

struct person class[3]={\能输出字母M的语句是( D )。

A.printf(\ B.printf(\C.printf(\ D.printf(\117. 对于以下的变量定义,表达式( B )不符合C语言语法。

struct node { int len; char *pk;

} x = {2, \

A.p->pk B.*p.pk C.*p->pk D.*x.pk 118. 对于以下的变量定义,表达式( D )是不正确的。

struct node {

int j, k; } x, *p=&x;

A.p->k=2 B.(*p).k=2 C.x.k=2 D.x->k=2 119. 若a是整型变量,表达式 ~(a ^ ~a ) 等价于( C )。

A.~a B.1 C.0 D.2 120. 对于int a,要使((1<<2>>1)|a)==a; 则a 可以是( D )。

A.2 B.6 C.10 D.2,6,10均可 121. 设 int a1=7, a2=1, xx; 进行如下操作xx = ( a1<< 1 )&~( a2<<2 )后 xx 的值为( C )。

A.0 B.1 C.10 D.以上都错 122. 执行语句“a=3; printf(\\\n\后的输出结果为( C )。 A. 1 B. 0 C. 3 D. 11 123. 下面( C )语句是从文件中读取一个字符。

A.ch=getc(); B.fputc(ch,fp); C.fscanf(fp,\ D.scanf(\124. 以只读方式打开一个二进制文件,应选择的文件使用方式是( A )。

A.\ B.\ C.\ D.\125. 不能正确打开文件时,打开文件函数fopen的返回值是( A )。

A.NULL B.EOF C.非0 D.1

126. 如果文本文件a.txt已经存在,现要求写入全新的数据,应以( B )方式打开。 A.“wb” B.”w” C.”r+” D.”rb+” 127. 定义 FILE *fp;则文件指针fp指向的是( D )。

A.文件在磁盘上的读写位置 B.文件在缓冲区上的读写位置 C.整个磁盘文件 D.文件类型结构

128. 以“只读”方式打开文本文件c:\\xy.txt,下列语句中哪一个是正确的( B )。

A. fp=fopen(\ B. fp=fopen(\ C. fp=fopen(\ D. fp=fopen(\129. 设有下列数据定义语句:char s[]=\要打开名为\的文件,下列给出的

打开文件函数的第一个实际参数写法中,错误的是( B )。

A.p B.*p C.s D.\130. 关于关闭文件函数,下列说法中正确的是( D )。

A.关闭文件函数没有返回值

B.关闭文件函数的函数名是fclosefile

C.如果在程序中打开了某个文件,程序结束前没有关闭这个文件,则会出现语法错误 D.关闭文件函数的参数是指向已经打开的文件的文件型指针变量名 阅读程序题

1. #include \

void main( )

{ int j, k, n = 3, temp, sum = 0; int a[6][6];

for(k = 0; k < n; k++) for(j = 0; j < n; j++) a[k][j] = k * n + j; for(k = 0; k < n; k++)

sum = sum + a[k][k];

printf(\ for(k = 0; k < n; k++) sum = sum + a[k][n-k-1]; printf(\ }

程序运行时,第1行输出 (1) B ,第2行输出 (2) B 。

(1) A.15 B.12 C.3 (2) A.30

B.24

C.15

2. #include

int f(int number, int digit) { int count = 0; while(number != 0){

if(number == digit) count++; number = number / 10; }

return count; }

void main( ){

printf(\ printf(\ }

程序运行时,第1行输出 (1) C ,第2行输出 (2) C 。

(1) A.count=0 B.count=1 C.count=3 (2) A.count=3 B.count=9 C.count=1 3. #include

main()

{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0; while(i++<4)

{ if(i==2||i==4) continue; j=0;

do{ s+= a[i][j]; j++; } while(j<4); }

printf(\ }

程序运行结果:92 4. #include

main()

{ int p[7]={11,13,14,15,16,17,18};

int i=0,j=0;

while(i<7 && p[i]%2==1) j+=p[i++]; printf(\}

D.0 D.12

D.count=5

D.count=5