拾光博客 | 每天进步一点点

C语言复习题集,适合刚刚学习C语言的人学习

//输入一个字符串,计算从M的位置输出字符串,
//例如字符串 abcdDF 输入M的值为2 则输出DFabc

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void change(char *str,int n)
{
    char *p=str;
    int len=strlen(str)-1;
    int count=len-n+1;
    if(len<n)
    {
        printf("输入的位置超出了字符串的长度!\n");
        exit(0);
    }
    else
    {
        char str2[50];
        int i,j;
        for(i=count;i<=len;++i)
            str2[i-count]=p[i];
        str2[n]='\0';
        for(j=n;j<=len;++j)
            str2[j]=p[j-n];
        str2[len+1]='\0';
            printf("%s\n",str2);
    }
}
main()
{
    char str[50];
    int num;
    printf("输入字符串:\n");
    gets(str);
    printf("输入要移位的最后m个字符 :\n");
    scanf("%d",&num);
    change(str,num);
}

输入一个四位数的整数,先求出每个位数上的数值,然后用每个位数上的数值组成和原数据逆序的一个新的整数。
代码:

#include <stdio.h>
#include <math.h>
main()
{
    int num,num1;
    int a,b,c,d;
    scanf("%d",&num);
    a=num%10;
    b=num/10%10;
    c=num/100%10;
    d=num/1000%10;
    printf("\t%d\t%d\t%d\t%d\t\n",a,b,c,d); 
    num1=a*1000+b*100+c*10+d;
    printf("\t%d\t%d\n",num,num1);
 }
2、输入一个矩形的长和宽,求出周长及面积,并将结果小数点后保留2位输出。
代码; #include <stdio.h>
#include <math.h>
main()
{
    float a,b,c,d;
    scanf("%f%f",&a,&b);
    c=(a+b)*2;
    d=a*b;
    printf("\t周长%.2f\t面积%.2f\n",c,d); 
}

从键盘输入一个4*3整型数组赋值,找出其中的最小值,并将该值和其行号与列号输出出来。
代码:

#include <stdio.h>
main()
{
    int a[3][4],i,j,min;
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        printf("%d\t",a[i][j]);
        printf("\n");
    }
    min=a[0][0];
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        if(a[i][j]<min)
        min=a[i][j];
    }
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    if(a[i][j]==min)
    printf("最小值%d\t行号%d\t列标%d",min,i+1,j+1);
}

定义一个结构体,对学生的学号、姓名和计算机成绩进行存储,并输入5名学生的信息,并按成绩升序进行排列,输出排序后的学号、成绩和平均分。(使用结构体数组;排序)

#include <stdio.h> 
#include <stdlib.h> 
#define STU_NUM 5        /*宏定义学生的数量*/ 
 /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/ 
struct student
{ 
    char stu_id[20];             /*学生学号;*/ 
    float score[3];             /*三门课成绩;*/ 
    float total;                 /*总成绩;*/ 
    float aver;                     /*平均成绩;*/ 
}; 

/*排序用一个函数来实现*/ 
void SortScore(student *stu,int n) 
{ 
    student stud; 
    for(int i=0;i<n-1;i++) 
    for(int j=i+1;j<n;j++) 
    { 
        if(stu[i].total<stu[j].total) 
        { 
            stud=stu[i]; 
            stu[i]=stu[j]; 
            stu[j]=stud; 
        } 
    }     
} 
int main( ) 
{ 
    student stu[STU_NUM];     /*创建结构体数组,分别用来保存相关信息。*/ 
/*输入学生的相关信息*/ 
for(int i=0;i<STU_NUM;i++) 
{ 
    printf("请输入第%d个学生的学号:",i+1); 
    scanf("%s",&stu[i].stu_id); 
    printf("输入第%d个学生的数学成绩:",i+1); 
    scanf("%f",&stu[i].score[0]); 
    printf("输入第%d个学生的英语成绩:",i+1); 
    scanf("%f",&stu[i].score[1]); 
    printf("输入第%d个学生的计算机成绩:",i+1); 
    scanf("%f",&stu[i].score[2]); 
    stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];         /*计算机总分*/ 
    stu[i].aver = stu[i].total/3;                     /*计算平均分*/ 
} 
printf("\n"); 

SortScore(stu,STU_NUM);/*调用排序函数*/ 

/*输出排序后的各学生的成绩*/ 
for(int i=0;i<STU_NUM;i++) 
{ 
    printf("序号: %d\t",i); 
    printf("学号:%s\t",stu[i].stu_id); 
    printf("数学:%.2f\t",stu[i].score[0]); 
    printf("英语:%.2f\t",stu[i].score[1]); 
    printf("计算机:%.2f\t",stu[i].score[2]); 
    printf("平均成绩:%.2f\t",stu[i].aver); 
    printf("总分:%.2f\t",stu[i].total); 
    printf("\n\n"); 
} 
return 0; 
}

完成小型计算器

#include <stdio.h>
main()
{    int i,a[100],s=0,n,t=0;
    do
    {    scanf("%d",&n);
        if(n!=0)t++;        
    }while(n!=0);
for(i=0;i<t;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{  s=s+a[i];
}
printf("%d",s);
 } 
欢迎您的转载:拾光博客 | 每天进步一点点 » C语言复习题集,适合刚刚学习C语言的人学习

评论 1

  • 昵称*
  • 邮箱*
  • 网址
  1. good

    lhz (2019-10-23) 回复