浙大城市学院20届新生测试6

1-1
C语言函数返回类型的默认定义类型是void。×
答案:默认定义类型是int;

1-2
如果函数定义出现在函数调用之前,可以不必加函数原型声明。

1-3
if(a=5) 是允许的。√
答案:相当于把a赋值为5,但是正常人都不会这样写

1-4
C语言的三种循环不可以互相嵌套。×
答案:当然可以相互嵌套,试一试就知道了.

1-5
两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。√
答案:很纠结对吧,记着就好了……

1-6
函数的实参可以是常量,变量或表达式。

1-7
用typedef可以增加新类型。×
答案:typedef只能给已有的基类型起别名
eg:
typedef double DOUBLE;//注意(define不用分号,使用typedef相当于一个封装语句,需要使用分号)
DOUBLE ch=1.11111;
等价于
double ch=1.11111;

1-8
字符串常量实质上是一个指向该字符串首字符的指针常量。

1.9
数组定义后,数组名的值是一个地址,可以被修改。×

1-10
要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数。

程序填空题比较水,就不贴了
贴一个比较有意思的题目.

PTA: 6-8 剩余不足 (10分)(c语言)
幼儿园给 p 位小朋友发 q 颗糖。结果发现:

若每人发 a 颗,则多 b 颗;

若每人发 c 颗,则差 d 颗。

请问:p、q 各为多少?

函数原型

int Surplus(int *p, int *q, int a, int b, int c, int d);

说明:若问题有解,则将小朋友和糖的数量保存到 p 和 q 所指示的变量中,函数值为1(真);否则不改变 p 和 q 所指示的变量,函数值为0(假)。

裁判程序

#include <stdio.h>

int Surplus(int *p, int *q, int a, int b, int c, int d);

int main()
{
    
    
    int a, b, c, d, p, q;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    if (Surplus(&p, &q, a, b, c, d))
    {
    
    
        printf("%d %d\n", p, q);
    }
    else
    {
    
    
        printf("None\n");
    }
    return 0;
}

/* 你提交的代码将被嵌在这里 */

输入格式

a b c d

输出格式

p q

输入样例1

6 8 8 6

输出样例1

7 50

输入样例2

7 8 10 2

输出样例2

None

code:

int Surplus(int *p, int *q, int a, int b, int c, int d)
{
    
    
	int i=b,j=-d;
	if(j<i)
	while(j<i)
	{
    
    
		{
    
    
			i+=a,j+=c,cnt++;
	 	}
	 if(i==j)
	 	{
    
    
	 		*q=j,*p=(j-b)/a;
	 		return 1;
	  	}
	}
	else if(i>j)
	{
    
    
		while(i>j)
		{
    
    
			i+=a,j+=c;
		}
		if(i==j)
		{
    
    
			*q=j,*p=(j-b)/a;
			return 1;
		}
	}
	return 0;
}

编程题比较简单,就不贴了

猜你喜欢

转载自blog.csdn.net/weixin_49640089/article/details/112761613