单选题
46、若输入ab,程序运行结果为()。
main()
{ static char a[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}**C**
A) a,b
B) a,
C) b,
D) 程序出错
47、若有说明: int a[3][4]={0};则下面正确的叙述是()。**D**
A) 只有元素a[0][0]可得到初值0
B) 此说明语句不正确
C) 数组a中各元素都可得到初值,但其值不一定为0
D) 数组a中每个元素均可得到初值0
48、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。**B**
A) 2
B) 3
C) 4
D) 无确定值
49、设有数组定义: char array [ ]="China"; 则数组 array所占的
空间为()。**C**
A) 4个字节
B) 5个字节
C) 6个字节
D) 7个字节
50、C语言程序中,当调用函数时()。**A**
A) 实参和虚参各占一个独立的存储单元
B) 实参和虚参可以共用存储单元
C) 可以由用户指定是否共用存储单元
D) 计算机系统自动确定是否共用存储单元
51、C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。**C**
A) void
B) double
C) int
D) char
52、C语言程序中必须有的函数是()。**B**
A) #include "stdio.h"
B) main
C) printf
D) scanf
53、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。**B**
A) 地址传递
B) 单向值传递
C) 由实参传给形参,再由形参传回给实参
D) 由用户指定的传递方式
54、当调用函数时,实参是一个数组名,则向函数传送的是()。**B**
A) 数组的长度
B) 数组的首地址
C) 数组每一个元素的地址
D) 数组每个元素中的值
55、对于void类型函数,调用时不可作为()。**D**
A) 自定义函数体中的语句
B) 循环体里的语句
C) if语句的成分语句
D) 表达式
56、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。**A**
A) 自动(auto)
B) 静态(static)
C) 外部(extern)
D) 寄存器(register)
57、关于建立函数的目的,以下正确的说法是()。**B**
A) 提高程序的执行效率
B) 提高程序的可读性
C) 减少程序的篇幅
D) 减少程序文件所占内存
58、全局变量的定义不可能在()。**A**
A) 函数内部
B) 函数外面
C) 文件外面
D) 最后一行
59、若调用一个函数,且此函数中没有return语句,则正确的说法是:
该函数()。**D**
A) 没有返回值
B) 返回若干个系统默认值
C) 能返回一个用户所希望的值
D) 返回一个不确定的值
60、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。**D**
A) 函数调用可以作为独立的语句存在
B) 函数调用可以作为一个函数的实参
C) 函数调用可以出现在表达式中
D) 函数调用可以作为一个函数的形参
61、若用数组名作为函数的实参,传递给形参的是()。**A**
A) 数组的首地址
B) 数组第一个元素的值
C) 数组中全部元素的值
D) 数组元素的个数
62、若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为()。**A**
A) p=&x[i];
B) p=x;
C) p=x[i];
D) p=&(x+i)
63、char h,*s=&h;可将字符H通过指针存入变量h中的语句是()。**B**
A) *s=H;
B) *s='H';
C) s=H;
D) s='H'
64、int (*p)[6]; 它的含义为()。**B**
A) 具有6个元素的一维数组
B) 定义了一个指向具有6个元素的一维数组的指针变量
C) 指向整型指针变量
D) 指向6个整数中的一个的地址
65、变量的指针,其含义是指该变量的()。**B**
A) 值
B) 地址
C) 名
D) 一个标志
66、对于基本类型相同的两个指针变量之间,不能进行的运算是()。**C**
A) <
B) =
C) +
D) -
67、关于指针概念说法不正确的是()。**D**
A) 一个指针变量只能指向同一类型变量
B) 一个变量的地址称为该变量的指针
C) 只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
D) 指针变量可以由整数赋,不能用浮点赋
68、若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为()。**D**
A) 无确定值
B) a的地址
C) 512
D) 511
69、若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。**C**
A) int p=&x;
B) int *p=x;
C) int *p=&x;
D) *p=*x;
70、若有char a[80],*s=a;不正确的输入语句是()。**C**
A) scanf("%s",s);
B) gets(s);
C) fscanf(stdin,"%c",s);
D) fgets(s,80,stdin);
71、若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()。**B**
A) i=*p;
B) *p=*&j;
C) i=&j;
D) i=**p;
72、若有下列定义,则对a数组元素地址的正确引用是()。
int a[5],*p=a;**B**
A) &a[5]
B) p+2
C) a++
D) &a
73、若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。**D**
A) a,point,*&a
B) &*a,&a,*point
C) *&point,*point,&a
D) &a,&*point,point
74、C语言结构体类型变量在程序执行期间()。**A**
A) 所有成员一直驻留在内存中
B) 只有一个成员驻留在内存中
C) 部分成员驻留在内存中
D) 没有成员驻留在内存中
75、C语言中,定义结构体的保留字是()。**B**
A) union
B) struct
C) enum
D) typedef
76、static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存
储方式,其中被初始化的下标变量是()。**C**
A) a[1]
B) a[-1]
C) a[0]
D) a[10]
77、当定义一个结构体变量时,系统分配给它的内存是()。**A**
A) 各成员所需内存量的总和
B) 结构中第一个成员所需内存量
C) 结构中最后一个成员所需内存量
D) 成员中占内存量最大者所需的容量
78、当说明一个结构体变量时系统分配给它的内存是()。**A**
A) 各成员所需内存量的总和
B) 结构中第一个成员所需内存量
C) 成员中占内存量最大者所需的容量
D) 结构中最后一个成员所需内存量
79、对结构体类型的变量的成员的访问,无论数据类型如何都可使用
的运算符是()。**A**
A) .
B) ->
C) *
D) &
80、结构体类型的定义允许嵌套是指()。**A**
A) 成员是已经或正在定义的结构体型
B) 成员可以重名
C) 结构体型可以派生
D) 定义多个结构体型
81、若要说明一个类型名STP,使得定义语句STP s等价于char *s,
以下选项中正确的是()。**D**
A) typedef STP char *s;
B) typedef *char STP;
C) typedef stp *char;
D) typedef char* STP;
82、设有如下定义: struct sk {int a; float b;} data,*p;
若要使p指向data中的a域,正确的赋值语句是()。**A**
A) p=(struct sk*)&data.a;
B) p=(struct sk*) data.a;
C) p=&data.a;
D) *p=data.a;
83、C语言中,文件由()。**D**
A) 记录组成
B) 由数据行组成
C) 由数据块组成
D) 由字符(字节)序列组成
84、C语言中的文件的存储方式有()。**C**
A) 只能顺序存取
B) 只能随机存取(或直接存取)
C) 可以顺序存取,也可随机存取
D) 只能从文件的开头进行存取
85、C语言中的文件类型只有()。**B**
A) 索引文件和文本文件两种
B) ASCII文件和二进制文件两种
C) 文本文件一种
D) 二进制文件一种
86、不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的
形式存在磁盘上()。**C**
A) 内存
B) 缓冲区
C) 文件
D) 寄存器
87、打开文件时,方式“w”决定了对文件进行的操作是()。**A**
A) 只写盘
B) 只读盘
C) 可读可写盘
D) 追加写盘
88、当顺利执行了文件关闭操作时,fclose函数的返回值是()。**C**
A) -1
B) TRUE
C) 0
D) 1
89、若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,
下面符合此要求的函数调用是()。**B**
A) fopen("A:\user\abc.txt","r")
B) fopen("A:\\user\\abc.txt","r+")
C) fopen("A:\user\abc.txt","rb")
D) fopen("A:\\user\\abc.txt","w")
90、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。**A**
A) 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B) 文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C) 文件打开时,原有文件内容被删除,只可作写操作
D) 以上各种说法皆不正确
展开阅读全文