C/C++教程

备考2021辽宁专升本时做的C语言程序设计题

本文主要是介绍备考2021辽宁专升本时做的C语言程序设计题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
每日更新

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

输入的c值 输出的a值
$ 8.26
7 13.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语句完成显示汇率程序设计。

输入字符 输出数据
u 826.72
e 1182.30
j 15.13
h 109.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=3x²-y²    x>0且y>0
  4x³+y³    x<0且y<0
  0         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语句完成等级评定程序设计。

输入数据 输出等级
300 A
200-299 B
100-199 C
0-99 D
/*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的值。

\[sum=1- \frac 23+\frac 45-\frac 67+……-{94\over 95}+{96\over 97}-{98\over 99}+{100\over 101} \]

#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;
}
这篇关于备考2021辽宁专升本时做的C语言程序设计题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!