第3-4周的作业题目
1、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
提示:请抓住分子与分母的变化规律。
2、题目:求1+2!+3!+...+20!的和
3、写一个判定素数的函数,在主函数输入一个整数,输出是否为素数的信息。
4、在主函数中,将两个两位数的正整数a,b合并成一个整数放在变量c中。合并的方式:将a数的十位和个位分别放在c数的个位和百位上,b数的十位和个位分别放在c数的千位和是十位上。合并完成后,输出c的值。
例如:当a = 45,b= 12时,合并后得到的c的值应该是1542
5、(先预习数组的内容再做题)定义一个整型数组,并通过循环语句循环的输入数据进行赋值,然后再依次输出数组中所有元素的值。
6、(先预习结构体的内容再做题)定义一个结构体student,包含:姓名、班级、成绩。使用这个结构体定义一个结构体变量,并从键盘输入对应的姓名、班级和成绩,最后再依次输出这些信息。
四、思考题:
1.数组的定义语法是?
int i[5]={1,2,3,5,6}
2.数组的初始化方式有哪些?
答:有两种,静态与动态。
3.结构体的定义语法是?如何定义一个结构体变量?如何给结构体变量进行初始化(赋初值)?
一是结构标记的声明,二是结构类型的定义。struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。
4.指出并修改以下程序的错误,让程序正确运行
#include <stdio.h>
auto int a = 0; auto修改为static
int main(void)
{
int *p; "*"去掉
*p = &a;
printf(“%d\n”,*p);
return 0;
}
5.若有程序
void fun(int x)
{
static int i = 2;
x += 2;
i++;
}
int main(void)
{
int a = 5;
fun(a);
fun(a);
printf(“%d\n”,a);
return 0;
}则最后i的值是?
I=3
6.若有程序
void exchange(int *a,int *b)
{
int t;
t =- *a;
*a -= *b;
*b = t;
}
int main(void)
{
int x = 10;
int y = 20;
exchange(&x,&y);
printf(“%d,%d\n”,x,y);
return 0;
}则最后输出的结果是?
-10 -10