【浙江大学C小程week2整理】

本文介绍了C语言中的常量与变量概念,强调了全局变量、静态变量和局部变量的初始化区别。此外,讲解了C语言的基本数据类型,如char、int、float和double,并概述了运算符的优先级。通过分析好题错题,强调了赋值表达式的正确使用,以及格式匹配在输入输出中的重要性。最后,提供了若干选择题、填空题以检验读者对C语言的理解。

本周主要知识点

常量和变量

在C程序运行过程中,其值不能被改变的量称为常量,其值可以改变的量称为变量。

易错:变量赋初值问题
在C语言中,有以下情况下变量没有赋初值系统会默认赋初值:

  • 1.全局变量:全局变量在整个程序中都是可用的,并且在程序启动时自动赋值为0。
  • 2.静态变量:静态变量只在它所在的函数或代码块中可用,并且在程序启动时自动赋值为0。

而局部变量并没有默认初值。因此,在使用局部变量之前,必须显式地给它赋值。

C语言中基本数据类型

  • 字符型(char):字符型变量用于存储单个字符。
  • 整型(int):整型变量用于存储整数值。
  • 浮点型(float):浮点型变量用于存储单精度浮点数。
  • 双精度浮点型(double):双精度浮点型变量用于存储双精度浮点数。

C语言中运算符的优先级

  • 一元运算符:++、–、sizeof、&、*、+、-、~、!
  • 乘法、除法、取模运算符:*、/、%
  • 加法、减法运算符:+、-
  • 左移、右移运算符:<<、>>
  • 关系运算符:<、<=、>、>=、==、!=
  • 按位与运算符:&
  • 按位异或运算符:^
  • 按位或运算符:|
  • 逻辑与运算符:&&
  • 逻辑或运算符:||
  • 条件运算符:? :
  • 赋值运算符:=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=
  • 逗号运算符:,

好题错题整理

判断题

  • 1.若变量定义为int x, y; ,则x + y = 22是符合C语言语法的表达式。(×需要左值作为赋值左操作数)
  • 2.在C语言中,单目运算符需要2个操作数。(×)
  • 3.为了检查以下if-else语句的两个分支是否正确,至少需要设计3组测试用例,即x的取值至少有三组(小于15的数、15和大于15的数)。
    if (x <= 15){ 
     y = 4 * x / 3;
     } else{ 
     y = 2.5 * x - 10.5;
     }
    
    (√)
  • 4.执行以下程序段,输入20,输出20.00。
    double x;   
    scanf("%f", &x);  
    printf("%.2f", x);   
    
    (×格式符与变量类型不匹配)
  • 5.for语句的一般形式如下,若表达式2的值为“真”,则先执行循环体语句,再计算表达式3,然后继续循环。
    for (表达式1; 表达式2; 表达式3) 
    循环体语句  
    
    (√)
  • 6.循环体如包括有一个以上的语句,则必须用一对大括号{}括起来,组成复合语句,复合语句在语法上被认为是一条语句。(√)
  • 7.执行以下程序段,sum的值是55。
    int i, sum;
    for (i = 1; i <= 10; i++){
     sum = sum + i;
     }
    
    (×变量没有赋初值)
  • 8.执行以下程序段,sum的值是0.75。
    int i;
    double sum;
    sum = 0;
    for (i = 2; i <= 4; i = i + 2){
    sum = sum + 1/i;
    }
    
    (×C语言里面的/代表整除)

单选题

  • 1.下列运算符中,优先级最低的是( )。
    A.* B.= C.== D.%
    选C
  • 2.对C语言程序,以下说法正确的是( )。
    A.main 函数是主函数,一定要写在最前面。
    B.所有的自定义函数,都必须先声明。
    C.程序总是从main 函数开始执行的。
    D.程序中只能调用库函数,不能自己定义函数。
    选C

填空题

  • 1.执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
    int fahr;
    double celsius;   
    for (fahr = 91 ; fahr <= 100; fahr++)   
    celsius = 5.0 * (fahr - 32) / 9.0;         /* 语句① */
    printf("%4d%6.1f\n", fahr, celsius);       /* 语句② */
    
    语句①执行了_____次
    语句②执行了_____次
    答案:10 1(对于循环,如果不加大括号,只对下面一句有效)
  • 2.执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
    int fahr;
    double celsius;   
    for (fahr = 121 ; fahr <= 125; fahr++) ;  
    celsius = 5.0 * (fahr - 32) / 9.0;         /* 语句① */
    printf("%4d%6.1f\n", fahr, celsius);       /* 语句② */
    
    语句①执行了_____次
    语句②执行了_____次
    答案:1 1(for循环后面直接用 ; 终结了语句)
  • 3.在算术、赋值和关系运算符中,按照优先级从高到低的顺序排列为:算术运算符、关系运算符、赋值运算符。(请注意,直接填文字,前后不要加空格等任何其他字符。)

程序填空题

注意关系表达式中要用==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值