
正文
青岛理工C语言函数测试 青岛理工大学c语言教材
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言 怎样在主函数测试编写的函数?
一直想找出一种简便青岛理工C语言函数测试的方法,于是想到青岛理工C语言函数测试了递归,不知道是不是符合题意,方法不太好,尽是全局变量,看看吧
#includestdio.h
float ave=0,s=0,sum=0;int n,i;
void fun()
{ float t;
printf("请输入数据:");
scanf("%f",t);
sum+=t;
if(-1+i--)
fun();
if(i==0)
{
ave=1.0*sum/n;
}
s+=(t-ave)*(t-ave);
}
void main()
{
printf("要输入几个数:");
scanf("%d",n);
i=n;
fun();
printf("ave=%f,s=%f",ave,s);
}
相关问答
Q1: C语言程序设计(201803)测试求大佬帮忙!
选D
选C青岛理工C语言函数测试;"my name"算上空格一共7个字符,加上结尾青岛理工C语言函数测试的'\0'为8个字符,所以如果m前没有空格,那么答案为C
选C;p指向a[3]=4的地址,即p及其之后地址中的数值为{4,5,6,7,8,9,10},所以其中第5个数为p[4]=8
选C
选D;A错误,字符串应为char型;B错误,数组长度不够;C错误,没有vhst类型;D正确,可看作字符数组,{}内的数值可转为相应的ASCII字符
选C;字符数组即字符串不能直接通过"="赋值,要使用strcpy函数
选C;函数实参可以是常量、变量或表达式,该题中逗号表达式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3个实参
选C;A错误,函数调用时不用指明其参数类型;B错误,fun函数没有返回值,不能赋给k;C正确;D错误,函数调用时不用指明其返回类型
选A;n++表示先返回n的值,再对n进行自增操作,即先令k=n,再执行n=n+1
选C;if-else不是循环结构
选D;aa表示数组首地址,即aa[0],而不是aa[1]
选B
选B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5
选C;A错误,除非函数定义在调用语句之后的位置,才需要提前声明;B错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C正确;D错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的
选B;scanf需指明读入变量的地址,字符串名称c就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符
选A
选D;同第6题
码字不易,望采纳~
Q2: C语言中测试字符串长度的函数
C语言中测试字符串长度的函数是strlen()
函数原型:
unsigned int strlen (char *s);
头文件:
#include string.h
参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#includestdio.h
#includestring.h
int main()
{
char str[] = "abcxyz";
printf("strlen(str)=%d\n", strlen(str1));
return 0;
}
//输出结果:strlen(str)=6
Q3: C语言中怎样测试函数执行时间
有4种方法可以达成测算程序运行时间的目的。
它们分别是使用clock, times, gettimeofday, getrusage来实现的。
下面就来逐一介绍青岛理工C语言函数测试,并比较它们的优劣点。
系统测试环境青岛理工C语言函数测试:
VirtualBox (Ubuntu 9.10)
gcc version 4.4.1
libc6 2.10.1-0ubuntu16
Core Duo T2500 2GMHz
例程如下:
只要修改第11行的定义值青岛理工C语言函数测试,就可以使用不同的测量方法了。
#include sys/time.h
#include sys/resource.h
#include unistd.h
#include stdio.h
#include time.h
#define TEST_BY_CLOCK (char)(0x00)
#define TEST_BY_TIMES (char)(0x01)
#define TEST_BY_GETTIMEOFDAY (char)(0x02)
#define TEST_BY_GETRUSAGE (char)(0x03)
#define TEST_METHOD (TEST_BY_GETTIMEOFDAY)
#define COORDINATION_X (int)(1024)
#define COORDINATION_Y (int)(1024)
static int g_Matrix[COORDINATION_X][COORDINATION_Y];
double getTimeval()
{
struct rusage stRusage;
struct timeval stTimeval;
if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)
{
gettimeofday(stTimeval, NULL);
}
else if (TEST_METHOD == TEST_BY_GETRUSAGE)
{
getrusage(RUSAGE_SELF, stRusage);
stTimeval = stRusage.ru_utime;
}
return stTimeval.tv_sec + (double)stTimeval.tv_usec*1E-6;
}
int main()
{
int i, j;
int n = 0;
clock_t clockT1, clockT2;
double doubleT1, doubleT2;
if (TEST_METHOD == TEST_BY_CLOCK)
{
clockT1 = clock();
}
else if (TEST_METHOD == TEST_BY_TIMES)
{
times(clockT1);
}
else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)
{
doubleT1 = getTimeval();
}
else if (TEST_METHOD == TEST_BY_GETRUSAGE)
{
doubleT1 = getTimeval();
}
for (i = 0; i COORDINATION_X; i++)
{
for (j = 0; j COORDINATION_Y; j++)
{
g_Matrix[i][j] = i * j;
}
}
if (TEST_METHOD == TEST_BY_CLOCK)
{
clockT2 = clock();
printf("Time result tested by clock = %10.30f\n",(double)(clockT2 - clockT1)/CLOCKS_PER_SEC);
}
else if (TEST_METHOD == TEST_BY_TIMES)
{
times(clockT2);
printf("Time result tested by times = %10.30f\n", (double)(clockT2 - clockT1)/sysconf(_SC_CLK_TCK));
}
else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)
{
doubleT2 = getTimeval();
printf("Time result tested by gettimeofday = %10.30f\n",(double)(doubleT2 - doubleT1));
}
else if (TEST_METHOD == TEST_BY_GETRUSAGE)
{
doubleT2 = getTimeval();
printf("Time result tested by getrusage = %10.70f\n", (double)(doubleT2 - doubleT1));
}
return 0;
}
1. 使用clock的方法:
clock是ANSI C的标准库函数青岛理工C语言函数测试,关于这个函数需要说明几点。
首先青岛理工C语言函数测试,它返回的是CPU耗费在本程序上的时间。也就是说,途中sleep的话,由于CPU资源被释放,那段时间将不被计算在内。
其次,得到的返回值其实就是耗费在本程序上的CPU时间片的数量,也就是Clock Tick的值。该值必须除以CLOCKS_PER_SEC这个宏值,才
能最后得到ss.mmnn格式的运行时间。在POSIX兼容系统中,CLOCKS_PER_SEC的值为1,000,000的,也就是
1MHz。
最后,使用这个函数能达到的精度大约为10ms。
2. 使用times的方法:
times的用法基本和clock类似,同样是取得CPU时间片的数量,所不同的是要除以的时间单位值为sysconf(_SC_CLK_TCK)。
3. 使用gettimeofday的方法:
用gettimeofday直接提取硬件时钟进行运算,得到的结果的精度相比前两种方法提高了很多。
但是也正由于它提取硬件时钟的原因,这个方法只能计算程序开始时间和结束时间的差值。而此时系统中如果在运行其他的后台程序,可能会影响到最终结果的值。如果后台繁忙,系统dispatch过多的话,并不能完全真实反映被测量函数的运行时间。
4. 使用getrusage的方法:
getrusage得到的是程序对系统资源的占用信息。只要指定了RUSAGE_SELF,就可以得到程序本身运行所占用的系统时间。
Q4: C语言函数题2
#include stdio.h
#include math.h
double funcos( double e, double x );
int main()
{
double e, x;
scanf("%lf %lf", e, x);
printf("cos(%.2f) = %.6f\n", x, funcos(e, x));
return 0;
}
double funcos( double e, double x )
{
double r=0,fact=1;
int i=0;
double t=1;
while(t=e)
{
if(i%2==0) r+=t;
else r-=t;
i++;
fact*=2*i*(2*i-1);
t=t*x*x/fact;
}
return r;
}
青岛理工C语言函数测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于青岛理工大学c语言教材、青岛理工C语言函数测试的信息别忘了在本站进行查找喔。







