湖北工业大学硕士研究生真题C语言代码

C语言用for循环 1+3+5+7+9…+99

#include <stdio.h>
int main(){
int i;
int sum=0;
for(i=1;i<100;i+=2){
	sum=sum+i;
}
printf("%d",sum);
return 0;
}

sum=1+3+5+7+9+……,输入正整数n,求sum的前n项和

#include <stdio.h>
int main(){
int j,n,sum=0,k=1;
printf("请输入一个小余100的正整数n: "); 
scanf("%d",&n);
for(j=1;j<n;j++){
	sum+=k;
	k+=2;
}
printf("sum的前n项和为:%d\n",sum);
return 0;
}

输入一个正整数m,如果m是素数,输出“Yes”,否则,输出“No”。要求定义并调用函数isprime(x)来判断x是否为素数

isprime是求素数的函数.
格式应该是这样的isprime(int x)
用时比如一个数t ,就这么写isprime(t)返回值是1时 说明是素数,返回值是0,则非素数

# include<stdio.h>
# include<math.h>
# include<iostream>
main()
{
int m;
scanf("%d",&m);
int isprime(int );
if(isprime(m))
 printf("yes");
 else printf("no");
system("pause");

}
int isprime(int x)
{
int i,m;
m=sqrt(x);
for(i=2;i<=m;i++)
 if(x%i==0)break;
if(i>m)
 return 1;
 else return 0;
} 

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

# include<stdio.h>
int main(){
char c;
int letters=0,spaces=0,digits=0,others=0; 
printf("请输入一串字符:");
while((c=getchar())!='\n'){//注意括号的位置 
	if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
	letters++;
	else if(c>='0'&&c<='9')
	digits++;
	else if(c ==' ')//这里要注意,单引号中间要打空格 
		spaces++;	
	else 
	others++;	
}
printf("字母有%d个,数字有%d个,空格有%d个,其他有%d个",letters,digits,spaces,others);
return 0;
} 

用1,2,3,4四个数字组成不相同并且没有相同数字的三位数

# include<stdio.h>
int main(){
int i=0,j=0,k=0;
int ret=0;
for(i=1;i<=4;i++){//嵌套循环 
	for(j=1;j<=4;j++){
		for(k=1;k<=4;k++){
			if((i!=j)&&(j!=k)&&(i!=k)){//去掉重复的四个 
					ret=i*100+j*10+k;
			printf("%10d",ret);//以10个宽度打印 

			}
		
		}
	}
} 
return 0;
} 

在这里插入图片描述
计算1-3+5-7+…-99+101的值

#include <stdio.h>
int main()
{
int i,j,sum=0;
 for(i=1,j=1;i<=101;i+=2,j++){
 	if(j%2==0)//判断偶数项 
 	sum-=i;//偶数项就减 
 	else 
 	sum+=i;
 }
 printf("%d",sum);
}

计算11-33+55-77+…-9999+101101的值

#include <stdio.h>
int main()
{
int i,j,sum=0;
 for(i=1,j=1;i<=101;i+=2,j++){
 	if(j%2==0)//判断偶数项 
 	sum-=i*i;//偶数项就减 
 	else 
 	sum+=i*i;
 }
 printf("%d",sum);
}

输入任意两个正整数,求他们的最大公约数。
使用穷举法:
算法简介:将两个数a,b中较小的值赋给i,将a除以i,b也除以i,若两者的余数同时为0时,此时的i就是两者的最大公约数。若不等于0,则将i-1,继续将a除以i,b除以i,直至余数同时为0。
在这里插入图片描述`

#include <stdio.h>
int maxGcd(int min,int max){
	int i;
	for(i=min;i>0;i--)
	{
		if((min%i==0)&&(max%i==0)){
			return i;
		}
	}
} 
int main(void){
	int a,b,ret;
	printf("输入两个整数:");
	scanf("%d%d",&a,&b);
	if(a<b)
	{
		ret=maxGcd(a,b);
		}
		else
		 {
			ret=maxGcd(b,a);
		}
	printf("%d and %d 最大公约数:%d\n",a,b,ret); 
	return 0;
}

输入5个字符串,按英文字典排序,由小到大顺序输出

#include <iostream> 
#include <string.h> 
using namespace std; 
int main() 
{ 
    char *t[5]; //5个字符串储存的地址指针 
    char *p;    //用于记录字符串地址的指针 
    int i,j,min; 
    cout << "请输入五个字符串" << endl; 
    for(i=0; i<5; i++) 
    { 
        t[i] = new char[20]; //申请字符串储存的空间 
        cin >> t[i];         //输入字符串 
    } 
    /* 思想: 
     * 1.从当前字符串开始,与之后的所有字符串比较,找到最小(即按字母表 
     *   应该是最靠前的)的字符串即为排在最前面的字符串,则最小字符串与 
     *   当前字符串换位; 
     * 2.从下一个字符串开始继续上一步操作,直到只有一个字符串剩余为止, 
     *   (只有一个字符串剩余就没什么好比较的了,所以下面的循环i是从0到 
     *   4。) 
     */ 
    for(i=0; i<4; i++) 
    { 
        min = i; //先假设第i个字符串是剩下的字符串中字母最靠前的字符串,其 
                 //位置为min 
        for (j=i+1; j<5; j++)//与当前字符串后面的第i+1到第4个字符串相比 
          if (strcmp(t[min], t[j])>0)//如果t[j]比目前找到的最小字符串还小,说 
              min = j;                //明更小的字符串应该是t[j],当前最小字符串 
                                      //位置应该更新为j,故把j位置记录给min,再继 
                                      //续找, 直到跳出循环 
        /* 跳出循环后,min即为当前最小字符串的位置,故t[min]和t[i]交换位置 */ 
        /* 注意t[i]和t[min]中存放的是地址,交换地址就可以 */ 
        p=t[i];    //记录t[i]字符串的首地址给p指针 
        t[i]=t[min];  //把t[min]字符串的首地址赋给t[i],则t[i]中原来的地址被覆盖了 
        t[min]=p;       //把原来t[i]字符串的首地址赋给t[min] 
    } 
    cout << endl; 
    for(i=0; i<5; i++)//输出字符串 
        cout << t[i] << endl; 
    for(i=0; i<5; i++)//释放空间 
        delete t[i]; 
    return 0; 
} 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值