编程题
来源:互联网 发布:xd网络上是什么意思啊 编辑:程序博客网 时间:2024/06/06 15:38
编程题
1、定义函数void revers(int a[],int n),实现将数组a中的前n个元素位置互换。仅写出函数定义即可。
void revers(int a[],int n)
{
int b;
int i,j;
for(i=0,j=n-1;i<j;i++,j--)
{
b=a[i];
a[i]=a[j];
a[j]=b;
}
}
2、定义函数void large(char s[],int n),实现将数组s中的前n个字符中的小写字母转换为大写字母,其他字符保持不变。
void large(char s[],int n)
{
int i;
for(i=0;i<n;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
s[i]=s[i]-32;
}
}
}
3、定义函数void sum_ave(int a,int b,int *sum,float *ave),实现将计算a,b的和与平均分并通过参数sum,ave返回。
Void sum_ave(int a,int b,int *sum,float *ave)
{
*sum=a+b;
*ave=(a+b)/2;
}
4、假设学生的进步信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生的成绩信息,并计算输出平均分最高的学生信息。要求定义结构体实现。
#include<stdio.h>
#include<string.h>
int main()
{
struct shenme
{
char num[20];
char name[20];
int x,y,z;
double ave;
}t[60];
int n;
scanf("%d",&n);
int i,it=0;
for(i=0;i<n;i++)
{
scanf("%s%s%d%d%d",t[i].num,t[i].name,&t[i].x,&t[i].y,&t[i].z);
t[i].ave=(t[i].x+t[i].y+t[i].z)/3.0;
}
for(i=1;i<n;i++)
{
if(t[it].ave<t[i].ave)
{
it=i;
}
}
printf("%s %s %d %d %d",t[it].num,t[it].name,t[it].x,t[it].y,t[it].z);
return 0;
}
5、定义一个包含时、分、秒的时间结构体类型,编写程序实现给定两个时间,计算这两个时间的和。
#include <stdio.h>
struct time
{
int h;
int m;
int s;
};
int main()
{
struct time a,b,z;
scanf("%d:%d:%d",&a.h,&a.m,&a.s);
scanf("%d:%d:%d",&b.h,&b.m,&b.s);
z.s=(a.s+b.s)%60;
z.m=(a.m+b.m+(a.s+b.s)/60)%60;
z.h=(a.h+b.h+(a.m+b.m+(a.s+b.s)/60)/60)%24;
printf("%d:%d:%d\n",z.h,z.m,z.s);
return 0;
}
6、假设学生的进步信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生的成绩信息,计算每门课程的平均分并输出。要求定义结构体实现。
#include<stdio.h>
#include<string.h>
int main()
{
struct shenme
{
char num[20];
char name[20];
int x,y,z;
double ave;
}t[60];
int n;
scanf("%d",&n);
int i;
double x1=0,y1=0,z1=0;
for(i=0;i<n;i++)
{
scanf("%s%s%d%d%d",t[i].num,t[i].name,&t[i].x,&t[i].y,&t[i].z);
t[i].ave=(t[i].x+t[i].y+t[i].z)/3.0;
x1+=t[i].x;
y1+=t[i].y;
z1+=t[i].z;
}
x1=x1/n;
y1=y1/n;
z1=z1/n;
printf("%.2lf %.2lf %.2lf",x1,y1,z1);
return 0;
}
7、使用递归函数实现求n!
递归定义如下:
f(n)=1 当n=1或n=0时
f(n)=n*f(n-1) 当n>1时
#include <stdio.h>
double fact(int n);
int main()
{
int n;
scanf("%d",&n);
printf("%lf\n",fact(n));
return 0;
}
double fact(int n)
{
double result;
if(n==1||n==0)
{
result=1;
}
else
{
result=n*fact(n-1);
}
return result;
}
8、使用递归函数计算xn
递归定义如下:
f(n)=1 当n=0时
f(n)=x*f(n-1) 当n>0时
#include <stdio.h>
double fact(double x,double a);
int main()
{
double x,a;
scanf("%lf",&x);
a=x;
printf("%lf",fact(x,a));
return 0;
}
double fact(double x,double a)
{
double result;
if(x==0)
result=1;
else
{
result=a*fact(x-1,a);
}
return result;
}
9、编写递归函数revere(int n )实现将整数n逆序输出
递归出口:直接输出n,如果n<=9,
递归式子:输出个位数,如果n为多位数,再递归调用reverse(n/10)输出前n-1位
#include <stdio.h>
void revere(int n);
int main()
{
int n;
scanf("%d",&n);
revere(n);
return 0;
}
void revere(int n)
{
if(n<=9)
printf("%d",n);
else
{
printf("%d",n%10);
revere(n/10);
}
}
10、有5位学生的成绩存在文件score.txt中,包括学号、姓名和分数,文件格式如下:
301101 zhangwen 91
301102 chenhui 85
…
请读出文件的所有内容显示到屏幕上。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1;
char ch;
if ((fp1 = fopen("score.txt", "r")) == NULL) {
printf("File open error!\n");
exit(0);
}
while (!feof(fp1)) {
ch = fgetc(fp1);
printf("%c", ch);
}
if (fclose(fp1)) {
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
11、有一个文件in.txt存储的是包含英文字母、标点符号的一篇文章,现在请你写程序读出文件内容并将所有的英文字母都变为大写字母并输出在屏幕上。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1;
char ch;
if ((fp1 = fopen("in.txt", "r")) == NULL) {
printf("File open error!\n");
exit(0);
}
while (!feof(fp1)) {
ch = fgetc(fp1);
if (ch >= 97 && ch <= 122)
printf("%c", ch - 32);
else
printf("%c", ch);
}
if (fclose(fp1)) {
printf("Can not close the file!\n");
exit(0);
}
}
12、从键盘输入行字符,包括英文字母和标点符号,请你将所有的英文字母都转换为小写字符并写入到文件out.txt中。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1;
char ch=NULL;
if ((fp1 = fopen("out.txt", "a+")) == NULL) {
printf("File open error!\n");
exit(0);
}
while (ch != '\n') {
scanf("%c", &ch);
if (ch >= 65 && ch <= 90)
ch = ch + 32;
fputc(ch, fp1);
}
if (fclose(fp1)) {
printf("Can not close the file!\n");
exit(0);
}
13、已知奥运五环的5种颜色的英文单词按一定顺序排列,输入任意一个颜色的英文单词,从已有颜色中查找并输出该颜色的位置值,若没有找到,则输出“No Found”。要求定义指针数组char *color[5]={“red”,”blue”,”yellow”,”green”,”black”};实现
#include<stdio.h>
#include<string.h>
int main()
{
char *color[5]={"red","blue","yellow","green","black"};
char s[30];
scanf("%s",s);
int i,flag=0;
for(i=0;i<5;i++)
{
if(strcmp(s,color[i])==0)
{
flag=1;
printf("%d",i+1);
}
}
if(flag==0)
{
printf("Not Found\n");
}
return 0;
}
14、编写程序,输入数字1~7,输出对应星期的英文单词。要求定义指针数组char *week[8]={””,“Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”,”Sunday”};实现。
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
char *week[8]={" ","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
printf("%s",week[n]);
return 0;
}
15、编写程序,输入星期的英文单词,输出对应的数字(例如输入Monday,输出1;输入Sunday,输出7)。要求定义指针数组char *week[8]={””, “Monday”, ”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”,”Sunday”};实现。
#include<stdio.h>
#include<string.h>
int main()
{
char *week[8]={" ","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
char s[15];
scanf("%s",s);
int i;
for(i=0;i<8;i++)
{
if(strcmp(s,week[i])==0)
{
printf("%d",i);
break;
}
}
return 0;
}
- 编程题
- 编程题
- 编程题?
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- 编程题
- Tomcat8免安装版安装配置,以及一台电脑配置多个tomcat8
- centos7安装mongodb
- linux C之alarm函数
- Django搜索工具——全文检索
- Java 多线程编程
- 编程题
- Vue 2.0 键盘属性
- Java解释器的运行过程解释
- 对类的对象进行操作
- php给pdf加上水印
- Codeforces Educational Codeforces Round 31
- 百度地图开发-申请ak及相关配置
- 主要是打表---数豆子
- 算是,对自己的鞭策吧