D. 没有成员驻留在内存中
102、{
已知:
struct sk
{int a;float b; }data,*p;
若有p=&data, 则对data中的成员a的正确引用是( )。 }
A. (*p).data.a B. (*p).a C. p->data.a D. p.data.a
103、{
若有以下定义和语句:
struct student {int num,age; };
struct student stu[3]={{1001,20},{1001,19},{1003,21}}; struct student *p=stu; 则以下错误的引用是( )。 }
A. (p++)->num B. p++
C. (*p).num D. p=&stu.age
104、以下在对typedef的叙述中错误的是( )。
A.用typedef可以定义各种类型名,但不能用来定义变量 B.用typedef可以增加新类型
C.用typedef只能是将已存在的类型用一个新的标识符来代替 D.使用typedef有利于程序的通用和移植
105、{
设有以下语句:
struct st {int n;
struct st *next; };
static struct st a[3]={5,&a[1],7,&a[2],9,NULL},*p; p=&a[0];
则以下表达式的值为6的是( )。 }
A.p++ ->n
21
B. p->n++ C. (*p).n++ D. ++p->n
a b ^ p c q 106、若已建立下面的链表结构,指针p、q分别指向图中所是结点,则不能将q所值的结点插入到链表末尾的一组语句是( )。 A.q->next=NULL;p=p->next;p->next=q; B.p=p->next;q->next=p->next;p->next=q; C.p=p->next;q->next=p;p->next=q;
D.p=(*p).next;(*q).next=(*p).next;(*p).next=q;
107、要打开一个已存在的非空文件“file”用于修改,正确的语句是( )。
A.fp=fopen(\B.fp=fopen(\C.fp=fopen(\ D.fp=fopen(\
108、以下可作为函数fopen中第一个参数的正确格式是( )。
A.c:user\\text.txt B.c:\%user\\text.txt
C.\D.\
109、为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当时( )。
A.\B.\C.\D.\
110、C语言可以处理的文件类型是( )。
A.文本文件和数据文件 B.文本文件和二进制文件
22
C.数据文件和二进制文件 D.以上答案都不对
111、当顺利执行了文件关闭操作时,fclose函数的返回值是( )。
A.-1 B.TRUE C.0 D.1
112、使用fgetc函数,则打开文件的方式必须是( )。
A.只读 B.追加
C.读或读/写 D.答案B和C正确
113、若调用fputc函数输出字符成功,返回值是( )。
A.EOF B.1 C.0 D.输出的字符
114、利用fseek函数可以( )。
A.改变文件的位置指针 B.实现文件的顺序读写
C.实现文件的随机读写 D.以上答案均正确
题型:填空题
1、在流程图符号中,菱形判断框中应该填写的的是________。 2、结构化程序设计是__________应遵循的方法和原则。 3、结构化程序必须用__________程序设计语言来编写。 4、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。 5、 任何简单或复杂的算法都是由_____和_____这两个要素组成。
6、 算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。 7、 在三种基本结构中,先判断后执行的结构被称为_________。 8、在三种基本结构中,先执行后判断的结构被称为_________。 9、程序设计风格主要影响程序的________。
10、 一个完整的C程序至少要有一个________函数。
23
11、 标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。 12、 C语言是以________为基本单位、整个程序由________组成。 13、 标准库函数存放在________文件中。 14、目标程序文件的扩展名是________。
15、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。 16、双精度实数的表示范围是___________,其有效位数是________。 17、关系表达式的运算结果是________。
18、逻辑运算符!是________运算符,其结合性是由______。 19、表达式的运算对象可以是常量、变量和________。
20、已知:a=15,b=240;则表达式(a&b)&b||b的结果为______。 22、{
已知在ASCII代码中,字母'A'的序号为65,以下程序的输出结果是________。
#include \ main()
{char c1='A',c2='Y';
printf(\; }
}
23、{a=3; c+=a-b;}在语法上被认为是________条语句,空语句的形式是______。 24、{
若float x; 以下程序段的输出结果是__________。 x=5.16894;
printf(“%f\\n”,(int)(x*1000+0.5)/(float)1000); }
25、{
以下程序段中输出语句执行后的结果依次是___________、__________、__________。
int i=-200,j=2500;
printf(\
printf(\printf(\}
26、{
以下程序段要求通过scanf函数给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能输入形式__________、__________和__________。
int k; float a;double x; scanf(\
printf(\ } 27、{
执行下列程序段后,输出结果是__________。
int a,b,c; a=b=c=0;
c=(a-=a-3,a=b,b+3);
24
printf(\
}
28、{
下面程序的输出结果是________。
main()
{int x=10,y=3,z;
printf(\ } } 29、{
若double a,b,c;
要求为a、b、c分别输入10、20、30。输入序列为:(□表示空格) □ 10.0□□20.0□□30.0
则正确的输入语句是_____________。 } 30、{
下面程序的输出结果是__________。(13 13.000000 13.000000) main()
{double a;float b;int c; c=b=a=40/3;
printf(\ } }
31、若右int a=10,b=20,c=30; 则能使a和c的值互换的语句是________。 答案:{
(1) 增加一个临时变量t。t=a; a=c; c=t; 或(2)a=a+c; c=a-c; a=a-c; 或(3)a=a^c; c=c^a; a=a^c; }
31、if语句控制表达式只能为________时表示逻辑“真”,其值为__________表示逻辑“假”。 32、if(!k)a=3;语句中的!k可以改写为________,使其功能不变。 33、表达“若|x|>4,则输出x,否则输出error!”,的if语句时______________。
答案:{
if ( x>4‖ x<-4 ) printf(\
或:if( x>4 ‖ x<-4 ) ? printf(\或:if(abs(x)>4)printf(\
}
34、能正确表达“当x的值是[1,10]或[200,210]范围内的奇数时,输出x”的if语句是________。 35、{
下列程序段的输出是__________。
int i=0,k=100,j=4;
if(i+j)k=(i=j)?(i=1):i=i+j); printf(“k=%d\\n”);
}
25