数据结构题目选择和填空

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题1
一;选择题
1;在C/C++程序中,main函数的位置()
A 必须在最开始B必须在预处理指令的后面
C 可以任意D必须在最后
2;在C/C++程序中,下列说法中正确的是()
A 不区分大小写字母
B 一行只能写一条语句
C 一条语句可分成几行书写
D 每行必须有行号
3;C程序文件名的后缀为(),C++程序文件名的后缀为()A;.c B;.cpp C;.obj D;.exe
4;C/C++程序经过编译后生成可执行文件,其文件名的后缀为()A;.c B;.cpp C;.obj D;.exe
5;C/C++程序经过连接后生成可执行文件,其文件名的后缀为()A;.c B;.cpp C;.obj D;.exe
6;编译程序的主要工作是()
A检查程序的语法错误B检查程序的逻辑错误
C检查程序的完整性D生成目标文件
7;计算机硬件能唯一识别的语言是()
A机器语言B低级语言
C汇编语言D翻译程序
8;下列说法正确的是()
A;在C/C++源程序中,每条语句以逗号结束
B;在c/c++源程序中,每行只能写一条语句
C;无论注释内容是什么,在对程序进行编译时都被忽略
D写注释时,“/”和“*”之间可以有空格
习题2
一;选择题
1;在计算机内一切信息的存取;传输和处理都是以()形式进行的。

A;ASCII码B;二进制C;十进制 D 十六进制2;十进制数35转换成二进制数是()
A;100011 B;0100011 C;100110 D;100101
3;用8位二进制表示有符号整数,可表示的最大整数是()。

A;127 B;128 C;256 D;255
4;-23的8位二进制补码是()
A;00010111 B;11101001
C;11101000 D;10010111
5;计算机工作时,内存储器用来存储()
A;程序和指令B;数据和信号
C;程序和数据D;ASCII码和数据
6;内存中,存储单元是()
A;最小存储单位 B ;可管理的最小存储单位
C;以字节为单位C;存储程序
7;下面()不是C/C++语言的基本数据类型。

A;unsigned int B;double C;char D;string
8;在C/C++语言中,字符型数据进行()运算没有实际意义。

A;+ B;—C;> D;<
习题3
一;选择题
1;下面4个选项中,均是合法整型常量的选项是()A;160 -0xffff 011 B;-0xcdf 01a 0xe C;-01 986,012 0668 D;-0x48a 2e5 0x 2;下面4个选项中,均是不合法转义字符的选项是()A;'\'" '\\' '\xf' B;'\1011' '\' '\ab'
C;'\011' '\f' '\}' D;'\abc' '\101' 'xlf' 3;下面4个选项中,均是合法char型常量的选项是()A;'a' '! ' 'this' B;''' '\'' '\ab'
C;'1' 'a' '*' D;'\78' '\76' '\72' 4;若有变量定义语句:char ch='\72'; 则变量ch( )
A;包含1个字符B;包含2个字符
C;包含3个字符D;变量定义不合法
5;假设变量已正确定义并初始化,下面合法的赋值语句是()A;a:=b+1; B;a=b=c+2; C;18.5=a+b; D;a+1=c 6;假设变量已正确定义并初始化,下面合法的赋值语句是()
A;a==1; B;i++; C;a+i=5; D;5-i=a
7;下面正确的常量定义是()
A;#define base=2.13 B;#define base 1/3
C;#define int integer D;#define count 999
8;下面正确的变量定义是()
A;int a;b;c; B;double xl,x2;
C;char 'A', 'B'; D;int a,double x;
习题4
一;选择题
1;对于变量定义int a=7;float x=2.5,y=4.7;表达式x+a%3+(int)(x+y)%2/4的值是()
A;2.5 B;2.75 C;3.5 D;0
2;设变量a是整型,f是单精度型,d是双精度型,则表达式a*f+(d-a)的运算结果的数据类型为()
A;int B;float C;double D;不确定
3;假设变量x和y为double型,且x已赋值为2,则表达式y=x+3/2的值是()
A;3.5 B;3 C;2.0 D;3.0
4;下列运算符中优先级最高的是()
A;<B;+ C;&& D;!=
5;判断char型变量ch是否为小写字母的正确表达式是()
A;'a'<=ch<='z' B;(ch>=a)&&(ch<=z)
C;('a'>=ch)║('z'<=ch)D;(ch>='a')&&(ch<='z')
6;语句printf("I\bandy\\\bou\n");的输出结果是()
A;I\bandy\\\bou\n B;I\bandy\\\bou
C;Iandy\ou D;andyou
7;若有变量定义int a;float b;则以下输入语句正确的是()A;scanf("%f%f",&a,&b); B;scanf("%1f%1f",&a,&b)
C;scanf("%d %f",&a,&b); D;scanf("%d %6.2f",&a,&b) 8;执行下面程序段,给变量x和y赋值时,不能作为数据分隔符的是()
int x, y;
scanf("%d %d",&x,&y);
A;空格B;Tab键C;回车D;逗号
9;执行下面程序段,假设用户输入为1□□2□3(□表示空格),则变量ch1,ch2t ch3的值是()
char ch1,ch2,ch3;
scanf("%c%c%c",&ch1,&ch2,&ch3);
A;'1','2','3' B;'1','□','2' C;'1','□','□'D;'1','□','3'
习题5
一;选择题
1;if-else语句嵌套使用时,else与()相配对。

A;缩排位置相同的if B;其上最近的if
C;其下最近的if D;其上最的未配对的if 2;以下错误的if语句是()。

A;if(x >y)z=x; B;if(x==y)z=0;
C;if(x!=y)z=x else z=y; D;if(x<y){x++;y--;} 3;以下程序的输出结果是()。

void main()
{
int a = 20,b = 30;c = 40,
if (a > b) a =b;
b = c;
c = a ;
printf(“a =%d, b=%d, c=%d‟‟/n;a,b,c,);
}
A;a=20,b=30,c=20 B;a=20,b=40,c=20
C;a=30,b=40,c=20 D;a=30,b=40,c=30
4;对于如下程序,正确的判断是()。

void main()
{
int a,b;
scanf(“%d,%d,”&a,&b);
if(a> b) a=b;b=a;
else a++;b++;
printf(“%d, %d ,a,b,);
}
A;有语法错误不能通过编译B;若输入4,5则输出5,6 C;若输入5,4则输出4,5 D;若输入5,4则输出5,5 5;以下程序输出结果是()。

void main()
{
Int x=1,a = 0,b = 0;
switch(x)
}
case 0: b++;
case 1: a++;
case 2;a++;b++;
}
printf(“a = % d, b = %d\n”, a, b);
}
A;a=2,b=1 B;a=1,b=1 C;a=1,b=0 D;a=2,b=2 6;以下循环语句的执行次数是()。

for(int i = 2; i != 0; i--) printf (“%d‟‟,i);
A;无限次B;0次C;1 次D;2次
7;语句while(!E)中的表达式!E等价于()
A;E==0 B;E!=1 C;E!=0 D;E==1
8;可将for(表达式1;;表达式3)理解为()
A;for(表达式1;0表达式3) B;for(表达式1;1;表达式3) C;for(表达式1;表达式1;表达式3) D;for(表达式1;表达式3;表达式3)9;以下程序段()
x=-1;
do{
x=x * x;
} while(!x);
A;是死循环B;有语法错误
C;循环体执行1次D;循环体执行2次
10;以下程序段中,while循环的循环次数是()
int i=0;
while (i<10)
{
if (i<5) continue;
if (i ==5) break;
i++;
}
A;1 B;10 C;死循环D;有语法错误
习题6
一;选择题
1;下列说法中正确的是()。

A;实参必须是常量B;形参可以是常量;变量或表达式C;实参可以是任何类型D;实参与其对应形参的数据类型一致2;在C/C++语言中,函数的隐含存储类型是()
A;auto B;static C;extern D;无储存类别
3;在函数中未指定存储类别的局部变量,其隐含的存储类别为()A;auto B;static C;extern D;register
4;C/C++语言规定,函数返回值的类型是由()
A;return语句中的表达式类型所决定
B;调用该函数时的主调函数类型所决定
C;调用该函数时系统临时决定
D;在定义该函数时所指定的函数类型所决定
5;下列说法不正确的是()
A;在不同的函数中可以使用相同名字的变量
B;函数中的形参是局部变量
C;在一个函数内定义的变量只在本函数范围内有效
D;在一个函数内的复合语句中定义的变量在本函数范围内有效6;以下程序的输出结果是()
#include<stdio.h>
void Fun(int x,int y, int z)
{
z=x+y
}
int main( )
{
int c;
Fun(2,3,c);
printf("%d/n ",c);
return 0;
}
A;0 B;5 C;6 D;无法确定
习题7
一;选择题
1;若有变量定义int a,b,*p=&b;能够正确从键盘读入2个整数并分别赋给变量a和b的语句是()
A;scanf(“%d%d”, &a, &p); B;scanf(“%d%d”, &a, p); C;scanf(“%d%d”,a,p); D;scanf(“%d%d”,a,*p); 2;若有变量定义int a=512,*p=&a;则*p的值为()
A;无确定值B;0 C;变量a的地址D;512;
3;下面()能实现交换指针p和q所知内存单元的值。

A;temp=*p;*p=*q;*q=temp B;remp=p;p=q;q=temp;
D;temp=p;*p=*q;q=temp D;temp=﹠p;*p=*q;q=*temp;
4;两个基类型相同的指针变量之间不能进行()运算。

A;< B;> C;+ D;—
5;若有变量定义int a=5,*p=&a;*q=&a;则下面不能正确执行的赋值语句是()。

A;a=p-q; B;p=a;
C;p=q; D;a=(*p)*(*q);
6;若有定量定义int a=5,*p=&a,*p=&x;则能完成x=y赋值功能的语句是()
A;x=*p; B;*p=y;
C;x=&y; D;*p=&y
7;若有变量定义int m=5,n,*p;则以下正确的程序段是()。

A;p=&n;scanp(“%d”, &p); B;p=&n;scanp(“%d”, *p); C;scanf(“%d, &n);*p=n D;p=&n;*p=m;
习题8
一;选择题
1;在C/C++语言中引用数组元素时,其数组下标允许是()。

A;整型常量B;整形表达式
C;整型常量和整形表达式D;任何类型的表达式
2;若二维数组a有m列,则a[i][j]前的元素个数为()
A;j*m+I B;i*m+j C;i*m+j-1 D;j*m+i-1
3;若有变量定义int a[ ] [ 3]={1,2,3,4,5,6,7};则数组a第一维的大小是()
A;2 B;3 C;4 D;无确定值
4;一下不正确的变量定义是()
A;double x[5]={2.0,4.0,6.0,8.0,10.0};
B;int y[5]={0,1,3,5,7,9};
C;char c1[ ]={…1‟,‘2’,‘3’,‘4’,‘5’};
D;char c2[ ={…x10‟,‘\xa‟,‘\8};
5;以下不能对二维数组a进行正确初始化的语句是()。

A;int a[2][3]={0}; B;int a[ ][3]={1,2},{0}};
C;int a[2][3]= {1,2},{3,4},{5,6}}; D;int a[ ][3]={1,2,3,4,5,6}; 6;若使用一维数组名作函数实参,则以下正确的说法是()
A;必须在主调函数中说明此数组的大小
B;实参数组类型与形参数组类型可以不匹配
C;在被调用函数中,不需要考虑形参数组的大小
D;实参数组名与形参数组名必须一致
7;若用数组名作为函数的实参,传递给形参的是()
A;数组的首地址B;数组第一个元素的值
C;数组中全部元素的值D;数组元素的个数
8;若有以下数组定义和函数调用语句,则函数Fun的形参定义为()int a[3[4]={1};
Fun(a);
A;Fun(int b[ ][6]) B;Fun(int b[ 3][ ])
C;Fun(int b[ ][4]) D;Fun(int b[2][5])
习题9
一;选择题
1;以下不能进行字符串初始化的语句是()。

A.char str[5]=“good!”;
B.char str[ ]=“good!”;
C.char str[8]=“good!”;
D.char str[ 5 ]={`g`,`o`,`o`,`d`};
2;若有如下变量定义,则正确的叙述为()。

char x[ ]=“abcdefg”;
char y[ ]={`a`,`b`,`c`,`d`,`e`,`f`,`g`};
A.数组x和数组y的值相同
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
3;以下程序的输出结果是()。

void main ( )
{
char arr [2] [4];
strcpy(arr[0],“you”);strcpy(arr[1],“me”);
arr[0] [3]=‘&’;
printf(“%s\n”,arr);
}
A.you&me
B.you
C.me
D.arr
4;假设有如下变量定义char str[8],str2[8]=“good”;则不能实现将
字符数组str2赋值给strl的语句是()。

A.strl=str2;
B.strcpy(strl,str2)
C.strncpy(strl,str2,6)
D.memcpy(strl,str2,5)
5;下列()能够判断两个字符串strl和str2是否相等。

A.if(strl=str2)
B.if(strl=str2)
C.if(strcmp(strl,str2));
D.if(strcmp(strl,str2)==0)6;以下程序的输出结果是()。

#include﹤stdio.h﹥
int main( )
{
char ch[7]=“89ab12”;
for(int i =0,s=0;ch[i] ﹥=‘0’&&ch[i] ﹤=‘9’;i++)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
return 0;
}
A.89ab12
B.8912
C.89
D.144
7;以下正确的语句是()。

A.char s[5]=“abcdef”;
B.char*s;gets(s);
C.char s[5];scanf(“%s”,&s);
D.char*s;s=“abcdef”;
习题10
一;选择题
1.下列说法正确的是()。

A.结构体类型一经定义,系统就为其分配内存单元
B.结构体变量所占内存单元数是各成员所占内存单元数之和
C.可以对结构体变量进行赋值和存取等运算
D.定义结构体变量后,只能引用结构体变量的具体成员,不能引用结构体变量
2;对于枚举类型enum ColorType{red,green,blue,yellow=7,black};则枚举数量red和black的值分别是()。

A.1,5
B.1,7
C.0,8
D.1,8
3;以下对结构体变量day的定义中,正确的是()。

A.struct Date
{
int x,y;
}day
B.typedef struct
{
int x,y;
}day
C.struct
{
int x,y;
} Date ;
struct Date day;
D.struct Date
{
int x,y;
} Date ;
struct day;
4;对于如下结构体变量定义,能够正确实现输入操作的语句是()。

struct studentType
{
char name[10];
double score [3];
}stu;
A.scanf(“%s”,);
B.scanf(“%If”,stu.score);
C.scanf(“%s”,&);
D.scanf(“%If”,&stu.score);
5.结构体变量在程序执行期间()。

A.所有成员都驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.正在使用的成员驻留在内存中
习题11
一;选择题
1.C/C++语言规定()。

A.函数不能嵌套定义,但可以嵌套调用
B.函数不能嵌套定义,也不可以嵌套调用
C.函数可以嵌套定义,也可以嵌套调用
D.函数可以嵌套定义,但不可以嵌套调用
2;在函数调用时,系统将当前函数的运行环境进栈,运行环境不包括()。

A.形参变量
B.局部变量
C.全局变量
D.返回地址3;以下程序运行后的输出结果是()。

#include﹤stdio.h﹥
int Fun(int x,int y)
{
return x+y;
}
int main()
{
int a=2,b=5,c=8;
printf(“%d/n”,Fun(Fun(a+b,c),a-b));
return 0;
}
A.编译出错
B.9
C.12
D.21
4;以下程序运行后的输出结果是()。

#included﹤stdio.h﹥
#included﹤string.h﹥
char str [ ] = “student”;
void Fun(int i)
{
if (i﹤strlen(str))
{
printf(“%c”,str [i]);
Fun(i+2);
}
}
int main()
{
int i=0;
Fun(i);
return 0;
}
A.student
B.suet
C.sue
D.stu 5;以下程序运行后的输出结果是()。

#included﹤stdio.h﹥
int Fun(int i)
{
int sum = 0;
If (i= =1)
return 1;
else
{
sum+=Fun(i-1);
return sum
}
}
int main ()
{
printf(“%d/n”,Fun(5));
return 0;
}
A.0
B.1
C.8
D.15
习题12
一;选择题
1;若有变量定义int a [5]={1,2,3,4,5};int*p=a;则下列()不能实现引用数组第2个元素。

A.a [1]
B. p[1]
C.*p+1
D.*(p+1)
2;有一个二维数组a [3][4],其第3行第4列元素的正确表示方法是
()。

A.a [3][4]
B.&a [2][3]
C.*(a+2)+3
D.*(a [2]+3)3;以下程序求数组中的最大值,划线处的语句是()。

#included﹤stdio.h﹥
int main ()
{
int a [5]={3,5,1,8,6};
for(int*p=a,*q=a;p<a+5;p++﹚
if ()
q=p;
printf(“%d/n”,*q);
return 0;
}
A.p>q
B.*p>*q
C.a[p] ﹥a[q]
D.p-a>q-a
4;以下程序的输出结果是()。

#included﹤stdio.h﹥
struct HAR
{
int x,y;
struct HAR *p;
} h [2];
int main ()
{
h[0].x=1;h[0]. y=2; h[0].p=δh[1];
h[1].x=3;h[1].y=4; h[1].p=h;
printf(“%d,%d”,(h[0].p)- >x, (h[1].p)- >y);
return 0;
}
A.1,2
B.3,2
C.2,3
D.1,4
5;若有变量定义int x[5]={1,2,3},*p=x;则能正确表示数组元素地址的是()。

A.x++
B.&p
C. &p[2]
D.p+3
6;若有以下函数定义,p是该函数的形象,要求通过p把动态申请的存储单元的地址传回主调函数,则正确的形象定义是()。

void Fun( )
{
*p=(double *)malloc(sizeof(double) *10);
·
}
A.double *p
B.double p
C.double **p
D.double &p
习题13
一;选择题
1;打开D盘上user文件夹中的文件,abo.txt进行读写操作,下面满
足此要求的函数调用是()
A;fopen(“D:\user\abc.txt”,“r”)
B;fopen(“D:\user\abc.txt”,“r+”)
C;fopen(“D:\user\abc.txt”,“rb”)
D;fopen(“D:\user\abc.txt”,“w+”)
2;若fp是指向某文件的指针,且已到文件末尾,则库函数feof(fp)的返回值是()
A;EOF B;-1 C;非0值D;NULL
3;以下不能将文件的位置指针重新移到文件看开头位置的语句是()
A;rewind(fp) B;fseek(fp,0,seek_set)
C;fseek(fp,0,SEEK_end) D;fseek(fp ,0SEEK_CUR)
4;以下程序执行后,文件test.txt的内容是()
#include<stdio.h>
#include<string.h>
void fun (char *fName,char *str)
{
FILE *fp;
Fp=fopen(fName,“w”);
for(int i=0;i<strlen(str);i++)
fputc(str[i],fp);
fclose(fp);
}
int main( )
{
Fun(“test.txt”,“Hello,”);
Fun(“test.txt”,“World”);
return 0;
}
A;Hello B;Hello,world! C;World D;Hello,。

相关文档
最新文档