C语言习题~day2

简介: C语言习题

1.下面那个不是转义字符?

A.'\n'

B.'\060'

C.'\q'

D.'\b'

答案解析:

A:'\n' 转义字符,代表换行

B:'\060' 转义字符,060八进制数据,十进制为48,表示ASCII码为48的'0'

C:'\q' 什么都不是

D:'\b' 转义字符,表示退格

因此:选择C

2.下面程序的结果是:( )

#include <stdio.h>
#include <string.h>
int main()
{
    printf("%d\n", strlen("c:\test\121"));
    return 0;
}

A.7

B.8

C.9

D.10

答案解析:


strlen:获取字符串的有效长度,不包括'\0'


"c:\test\121": 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符'Q' ,故上述字符串实际为:"c:  estQ",只有7个有效字符


因此:选择A

3.关于注释说法不正确的是?

A.注释是用来解释代码的,在代码中是适当的加上注释有利于代码的阅读和多人协作

B.注释基本没啥用,主要给自己看的

C.注释是给程序员看的,编译器在预处理阶段就会删除注释的

D.注释有C++注释风格,有C语言注释风格,推荐C++注释风格

注释还是非常有用的,要学会写注释,能写注释,写好注释对工程中多人协作很关键的,写注释是一个程序员的好习惯。

4.关于C语言布尔类型错误的是?

布尔类型是C99标准中引入的;


在早期的C语言标准(如ANSI C和C89)中,没有明确定义布尔类型。通常,程序员使用整数类型(如int)来表示布尔值,其中0表示假(false),非零值表示真(true)。


然而,在C99标准中引入了新的布尔类型(stdbool.h头文件),定义了bool类型和true/false常量。布尔类型只有两个取值:true和false,用于表示真和假。

5.下面哪个不是C语言内置的数据类型:

A.char

B.double

C.struct Stu

D.short

C语言中内置类型包括:

 char    //字符数据类型
  short    //短整型
  int     //整形
  long    //长整型
  long long  //更长的整形
  float    //单精度浮点数
  double   //双精度浮点数

struct关键字是用户用来自定义的结构体类型,不属于C语言的内置类型。

 因此:选择C

6.下面代码输出的结果是:( )

#include <stdio.h>
int num = 10;
int main()
{
    int num = 1;
    printf("num = %d\n", num);
  return 0; 
}

A. 程序有问题,不能编译

B.输出1

C.输出10

D.输出0

答案解析:


本题主要考察变量的访问规则,C语言中:


 1. 不允许在同一个作用域中定义多个相同名称的变量


  比如:在一个班级中存在两个名字相同的学生王帅,当老师点王帅回答问题时,那个回答就冲突了


 2. 允许在不同的作用域中定义多个相同名称的变量


  比如:两个班级中各有一个王帅,老师在A班中点王帅回答问题,不会有任何歧义


 3. 不同作用域中定义的变量,在访问时采用就近原则。


  比如:你们村有一个小伙伴名字叫刘德华,那你在你们村喊刘德华时,你们村的刘德华就会跑过来响应你,


     而我们世界级别人见人爱的天王他不会理你,因为距离远听不见,但是两个刘德华可以同时存在这个      世界上,只要不在一个村,就不会冲突。


根据以上描述可知,对于以上代码:


 1. 全局作用域中的num和main中的num可以同时存在,不会冲突,因为不是同一个作用域


 2. 在main函数中访问num时,采用就近原则,因此访问的是main中的num,相当于将全局作用域中的num屏蔽了


A:错误:因为两个num不在同一个作用域中,可以通过编译


B:正确,main中访问的是main中的num,而main函数中的num是1,因此打印1


C:错误,应该访问main函数中的num,而不是全局作用域中的num


D:错误,凑选择的


因此:选择B

7.关于C语言变量说法错误的是?

A.变量是用来描述生活中经常发生变化的值

B.变量可以分为局部变量和全局变量

C.局部变量是放在内存的静态区的,全局变量是放在内存的栈区

D.当全局变量和局部变量名字相同的情况,且都可以使用的时候,局部变量优先

局部变量是放在内存的栈区的,全局变量是放在内存的静态区

8.


描述


给定两个整数a和b (0 < a,b < 10,000),计算a除以b的整数商和余数。


输入描述:


一行,包括两个整数a和b,依次为被除数和除数(不为零),中间用空格隔开。


输出描述:


一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。

#include <stdio.h>
 
int main()
{
    int a = 0;
    int b =0;
    //a=15 , b=2;
    
    scanf("%d%d" ,&a,&b);
    int s = a/b;
    int c = a%b;
    printf("%d %d", s,c);
    return 0;
 
}


目录
相关文章
TU^
|
6月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
31 1
|
4月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
96 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
TU^
|
6月前
|
编译器 C语言
C语言习题~day31
C语言习题~day31
TU^
24 2
TU^
|
6月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
43 1
TU^
|
6月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
35 1
TU^
|
6月前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
31 1
TU^
|
6月前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
19 1
TU^
|
6月前
|
C语言
C语言习题~day30
C语言习题~day30
TU^
24 1
TU^
|
6月前
|
自然语言处理 C语言 C++
C语言习题~day29
C语言习题~day29
TU^
25 1
TU^
|
6月前
|
存储 C语言
C语言习题~day28
C语言习题~day28
TU^
22 1