c语言题

1、编写C程序,统计并输出1000以内所有的素数的平均值。

#include <stdio.h>
main(){
	int sum = 0, count = 0, i, j, isTrue = 0;
	float avg;
	for(i = 2; i < 1000; i++){
		for(j = i - 1; j > 1; j--){
			if(i % j == 0){
				isTrue = 1;
			}
		}
		if(isTrue == 0){
			sum += i;
			count++;
		}
		isTrue = 0;
	}
	avg = sum/count;
	printf("平均为:%.2f\n", avg);
	printf("个数为:%d\n", count);
	printf("总数为:%d\n", sum);
}

2、调用标准C函数rand()可以得到0到65535之间的一个随机整数,利用这个函数,编写C语言程序,对二维数组int data[15][15]进行随机赋值(要求所赋的值不大于1000),并输出赋值后的数组,然后输出该数组每一列元素的最大数,再输出这些最大数中的最小者。

#include <stdio.h>
main(){
	int i, j, data[15][15], max[15], stmp, min = 1001;
	for(i = 0; i < 15; i++){
		stmp = 0;
		for(j = 0; j < 15; j++){
			data[i][j] = rand() % 1001;
			printf("data[%d][%d]=%d\n",i, j, data[i][j]);
			if(data[i][j] > stmp){
				 max[i] = data[i][j];
				 stmp = data[i][j];
			};
		}
		printf("max[%d]=%d\n", i, max[i]);
		if(max[i] < min) min = max[i];
	}
	printf("min=%d\n", min);
}

3、编写函数,用迭代法求x= \sqrt{a},求平方根的迭代公式为x_{n+1}=\frac{1}{2}(x_{n}+\frac{a}{x_{n}}),要求在迭代过程中,当前后两次求出的x的差的绝对值小于10^{-5}时,输出求出的根。调用你编写的函数求整数1到20的平方根的和,及其平方根。

#include <stdio.h>
#include <math.h>
main(){
	float test(int i);
	float sum = 0;
	int x;
	for(x = 1; x < 21; x++){
		sum += test(x);
		printf("%d的平方根=%f\n", x, test(x));
	}
	printf("1-20的平方根和=%f\n", sum);
}
float test(int i){
	float one, two;
	two = i;
	for(;;){
		one = two;
		two = (one + i / one) / 2;
		if(fabs(one-two)<0.00001){
			return two;
		}
	}
}

4、有一个磁盘文本文件“file1.txt”(文件内容由字符组成),编写c语言程序,只打开该文件一次,但读取文件中的数据两次,第一次将读取的文件内容显示在屏幕上,第二次将读取的内容复制到另一个文件“file2.txt”中。

#include <stdio.h>
main(){
	FILE *one, *two;
	one = fopen("C:\\Users\\lenovo\\Desktop\\一些地址.txt", "rt");
	two = fopen("C:\\Users\\lenovo\\Desktop\\一些地址副本.txt", "wt+");
	char c;
	c = fgetc(one);
	putchar(c);
	while(c != EOF){
		printf("%c", c);
		c = fgetc(one); 
		fputc(c, two);
	}
	fclose(one);
	fclose(two);
} 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值