pta选择、填空错题集合
pta选择题(共112题应化C语言老师提供)

1. C 语言程序中可以对程序进行注释,注释部分必须用什么符号括起来?(2分)A.'{' 和‘}'B.'[' 和']'C.'/*' 和'*/'D.'*/' 和'/*'2.o作者:往年试卷o单位:浙江大学下列运算符中,优先级最低的是____。
(2分)B.*C.!=D.+E.=3.o作者:往年试卷o单位:浙江大学若变量已正确定义,表达式 (j=3, j++) 的值是____。
(2分)B. 3C. 4D. 5E. 64.o作者:往年试卷o单位:浙江大学98, b语法不合法98, 9998, cB.正数C.负数D.0E.不确定的数6.o作者:往年试卷o单位:浙江大学数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素____的值为6。
(2分)B.a[3][2]C.a[2][1]D.a[1][2]E.a[2][3]7.o作者:往年试卷o单位:浙江大学要调用数学函数时,在#include命令行中应包含____。
(2分)B."stdio.h"C."string.h"D."math.h"E."ctype.h"8.o作者:往年试卷o单位:浙江大学判断i 和j 至少有一个值为非0的表达式是____。
(2分)B.i!=0 && j!=0C.i+j!=0D.i || jE.i&&j9.o作者:往年试卷o单位:浙江大学若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。
(2分)B.scanf("%d,%f”, &a, &c);C.scanf("d=%d, c=%f”, &a, &c);D.scanf("%d%f”, &a, &c);E.scanf("%d%f”, a, c);10.o作者:往年试卷o单位:浙江大学下列运算符中优先级最低的是__. (2分)B.IIC.>=D.!=E.~11.o作者:往年试卷o单位:浙江大学若变量已正确定义并赋值,符合C语言语法的表达式是 __. (2分)B.a=2++C.a=3,5D.a=a+1=3E.12.3%412.o作者:往年试卷o单位:浙江大学表达式__不能用于判断“x和y不同时为零”。
(山东科技大学)PTA数据结构答案与解析

3.函数题 4.编程题
线性表应用
1.单选题
2-1 采用多项式的非零项链式存储表示法,如果两个多项式的非零项分别为N1和N2个,最高项指数分别为M1和M2, 则实现两个多项式相乘的时间复杂度是:(2分) 1. O(N1×N2) 2. O(M1×M2) 3. O(N1+N2) 4. O(M1+M2) 解析:略 答案: A
3. 任一结点无左孩子 4. 任一结点无右孩子 解析:思路同2-15,在此不再阐述 答案: D 2-17 设n、m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是 (3分) 1. n在m左方 2. n在m右方 3. n是m祖先 4. n是m子孙 解析:由显然易得,选A 答案: A 2-18 给定二叉树如下图所示。设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。若遍历后的结点序 列为3、1、7、5、6、2、4,则其遍历方式是: (2分)
1. c 2. d 3. f 4. g解析:模拟一遍求解即可 答案: B 单位: 浙江大学 2-5 在下述结论中,正确的是: (2分) ① 只有2个结点的树的度为1; ② 二叉树的度为2; ③ 二叉树的左右子树可任意交换; ④ 在最大堆(大顶堆)中,从根到任意其它结点的路径上的键值一定是按非递增有序排列的。 1. ①④ 2. ②④ 3. ①②③ 4. ②③④
1. NRL 2. RNL 3. LRN 4. RLN 解析:由显然易得,选B 答案: B 2-19 设高为h的二叉树(规定叶子结点的高度为1)只有度为0和2的结点,则此类二叉树的最少结点数和最多结点数分 别为: (3分) 1. 2. 3. 4. , , , ,
解析:由二叉树结点数性质,易得B答案正确, 容易误选D,当除根节点之外,每层有两个节点的时候,结点数是最 少的(不方便画图就不画了,自行理解)
pta数据结构期末复习题

pta数据结构期末复习题一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一的关系B. 元素之间存在一对多的关系C. 元素之间存在多对多的关系D. 元素之间存在一对一或多对多的关系2. 栈(Stack)是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?A. 入栈(Push)B. 出栈(Pop)C. 查看栈顶元素(Top)D. 排序(Sort)3. 在二叉树中,度为2的节点最多有多少个子节点?A. 1B. 2C. 3D. 44. 哈希表的冲突解决方法不包括以下哪项?A. 开放寻址法B. 链接法C. 线性探测法D. 冒泡排序法5. 图的遍历算法中,深度优先搜索(DFS)使用的是哪种数据结构来实现?A. 队列B. 栈C. 链表D. 树二、填空题(每空2分,共20分)6. 在链表中,每个节点通常包含数据部分和______。
7. 排序算法中,冒泡排序的时间复杂度为______。
8. 快速排序算法的平均时间复杂度为______。
9. 哈夫曼编码是一种______编码方法。
10. 在图的表示方法中,邻接矩阵适用于______图。
三、简答题(每题10分,共30分)11. 简述线性表和非线性表的区别。
12. 解释什么是二叉搜索树,并说明其特点。
13. 描述图的深度优先搜索(DFS)和广度优先搜索(BFS)的区别。
四、计算题(每题15分,共30分)14. 给定一个数组A = [3, 7, 5, 1, 9, 8],请使用选择排序算法对其进行排序,并给出排序过程中的每一步状态。
15. 假设有一个无向图,包含顶点A, B, C, D, E,边的权重如下:(A,B): 1, (B,C): 2, (C,D): 3, (D,E): 4, (A,E): 5。
请使用克鲁斯卡尔算法(Kruskal's algorithm)找到该图的最小生成树。
五、编程题(共10分)16. 编写一个函数,实现单链表的反转,并说明其时间复杂度。
PTA选择题汇总

For the following declarations of structure and variables, the correct description of the expression *p->str++; is __. (2 分) B. ++ acts on the pointer str For the following declarations, assignment expression __ is not correct. (2 分) B. p->name =
Among the following assignments or initializations, __ is wrong. (2 分) B. char s[10]; s="hello";
Among the following expressions in C, __ is correct. (2 分) D. 2==(3/2)
按照标识符的要求,( )不能组成标识符。 (2 分) A. 连接符
表达式 strcmp("box", "boss") 的值是一个____。(2 分) A. 正数
表达式( )的值是 0。 (2 分) A. 3/5
表达式__不能用于判断“x 和 y 不同时为零”。 (2 分) C. !(x==0 || y==0)
表达式__的值是 0。 (2 分) C. 3/5
表达式 5>3>1 值是__. (2 分) A. 0 表达式 8>6>3 值是( )。 (2 分) A. 0
不正确的赋值或赋初值的方式是____。 (2 分) C. char str[10];str="string";
pta选择填空错题集合

1、以下选项中不正确的整型常量就是(D)、(2分)A.12LB.-10C.012D.2,900//u就是unsigned的意思,代表无符号整型带L的就是长整型字面值常量,不带的就是整型字面值常量。
2、若,则表达式(B)。
(2分)A 2、5B 2、0C 2D 33、在C语言中,数字029就是一个(D )。
(2分)A.八进制数B.十进制数C.十六进制数D.非法数//0开头表示8进制,但8进制没有字符9的。
0x开头表示十六进制。
4、以下名字,不能作为C语言标识符的就是:C (2分)A.ThisIsQingdaoUniversityB.$$C.monkey~1D._//c语言也就是要瞧编译器的,在vs2012中默认的编译器以美元符号开头的标识符就是可以的。
5、if(a=5) 就是允许的。
T (1分)T F//if判断为真。
6、增1减1运算符的前缀运算与后缀运算的表达式值就是相同的。
(1分)T F//表达式值不一样,执行过后变量值一样。
7、C语言程序就是从源文件的第一条语句开始执行的。
F (1分)T F//从main开始。
8、break语句只能用于循环语句中。
F (5分)T F//switch语句也可用。
9、表达式1。
T (5分)T F//真为1,假为0, 无论(3<x) 就是真就是假都小于5、10、结构化程序设计规定的基本控制结构包括顺序、选择、循环。
T (1分)T F11、当a=1,b=3,c=5,d=4,x=0 时,执行完下面一段程序后x的值就是(B ) (1分)A.7B. 2C. 3D. 612、在C语言中,要求运算数必须就是整型的运算符就是( A)。
(4分)A.%B./C.<D.!13、使用“scanf("X=%f,y=%f",&x,&y)”,要使X,y均为1、25,正确的输入就是( C ) (4分)A.1、25,1、25B.1、25 1、25C.X=1、25,y=1、25D.X=1、25 y=1、25//格式一致14、如果函数定义出现在函数调用之前,可以不必加函数原型声明。
PTA程序设计答案

PTA所有答案工业gc1601学习小组一、判断题二、选择题三、函数题4-3 求m到n之和 (10分)答案:int sum(int m, int n){int s=0,i;for(i=m;i<=n;i++)s+=i;return s;}4-34 简单输出整数 (10分)答案:void PrintN ( int N ){int i;for(i=1;i<=N;i++)printf("%d\n",i); }4-36 简单求和 (10分)答案:int Sum ( int List[], int N ){ int i,s=0;for(i=0;i<N;i++)s+=List[i];return s;}4-40 简单阶乘计算 (10分)答案:int Factorial( const int N ){ int i, s=1;if( N < 0 )return 0;else if( N == 0)return 1;else {for(i=1; i<=N; i++)s*=i;return s;}}4-43 找两个数中最大者 (10分)答案:int max( int a, int b ){ int max;if(a >= b)max = a;elsemax = b;return max;}4-44 数字金字塔 (15分)答案:void pyramid(int n){int i, j, space;for(i=1; i <= n; i++){space = n - i;for(j=0; j < space; j++)printf(" ");for(j=0; j < i; j++)printf("%-2d", i);printf("\n");}}4-45 判断奇偶性 (10分)答案:int even( int n ){if( n%2==0 )return 1;elsereturn 0;}4-46 使用函数求奇数和 (15分)答案:int even( int n ){if( n%2==0 )return 1;elsereturn 0;}int OddSum( int List[], int N ){int i;int oddsum = 0;for(i=0; i<N; i++)if(even(List[i])==0)oddsum += List[i];return oddsum;}4-47 使用函数计算两点间的距离 (10分)答案:double dist(double x1, double y1, double x2, double y2){ double d;d = sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2));return d;}4-48 使用函数求素数和 (20分)答案:int prime( int p ){int i,j,count =0;for(j=2;j<p;j++)if(p%j==0)4-20 使用函数输出水仙花数 (20分)答案:int narcissistic(int number){int i, j, digit, power, powerSum, integer, count, flag; count = 0;integer = number;while (integer > 0){integer = integer / 10;count++;}4-21 使用函数求余弦函数的近似值 (15分)答案:double funcos( double e, double x ) { double sum=0,d=100;int i=0,j;double cj;int count=0;while(d>e){count++;if(count%2!=0) {cj=1;for(j=1; j<=i; j++)cj=cj*j;d=pow(x,i)/cj;4-49 分类统计字符个数 (15分)答案:void StringCount( char s[] ){int i;int n1 = 0, n2 = 0, n3 = 0, n4 = 0;for (i = 0; s[i] != '\0'; i++){if ((s[i] >= 'a'&&s[i] <= 'z') || (s[i] >= 'A'&&s[i] <= 'Z')) n1++;else if (s[i] == ' ' ||s[i] == '\n')n2++;else if (s[i] >= '0'&&s[i] <= '9')n3++;else n4++;}printf("letter = %d, blank = %d, digit = %d, other = %d",n1,n2,n3,n4);}4-7 使用函数求特殊a串数列和 (20分)答案:int fn( int a, int n ){int x,p=0,i;for(i=0; i<n; i++){x= a * pow(10,i);p = p + x;}return p;}int SumA( int a, int n ){int k;int sum=0;for(k=0; k<n+1; k++)sum = sum + fn( a , k );return sum;}4-22 使用函数输出指定范围内的完数 (20分)。
PTA题目集4~6总结

PTA题⽬集4~6总结前⾔:题⽬集四:此次题⽬集四共有三题,题量较少但是题⽬难度及复杂度较⼤。
第⼀题为⽔⽂数据校验及处理,本题主要考察正则表达式的使⽤及接⼝的使⽤,对正则表达式及接⼝使⽤要求较⾼,题⽬较复杂;第⼆题为⽇期问题⾯向对象聚合⼀,本题主要考察对类的封装,题⽬对get和set的运⽤较多,对this及super关键字的使⽤有⼀定的要求,题⽬总体较复杂;第三题为图形继承,本题主要考察java中的继承的使⽤,对⽅法的重写也有所考察,难度与复杂度相对⼀般。
题⽬集五:此次题⽬集共有五题,题量较多但是难度不⼀。
第⼀题为找出最长单词,本题主要考察字符串的字符长度⽐较,同时还需要运⽤split将单词分隔开,题⽬较简单;第⼆题为合并两个有序数组为新的有序数组,本题主要考察数组的运⽤及数据的排序,题⽬较简单;第三题为对整形数据排序,本题主要考察插⼊排序、选择排序和冒泡排序的算法,题⽬较简单;第四题为统计java程序中关键词的出现次数,本题主要考察正则表达式的使⽤及接⼝的使⽤,对正则表达式及接⼝使⽤要求较⾼,题⽬较复杂;第五题为⽇期问题⾯向对象聚合⼆,和上次题⽬集的第⼆题考察内容⼤致⼀直,不过对⽇期类的设计与联系有了⼀定程度的改变,有了上次作业的经验,此次作业相对较简单。
题⽬集六:此次题⽬集共有六题,题量较多但是难度较⼩。
第⼀题为正则表达式训练-QQ号校验,本题主要考察正则表达式的使⽤,题⽬相对较简单;第⼆题为字符串训练-字符排序,本题主要考察字符串与字符数组的转化,题⽬相对较简单;第三题为正则表达式训练-验证码校验,本题主要考察正则表达式的使⽤,题⽬相对较简单;第四题为正则表达式训练-学号校验,本题同样考察正则表达式,复杂程度较前两题有所提⾼,题⽬难度偏低;第五题为图形继承与多态,本体主要考察java中的继承与多态,还包括ArrayList的常⽤⽅法及和数组的关系的使⽤,难度和复杂度较⼤;第六题为实现图形接⼝及多态性,主要需要实现类的封装性、继承性和多态性,综合性较强,但复杂度⼀般。
PTA程序设计答案

double m=1;
if(n==0)
return m;
else{
for(i=1; i<=n; i++)
m = m*i;
return m;
}
}
double factsum( int n ){
int j;
double sum=0;
if(n>0)
for(j=1; j<=n; j++)
sum += fact(j);
else{
t=n;
dectobin(n=n/2);
for(i=n-m-1; i>=0; i--)
a[i+m]=a[i];
for(i=0; i<m; i++)
a[i]=s[i];
}
return 0;
}
4-54 删除字符 (20分)
答案:
void delchar( char *str, char c ){
int i=0, j=0;
for (;str[i]!='\0';i++)
space = n - i;
for(j=0; j < space; j++)
printf(" ");
for(j=0; j < i; j++)
printf("%-2d", i);
printf("\n");
}
}
4-45 判断奇偶性 (10分)
答案:
int even( int n ){
if( n%2==0 )
if(count%2!=0) {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以下选项中不正确的整型常量是(D). (2分)
A.12L
B.-10
C.012
D.2,900
//u是unsigned的意思,代表无符号整型带L的是长整型字面值常量,不带的是整型字面值常量。
2.若B)。
(2分)
A 2.5
B 2.0
C 2
D 3
3.在C语言中,数字029是一个(D )。
(2分)
A.八进制数
B.十进制数
C.十六进制数
D.非法数
//0开头表示8进制,但8进制没有字符9的。
0x开头表示十六进制。
4.以下名字,不能作为C语言标识符的是:C (2分)
A.ThisIsQingdaoUniversity
B.$$
C.monkey~1
D._
//c语言也是要看编译器的,在vs2012中默认的编译器以美元符号开头的标识符是可以的。
5.if(a=5) 是允许的。
T (1分)
T F
//if判断为真。
6.增1减1运算符的前缀运算和后缀运算的表达式值是相同的。
(1分)
T F
//表达式值不一样,执行过后变量值一样。
7.C语言程序是从源文件的第一条语句开始执行的。
F (1分)
T F
//从main开始。
8.break语句只能用于循环语句中。
F (5分)
T F
//switch语句也可用。
9.1。
T (5分)
T F
//真为1,假为0,无论 (3<x) 是真是假都小于 5.
10.结构化程序设计规定的基本控制结构包括顺序、选择、循环。
T (1分)
T F
11.当a=1,b=3,c=5,d=4,x=0 时,执行完下面一段程序后x的值是(B)(1分)
A.7
B. 2
C. 3
D. 6
12.在C语言中,要求运算数必须是整型的运算符是(A)。
(4分)
A.%
B./
C.<
D.!
13.使用“scanf("X=%f,y=%f",&x,&y)”,要使 X,y均为1.25,正确的输入是( C ) (4分)
A. 1.25,1.25
B. 1.25 1.25
C.X=1.25,y=1.25
D.X=1.25 y=1.25
//格式一致
14.如果函数定义出现在函数调用之前,可以不必加函数原型声明。
T (1分)
T F
//1,要么是先使用,就不需要再定义函数了
例如:
void p()
{
//
}
void main()
{
p();
}
....
2,先定义再使用,这时候,必须先要定义函数,不然编译器不识别此函数的
void p();
void mian()
{
p();
}
void p()
{
//
}
//
15.有说明语句__。
(2分)
A.
B.
C.
D.
16.对于定义0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:C (2分)
A.12 ,13
B. 3 ,11
C. 3 ,9
D. 3 ,4
//\n\0在字符串中占一个字符 \000后面八进制数表示ascii的符
号。
17.有两个字符数组a,b,则以下正确的输入语句是(B) (1分)
A.
B.
C.
D.
//不要地址符。
18.静态变量的作用域是整个文件。
F (2分)
T F
//
对于C语言,静态变量也分全局静态变量和局部静态变量,对于全局静态变量,它的作用域是整个文本。
但是如果是局部静态变量则它的作用域仅仅是定义它的区域。
19.根据声明C)。
(2分)
A.a[9]
B.p[5]
C.a++
D.*p++
//D a是常量不能自增
20.__。
(2分)
A.
B.
C.
D.
//scanf("%d",p->age);这个是错误的,因为scanf输入时,要将值放到地址里,所以要加上&,&表示取址。
scanf("%s",pup[0].name);这一项是正确的,因为name本身就是字符数组,所以它的数组名就是字符串的首地址,所以符合要求;
scanf("%d",&pup[0].age); c)scanf("%d",&(p->sex));这两项也是正确的,解释和第一项一样。
21.在基类型相同的两个指针变量之间,不能进行的运算是(D)。
(2分)
A.<
B.=
C.+
D.–
//指针存的是内存的地址值, 假如两个指针, 一个指向0x80008000, 一个指向0x80008020;
A: 可以判断这两个指针哪个指向后面, 哪个指向前面.
B: 判断两个指针是否指向同一块内存地址
C: 指向相加, 那么大个数代表什么? 可能都越界了内存区域.
D: 相减得到两个指针的差值. 即他们之间相差多少.
22.以下哪个定义中的 C (2分)
A.
B.
C.
D.
//*p[10]是指针数组,其每个元素是指针。
23.直接访问就是直接利用变量的地址直接进行访问。
T (2分)
T F
//1.直接访问
按照C的方式,如果定义一个变量,系统会给这个变量分配一块内存,变量有两个属性,变量值和变量地址。
变量地址指示了该变量在内存中的存储位置,变量值是这块内存中的内容。
要访问这块内存空间上的内容,可以直接使用变量名。
2.间接访问
间接访问的含义是先从其它内存空间获得要访问的内存地址,根据得到的地址访问目的地址。
我来打个比方吧:
a. 直接访问某个地址,就相当于你知道某个物品放在某个抽屉里,然后你去那个抽屉,然后访问你的物品。
b. 间接访问就是,你知道某个抽屉放着一个纸条,纸条写着:某某物品存放于某某另外一个抽屉。
这样的话
a里面的抽屉,就是变量,
b里面存放纸条的抽屉,就是指针,指针的值,就是那个纸条,纸条指向另外一个抽屉(变量),另外一个抽屉存放的东西,就是一个变量的值。
24.函数的实参可以是常量,变量或表达式。
T (1分)
T F
25.在C 语言中,常量和变量都有数据类型。
T (1分)
T F
//常量:数值、字符、字符串。
则下面描述中正确的是(C)。
(2分)
A. 10 次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
//赋值表达式的返回值为赋值符号右边的值。
m=0返回给while的是0,即假。