PTA函数答案

合集下载

pta实验——《一般线性表的应用》答案

pta实验——《一般线性表的应用》答案

pta实验——《一般线性表的应用》答案6-1 顺序表的删除操作 (8分)本题要求实现一个函数,要求将顺序表的第i个元素删掉,成功删除返回1,否则返回0;函数接口定义:int ListDelete(SqList &L,int i);其中SqList结构定义如下:typedef struct{ElemType *elem;int length;}SqList;裁判测试程序样例:#include#include#define MAXSIZE 5typedef int ElemType;typedef struct{ElemType *elem;int length;}SqList;void InitList(SqList &L);/*细节在此不表*/int ListDelete(SqList &L,int i);int main(){SqList L;InitList(L);int i;scanf("%d",&i);int result=ListDelete(L,i);if(result==0){printf("Delete Error.The value of i is illegal!");}else if(result==1){printf("Delete Success.The elements of the SequenceList L are:");for(int j=0;j<l.length;j++){< bdsfid="95" p=""></l.length;j++){<>printf(" %d",L.elem[j]);}}return0;}/* 请在这里填写答案 */输入格式:输入数据有1行,首先给出以-1结束的顺序表元素值(不超过100个,-1不属于顺序表元素),然后是删除位置。

C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业 1①.本题要求编写程序,输出一个短句“Welcome to You!”#include<stdio.h>int main(){printf("Welcome to You!\n");return 0;}②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include<stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr-32)/9;printf("fahr = 100,celsius = %d\n",celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值。

题目保证输入与输出均在整型范围内。

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio.h>int main(){int a,b,c,d,Sum;double Average;scanf("%d %d %d %d",&a,&b,&c,&d);Sum = a + b + c + d;Average = (a + b + c + d)/4.0;printf("Sum = %d,Average = %.1f\n",Sum,Average);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。

c语言基础题库及详解答案pta

c语言基础题库及详解答案pta

c语言基础题库及详解答案pta C语言基础题库及详解答案PTA1. 以下哪个是C语言的关键字?A. intB. floatC. doubleD. real答案:A2. 在C语言中,一个整型变量可以存储的最大值是多少?A. 32767B. 65535C. 2147483647D. 以上都不是答案:C3. 以下哪个是正确的C语言变量声明?A. int a, b, c;B. int a = 10, b = 20, c;C. int a = 10, b, c = 20;D. 所有选项都是正确的答案:A4. C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. +D. -答案:A5. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. 所有选项都是逻辑运算符答案:D6. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. square()C. root()D. pow()答案:A7. 以下哪个是C语言中的控制流语句?A. ifB. forC. whileD. 所有选项都是控制流语句答案:D8. 在C语言中,哪个关键字用于定义函数?A. functionB. defineC. defD. None of the above答案:D9. C语言中,数组的索引从哪个数字开始?A. 0B. 1C. -1D. 随机数答案:A10. 以下哪个是C语言中字符串的常用库?A. stdio.hB. string.hC. math.hD. None of the above答案:B11. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. toupper()D. tolower()答案:A12. C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A13. 在C语言中,哪个函数用于打印输出?A. printf()B. scanf()C. getchar()D. getc()答案:A14. 以下哪个是C语言中的位运算符?A. &B. |C. ^D. 所有选项都是位运算符答案:D15. 在C语言中,哪个关键字用于创建指针?A. pointerB. ptrC. *D. None of the above答案:C16. C语言中,哪个函数用于计算两个数的和?A. add()B. sum()C. +D. None of the above答案:C17. 以下哪个是C语言中的预处理指令?A. #includeB. #defineC. #ifD. 所有选项都是预处理指令答案:D18. 在C语言中,哪个关键字用于定义枚举类型?A. enumB. typeC. enumtypeD. None of the above答案:A19. C语言中,哪个函数用于计算两个数的最大值?A. max()B. min()C. greater()D. None of the above答案:A20. 以下哪个是C语言中的条件运算符?A. ? :B. &&C. ||D. !答案:A。

C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业1①.本题要求编写程序,输出一个短句“Welcome to You!”#include<stdio.h>int main(){printf("Welcome to You!\n");return 0;}②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include<stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr-32)/9;printf("fahr = 100,celsius = %d\n",celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值。

题目保证输入与输出均在整型范围内。

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio.h>int main(){int a,b,c,d,Sum;double Average;scanf("%d %d %d %d",&a,&b,&c,&d);Sum = a + b + c + d;Average = (a + b + c + d)/4.0;printf("Sum = %d,Average = %.1f\n",Sum,Average);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

在4行中按照格式“A 运算符B = 结果”顺序输出和、差、积、商。

pta使用函数求圆台体积 -回复

pta使用函数求圆台体积 -回复

pta使用函数求圆台体积-回复如何使用函数来计算圆台的体积圆台是由一个底面为圆形的平面和一个垂直于底面的侧面构成的。

计算圆台的体积是一个常见的几何问题,可以通过应用数学的函数来解决。

在本文中,我将一步一步地解释如何使用函数来计算圆台的体积。

首先,让我们定义一些关键术语,以便更好地理解问题。

假设圆台的高度为h,底面半径为r1,顶面半径为r2。

第一步是定义函数。

在这个问题中,我们需要定义一个函数来计算圆台的体积。

我们可以把这个函数命名为“calculate_volume”,它将带有三个参数:高度h,底面半径r1和顶面半径r2。

函数的定义如下:def calculate_volume(h, r1, r2):volume = (1 / 3) * 3.14 * h * (r12 + r22 + r1 * r2)return volume在这个函数中,我们使用了数学公式来计算圆台的体积。

公式是1/3乘以π(pi)乘以高度h乘以底面半径r1平方加上顶面半径r2平方再加上底面半径r1乘以顶面半径r2的乘积。

定义好函数之后,我们可以调用它来计算圆台的体积。

例如,如果我们想要计算高度为10,底面半径为5,顶面半径为3的圆台的体积,我们可以这样调用函数:volume = calculate_volume(10, 5, 3)这将返回计算出的圆台体积,并将其赋值给变量volume。

本文的主题是如何使用函数来计算圆台的体积。

我们在前面的几步中已经完成了这个目标,定义了一个名为“calculate_volume”的函数,并通过调用这个函数来计算圆台的体积。

接下来,让我们看一些使用函数来计算圆台体积的具体例子。

假设我们有以下几个圆台的参数:圆台1:高度为12,底面半径为6,顶面半径为4圆台2:高度为8,底面半径为3,顶面半径为2圆台3:高度为15,底面半径为7,顶面半径为5我们可以使用函数来计算这些圆台的体积,如下所示:volume1 = calculate_volume(12, 6, 4)volume2 = calculate_volume(8, 3, 2)volume3 = calculate_volume(15, 7, 5)这样,我们可以得到圆台1的体积是261.3333,圆台2的体积是28.0,圆台3的体积是383.3333。

C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业1①.本题要求编写程序,输出一个短句“Welcome to You!”#include<stdio.h>int main(){printf("Welcome to You!\n");return 0;}②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include<stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr-32)/9;printf("fahr = 100,celsius = %d\n",celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值。

题目保证输入与输出均在整型范围内。

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio.h>int main(){int a,b,c,d,Sum;double Average;scanf("%d %d %d %d",&a,&b,&c,&d);Sum = a + b + c + d;Average = (a + b + c + d)/4.0;printf("Sum = %d,Average = %.1f\n",Sum,Average);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

在4行中按照格式“A 运算符B = 结果”顺序输出和、差、积、商。

PTA——6-1单链表逆转(20分)

PTA——6-1单链表逆转(20分)

PTA——6-1单链表逆转(20分)本题要求实现⼀个函数,将给定的单链表逆转。

函数接⼝定义:List Reverse( List L );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node {ElementType Data; /* 存储结点数据 */PtrToNode Next; /* 指向下⼀个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */L是给定单链表,函数Reverse要返回被逆转后的链表。

裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node {ElementType Data;PtrToNode Next;};typedef PtrToNode List;List Read(); /* 细节在此不表 */void Print( List L ); /* 细节在此不表 */题⽬由两种思路,⼀是从前往后遍历,同时采⽤头插⼊法创建⼀个新的链表;⽅法⼆,从前往后遍历,同时修改 List->Next 的指向第⼀种后续补充【第⼆种思路】List Reverse(List L){List p1 = NULL,p2 = NULL;while(L){p2 = L->Next;L->Next = p1;p1 = L;L = p2;}return p1;}第⼀次就是将 p1 【 NULL】赋值给原链表的头结点的Next,然后让 p1 指向当前 L 结点。

下⼀次就是令当前结点 L' 的 Next 指向上⼀个结点 L,从⽽修改原链表 List->Next 的指向。

PTA程序设计答案

PTA程序设计答案
int i;
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) {

pta实验——《一般线性表的应用》答案

pta实验——《一般线性表的应用》答案

6-1 顺序表的删除操作 (8分)本题要求实现一个函数,要求将顺序表的第i个元素删掉,成功删除返回1,否则返回0;函数接口定义:int ListDelete(SqList &L,int i);其中SqList结构定义如下:typedef struct{ElemType *elem;int length;}SqList;裁判测试程序样例:#include <stdio.h>#include <stdlib.h>#define MAXSIZE 5typedef int ElemType;typedef struct{ElemType *elem;int length;}SqList;void InitList(SqList &L);/*细节在此不表*/int ListDelete(SqList &L,int i);int main(){SqList L;InitList(L);int i;scanf("%d",&i);int result=ListDelete(L,i);if(result==0){printf("Delete Error.The value of i is illegal!");}else if(result==1){printf("Delete Success.The elements of the SequenceList L are:");for(int j=0;j<L.length;j++){printf(" %d",L.elem[j]);}}return0;}/* 请在这里填写答案 */输入格式:输入数据有1行,首先给出以-1结束的顺序表元素值(不超过100个,-1不属于顺序表元素),然后是删除位置。

所有数据之间用空格分隔。

输入样例:2 6 4 -1 1输出样例:Delete Success.The elements of the SequenceList L are: 6 4作者DS课程组单位临沂大学代码长度限制16 KB时间限制400 ms内存限制64 MB答案:int ListDelete(SqList &L,int i){if(i<1||i>L.length) return0;for(int j=i-1;j<L.length;j++) L.elem[j]=L.elem[j+1];L.length--;return1;}6-2 顺序表的查找操作 (7分)本题要求实现一个函数,要求从顺序表中查找指定元素,并返回第一个查找成功的元素在表中的位置序号,若查找失败,则返回0;函数接口定义:int LocateElem(SqList L,ElemType e);其中SqList结构定义如下:typedef struct{ElemType *elem;int length;}SqList;裁判测试程序样例:#include <stdio.h>#include <stdlib.h>#define MAXSIZE 5typedef int ElemType;typedef struct{ElemType *elem;int length;}SqList;void InitList(SqList &L);/*细节在此不表*/int LocateElem(SqList L,ElemType e);int main(){SqList L;InitList(L);ElemType e;int p;scanf("%d",&e);p=LocateElem(L,e);printf("The position of %d in SequenceList L is %d.",e,p);return0;}/* 请在这里填写答案 */输入格式:输入数据有1行,首先给出以-1结束的顺序表元素值(不超过100个,-1不属于顺序表元素),然后是待查找的元素值。

PTA程序设计答案

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分)。

C语言程序设计(PTA习题5-5使用函数统计指定数字的个数)

C语言程序设计(PTA习题5-5使用函数统计指定数字的个数)

C语⾔程序设计(PTA习题5-5使⽤函数统计指定数字的个数)/*本题要求实现⼀个统计整数中指定数字的个数的简单函数*/#include <stdio.h>int CountDigit( int number, int digit ); //函数声明int main(){int number, digit;scanf("%d %d", &number, &digit);printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));return 0;}/* 你的代码将被嵌在这⾥ */int CountDigit( int number, int digit )//定义CountDigit这个计算数字个数的的函数{int i, number1;int n, count = 0;if(number!=0){if(number<0){number = -number; //将负数转为整数}else{while(number%10!=0){ //当number为个位数时退出循环i = number%10; //取出整数的个位数if(i==digit){ //判断是否为想要寻找的数字count++; //是的话count+1}number = number/10; //去掉最后⼀个数字}return count;}}else{ //如果这个整数为0,则0的个数为1count++; //count⾃增1return count;}}。

PTA浙大版《C语言程序设计》编程题,练习2-1到习题2-6答案

PTA浙大版《C语言程序设计》编程题,练习2-1到习题2-6答案

PTA浙⼤版《C语⾔程序设计》编程题,练习2-1到习题2-6答案个⼈建议初学者还是把格式规范起来,⾃⼰读起来既⽅便⼜美观PTA对结果的格式要求很严格,答题的时候注意题⽬要求练习2-1 Programming in C is fun! (5 分)本题要求编写程序,输出⼀个短句“Programming in C is fun!”。

输⼊格式:本题⽬没有输⼊。

输出格式:在⼀⾏中输出短句“Programming in C is fun!”。

#include<stdio.h>//调⽤库int main(void){printf("Programming in C is fun!");//stdio.h库中的输出函数return0;//程序结束}练习2-3 输出倒三⾓图案 (5 分)本题要求编写程序,输出指定的由“*”组成的倒三⾓图案。

输⼊格式:本题⽬没有输⼊。

输出格式:按照下列格式输出由“*”组成的倒三⾓图案。

#include<stdio.h>int main(void){printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *");return0;}练习2-4 温度转换 (5 分)本题要求编写程序,计算华⽒温度150°F对应的摄⽒温度。

计算公式:C=5×(F−32)/9,式中:C表⽰摄⽒温度,F表⽰华⽒温度,输出数据要求为整型。

输⼊格式:本题⽬没有输⼊。

输出格式:按照下列格式输出fahr = 150, celsius = 计算所得摄⽒温度的整数值#include<stdio.h>int main(){int fahr=150,celsius;//定义变量celsius=5*(fahr-32)/9;//赋值运算//这⾥要注意空格,少⼀个空格提交答案都会出错printf("fahr = 150, celsius = %d",celsius);//按题⽬要求输出return0;}练习2-6 计算物体⾃由下落的距离 (5 分)⼀个物体从100⽶的⾼空⾃由落下。

PTA-C语言理论课5-函数

PTA-C语言理论课5-函数

6-1 找两个数中最大者 (10分)本题要求对两个整数a和b,输出其中较大的数。

函数接口定义:裁判测试程序样例:输入样例:输出样例:6-2 简单实现x的n次方 (10分) 本题要求实现一个计算xn(n≥0)的函数。

函数接口定义:裁判测试程序样例:输入样例:输出样例:6-3 弹球距离 (10分)设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。

请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。

函数接口定义:在内。

裁判测试程序样例:输入样例:输出样例:6-4 使用函数求最大公约数 (10分) 本题要求实现一个计算两个数的最大公约数的简单函数。

函数接口定义:裁判测试程序样例:输入样例:输出样例:6-5 使用函数输出一个整数的逆序数 (10分) 本题要求实现一个求整数的逆序数的简单函数。

函数接口定义:裁判测试程序样例:输入样例:输出样例:n /= 10;}sum *= flag;return sum;}6-6 使用函数求奇数和 (10分)本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数。

函数接口定义:裁判测试程序样例:输入样例:输出样例:6-7 使用函数求特殊a串数列和 (10分)给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。

函数接口定义:裁判测试程序样例:输入样例:输出样例:fn(2, 3) = 222s = 246int fn(int a, int n){int i, j;int ret = a; // 初始化正整数for (i = 1; i < n; i++){int tmp = 1; // tmp出循环自动销毁// 10^ifor (j = 1; j <= i; j++){tmp *= 10; // 初始化10^1}// retret += a * tmp;}return ret;}int SumA(int a, int n){int i;int sum = 0;for (i = 1; i <= n; i++){sum += fn(a, i);}return sum;}6-8 使用函数求素数和 (10分)本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

c语言pta习题与答案

c语言pta习题与答案

c语言pta习题与答案C语言是一门广泛应用于计算机科学领域的编程语言,它具有简洁、高效的特点,因此在程序设计教育中被广泛采用。

PTA(Programming Technology Association)是一个在线的编程练习平台,提供了大量的C语言习题和答案,帮助学习者巩固和提升编程能力。

本文将探讨一些常见的C语言PTA习题及其答案,希望对初学者有所帮助。

1. 习题一:计算两个数的和这是一个简单的习题,要求用户输入两个整数,然后计算它们的和并输出。

解决这个问题的C语言代码如下:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d\n", sum);return 0;}```2. 习题二:判断一个数是否为素数素数指的是只能被1和自身整除的数,例如2、3、5、7等。

这个习题要求用户输入一个正整数,然后判断它是否为素数。

解决这个问题的C语言代码如下:```c#include <stdio.h>int main() {int num, i, flag = 1;printf("请输入一个正整数:");scanf("%d", &num);for(i = 2; i <= num / 2; i++) {if(num % i == 0) {flag = 0;break;}}if(flag == 1)printf("%d是素数\n", num);elseprintf("%d不是素数\n", num);return 0;}```3. 习题三:统计字符串中的单词个数这个习题要求用户输入一段字符串,然后统计其中的单词个数。

python题目集pta编程题及答案

python题目集pta编程题及答案

7-1 从键盘输入两个数,求它们的和并输出 (30分)本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:在一行中给出一个被加数在另一行中给出一个加数输出格式:在一行中输出和值。

答案:a=int(input())b=int(input())print(a+b)7-2 从键盘输入三个数到a,b,c中,按公式值输出(30分)在同一行依次输入三个值a,b,c,用空格分开,输出b*b-4*a*c的值输入格式:在一行中输入三个数。

输出格式:在一行中输出公式值。

答案:a,b,c=input().split()a,b,c=eval(a),eval(b),eval(c)print(b*b-4*a*c)7-3 输出“Python语言简单易学”(10分)输入格式:无输出格式:输出一句短语,Python语言简单易学。

如果包含汉字,用"print(s.encode("utf-8"))"输出.答案s="Python语言简单易学"print(s.encode("utf-8"))7-39 计算11+12+13+...+m (30分)输入一个正整数m(20<=m<=100),计算11+12+13+...+m 的值。

输入格式:在一行输入一个正整数m。

输出格式:在一行中按照格式“sum = S”输出对应的和S.答案:n=int(input())sum=0for i in range(11,n+1):sum=sum+ii=i+1print("sum = {}".format(sum))7-40 计算分段函数[1] (10分)本题目要求计算下列分段函数f(x)的值:输入格式:输入在一行中给出实数x。

输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

答案:x=float(input())if (x==0):print("f(0.0) = 0.0")else:print("f({:.1f}) = {:.1f}".format(x,1/x))7-41 阶梯电价为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。

PTA题目集python填空答案

PTA题目集python填空答案

4-1 10(1 分)4-22-2.Python 表达式 3**2**3 的值为(1分)4-2 6561(1 分)4-32-3.Python 表达式 round(17.0/3**2,2) 的值为(1分)。

4-3 1.894-42-4.Python 表达式 0 and 1 or not 2<True 的值为(1分)。

4-4 True(1 分)4-52-5.Python 语句 print(pow(-3, 2), round(18.67, 1), round(18.67, -1))的输出结果是(2分)。

4-5 9 18.7 20.0(2 分)4-72-7.Python 语句 print(int("20", 16), int("101",2))的输出结果是(2分)。

4-7 32 5(2 分)4-92-13. 已知 a=3; b=5; c=6; d=True, 则表达式 not d or a>=0 and a+c>b+3的值是(1分)。

4-9 True(1 分)4-102-9.Python 语句 print(abs(-10.2), round(abs(8-2j),3)) 的输出结果是(2分)。

4-10 10.2 8.246(2 分)4-122-11. Python 语句 x=True; y=False; z=False; print(x or y and z)的程序运行结果是(1分)。

4-12 True(1 分)4-132-12.Python 语句 x=0; y= True; print(x>=y and‘A'<'B') 的程序运行结果是(1分)。

4-13 False(1 分)4-142-14. Python 表达式 16-25>78/2 or "XYZ"!="xyz"and not (10-6>18/2)的值是(1分)。

pta课后习题答案

pta课后习题答案

pta课后习题答案
PTA课后习题答案
在学习过程中,课后习题是非常重要的一环,它可以帮助我们巩固所学知识,加深对知识点的理解,并检验自己的学习成果。

而PTA课后习题答案则是我们进行自我检查和学习补充的重要工具。

PTA课后习题答案不仅仅是一份简单的答案,它更是我们学习的指南和方向。

通过对PTA课后习题答案的仔细研究和比对,我们可以发现自己在学习过程中的薄弱环节,及时进行补充和加强。

同时,PTA课后习题答案也可以帮助我们更好地理解知识点,发现知识之间的联系和延伸,从而提高学习效率和成绩。

除此之外,PTA课后习题答案还可以帮助我们培养自主学习的能力。

通过自己对答案的分析和总结,我们可以更好地掌握学习方法和技巧,提高自己的学习能力和水平。

这种自主学习的能力对我们未来的学习和工作都是非常重要的,因此PTA课后习题答案的作用也就更加凸显了出来。

总之,PTA课后习题答案是我们学习过程中的得力助手,它可以帮助我们巩固知识,提高学习效率,培养自主学习的能力。

因此,我们应该珍惜PTA课后习题答案,认真对待,从中发现学习的乐趣和意义。

只有这样,我们才能在学习的道路上走得更远,更稳健。

(山东科技大学)PTA数据结构答案与解析-

(山东科技大学)PTA数据结构答案与解析-
1. 2 2. 3 3. 4 4. 5 解析:模拟一遍即可 答案: C
2-6
若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能 得到的出栈序列是? (2分)
1. b c a e f d 2. c b d a e f 3. d c e b f a 4. a f e d c b
B代表分支数,n代表总结点数,将上边式子联立,然后带入题目中数据,可得
答案: D
2-9
若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?(3 分)
1. 这是一棵完全二叉树 2. 所有的奇数都在叶子结点上 3. 这是一棵二叉搜索树 4. 2是5的父结点 解析:根据前序,中序遍历可以建出图来,然后根据图来判断即可
答案: C
2-4
设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。若每个元素出栈后立即进入队列Q, 且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是: (2分)
1. 1 2. 2 3. 3 4. 4
解析: 模拟即可 答案: C
2-5
假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出, 堆栈大小至少为: (2分)
1-3 若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。 (2分) 解析:2一定先与1出栈的 答案: T
2.单选题
2-1 给定一个堆栈的入栈序列为{ 1, 2, ⋯, n },出栈序列为{ p1, p2, ⋯, pn }。如果p2=n,则存在多少种不同的出栈序 列?(2分)

PTA函数答案

PTA函数答案

三、程序填空题3-32程序阅读:4-3 求m到n之和 10分int sumint m; int n{int i;int s=0;fori=m; i<=n; i++s= s + i;return s;}4-34 简单输出整数 10分void PrintN int N{int i;fori=1; i<=N; i++printf"%d\n"; i;}4-36 简单求和 10分int Sum int List; int N {int k;int sum=0;fork=0; k<N; k++sum += Listk;return sum;}4-40 简单阶乘计算 10分int Factorial const int N {int i;int s=1;if N < 0return 0;else if N == 0return 1;elsefori=1; i<=N; i++s*=i;return s;}int Count_Digitconst int N; const int D {int x;int count=0;int temp=0;x=N;ifx<0x=-x;do{temp=x%10;iftemp==Dcount++;x=x/10;}whilex>0;return count;}4-43 找两个数中最大者 10分int max int a; int b{int max;ifa >= bmax = a;elsemax = b;return max;}void pyramidint n{int i; j; space;fori=1; i <= n; i++{space = n - i;forj=0; j < space; j++putchar' ';forj=0; j < i; j++printf"%-2d"; i;putchar'\n';}}4-45 判断奇偶性 10分int even int n{if n<0n = -n;if n%2==0return 1;elsereturn 0;}4-46 使用函数求奇数和 15分int even int n{if n<0n = -n;if n%2==0return 1;elsereturn 0;}int OddSum int List; int N{int k;int oddsum = 0;fork=0; k<N; k++ifevenListk==0oddsum += Listk;return oddsum;}4-47 使用函数计算两点间的距离 10分double dist double x1; double y1; double x2; double y2 {double Dist;Dist = sqrtx1-x2*x1-x2 + y1-y2*y1-y2 ;return Dist;}4-48 使用函数求素数和 20分int prime int p{int i;j;int count =0;forj=2;j<p;j++{ifp%j==0{count++;}}ifcount==0&&p>0&&p=1{return 1;} else{return 0;}}int PrimeSum int m; int n{int i;sum=0;fori=m;i<=n;i++{ifprimei==1{sum=sum+i;}}return sum;}4-19 使用函数统计指定数字的个数 15分int CountDigit int number; int digit{int count;temp;x;x=number;ifx<0x=-x;do{temp=x%10;iftemp==digitcount++;x=x/10;}whilex>0;return count;}4-20 使用函数输出水仙花数 20分int narcissisticint number{int i; j; digit; power; powerSum; integer; count; flag;count = 0;integer = number;while integer > 0{integer = integer / 10;count++;}powerSum = 0;integer = number;for i = 0; i < count; i++{digit = integer % 10;integer = integer / 10;power = 1;for j = 0; j < count; j++power = power*digit;powerSum = powerSum + power;}if powerSum == numberflag = 1;elseflag = 0;return flag;}void PrintNint m; int n{int i;for i = m + 1; i < n; i++{if narcissistici == 1printf"%d\n"; i;}}4-21 使用函数求余弦函数的近似值 15分double funcos double e; double x{double sum=0;d=100;int i=0;j;double cj;int count=0;whiled>e{count++;ifcount%2=0{cj=1;forj=1; j<=i; j++cj=cj*j;d=powx;i/cj;sum=sum+d;i+=2;}else{cj=1;forj=1; j<=i; j++cj=cj*j;d=powx;i/cj;sum=sum-d;i+=2;}}return sum;}4-49 分类统计字符个数 15分void f long int x; char *p{char q;static int i=0;j=0;ifx<0{x=-x;*p='-';p++;}q=x%16;ifq<10q='0'+q;elseq='A'+q-10;x=x/16;j++;i=j;ifx>0fx; p;*p+i-j=q;j--;}4-7 使用函数求特殊a串数列和 20分int fn int a; int n{int x;int p=0;int i;fori=0; i<n; i++{x= a * pow10;i;p = p + x;}return p;}int SumA int a; int n{int k;int sum=0;fork=0; k<n+1; k++sum = sum + fn a ; k ;return sum;}4-22 使用函数输出指定范围内的完数 20分void PrintPN int m; int n{int k;int t;int found = 0;fork=m; k<=n; k++{if factorsum k == k{found = 1;printf"%d = 1";k;fort=1; t<= k/2; t++ift>1 && k%t == 0printf" + %d"; t;printf"\n";}}if found == 0printf"No perfect number";}4-25 使用函数输出一个整数的逆序数 20分int reverse int number{int m=0;ifnumber < 0{number = -number;printf"-";}else ifnumber==0m=0;whilenumber>0{m = m*10 + number%10;number=number/10;}return m;}4-50 移动字母 10分void Shift char s{int i;int n;char a3;n = strlens;fori=0; i<3; i++ai = si;if n>3fori=3; i<n; i++{si-3 = si;}fori=0; i<3; i++sn-3+i=ai;return s;}4-51 在数组中查找指定元素 15分int searchint list; int n; int x{int i; result;for i=0; i<n; i++{if listi == x{result = i;break;}}if i == nresult = -1;return result;}4-52 数组循环右移 20分int ArrayShiftint a; int n; int m{int i=0;int s10;ifm>=nm=m%n;ifm=0{fori=n-m; i<n; i++si-n-m = ai;fori=n-m-1; i>=0; i--ai+m=ai;fori=0; i<m; i++ai=si;}return 0;}注:最后一个样例2分;段错误没通过;暂时还没找到原因4-54 删除字符 20分void delchar char *str; char c{int i; j;for j=i=0;stri='\0';i++if stri=c{strj=stri;j++;}strj='\0';}4-55 分类统计各类字符个数 15分void StringCount char *s{int i;bletter=0;sletter=0;blank=0;digit=0;other=0;fori=0;si='\0';i++{ifsi>='A' && si<='Z'bletter++;else ifsi>='a' && si<='z'sletter++;else ifsi==' 'blank++;else ifsi>='0' && si<='9'digit++;elseother++;}printf"%d %d %d %d %d";bletter;sletter;blank;digit;other;}4-26 使用递归函数计算1到n之和 10分int sum int n{int i;int Sum=0;ifn<=0return 0;elsefori=1; i<=n; i++Sum += i;return Sum;}4-28 递归求阶乘和 15分double fact int n{int i;double m=1;ifn==0return m;elsefori=1; i<=n; i++m = m*i;return m;}double factsum int n{int j;double sum;sum = 0;ifn>0{forj=1; j<=n; j++sum += factj;}return sum;}4-29 递归实现指数函数 15分double calc_pow double x; int n{int i;double m=1;fori=1; i<=n; i++m = m*x;return m;}4-32 递归求Fabonacci数列 10分int f int n{int d;ifn==0d=0;else ifn==1d=1;else d=fn-2+fn-1;return d;}4-33 十进制转换二进制 15分void dectobin int n{int t;ifn==0||n==1printf"%d";n%2;else{t=n;dectobinn=n/2;printf"%d";t%2;}}4-8 递归实现顺序输出整数 15分void printdigits int n{int N=1;int i;int shang;int yushu;int m;m=n;whilem>9{N++;m=m/10;}fori=N-1; i>=0; i--{shang = n * pow10;-i;yushu = n - shang * pow10 ; i;n = yushu;printf"%d\n"; shang;}}4-9 统计各位数字之和是5的数 20分int is int number{int s=0;int yushu = number;whilenumber > 0{yushu = number % 10;s = yushu + s;number = number / 10;}ifs == 5return 1;elsereturn 0;}void count_sum int a; int b{int i;int count=0;int count_Sum=0;fori=a; i<=b; i++if isi{count++;count_Sum = count_Sum + i;}printf"count = %d; sum = %d"; count; count_Sum;}4-10 简单实现x的n次方 10分double mypow double x; int n{int i;double s=1;fori=0; i<n; i++s = s*x;return s;}4-13 使用函数求1到10的阶乘和 10分double fact int n{int k;int s=1;fork=1;k<=n; k++s = s * k;return s;}4-14 使用函数求最大公约数 10分int gcd int x; int y{int i;t;ifx<y{t=y;y=x;x=t;}fori=y;i>=1;i--ifx%i==0 && y%i==0break;return i;}4-15 使用函数的选择法排序 25分void sort int a; int n{int temp;k;min;i;fork=0;k<n-1;k++{min=k;fori=k+1;i<n;i++ifai<aminmin=i;temp=amin;amin=ak;ak=temp;}}4-16 函数实现字符串逆序 15分void fchar *p{char temp;char *end = p +my_strlenp - 1;while end > p{temp = *p;*p = *end;*end = temp;--end;++p;}}int my_strlenchar *p{char *q = p;while*p = '\0'p++;return p-q;}4-17 递归计算P函数 15分double P int n; double x{double z;ifn == 0z = 1;else ifn == 1z=x;else ifn > 1z = 2*n-1*Pn-1;x - n-1*Pn-2;x/n;return z;}4-1 计算存款利息-genlib 10分int mainvoid{int money; year;double interest; rate;scanf"%d"; &money;scanf"%d"; &year;scanf"%lf"; &rate;interest = money * pow1+rate;year - money;printf"interest = %.2f\n"; interest;return 0;}4-2 弹球距离 15分double dist double h; double p {double d=h;whilep=0{h=p*h;ifh<TOLbreak;d=d+2*h;}return d;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int count,temp,x; x=number; i if(temp==digit)
count++; x=x/10; } while(x>0); return count; }
7 / 25
页眉
4-20 使用函数输出水仙花数 (20 分)
int narcissistic(int number) {
int i; for(i=1; i<=N; i++)
printf("%d\n", i); }
4-36 简单求和 (10 分)
int Sum ( int List[], int N ) {
int k; int sum=0; for(k=0; k<N; k++)
sum += List[k]; return sum; }
三、程序填空题
3-32 程序阅读:
6#21#
下列程序将输出
(5 分)。
# include <stdio.h> int s; int f(int m) {
static int k=0; for(; k<=m; k++) s++; return s; } int main(void ) { int s=1; s=f(2)+f(2); printf("%d#%d#", s, f(20)); return 0; }
if( n%2==0 ) return 1;
else return 0;
}
int OddSum( int List[], int N ) {
int k; int oddsum = 0; for(k=0; k<N; k++)
if(even(List[k])==0) oddsum += List[k];
5 / 25
页眉
4-48 使用函数求素数和 (20 分)
int prime( int p ) {
int i,j; int count =0; for(j=2;j<p;j++) {
if(p%j==0) {
count++; } } if(count==0&&p>0&&p!=1) { return 1; } else{ return 0; } }
int i, j, digit, power, powerSum, integer, count, flag;
count = 0; integer = number; while (integer > 0) {
integer = integer / 10; count++; }
powerSum = 0; integer = number; for (i = 0; i < count; i++) {
2 / 25
页眉
4-41 统计个位数字 (15 分)
int Count_Digit(const int N, const int D) {
int x; int count=0; int temp=0; x=N; if(x<0)
x=-x; do {
temp=x%10; if(temp==D)
count++; x=x/10; }
void pyramid(int n) {
int i, j, space; for(i=1; i <= n; i++) {
space = n - i; for(j=0; j < space; j++)
putchar(' '); for(j=0; j < i; j++)
printf("%-2d", i); putchar('\n'); } }
while(x>0);
return count; }
4-43 找两个数中最大者 (10 分)
int max( int a, int b ) {
int max; if(a >= b)
max = a; else
max = b; return max; }
3 / 25
页眉
4-44 数字金字塔 (15 分)
return oddsum; }
4-47 使用函数计算两点间的距离 (10 分)
double dist( double x1, double y1, double x2, double y2 ) {
double Dist; Dist = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ); return Dist; }
int PrimeSum( int m, int n ) {
int i,sum=0; for(i=m;i<=n;i++) {
if(prime(i)==1) {
sum=sum+i; }
} return sum;
}
6 / 25
页眉
4-19 使用函数统计指定数字的个数 (15 分)
int CountDigit( int number, int digit ) {
页眉
四、函数
4-3 求 m 到 n 之和 (10 分)
int sum(int m, int n) {
int i; int s=0; for(i=m; i<=n; i++)
s= s + i; return (s); }
1 / 25
页眉
4-34 简单输出整数 (10 分)
void PrintN ( int N ) {
4-45 判断奇偶性 (10 分)
int even( int n ) {
if( n<0 ) n = -n;
if( n%2==0 ) return 1;
else return 0;
}
4 / 25
页眉
4-46 使用函数求奇数和 (15 分)
int even( int n ) {
if( n<0 ) n = -n;
4-40 简单阶乘计算 (10 分)
int Factorial( const int N ) {
int i; int s=1; if( N < 0 )
return 0; else if( N == 0)
return 1; else
for(i=1; i<=N; i++) s*=i;
return s; }
digit = integer % 10; integer = integer / 10; power = 1; for (j = 0; j < count; j++)
power = power*digit; powerSum = powerSum + power; }
相关文档
最新文档