第3套笔试模拟试卷一选择题:(1)下列叙述中正确的是()。
A)一个算法的空间复杂度大,则其时间复杂度必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(2)下列叙述中错误的是()。
A)线性表是由n个元素组成的一个有限序列B)线性表是一种线性结构C)线性表的所有结点有且仅有一个前件和后件D)线性表可以是空表(3)数据的存储结构是指()。
A)数据所占的存储空间B)数据的逻辑结构在计算机中的存放形式C)数据在计算机中的顺序存储方式D)存储在计算机外存中的数据(4)下面对对象概念描述正确的是()。
A)任何对象都必须有继承性B)对象是属性和方法的封装体C)对象间的通信靠信息传递D)方法是对象的静态属性(5)有下列二叉树,对此二叉树前序遍历的结果为()。
A)ACFXDBEYZB)ABEFXYZCDC)ABCDEFXYZD)ABDYECFXZ(6)两个或两个以上模块之间联系的紧密程度称为()。
A)耦合性B)内聚性C)复杂性D)数据传输特性(7)在下列关于二叉树的叙述中,正确的一项是()。
A)在二叉树中,任何一个结点的度都是2B)二叉树的度为2C)在二叉树中至少有一个结点的度为2D)一棵二叉树的度可以小于2(8)待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。
A)3B)5C)7D)9(9)以下所述中,是软件调试技术的是()。
A)错误推断B)集成测试C)回溯法D)边界值分析(10)设有如下关系表:A)T=R/SB)T=R×SC)T=R∩SD)T=R∪S(11)C语言程序的执行是()。
A)从程序的主函数开始,到程序的主函数结束C)从程序的主函数开始,到程序的最后一个函数结束B)从程序的第一个函数开始,到程序的最后一个函数结束D)从程序的第一个函数开始,到程序的主函数结束(12)下列不合法的用户标识符是()。
A)j2_KEYB)DoubleC)4dD)_8_(13)若变量已正确定义,以下表达式错误的是()。
A)a/b+cB)a%(5.0)C)a=1/3*(x=y=10,x*2)D)a=b=c(14)下列不合法的数值常量是()。
A)011B)1e1C)8.0E0.5D)0xabcd(15)已知char a;int b;float c;double d;,则表达式a+b+c-d结果为()型。
A)doubleB)floatC)intD)char(16)下列叙述中正确的是()。
A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(17)下列字符串是标识符的是()。
A)aaB)a-classC)intD)LINE 1(18)下列关于函数的叙述中正确的是()。
A)每个函数都可以被其他函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(19)若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是()。
A)++i;B)n1=(n2/(n3=2));C)k=i=j;D)a=b+c=2;(20)下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
A)只能是整数0或1B)只能是整数0或非0整数C)可以是结构体类型的数据D)可以是任意合法的表达式(21)设已定义x为double类型变量:#include<stdio.h>main(){float x=323.82631;printf("%.2e\n",x);}则以上语句()。
A)输出格式描述符的域宽不够,不能输出B)输出为32.38e+01C)输出为3.24e+002D)输出为3.24e2(22)若变量都已正确说明,则以下程序段()。
#include<stdio.h>main(){int a=3;int b=2;printf(a>b?"***a=%d":"###b=%d",a,b);}A)输出为:***a=3B)输出为:###b=3C)输出为:***a=3##b=5D)全部错误(23)与y=(x>0 ? 2 : x<0 ? 1 : 0);的功能相同的if语句是( )A)if(x>0) y=2; B)if(x)else if(x<0) y=1; if(x>0) y=1;else y=0; else if(x<0) y=2;else y=0;C)y=1; D)if(x<0) y=2;if(x) if(x>0) y=1;if(x>0) y=2; else y=0;else if(x==0) y=0;else y=1;(24)有以下程序:#include<stdio.h>main(){ int i,s=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是()。
A)4B)39C)45D)6(25)在下列选项中,没有构成死循环的程序段是()。
A)int i=100; B)for(;;);while(2){i=i%10+1;if(i>10) break;}C)int k=0; D)int s=12;do{++k;} while(k<=10); while(s);--s;(26)下面程序的运行结果是()。
#include<stdio.h>void del(char*s){int i,j;char *a;a=s;for(i=0,j=0;a[i]!='\0';i++){ if(a[i]>='0'&&a[i]<='9'){ s[j]=a[i];j++;}s[j]='\0';}}main(){char *s="aa89gggh";del(s);printf("\n%s",s);}A)aaB)89C)ggghD)aa89gggh(27)要求tan(60°)的值,调用的库函数格式为()。
A)tan(60)B)tan(pi/3)C)tan(60.0)D)tan((double)60)(28)下列程序的输出结果是()。
#include<stdio.h>void fun(int*a,int*b){ int *k;k=a;a=b;b=k;}main(){ int a=1,b=2,*x=&a,*y=&b;fun(x,y);printf("%d %d",a,b);}A)2 1B)1 2C)编译出错D)0 0(29)若有以下定义:int m[]={1,2,3,4,5,6,7,8,9,0},*p=m;则值为4的表达式是()。
A)p+=3,*(p++)B)p+=3,*++pC)p+=4,*p++D)p+=3,++*p(30)若有说明int a[4][4]={2,4,6,8,10,12},(*p)[4]=a;则对数组元素a[i][j](其中0<=i<4,0<=j<4)地址的错误引用为()。
A)*(*(p+i)+j)B)*(p[i]+j)C)(a+i)[j]D)*(a[i]+j)(31)以下程序的输出结果为()。
#include<stdio.h>main(){char *p[]={"abcdefgh","ijkl","mnop","qrst","uvwx"};int i;for(i=0;i<3;i++)puts(p[i]);}A)abcdefghB)ijklC)abcdefghD)qrstijklmnop(32)若有以下定义,则对a数组元素地址的正确引用是()。
int a[5],*p=a;A)p+5B)*a+1C)&a+1D)&a[0](33)判断字符串s1是否大于字符串s2,应该使用()。
A)if(strcmp(s1,s2)<0)B)if(s1>s2)C)if(strcmp(s2,s1)<0)D)if(strcmp(s1,s2))(34)若输入bcdefgh、m、abcdefg,以下程序的输出结果为()。
#include<stdio.h>#include<string.h>main(){ int i;char string[20],str[3][20];for(i=0;i<3;i++) gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);else strcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf("%s",string);}A)bcdefghB)mC)abcdefgD)bcdefgh或abcdefg(35)以下叙述中,不正确的是()。
A)使用static int a定义的外部变量存放在内存中的静态存储区B)使用int a定义的外部变量存放在内存中的动态存储区C)使用static int c定义的内部变量存放在内存中的静态存储区D)使用int d定义的内部变量存放在内存中的动态存储区(36)若有以下宏定义:#diefine N 2#define f(n)((N+1)*n)则执行语句a=3*(N+f(5));后的结果是()。
A)语句有错误B)a=51C)a=80D)a无定值(37)定义以下结构体(联合)数组:struct st{char name[15];int age;}a[10]={"ZHAO",14, "W ANG",15, "LIU",16, "ZHANG",17 };执行语句printf("%d,%c",a[2].age, *(a[3].name+2))的输出结果为()。