发布时间 : 星期六 文章C语言复习题更新完毕开始阅读
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
{ 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