)。
能执行)。
序main(){ int m=3,n=4,x。
x=-m。
x=x+8/n。
printf("%d\n",x)。
}程序运行后的输出结果是()。
A)3 B)5 C)-1 D)-29、以下不正确的叙述是()。
A) 在C程序中,main函数不一定要写在程序的最上面B) 在C程序中,SUM和sum是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值10、若有说明int *p,a[5]。
p=a;则以下表达式中不能表示a[3]的是()。
A) p[3] B) *(a+3) C) *(p+3 ) D) *(p+6)11、以下能正确定义二维数组的是()。
A)int a[][3]。
B)int a[][3]=2{2*3}。
C)int a[][3]={}。
D)int a[2][3]={{1},{2},{3,4}}。
12、s1和s2已正确定义并分别指向两个字符串。
若要求:当s1所指串大于s2所指串时,执行语句S。
则以下选项中正确的是()。
A)if(s1>s2)S。
B)if(strcmp(s1,s2))S。
C)if(strcmp(s2,s1)>0)S。
D)if(strcmp(s1,s2)>0)S。
13、有以下程序void main( ){ int i,s=0。
for(i=1。
i<10。
i+=2)s+=i+1。
printf(“%d\n”,s)。
}程序执行后的输出结果是()。
A) 自然数1~10的累加和 B) 自然数1~9的累加和C) 自然数1~10中的偶数之和 D) 自然数1~9中的奇数之和14、有以下说明和定义语句struct student{ int age。
char num[8]。
}。
struct student stu[3]={{20,"200701"},{21,"200702"},{19,"200703"}}。
struct student *p=stu。
以下选项中引用结构体变量成员的表达式错误的是()。
A)(p++)->num B)p->numC)(*p).num D)stu[3].age15、有以下程序void f(char *p){ p + = 3 。
}void main( ) { char b[4]={'a','b','c','d'},*p = b。
f(p)。
printf("%c\n",*p)。
}程序运行后的输出结果是()。
A) a B) b C) c D) d16、执行下面程序段后,输出是()。
int j=1,s=0。
while (j<=10){ j++。
if(j%2)continue。
s=s+j。
}printf(“%d”,s)。
A) 22 B) 25 C) 30 D) 5517、有以下程序#define N 20 fun(int a[],int n,int m) {int i,j。
for(i=m。
i>=n。
i--)a[i+1]=a[i]。
}void main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}。
fun(a,2,9)。
for(i=0。
i<5。
i++)printf("%d",a[i])。
}程序运行后的输出结果是()。
A)10234 B)12344 C)12334 D)1223418、有以下程序void main() {int a=1,b。
for(b=1。
b<=10。
b++) {if(a>=8)break。
if(a%2==1){a+=5。
continue。
} a-=3。
}printf("%d\n",b)。
}程序运行后的输出结果是()。
A) 3 B) 4 C)5 D) 619、有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b。
b=p[5]。
b中的值是()。
A)5 B)6 C) 9 D) 120、C语言规定,简单变量做实参时,它和形参之间的数据传递方式是()。
A) 地址传递B) 单项值传递C) 由实参传给形参,再由形参传给实参D) 由用户指定传递方式二、填空题(1-6题每空2分,7-8题每题5分,共30分)1、C语言源程序的基本单位是。
2、在内存中每个存储单元的编号称为。
3、根据对变量的访问方式,可分为直接访问和访问。
4、下面程序的功能是输出以下形式的金字塔图案:****************void main( ){ int i,j。
for(i=1。
(1)。
i++){ for(j=1。
j<= (2)。
j++) printf(“*”)。
printf(“\n”)。
}}5、以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束,请填空。
void main(){ float x,amax,amin。
scanf("%f", (1))。
amax=x。
amin=x。
while ((2)){ if (x>amax)amax=x。
elseif( (3) )amin=x。
scanf("%f",&x)。
}printf ("\n amax=%f\n amin=%f\n",amax,amin)。
}6、下列程序的功能是判断一个正整数是否为素数。
void main( ){int n ,i,f。
scanf(“%d”,&n)。
f = 1。
for(i=2 。
i<=sqrt(n) 。
(1) )if(n%i==0){(2)。
break。
}}7、下列程序的运行结果是。
void main( ){int i ,s = 1。
for(i=0。
i<=5。
i++)s = s *i。
printf(“%d”, s)。
}8、当运行以下程序时,输入abcd,程序的输出结果是。
void insert(charstr[]){inti;i =strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]=′*′;i--;}printf("%s\n",str);}void main(){charstr[40];scanf("%s",str);insert(str);}三、程序理解题(每题10分,共30分)1、已知函数f的功能是求1-n的和。
int f( int n ){int i,sum。
for(i=1。
i<=n。
i++);return sum。
}问题(1)将函数f补充完整;(5分)问题(2)写出主函数,求1-100的和。
(5分)2、编程求下列分段函数的值(x,y均为整型变量)2x-10 x>0y = x+5 x=02x+10 x<03、编程对10个正整数排序(可采用起泡法或选择法任意一种完成)。
第二部分数据结构一、选择题(2分×25=50分)1、数据的最小单位是()。
A) 数据项 B) 数据类型 C) 数据元素D) 数据变量2、字符串的长度是指()。
A) 串中不同字符的个数B) 串中不同字母的个数C) 串中所含字符的个数D) 串中不同数字的个数3、以下数据结构中()是非线性结构?A) 队列 B) 栈 C) 线性表 D) 二叉树4、建立一个长度为n的有序单链表的时间复杂度为()。
A) O(n) B)O(1) C)O(n2) D)O(log2n)5、两个字符串相等的充要条件是()。
A) 两个字符串的长度相等 B) 两个字符串中对应位置上的字符相等C) 同时具备(A)和(B)两个条件 D) 以上答案都不对6、算法的时间复杂度是指()。
A) 执行算法程序所需要的时间 B) 算法程序的长度C) 算法执行过程中所需要的基本运算次数 D) 算法程序中的指令条数7、队列是一种()的线性表。
A) 先进先出 B) 先进后出 C) 只能插入D) 只能删除8、长度为N的线性表进行顺序查找,在查找不成功时,与关键字的比较次数为 ( )。
A) N B) 1 C) N-1 D) 09、若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()。
A) 1,2,3 B) 9,5,2,3C) 9,4,3 D) 9,4,2,310、设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。
A) n-1 (B) n (C) n+1 (D) 2n-111、线性链表不具有的特点是()。
A) 随机访问 B) 不必事先估计所需存储空间大小C) 插入与删除时不必移动元素 D) 所需空间与线性表长度成正比12、设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A) 5 B) 6 C) 7 D) 813、设某棵二叉树的中序遍历序列为ABCD,先序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
A) BADC B)BCDA C) CDAB D) CBDA14、在有n个叶子结点的正则二叉树(无度为1的结点)中,其结点总数为()。
A) 2n B) 2n-1 C) 2n+1 D) 2n-115、设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。
A) 40,50,20,95 B) 15,40,60,20C) 15,20,40,45 D) 45,40,15,2016、函数substr(“DATASTRUCTURE”,5,9)的返回值为()。
A) “STRUCTURE”B) “DATA”C) “ASTRUCTUR”D) “DATASTRUCTURE”17、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。
A) O(log2n) B) O(1) C) O(n2) D) O(n)18、以下不是堆的是()。
A) (100,98,88,82,80,77,66,60,40,28,18)B) (18,28,40,60,66,77,80,82,85,98,100)C) (100,88,98,77,80,60,82,40,28,18,66)D) (100,85,40,77,80,60,66,98,82,18,28)19、顺序存储设计时存储单元的地址()。