当前位置:文档之家› 2019西南大学0039C语言程序设计机考大作业答案

2019西南大学0039C语言程序设计机考大作业答案

#include <stdio.h>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数
//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。

但是这个函数有且仅有一个
int main()
{
//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面
//比如我要实现打印HelloWorld字符,那么我就调用printf()标准输出语句
printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行
return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return语句返回一个int类型的值0.
}
//这样就结束了。

一个简单的但又完整的C程序就有了,
//下一步就是使用编译器编译成目标的可执行文件:
//如果是windows下的vc++,那么需要分别点击编译,链接两个按钮生成hello.exe可执行文件
//如果是linux下直接在shell中使用gcc hello.c就可以编译成可执行文件a.out
//最后就是运行了,windows下直接点击vc++的运行或双击hello.exe可以出现dos窗口运行,并显示结果,linux下使用“./a.out”可以直接运行,运行结果会显示在shell中。

//这就是整个完整的流程,包括每一步。

调试过程:设置断点,调试命令,察看变量,查看内存,
常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。

VC++ 和DEV C++都是C++语言的开发工具。

如果只是做些小程序,基本上看不出区别。

两者DEBUG和RELEASE上的时间有所不同。

还有一点就是,通常如果是在VC++下编写的代码,不是很规范,拿到DEV C++上会报错。

而反过来则可以运行。

这里涉及到GCC的问题,它对标准的支持表现在不支持非标准的东西,但是 DEV C++有个最大的好处就是体积小,没有VC++这么大,可以装到U盘里。

(3)
1 对于编译器处理更方便。

在编译的时候,编译器需要为变量定义符号列表,有显式的变量定义,可以让编译器更方便的查找到变量列表,从而确定变量符号列表,执行后续的编译操作。

2 不容易出错。

可以识别出变量名的手打错误。

比如定义了var_name,在调用的时候如果写作了var_nane, 如果没规定要先定义后使用,那么var_nane就会被当做一个新的变量使用,只到运行时才会发生错误。

而按照C语言的规定,在编译阶段就可以发现该错误。

3 程序更清晰。

变量定义时,直接指明类型,这样在阅读程序时不需要为查知变量类型而花费额外时间。

2、
(1)
#include <stdio.h>
main()
{
int i,n,sum=0;
printf("input n:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
sum+=i;
}
printf ("sum=%d\n",sum);
}
(5)
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for(; i <= 999; i++)
{
int tmp = 0;
int sum = 0;
int count = 1;
tmp = i//把i赋值给tmp
while(tmp/10)//用while循环判断有几位数
{
count ++;//满足条件,计数器++
tmp /= 10;
}
tmp = i;//重新赋值
while(tmp)//判断i是否为水仙花数
{
sum += pow((tmp % 10), count);//pow函数,求一个数的次方,如输入参数pow(3,3),即得27
tmp /= 10;
}
if(sum == i)//如果sum等于i,找到了,并且输出
printf("%d ", i);
}
return 0;
}
(6)
#include<stdio.h>
#include<math.h>
#define N 5
int pri[N];
int flag=0;//判断有无素数无则返回1,有则返回0 int count=0;//素数个数
void pri me(int ar[],int n);
main()
{
int a[N];
int i,j,temp;
pri ntf("input %d numbers below:",N);
for(i=0; i<N; i++)
scanf("%d",&a[i]);
prime(a,N);
for(i=0; i<count; i++)
for(j=i+1;j<count;j++)
if(pri[i]>pri[j])
{
temp = pri[i];
pri[i] = pri[j];
pri[j] =temp;
}
if(flag == 1)
{
printf("After sorting:\n");
for(i=0; i<count; i++)
printf("%d\n",pri[i]);
printf("\n");
}
return 0;
} void prime(int ar[],int n) {
int i,j,m;
for(i=0; i<n; i++)
{
m=(int)(sqrt(ar[i])+1);
for(j=2; j<=m;j++)
if(ar[i]%j == 0)
break;
if(j>m)
{
flag=1;
pri[count++]=ar[i];
printf("%4d\n",ar[i]);
}
}
printf("No primer\n");
}
3、
(1)fun的功能是求m个数的平均值 (3)这些偶数的平均值是16。

相关主题