ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

备考2021辽宁专升本做的C语言习题

2021-05-03 11:01:36  阅读:157  来源: 互联网

标签:include int sum C语言 num 专升本 printf 习题 main


##1、用户输入字符c的值,按下表对应关系输出a的值。

输入的c值输出的a值
$8.26
713.48
%1.10
#0.075
其他字符0
/*switch-case写法*/
#include <stdio.h>
int main(int argc, char *argv[])
{
	char c;
	float a;
	scanf("%c",&c);
	switch(c){
		case '$':a=8.26;break;
		case '&':a=13.48;break;
		case '%':a=1.10;break;
		case '#':a=0.075;break;
		default:a=0;break;
	}
	printf("a=%f\n",a);
	return 0;
}

/*if-else写法*/
#include <stdio.h>
int main(int argc, char *argv[])
{
	char c;
	float a;
	scanf("%c",&c);
	if(c=='$')
		a=8.26;
	else if(c=='&')
		a=13.48;
	else if(c=='%')
		a=1.10;
	else if(c=='#')
		a=0.075;
	else
		a=0;
	printf("a=%f\n",a);
	return 0;
}

##2、输出100-1000之间能同时被7和9整除的数,1行输出5个数。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int i,num=0;
	for(i=100;i<=1000;i++){
		if(i%7==0&i%9==0){
			printf("%d ",i);
			num++;
			if(num%5==0)
				printf("\n");
		}
	}
	return 0;
}

##3、根据下表的对应关系,使用if语句或switch语句完成显示汇率程序设计。

输入字符输出数据
u826.72
e1182.30
j15.13
h109.65
其他字符0
/*if-else写法*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
	char c;float d;
	scanf("%c",&c);
	if (c=='u')
	{
		a = 826.72;
	}else if (c=='e')
	{
		a = 1182.30;
	}else if (c=='j')
	{
		a = 15.13;
	}else if (c=='h')
	{
		a = 109.65;
	}else
		a = 0;
	printf("a=%f\n",a);
	return 0;
}
/*switch-case写法*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
	char c;float d;
	scanf("%c",&c);
	switch(c){
		case 'u': a=826.72;break;
		case 'e': a=1182.30;break;
		case 'j': a=15.13;break;
		case 'h': a=109.65;break;
		default:a=0;break;
	}
	printf("a=%f\n",a);
	return 0;
}

##4、利用循环语句计算下列公式的值,并输出sum的值。

sum=11+13+15+……+197+199

#include <stdio.h>
int main(int argc, char const *argv[]){
	int i,sum=0;
	for (int i = 11; i <=199; i+=2){
		sum+=i;
	}
	printf("sum=%d\n", sum);
	return 0;
}

##5、请编写函数fun,其功能是:计算并输出下列多项式的值:

	S = 1 + 1/1! + 1/2! + 1/3! +1/4! + …… + 1/n!
#include <stdio.h>
double fun(float x){
	if (x==1)
		return 1;
	else
		return x*fun(x-1);
}
int main(int argc, char const *argv[]){
	float S=1.0;
	int i,num;
	scanf("%d",&num);
	for (int i = 1; i <= num; i++){
		S+=1/fun(i);
	}
	printf("S=%d\n", S);
	return 0;
}

##6、程序设计:输出100以内所有素数。

#include <stdio.h>
int main(){
	int i,n;
	for(i=2;i<=100;i++){   //1肯定不是素数,所以从2开始遍历
		for(n=2; n<i;n++)  //判断是否为素数(除了1和本身,不能被其他的数整除),从2到i
			if (i%n==0)    //如果2到i中有任意的一个数可以整除,则退出
				break;
		if(n>=i)
			printf("%d is prime number\n", i);
	}
	return 0;
}

##7、程序设计:用户输入整数x,y值,按以下公式计算z值并输出。

z = { 3 x ² − y ² , x > 0 且 y > 0 4 x ³ + y ³ , x < 0 且 y < 0 0 , x 、 y 不 满 足 以 上 两 个 条 件 时 z= \begin{cases} 3x²-y², x>0且y>0\\ 4x³+y³, x<0且y<0\\ 0 , x、y不满足以上两个条件时 \end{cases} z=⎩⎪⎨⎪⎧​3x²−y²,x>0且y>04x³+y³,x<0且y<00,x、y不满足以上两个条件时​

#include <stdio.h>
int main(){
	int x,y,z=0;
	scanf("%d%d",&x,&y);
	if(x>0&&y>0)
		z=3*x*x-y*y;
	else if(x<0&&y<0)
		z=4*x*x*x+y*y*y;
	else
		z=0;
	printf("z=%d",z);
	return 0;
}

##8、程序设计:输入一个年份year,判断是否为闰年。

#include <stdio.h>
int main( )
{
	int year;
	scanf("%d",&year);
	if(year%4==0&&year%100!=0||year%400==0)
		printf("%d is RunNian",year);
	else
		printf("%d is not RunNian",year);
	return 0;
}

##9、根据下表的对应关系,使用if语句或switch语句完成等级评定程序设计。

输入数据输出等级
300A
200-299B
100-199C
0-99D
/*if-else写法*/
#include <stdio.h>
int main(){
	int num;
	char Grade;
	scanf("%d",&num);
	if(num==300)
		Grade = 'A';
	else if(num>=200&&num<=299)
		Grade = 'B';
	else if(num>=100&&num<=199)
		Grade = 'C';
	else if(num>=0&&num<=99)
		Grade = 'D';
	else
		printf("输入的数据不合法!");
	if(Grade=='A'||Grade=='B'||Grade=='C'||Grade=='D')
		printf("Grade=%c\n",Grade);
	else
		printf("\n");
	return 0;
}

/*switch写法*/
#include <stdio.h>
int main(){
	int num;
	char Grade;
	scanf("%d",&num);
	switch(num/100){
		case 3:Grade='A';break;
		case 2:Grade='B';break;
		case 1:Grade='C';break;
		case 0:Grade='D';break;
		default: printf("输入的数据不合法!");
	}		
	if(Grade=='A'||Grade=='B'||Grade=='C'||Grade=='D')
		printf("Grade=%c\n",Grade);
	else
		printf("\n");
	return 0;
}

##10、利用循环语句计算下列公式的值,并输出sum的值。
s u m = 1 − 2 3 + 4 5 − 6 7 + … … − 94 95 + 96 97 − 98 99 + 100 101 sum=1- \frac 23+\frac 45-\frac 67+……-{94\over 95}+{96\over 97}-{98\over 99}+{100\over 101} sum=1−32​+54​−76​+……−9594​+9796​−9998​+101100​

#include <stdio.h>
int main(){
	float sum=1.0,symbol=1.0;
	int i;
	for(i=0;i<=50;i++){
		sum+=symbol*(2*i)/(2*i+1);
		symbol=-symbol;
	}
	printf("%f",sum);
	return 0;
}

##11、编写一个程序,将两个字符串连接起来,不要使用strcat函数。

写法1:
#include <stdio.h>
int main(){
	char s1[100],s2[50];
	int i=0,j=0;
	scanf("%s",s1);
	scanf("%s",s2);
	while(s1[i]!='\0')
		i++;
	while(s2[i]!='\0')
		s1[i++]=s2[j++];
	s1[i]!='\0';
	printf("%s\n",s1);
	return 0;
}
写法2:
#include <stdio.h>
int main(){
	char s1[100],s2[50];
	int i=0,j=0;
	gets(s1);
	gets(s2);
	while(s1[i]!='\0')
		i++;
	while(s2[i]!='\0')
		s1[i++]=s2[j++];
	s1[i]!='\0';
	puts(s1);
	return 0;
}

##12、输入一个不超过4位的正整数,判断其为几位数并输出。

方法1:判断各个位上是否有非0数字
#include<stdio.h>
int main(){
	int num_in,num_dight=0;//num_in为输入的数,num_dight为判断几位数的变量
	int num_gewei,num_shiwei,num_baiwei,num_qianwei;
	scanf("%d",&num_in);
	if(num_in>=0&&num_in<=9999){
		num_qianwei=num_in/1000%10;
		num_baiwei=num_in/100%10;
		num_shiwei=num_in/10%10;
		num_gewei=num_in/1%10;
		if(num_qianwei!=0)
			num_dight=4;
		else if(num_qianwei==0&&num_baiwei!=0)
			num_dight=3;
		else if(num_qianwei==0&&num_baiwei==0&&num_shiwei!=0)
			num_dight=2;
		else
			num_dight=1;
		printf("您输入的num_in=%d是%d位数\n",num_in,num_dight);
	}else
		printf("您输入的数据不合法!\n");
	return 0;
}
方法2:直接比较法
#include <stdio.h>
int main(){
	int num_in,num_dight=0;
	scanf("%d",&num_in);
	if(num_in>=1000&&num_in<=9999)
		num_dight=4;
	else if(num_in>=100&&num_in<=999)
		num_dight=3;
	else if(num_in>=10&&num_in<=99)
		num_dight=2;
	else if(num_in>=0&&num_in<=9)
		num_dight=1;
	else
		printf("您输入的数不合法!");
	if(num_dight==1||num_dight==2||num_dight==3||num_dight==4)
		printf("您输入的是%d位数\n",num_dight);
	else
		printf("\n");
	return 0;
}
方法3:do-while循环
#include <stdio.h>
int main(){
	int num_in,num_dight=0;
	scanf("%d",&num_in);
	do{
		num_dight+=1;
		num_in/=10;
	}while(num_in>0);
	printf("您输入的是%d位数\n",num_dight);
	return 0;
}

##13、程序设计:输出九九乘法表。

#include <stdio.h>
int main(){
	int i,j;
	for(i=1;i<=9;i++)
		for(j=1;j<=9;j++){
			if(j<i)
				printf("        ");
			else
				printf("%d*%d=%-2d\t",i,j,i*j);				
		}
		printf("\n");
	return 0;
}

##14、输入一行字符串,判断有几个单词

#include <stdio.h>
int main()
{
    printf("输入一行字符:\n");
    char ch;
    int i,count=0,word=0;
    while((ch=getchar())!='\n')
        if(ch==' ')
            word=0;
        else if(word==0)
        {
            word=1;
            count++;
        }
    printf("总共有 %d 个单词\n",count);
    return 0;
}

##15、任意输入三个整数,程序设计实现对这个三个整数从小到大排序输出。

#include <stdio.h>
int main()
{
    int num1,num2,num3,temp;
    scanf("%d,%d,%d",&num1,&num2,&num3);  /*输入任意的3个整数*/
    if(num1>num2){   /*如果num1大于num2,借助中间变量temp实现num1与num2值的互换*/
    	temp=num1;
    	num1=num2;
    	num2=temp;
    }
    if(num1>num3){   /*如果num1大于num3,借助中间变量temp实现num1与num3值的互换*/
    	temp=num1;
    	num1=num3;
    	num3=temp;
    }
    if(num2>num3){   /*如果num2大于num3,借助中间变量temp实现num2与num3值的互换*/
    	temp=num2;
    	num2=num3;
    	num3=temp;
    }
    printf("The order of the nums is:%d,%d,%d",num1,num2,num3);  /*输出函数顺序输出num1、num2、num3的值*/
    return 0;
}

##16、猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。

/*while循环*/
#include <stdio.h>
int main()
{
    int day,x1,x2;
    day=9;
    x2=1;
    while(day>0){
    	x1=(x2+1)*2;
    	x2=x1;
    	day--;
    }
    printf("peach sum is%d\n",x1);
    return 0;
}

/*for循环*/
include <stdio.h>
int main()
{
    int day,x1,x2;
    x2=1;
    for(day=9;day>0;day--){
    	x1=(x2+1)*2;
    	x2=x1;
    }
    printf("peach sum is%d",x1);
    return 0;
}

##17、求某一范围内完数的个数。
完数概念:如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而 6=1+2+3,因此6是“完数”。

#include <stdio.h>
int main()
{
    int i,j,sum,num;  /*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
    printf("请输入所选范围上限:\n");
    scanf("%d",&num);  /* num的值由键盘输入*/
    for(i=2;i<=num;i++){
    	sum=0;  /*保证每次循环时sum的初值为0*/
    	for(j=1;j<i;j++){
	    	if(i%j==0)   /*判断j是否为i的因子*/
	    		sum+=j;
	    }
	    if(sum==i)  /*判断因子的和是否和原数相等*/
	    	printf("%d is a perfect number!\n",i);
    }
    return 0;
}

##18、输入两个数a,b。如果两个数同为奇数则输出它们的差,否则输出它们的和。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int a,b;//输入的两个数 
	int sum=0;//两个数的和或差的初始值
	scanf("%d,%d",&a,&b);
	if(a%2!=0&&b%2!=0)
	//	printf("%d",sum=a-b);
		sum+=(a-b);
	else
		sum+=(a+b);
	printf("%d",sum); 
	return 0;
}

##19、输入一个字符,如果是小写转换成大写,如果是大写直接输出

#include <stdio.h>
int main(int argc, char *argv[])
{
	char c,d;
	c=getchar();
	if(c>='A'&&c<='Z')
		printf("%c",c);
	else{
		c-=32;
		printf("%c",c);
	}
	return 0;
}

##20、编程输出100以内所有被3整除,并能被5整除余3,被7整除余1的两位数

#include <stdio.h>
int main(int argc, char *argv[])
{
	int i;
	for(i=10;i<100;i++){
		if(i%3==0&&i%5==3&&i%7==1)
			printf("%d\n",i);
	}
	return 0;
}

##21、编写程序,求出[1,1000]范围内能被3或13整除,但不能同时被3和13整除的总个数,返回这些数的个数。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int i,sum=0;
	for(i=1;i<=1000;i++){
		if((i%3==0||i%13==0)&&!(i%3==0&&i%13==0)){
			printf("%d  ",i);//验证数字用
			sum+=1;
		}		
	}
	printf("%d\n",sum);
	return 0;
}

##22、从键盘上输入20个正整数(或浮点数),输出偶数的个数及偶数和(或浮点数总和)

#include <stdio.h>
int main(int argc, char *argv[])
{
	int i,a,sum=0,num=0;//num为偶数个数,sum为偶数和 
	for(i=1;i<=20;i++){
		scanf("%d",&a);
		if(a%2==0){
			//printf("%d\n",a);
			num+=1;
			sum+=a;
		}		
	}
	printf("num=%d\n",num);
	printf("sum=%d\n",sum);
	return 0;
}

##23、编程实现从键盘上反复输入10个整数,判断其是整数还是负数,如果是正数则累加求和。最后输出累加和值。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int i,a,sum=0;
	for(i=1;i<=10;i++){
		scanf("%d",&a);
		if(a>0){
			sum+=a;
		}		
	}
	printf("sum=%d\n",sum);
	return 0;
}

##24、编写一个函数,功能是计算2345的各位数字的平方和

#include <stdio.h>
int a,b,c,d,pingfang;
void fun(int x){
	a=x/1000%10;
	b=x/100%10;
	c=x/10%10;
	d=x/1%10;
	pingfang=a*a+b*b+c*c+d*d;
	printf("%d",pingfang);
}
int main(int argc, char *argv[])
{
	fun(2345);
	return 0;
}

##25、统计100到10000之间有多少和这样的整数,其各位数字之和能被7整除。

int a,b,c,d,e,sum;
int fun(int x){
	a=x/10000%10;
	b=x/1000%10;
	c=x/100%10;
	d=x/10%10;
	e=x/1%10;
	sum=a+b+c+d+e;
}
int main(int argc, char *argv[])
{
	int i,sum_number=0;
	for(i=100;i<=10000;i++){
		if(fun(i)%7==0)
			sum_number+=1;
	}
	printf("%d\n",sum_number);
	return 0;
}

##26、编程找出100到x(x<=999)之间各位上的数字之和为15的所有整数,并在屏幕输出。

#include <stdio.h>
int a,b,c,sum;
int fun(int x){
	a=x/100%10;
	b=x/10%10;
	c=x/1%10;
	sum=a+b+c;
}
int main(int argc, char *argv[])
{
	int i,sum_number=0;
	for(i=100;i<=999;i++){
		if(fun(i)==15){
			sum_number+=1;
			printf("%d\n",i);
		}			
	}
	printf("%d\n",sum_number);
	return 0;
}

##27、请编写程序计算并输出下列多项式的和:键盘输入n值
(当前程序逻辑应该没有问题,就是在Cfree编辑器里不执行)

​ 1-1/2×2-2/3×3-3/4×4-……-(n-1)/n×n

#include <stdio.h>
int main(int argc, char *argv[])
{
	int n;
	float i,sum=1.0;
	printf("请输入正整数n:");
	scanf("%d\n",&n); 
	if(n<=0)
		printf("输入错误,请输入正整数!");
	else if(n==1)
		printf("sum=%f",sum);
	else{
		for(i=2;i<=n;i++)
			sum-=((i-1)/(i*i));
		printf("sum=%f",sum);
	} 
	return 0;
}

##28、编程求序列2/1,3/2,5/3,8/5,13/8……前20项和。

#include <stdio.h>
int main(int argc, char *argv[])
{
	float a[20]={2.0,3.0};
	float b[20]={1.0,2.0};
	int i;
	float sum=0;
	for(i=0;i<20;i++){
		if(i>=2){
			a[i]=a[i-1]+a[i-2];
			b[i]=a[i-1];
		}
		sum+=a[i]/b[i];
	}
	printf("%f",sum);
	return 0;
}

##29、下面程序的功能是计算1-1/2+1/3-1/4…+1/99-1/100+…的值,直到最后一项的绝对值小于10的-6次幂为止(1/1000000)。

#include <stdio.h>
int main(int argc, char *argv[])
{
	float num=0,sum=0;
	int i;
	for(i=1;i<=1000000;i++){
		if(i%2==0)
			num=-i;
		else
			num=i;
		sum+=1/num; 
	}
	printf("sum=%f",sum);
	return 0;
}

##30、输入10个数存于数组,将其中最小数与第一个数交换,将最大数与最后一个数交换。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int a[10],i,min,max;
	for(i=0;i<10;i++){
		scanf("%d",&a[i]);//将10个数存入数组 
	}
	for(i=0;i<9;i++){
		if(a[i]>a[i+1]){
			max=a[i];
			//min=a[i+1];
			a[i]=a[i+1];
			a[i+1]=max;
		}
	} 
	for(i=9;i>0;i--){
		if(a[i]>a[i+1]){
			//max=a[i];
			min=a[i+1];
			a[i]=min;
			a[i+1]=a[i];
		}
	} 
	for(i=0;i<10;i++){
		printf("%d  ",a[i]);//将10个数存入数组 
	}
	return 0;
}

##31、以下程序的功能是:输入10个学生的成绩,统计学生的平均分,并将成绩小于平均分的成绩输出。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int score[10],i;
	float average=0,sum=0;
	for(i=0;i<10;i++){
		scanf("%d",&score[i]);
		sum+=score[i];
	}
	average=sum/10;
	for(i=0;i<10;i++)
		if(score[i]<average)
			printf("第%d个学生的成绩小于平均成绩,成绩为%d\n",i+1,score[i]);
	return 0;
}

##32、定义一个整型数组a[10],输入各个元素的值,输出元素值为奇数并且下标也为奇数的元素的和。

#include <stdio.h>
int main(int argc, char *argv[])
{
	int a[10],i,sum=0;
	for(i=0;i<10;i++){
		scanf("%d",&a[i]);
		if(i%2==1&&a[i]%2==1)
			sum+=a[i];
	}
	printf("sum=%d",sum);
	return 0;
}

##33、编写函数将数组s1中字符串中的小写英文字母放入数组s2中

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
	char s1[100],s2[50];
	int i=0,j=0;
	gets(s1);
	gets(s2);
	while(s1[i]!='\0'){
		if(s1[i]>='a'&&s1[i]<='z'){
			s2[j]=s1[i];
			j++;
		}
		i++;
	}
	s2[j]='\0';
	puts(s2);
	return 0;
}

标签:include,int,sum,C语言,num,专升本,printf,习题,main
来源: https://blog.csdn.net/qq_45966405/article/details/116373969

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有