c语言考试代码

发布时间:2024年01月08日

文章目录

“%”:格式化字符串的起始标志。
“0”:表示使用零来填充输出字段的宽度。
“4”:表示输出字段的宽度为4个字符,如果输出的十六进制数不足4位,则在左边用零进行填充。
“x”:表示以十六进制的形式输出变量的值。

十六进制计算

#include <stdio.h>
struct w
{
	char low;
	char high;
 };
union u
{
	struct w byte;
	short word;
} uw;
int main()
{
	int result;
	uw.word=0x1234;
	printf("word value:%04x\n",uw.word);
	printf("high byte:%02x\n",uw.byte.high);
	printf("low byte:%02x\n",uw.byte.low);
	uw.byte.low=0x74;
	printf("word value:%04x\n",uw.word);
	result=uw.word+0x2a34;
	printf("the result:%04x\n",result);
}

**s1竟然会随着s2=s2+2的变化而变化。

#include <stdio.h>
int main()
{
	char *s2="I love China!",**s1=&s2;
	char *s3,c,*s4="w";
	s3=&c;
	*s3='H';
	s2=s2+2;
	printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);
 } 
 //输出:love China!     H       w       l 

题目:百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马1担,编程计算所有可能的驮法?
输入

输出
hb=2,hm=30,hl=68
hb=5,hm=25,hl=70
hb=8,hm=20,hl=72
hb=11,hm=15,hl=74
hb=14,hm=10,hl=76
hb=17,hm=5,hl=78
hb=20,hm=0,hl=80
n=7

#include <stdio.h>
int main() 
{
	int hb,hm,hl,n=0; //hb,hm,hl分别为大中小马驮的担数 
	for(hb=0;hb<=100;hb+=3) // 
	{
		for(hm=0;hm<=100;hm+=2) //
		{
			hl=100-hb-hm; //
			if(hb/3+hm/2+2*hl==100) //
			{
				n++;
				printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,hl*2);
			}
		} 
	}
	printf("n=%d\n",n);	 
}

用起泡法对输入的10个字符排序后按从小到大的次序输出


#define N 10
#include <stdio.h>
char str[N];
void main()
{
	int i,flag;
	for(flag=1;flag==1;)
	{
		scanf("%s",str);
		printf("%s",str);
		flag=0;
		printf("\n");
	}
	sort(str);
	for(i=0;i<N;i++)
	{
		printf("%c",str[i]);
	}
	printf("\n");
 } 
 sort(char str[N])
 {
 	int i,j;
 	char t;
 	for(j=1;j<N;j++)
 	{
 		for(i=0;i<10-j;i++)
 		{
 		  if(str[i]>str[i+1])
		   {
		   	t=str[i];
		   	str[i]=str[i+1];
		   	str[i+1]=t;
			}	
		 }
	 }
 }

求矩阵外边缘元素,该矩阵用一维数组表示。

#include <stdio.h>
add(int m,int n,int arr[]) //m行,n列
{
	int i,j,sum;
	for(i=0;i<m;i=i+m-1) //求第一行和最后一行的和
	{
		for(j=0;j<n;j++)
		{
			sum+=arr[i*n+j];
		}
	}
	for(j=0;j<n;j+=n-1) //第一列和最后一列
	{
		for(i=1;i<m-1;i++) //从第二行到最后一行的前一行
		{
			sum+=arr[i*n+j];
		}
	}
	return sum;
}
文件操作题

fread(&score[i], sizeof(float), 1, fp) != 1
表示从文件中读取一个 float 类型的数据,并将其存储到 score 数组的第 i 个位置上。如果成功读取了一个元素,则 fread() 返回值为1,条件判断结果为 false。如果读取失败或者已到达文件末尾,则 fread() 返回值不为1,条件判断结果为 true。
换句话说,这个条件判断用于检查读取文件是否成功。如果读取成功,继续读取下一个元素;如果读取失败或者到达文件末尾,将执行相应的错误处理逻辑。
feof(fp) 是一个文件操作函数,用于检查文件流 fp 的当前位置是否已经到达文件末尾(End-of-File)。

feof(fp) 函数返回一个非零值(true)表示文件流 fp 已经到达文件末尾;返回零(false)表示文件流 fp
还没有到达文件末尾。 在代码中的使用情景是判断 fread() 函数是否读取到了文件末尾。当 fread()
函数读取到文件末尾时,返回值不等于1,同时可以通过 feof(fp)
来进一步确认是否到达了文件末尾。如果返回值为非零值,表示已经到达文件末尾,可以根据需要进行相应的处理。

#include <stdio.h>

void load(float score[], int n) {
    FILE *fp;
    int i;
    if ((fp = fopen("202001170218.txt", "rb")) == NULL) {
        printf("cannot open infile\n");
        return;
    }
    for (i = 0; i < n; i++) {
        if (fread(&score[i], sizeof(float), 1, fp) != 1) {
            if (feof(fp)) {
                fclose(fp);
                return;
            }
            printf("file read error\n");
        }
    }
    fclose(fp);
}

void save(float score[], int n) {
    FILE *fp;
    int i;
    if ((fp = fopen("202001170218.txt", "wb")) == NULL) {
        printf("cannot open file\n");
        return;
    }
    for (i = 0; i < n; i++) {
        if (fwrite(&score[i], sizeof(float), 1, fp) != 1) {
            printf("file write error\n");
        }
    }
    fclose(fp);
}

void sort(float score[], int n) {
    int i, j, k;
    float t;
    for (i = 0; i < n - 1; i++) {
        k = i;
        for (j = i + 1; j < n; j++) {
            if (score[j] < score[k]) {
                k = j;
            }
        }
        t = score[k];
        score[k] = score[i];
        score[i] = t;
    }
}

int Fail(float score[], int n) {
    int i, k = 0;
    for (i = 0; i < n; i++) {
        if (score[i] < 60) {
            k++;
        }
    }
    return k;
}

int main() {
    int i;
    float score[10];
    for (i = 0; i < 10; i++) {
        scanf("%f", &score[i]);
    }
    save(score, 10);
    load(score, 10);
    sort(score, 10);
    printf("The Fail number is %d\n", Fail(score, 10));
    save(score, 10);
    
    return 0;
}

文章来源:https://blog.csdn.net/m0_51863209/article/details/133901832
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。