ZJNU初级题——水题

博主分享了在准备考试时重新练习ZJNU初级题的心得,涉及多位数处理、求和、序列计算、字符串操作、数组处理等经典问题。文章通过分析错误案例,强调基础和细心的重要性,提醒读者注意特定情况的特判,如0的处理、精度问题和递归计算。同时,博主推荐使用某些函数以简化代码,如strcat和特定的输入输出方法。
ZJNU---ACM

最近准备考试,但是闲来手痒,于是打算把初级题再过一遍,毕竟基础和仔细程度还是有待提高的。

1013

给出一个不多于5位的非负整数,要求
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字,例如原数为321,应输出123

水题,一开始老是错,后来发现有一组样例没过,当为0的时候是1位数。

 

#include<stdio.h>
int main()
{
	int n,i=0,a[6]={0},j=0,k;
	scanf("%d",&n);
	if(n==0) j=1;
	while(n!=0)
	{
		a[i]=n%10;
		j++; i++;
		n=n/10;
	}
	printf("%d\n",j);
	for(k=j-1;k>=0;k--)
	{
		if(k==0) printf("%d",a[k]);
		else printf("%d ",a[k]);
	}
	printf("\n");
	for(k=0;k<=j-1;k++)
	printf("%d",a[k]);
	printf("\n");
}

所以只需对0进行特判就好了。

 

1022

发现打出来还是要经常出错

Sn=2+22+222+2222+22222+22...2222(最后一项n个2)

#include<stdio.h>
int main()
{
	int m,n,t,i;
	scanf("%d",&n);
	m=0; t=2;
	for(i=1;i<=n;i++)
	{
		m=m+t;
		t=t*10+2;
	}
	printf("%d\n",m);
	return 0;
}

注意是t=t*10+2; 

1023

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。

 

#include<stdio.h>
int main()
{
	int n,i,s=1,j,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{	s=1;
		for(j=1;j<=i;j++)
			s=s*j;
		sum+=s;
	}
	printf("%d\n",sum);
}


1024

求以下三数的和,保留2位小数
1~a之和
1~b的平方和
1~c的倒数和

对于这个,我只想说用double 类型时,求1~c的倒数和时,注意是1.0/c; 要不然精度会有问题。

1027

有一分数序列: 
2/1 3/2 5/3 8/5 13/8 21/13......
求出这个数列的前N项之和,保留两位小数。

这道题  也就是小心点就好啦  就是当赋值的时候注意给一个中间变量  要不然值都覆盖了

1029

猴子吃桃问题,哈哈,现在做起来思路更加顺利了。

就是假设n-1天有s个,其实它的实质也是一个递归,得到公式s=2*(x+1); 并把x=s;然后一个for就可以了。 

1039

写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。

其实就是一个改变输出方式的问题

#include<stdio.h>
int main()
{
	int a[4][4],i,j,t;
	for(i=1;i<=3;i++)
		for(j=1;j<=3;j++)
		scanf("%d",&a[i][j]);
	for(i=1;i<=3;i++)
	{
		for(j=1;j<=3;j++)
			printf("%d ",a[j][i]);
		printf("\n");
	}
}

 1041

将两个字符串连接。

说实话,我只是想说我后来才用到strcat这个函数,函数是十分方便的。

#include<stdio.h>
#include<string.h>
int main()
{
	char a[100],b[100];
	int i,j;
	gets(a);
	gets(b);
	printf("%s",strcat(a,b));
	return 0;
}


1051

就是读入字符串的问题,有两种方式。

一种是while((c=getchar())!='\n')    ; 就是相当于是一个个的读入;

另一种是用gets(c); 然后读入长度,也是这样判断; 反正实质是一样的啦。

1053

字符串大小的比较; 以前我想的很复杂,后来再去打了一遍,发现用函数来写很方便;核心代码如下:

for(i=1;i<=2;i++)
	for(j=i+1;j<=3;j++)
	{
		if(strcmp(str[i],str[j])>0){
			strcpy(temp,str[i]);
			strcpy(str[i],str[j]);
			strcpy(str[j],temp);
		}
	}

1054

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数;
①输入10个数;②进行处理;③输出10个数。

这道题考了一个细节需要想到,就是当min=a[10], max=a[1]时要怎么处理,这是就只需要交换一次就可以了,要不然就属于重复交换了。

#include<stdio.h>
int main()
{
	int a[11],t,i,j,k,max,min,p,q;
	for(i=1;i<=10;i++)
		scanf("%d",&a[i]);
	max=min=a[1];  p=q=1;
	for(i=2;i<=10;i++)
	{
		if(a[i]>max) { max=a[i]; p=i;} 		//p是最大的那个下标 
		else if(a[i]<min) {min=a[i]; q=i;}	//q是最小的值的下标 
	}
	if(p==1&&q==10){
		t=a[p]; a[p]=a[q]; a[q]=t;
	}
	else {
		t=a[p]; a[p]=a[10]; a[10]=t;
		t=a[q]; a[q]=a[1]; a[1]=t;
	}
	for(i=1;i<=10;i++)
	{
		if(i!=10)
		printf("%d ",a[i]);
		else printf("%d\n",a[i]);
	}
}

1055

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数

主要讲思路,就是先把后面的m个复制到新的一个数组里面,接着把前面的复制过去就可以了。

#include<stdio.h>
int main()
{
	int n,m,a[1000],b[1000],i,j,t;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&a[i]);
	scanf("%d",&m);
	for(i=n-m+1,j=1;i<=n;i++,j++)
		b[j]=a[i];
	for(i=1;i<=n-m;i++,j++)
		b[j]=a[i];
	for(i=1;i<=j-1;i++)
		printf("%d ",b[i]);
}

1060

有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)

就是那个比较,就只要比较每个学生的某一门课就好了,毕竟他是最高分啊。

t=1;
	for(j=1;j<=3;j++)
	{
		for(i=2;i<=n;i++)
		{
			if(s[t][j]<s[i][j])
				t=i;
			else continue;
		}
	}


基本功很重要,反应要快才可以。

加油吧,最终一定能踏上那条荣耀之路的。

<think>好的,我现在需要帮用户找到浙江师范大学信息复试相关的库和IT资料。首先,用户提到的是信息复试,可能涉及计算机科学、信息技术等相关专业。根据提供的引用,特别是引用[2]和引用[4],里面提到了浙江师范大学数学与计算机科学学院在复试中会使用库,尤其是专业课和英语听说能力测试。引用[4]还提到了计算机组成原理的复试库,这应该属于IT相关的资料。 接下来,我需要整理已有的信息。引用[2]指出,复试试卷命由有相关背景的教师负责,并且建立了库。而引用[4]则具体提到了2016年的计算机组成原理库,这可能是一个例子,说明存在类似的资源。另外,引用[3]中的C语言面试可能与计算机考研复试相关,虽然未直接提到浙师大,但可以推测类似型可能被使用。 用户的需求是寻找这些库和资料,可能的途径包括:学校官网、学院提供的资源、考研论坛、往届学生的分享等。但根据引用内容,直接提供的资源有限,可能需要建议用户通过联系学校、寻找考研资料库或加入相关社群来获取。 需要注意的是,用户可能需要具体的资源链接或下载方式,但根据现有引用,无法提供直接链接。因此,回答中应建议可行的获取方法,并提及引用的相关内容作为依据。同时,要提醒用户注意资料的时效性和版权问,确保信息准确可靠。</think>根据您提到的浙江师范大学信息复试相关库需求,结合站内引用信息,整理建议如下: ### 、可直接获取的库资源 1. **计算机组成原理库** 根据引用[4],浙江师范大学数理与信息工程学院曾发布过《计算机组成原理》同等学力加试的复试库,包含选择、应用型。例如: ```plaintext 目示例:设文件F1的当前引用计数值为1,建立符号链接文件F2和硬链接F3后删除F1,此时F2和F3的引用计数值分别是? ``` 此类库可通过学校内部教学系统或联系学院教务获取。 2. **C语言面试库** 引用[3]提到的多态、虚函数等C++面试,属于计算机复试常见型。建议结合以下方向准备: - 多态性与类继承(如`virtual`关键字的作用) - 指针与内存管理(如`new/delete`使用) - 基础算法实现(如快速排序、链表操作) ### 二、推荐获取渠道 1. **学院官方渠道** 根据引用[2],浙江师大数学与计算机科学学院会为复试命制库,建议: - 访问学院官网(如[数计学院页面](http://www.mcs.zjnu.edu.cn/)) - 联系研究生办公室或相关导师获取历年库 2. **考研论坛与社群** - 加入浙师大计算机考研交流群(QQ/微信) - 访问“王道考研论坛”中的浙江师范大学板块,搜索“复试真” 3. **第三方库平台** 引用[1]提到的OJ系统(如北京大学库)可用于算法练习,提升编程能力。 ### 三、备考建议 1. **重点科目** - 计算机组成原理(文件系统、存储结构) - 数据结构与算法(排序、树图操作) - 操作系统(进程调度、内存管理) 2. **英语能力准备** 引用[2]明确提到英语听说测试需命制库,建议针对性练习专业英语翻译与问答。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值