873真题2018C语言

2018
1写个函数,七个双精度浮点数,从大到小排序输出中值,

#include <stdio.h>
#include <string.h>
//对数组元素排序
void swap(int *pa,int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(*(pa+i)>*(pa+j))
              {
                t=*(pa+i);
                *(pa+i)=*(pa+j);
                *(pa+j)=t;
              }
        }
    }
}
int main()
{
    int i,n,a[100];
	//输入元素个数
    scanf("%d",&n);
	//输入每个元素的值
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    swap(a,n);
    for(i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}

2将函数转化成字符串,如1234转化成字符串1234.

#include <stdio.h>
 
char* Int2String(int num,char *str);//函数声明 
int main()
{
    int number1 = 123456;
    int number2 = -123456;
    char string[16] = {0};
    Int2String(number1,string);
    printf("数字:%d 转换后的字符串为:%s\n",number1,string);
    Int2String(number2,string);
    printf("数字:%d 转换后的字符串为:%s\n",number2,string);
    return 0;
}
 
char* Int2String(int num,char *str)//10进制 
{
    int i = 0;//指示填充str 
    if(num<0)//如果num为负数,将num变正 
    {
        num = -num;
        str[i++] = '-';
    } 
    //转换 
    do
    {
        str[i++] = num%10+48;//取num最低位 字符0~9的ASCII码是48~57;简单来说数字0+48=48,ASCII码对应字符'0' 
        num /= 10;//去掉最低位    
    }while(num);//num不为0继续循环
    
    str[i] = '\0';
    
    //确定开始调整的位置 
    int j = 0;
    if(str[0]=='-')//如果有负号,负号不用调整 
    {
        j = 1;//从第二位开始调整 
        ++i;//由于有负号,所以交换的对称轴也要后移1位 
    }
    //对称交换 
    for(;j<i/2;j++)
    {
        //对称交换两端的值 其实就是省下中间变量交换a+b的值:a=a+b;b=a-b;a=a-b; 
        str[j] = str[j] + str[i-1-j];
        str[i-1-j] = str[j] - str[i-1-j];
        str[j] = str[j] - str[i-1-j];
    } 
    
    return str;//返回转换后的值 
    }

3 将一个字符串中的小写字母个数输出,如 good123
Dooq 输出结果是7
程序设计

#include <stdio.h>
#include<string.h>
int main(){
	char str[20];
	gets(str);
	for (int i = 0; str[i] != '\0'; i++)
	{
		if (str[i] >= 'a'&&str[i] <= 'z'){
			printf("%c", str[i]);
		}
	}
	return 0;}


3*3矩阵
1计算对角线之和,画出流程图写出完整程序。
2输出行列式,划出流程图,写出完整程序。

#include <stdio.h>
#include<string.h>
int main(){
	int sum = 0;
	int a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
	
	
	for (int i = 0; i < 3; i++)
	{	for (int j = 0; j<3; j++)
		{
			printf("%4d", a[i][j]);
			if (i == j || i + j == 2)
				sum = sum + a[i][j];
		}
		printf("\n");
	}
	printf("%d\n", sum);

//第二题 输出数组
	for( i=0; i < 3; i++)
	{	for (int j = 0; j<3; j++)
		{
			printf("%4d", a[i][j]);
			 
		}
		printf("\n");

	}

	return 0;


}
上一篇:全球及中国布瑞加替尼片行业供需现状及发展前景预测报告(2022-2027)


下一篇:odoo-021 Char 字段搜索已设置有空值结果