PTA考前练习错题集

PTA考前练习错题集

1.对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。

2.结构体成员的类型必须是基本数据类型。

3.设变量定义为 int a[2]={1,3}, p=&a[0]+1;,则p的值是( )。
3
4.在一个被调用函数中,关于 return 语句使用的描述,错误的是(D )。

被调用函数中可以不用 return 语句
被调用函数中可以使用多个 return 语句
被调用函数中,如果有返回值,就一定要有 return 语句
被调用函数中,一个 return 语句可以返回多个值给调用函数
5.若定义pf为指向float类型变量f的指针,下列语句中__是正确的。 B

float f, *pf = f;
float f, *pf = &f;
float *pf = &f, f;
float f, *pf =0.0;
6.将两个字符串连接起来组成一个字符串时,选用函数(C )。

strlen( )
strcpy( )
strcat( )
strcmp( )
7.有如下定义:

struct Student{
    char name[10];
    int age;
    char gender;
}std[3], *p=std;

则以下各输入语句中错误的是: D

scanf("%d",&(*p).age);
scanf("%c",&std[0].gender);
scanf("%c",&(p->gender));
scanf("%s",&std.name);

6-1 在数组中查找指定元素 (20分)
本题要求实现一个在数组中查找指定元素的简单函数。

函数接口定义:
int search( int list[], int n, int x );
其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。

裁判测试程序样例:

#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );

int main()
{
    int i, index, n, x;
    int a[MAXN];

    scanf("%d", &n);
    for( i = 0; i < n; i++ )
        scanf("%d", &a[i]);
    scanf("%d", &x);
    index = search( a, n, x );
    if( index != -1 )
        printf("index = %d\n", index);
    else
        printf("Not found\n");

    return 0;
}

/* 你的代码将被嵌在这里 */
输入样例1:
5
1 2 2 5 4
2
输出样例1:
index = 1
输入样例2:
5
1 2 2 5 4
0
输出样例2:
Not found

int search(int list[], int n, int x)
{
	int i;
	
 
	
	for (i = 0; i < n; i++)
	{
 
		if (list[i] == x)
		{
			return i ;
			break;
		}
	}
	return -1;
 }

我的答案

int search(int list[], int n, int x)
{
	int i;
	for (i = 0; i < n; i++)
	{
 
		if (list[i] == x)
		{
			return i ;
			break;
		}
	}
	return -1;
}

7-2 求分数序列前N项和 (15分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:
20
输出样例:
32.66
我的答案

 #include<stdio.h>
 
int main()
{
	double a=1.0,b=2.0;
	double t;
	int n;
	double sum=0;
	scanf("%d",&n);
	int i; 
	for( i=0;i<n;i++)
	{
		sum+=b*1.0/a;
		t=b;
		b=a+b;
		a=t;
	} 
	printf("%.2f\n",sum);
	return 0;
}

最开始在pta上这样写的,后来复习发现在Dev过不了

for(int i=0;i<n;i++)

编译错误
在这里插入图片描述
后来有大佬知道这个问题 @Young_2717
在这里插入图片描述
感谢大佬,第一次在这里写文章不知道怎样@他


版权声明:本文为weixin_45921856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。