首页 > 其他分享 >实验1c语言开发环境使用和数据类型,运算符和表达式

实验1c语言开发环境使用和数据类型,运算符和表达式

时间:2022-10-12 20:35:06浏览次数:49  
标签:main return int scanf 数据类型 运算符 1c printf include

1.试验任务1

(1)在垂直方向上打印两个字符小人的源代码,以及运行结果截图

 

\\在垂直方向上打印两个字符小人

#include<stdio.h>
int main()
{
    printf(" o\n");
    printf("<H>\n");
    printf("I I\n");

    printf("\n\n");

    printf(" o\n");
    printf("<H>\n");
    printf("I I\n");


    return 0;
}

 

 

 

 

(2)在水平方向上打印两个字符小人的程序源代码,以及运行结果截图

//在水平方向上打印出两个字符小人


#include<stdio.h>
int main()
{
    printf(" o        o\n");
    printf("<H>      <H>\n");
    printf("I I      I I\n");

    return 0;
}

2.试验任务2


(1)

 

//在c开发环境下,编写,编译,运行一个简单的算术运算程序

#include<stdio.h>
#include<math.h>

int main()
{
    double x,ans;

    scanf("%lf",&x);  //注意:对于使用scanf()函数从键盘输入一个值给定义好的变量而言,格式控制符必须用"%lf"而不能用"%f",但是用printf()输出该变量时格式控制符可以用"%f";
    ans = pow(x,365);
    printf("%.2f的365次方:%.2f\n",x,ans);

    return 0;
}

 

(2)

#include<stdio.h>
#include<math.h>

int main()
{
    double x,ans;
    while(scanf("%lf",&x) != EOF) 


    //EOF表示文件结束符,在while循环中以它作为文件结束标志
    //对于scanf("%lf",&x) != EOF 式子的理解,若x被成功读入那么该表达式的结果为1,若x没有被读入那么该表达式的值为0,如果遇到错误或者文件结尾或者ctrl + z那么该表达式的值为EOF
    //"ctrl + z"用于结束while循环,line7这样的写法常常用于多组数据的输入


    {
        ans = pow(x,365);
        printf("%.2f的365次方:%.2f\n",x,ans);
        printf("%n");
    }
    return 0;

}

(3)编写程序实现华氏温度和摄氏温度的转换

 

//摄氏温度和华氏温度的转换
#include<stdio.h>
int main()
{
    double F,C;
    while(scanf("%lf",&C) != EOF)
    {
        F = 9 * C / 5 + 32;
        printf("摄氏温度c=%.2f时,华氏度f=%.2f\n",C,F);
    }
    return 0;
}

 

运行结果截图

 

 

3.试验任务3

(1)编写c程序利用等比数列求和公式求等比数列的前n项和

 

//用等比数列求和公式计算以下等比数列求和
#include<stdio.h>
#include<math.h>

int main()
{
    unsigned a1 = 1,q = 2,n,sum;//将变量定义为int类型运行得不到正确结果,这是因为在计算机中int类型占4个字节,而运行结果超出了int类型可以表示的数据范围,把变量定义为unsigned,和double类型就可以运行得到正确结果
    //double sum;

    scanf("%d",&n);

    sum = a1 * (1 - pow(q,n)) / (1 - q);

    printf("n=%u,sum=%u",n,sum);

    return 0;
}

 

 

此程序将变量定义为int类型输入32时运行得不到正确结果,这是因为在计算机中int类型占4个字节,而运行结果超出了int类型可以表示的数据范围,把变量定义为unsigned,和double类型就可以运行得到正确结果,当输入64时即使把变量定义为double和unsigned也得不到正确结果,原因和将变量定义为int类型类似

 

4.试验任务4

(1)改正程序中的语法错误学会正确的从键盘输入数据给scanf()函数

//改正程序中的语法错误

#include<stdio.h> 
int main() 
{
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    scanf("%d%d%d",&a1,&a2,&a3);
    printf("%d,%d,%d\n",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);
    printf("%f,%lf\n",x,y);
    return 0;
}

运行结果截图

注意事项:对于从键盘输入字符型的数据scanf()函数会把回车,空格等字符当作有效字符处理,所以从键盘输入字符型数据给scanf()函数时需要特别注意字符之间不能有空格或者其它符号必须连续输入

5.试验任务5

(1)学会正确的从键盘输入数据给scanf()函数,尤其注意字符型数据和整形数据的混合输入

#include <stdio.h> 
int main() 
{ 
    int age1, age2; 
    char gender1, gender2; 


    scanf("%d%c%d%c", &age1, &gender1, &age2, &gender2); 

    printf("age1 = %d, gender1 = %c\n", age1, gender1); 
    printf("age2 = %d, gender2 = %c\n", age2, gender2); 

    
    return 0; 
}

运行结果截图

6.试验任务6

补全代码

 

//补全程序

#include <stdio.h> 
int main() 
{ 
    char ans1, ans2; 

    printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) : "); 

    ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 
    
    getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。 

    printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); 

    ans2 = getchar(); 
    if ((ans1 == 'y' || ans1 == 'Y') && (ans2 == 'y' || ans2 == 'Y')) // 待补足,判断用户回答ans1和ans2都是小写y或大写Y 
        printf("\n罗马不是一天建成的, 继续保持哦:)\n"); 
    else
        printf("\n罗马不是一天毁灭的, 我们来建设吧\n");

    return 0;
}

 注意:对于从键盘输入字符型的数据scanf()函数和getchar()函数都会把回车,空格等字符当作有效字符处理,所以一般程序中会多加一个getchar()函数用于把回车吸收掉使得程序运行结果是我们所期望的

7.试验任务7

(1)编译运行测试程序,实现人机互动

// 测试你是哪一类学习者 

#include <stdio.h> 
int main() 
{ 
    int answer; 
    char words[5000];

    printf("网课学习让一些人欢喜一些人忧.\n"); 
    printf("1. 作为喜欢自学且自律的人,觉得这样很好. 有网络,自主学习,很ok.\n"); 
    printf("2. 不喜,不喜,很不喜. 眼睛快瞎了. 脑壳有点卡...\n"); 
    printf("3. 中间派. 不知道. 说不清.\n"); 
    printf("4. 其它...\n"); 
    printf("你的选择: ");

    scanf("%d", &answer);

    if(answer == 4) 
    { 
        printf("请补充说明你的想法: \n"); 
        getchar(); // 这行代码为什么放在这里,如果去掉了,会怎么样? 
        gets(words); // 从键盘输入你的想法,输完后,敲回车键 
    }
    printf("\n"); 
    printf("当遇到问题时, 你会选择:\n"); 
    printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破.\n"); 
    printf("2. 遇到问题, 不高兴。然后,...,没有了.\n"); 
    printf("3. 其它...\n"); 
    printf("你的选择: "); 
    scanf("%d", &answer); 
    if(answer == 1) 
        printf(":)\n"); 
    else if(answer == 2) 
        printf("这样不能解决问题啊...我们选择1好不好:)\n"); 
    else if(answer == 3) 
    { 
        printf("请补充说明你的想法: \n"); 
        getchar(); // 这行代码为什么放在这里,如果去掉了,会怎么样? 
        gets(words); // 从键盘输入你的想法,输完后,敲回车键 
    }
    
    return 0;
}

运行结果截图

 

标签:main,return,int,scanf,数据类型,运算符,1c,printf,include
From: https://www.cnblogs.com/mli-littlewith/p/16785845.html

相关文章

  • Java的基本数据类型
    Java的基本数据类型类型的转换类型转换主要分为强制类型转换以及自动转换数据类型的精密度由高到低必须使用强制类型转换精密度排序如下(由低到高)xxxxxxxxxx......
  • python基础--简单数据类型预览
    为了适应更多的使用场景,将数据划分为多种类型,每种类型都有各自的特点和使用场景,帮助计算机高效的处理和展示数据。(比如数字用于数学运算、字符串用于信息传递、页面文字展......
  • Redis 的快速介绍及其基本数据类型和操作
    Redis简介​​Redis​​是一个主要由开发者SalvatoreSanfilippo(Antirez)开发的开源内存数据结构存储器,用于改进其网站的可伸缩性,可以用作数据库、缓存和消息代理等,可以在......
  • 把sqlalchemy对象转化成json数据类型
    把sqlalchemy对象转化成json数据类型defto_json_all(msg:list):data=[]iftype(msg)==list:foriinrange(len(msg)):temp_dict......
  • 数据类型以及考试题讲解
    publicclassDemo02{publicstaticvoidmain(String[]args){//整数拓展进制二进制0b十进制八进制0十六进制0xint......
  • 基本数据类型:整数浮点数布尔值字符
    publicclassDemo02{publicstaticvoidmain(String[]args){//整数拓展进制二进制0b十进制八进制0十六进制0xinti1=12;......
  • java基本数据类型
    packageNumber;publicclassFrist{staticStrings1="你好";staticfinaldoublePI=3.14;//intm=123;publicstaticvoidmain(String[]......
  • python 不可变数据类型--字符串
    不可变数据类型:字符串是不可变数据类型,但一些性质类似列表(每个位置都有索引),但因为是不可变数据类型,字符串生成了就不能发生改变(不能str[0]='d'),有些字符串方法‘改变了’,......
  • 【C语言】赋值操作符、单目操作符、自增自减运算符。
    ......
  • oracle 21c expdp报错误UDE-31623
     环境:OS:Centos7DB:21C 导出报错expdpc##goldengate/goldengate@tnspdb1tables=hxl.tb_testdumpfile=tb_test.dmpFLASHBACK_SCN=4990304parallel=5direct......