大学c语言程序设计题库选择题,黑龙江大学C语言程序设计试题库程序单选.doc

单选题

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) 以上各种说法皆不正确

展开阅读全文

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值