程序设计理论题目整理(w4-w6)

本文介绍了C语言的基础知识,包括C语言的概述,如汇编语言和机器语言的关系,以及IDE的作用。接着,详细讲解了变量、常量、存储类别和类型转换,包括各种数据类型的表示和赋值。此外,还讨论了进制转换、浮点数表示及可能的溢出问题。内容涵盖了从基本的程序结构到更复杂的内存管理和数据操作概念。
摘要由CSDN通过智能技术生成


week 4 C语言概述

  1. 如果想和计算机直接交流,那么我们要用的语言是:
    A.英语
    B.C语言
    C.汇编语言
    D.机器语言

  2. 由于人的记忆力是有限的,所以人们又将机器指令翻译成了_______,这种人类可以理解的助记符。
    A.自然语言
    B.C语言
    C.汇编语言
    D.机器语言

  3. 由于汇编语言还是太过低级,不够抽象,于是人们又发明了_______,也就是我们这个课程要学习的内容。
    A.python语言
    B.C++语言
    C.Java语言
    D.C语言

  4. 什么是集成开发环境(IDE,Intergrated Development Environment)
    A.用于提供程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器和图形用户界面等工具
    B.用于学习程序开发,自动生成代码示例的高级人工智能教学程序
    C.用于网络学习,提供面向网络搜索引擎的自动编程工具,可以输入自然语言后自动提供备选程序
    D.用于离线开发,提供局域网内多人协作完成代码作业,咨询助教的教学软件

  5. 一般计算机教学上,学到的最经典的第一个程序,一般都是:
    A.输出hello world!
    B.计算a+b
    C.计算平均数
    D.输出!dlrow olleh

  6. C语言中,整份代码的入口是
    A.printf函数
    B.main函数
    C.#include<stdio.h>
    D.return 0;

  7. 通常一个函数结束的时候,会使用的语句是
    A.printf
    B.while
    C.return
    D.if

  8. C语言中,每一个代码语句的结束,都是要用什么符号来表示的?
    A. ;
    B. .
    C. }
    D. ,

  9. (不定项) 想要在C语言代码中写一个句子“这里是注释”,来方便自己理解而不用计算机执行,那么就可以用
    A./* 这里是注释 */
    B.{这里是注释}
    C.//这里是注释
    D.(这里是注释)

  10. printf是一个函数,它是在____ 头文件中定义的
    A.stdlib.h
    B.math.h
    C.string.h
    D.stdio.h


week 5 变量、常量、存储与类型转换

  1. 在C语言中,各类型所占字节数与数值范围分别是:
    常见基本变量类型

  2. (不定项) 在C语言中,以下哪些是有效的声明(declaration):
    A.int _hello_word, sysu12;
    B.char 12sysu, sysu;
    C.double extern, sysu@er;
    D.float sysu, SYSU;

  3. (不定项) 在C语言中,以下哪些是有效的赋值(assignment)语句(statement):
    int a, b, c, d, e;
    A.a=b+c*d=e;
    B.a=b=c*d+e;
    C.a=30;
    D.20=a;

  4. (不定项) 在C语言中,以下哪些整数常量(const)是合法的:
    A.123
    B.0xFFF
    C.0b101

    D.0678

  5. (不定项) 在C语言中,以下哪些浮点常量(const)是合法的:
    A. .1415
    B. 3.

    C. .e5
    D. 1e-5

  6. 在C语言中,若有以下代码段,则变量(variable)c, d的值分别为:

		#define a 1+2
		const int b=1+2;
		int c, d;
		c=2*a*2;
		d=2*b*2;

  A.12; 12
  B.12 ;6
  C.6; 12
  D.6; 6

  1. (不定项) 在C语言中,输出\(^o^)/的语句是:

  A.puts("\(\^o^)/");

  B.puts("\\(^o^)//");

  C.puts("\(^o^)\/");

  D.puts("\\(^o^)/");

  1. 以下代码的输出是:
int a=10, b=4;
double c, d;
c=(double)a/b;
d=(double)(a/b);
printf("%.2f %.2f", c, d);

  A. 2.50 2.50
  B. 2.50 2.00
  C. 2.00 2.50
  D. 2.00 2.00

  1. 以下代码的输出是:
int a=10, b=4;
double c=0.5, d, e;
d=a/b/c;
e=(double)a/b/c;
printf("%.2f %.2f", d, e);

  A.4.00 5.00
  B.4.00 4.00
  C.5.00 4.00
  D.5.00 5.00

  1. 在C语言中,以下哪个关键字可以用于引用其他文件中已定义的变量或函数:
    A.auto
    B.static
    C.extern
    D.register

  2. 以下哪个不是C语言的基本数据类型?
    A.int
    B.float
    C.string
    D.double

  3. 在C语言中,以下说法不正确的是:
    A.变量定义时给变量分配存储空间
    B.使用extern修饰的变量声明时,引用已有的变量,不分配存储空间
    C.变量只能有一次定义
    D.变量只能有一次声明

  4. 下面程序的运行结果为:

#include<stdio.h>
int main() {
  const int a = 3;
  a = 5;
  printf("%d", a);
  return 0;
}

  A. 3
  B. 5
  C. 编译错误(Compile error)
  D. 运行时错误(Runtime error)

  1. 在C语言中,关于数据类型char, short, int, long所占存储空间的大小关系,正确的是:
    A.char <= short <= long <= int
    B.short <= long <= char <= int
    C.short <= char <= int <= long
    D.char <= short <= int <= long

  2. 在C语言中,下面程序的输出为:

#include<stdio.h>

int main() {
  double pi = 3.14159;
  printf("%.2f %.5f", pi, pi);
  return 0;
}

  A. 3.1 3.1415
  B. 3.14 3.14159
  C. 3.14159 3.14159
  D. 3.14 3.14

  1. 在C语言中,输出一个long类型变量a,要求输出类型也是long,正确的是:
    A.printf("%hd", a);\\短整数
    B.printf("%d", a);\\整数
    C.printf("%ld", a);\\双精度浮点数
    D.printf("%lld", a);\\long long整数

  2. 在C语言中,有变量int a; float b;。输入这两个变量并输出他们的值,正确的语句是:
    A.

scanf("%d%f", a, b);
printf("%d %f", a, b);

  B.

scanf("%d%f", &a, &b);
printf("%d %f", &a, &b);

  C.

scanf("%d%f", &a, &b);
printf("%d %f", a, b);

  D.

scanf("%d%f", a, b);
printf("%d %f", &a, &b);
  1. (不定项) 在C语言中,以下哪些是合法的字符常量:
    A.‘\n’
    B.‘de’
    C.‘c’
    D.‘\t’

在 C语言中,字符常量有以下特点:

  1. 字符常量只能用单引号括起来,不能用双引号或其他括号.
  2. 字符常量只能是单个字符,不能是字符串。
  3. 字符可以是字符集中任意字符。
  1. (不定项) 在C语言中,以下哪些是合法的字符串常量:
    A."bdhf"
    B."cn"d"
    C."a\\d"
    D.""

字符串常量通常用双引号(" “)来表示,例如"hello world”。
在C语言中,字符串常量中可以包含任何字符,但有一些字符具有特殊含义,需要使用转义序列来表示:

  • \n表示换行符
  • \t表示制表符
  • "表示双引号
  • \\表示反斜杠

例如,下面是一个合法的字符串常量:
"hello\nworld"
这个字符串常量包含一个换行符,所以它会在输出时显示为两行。
需要注意的是,字符串常量在C语言中是以null字符(\0)结尾的,所以在定义字符串常量时不能包含null字符。

  1. (不定项) 在C语言中,输出一个单引号’,正确的语句是:
    A.printf("'");
    B.printf("\'");

    C.printf(""");
    D.printf("\"");

week 6 进制转换与二进制、浮点数的表示、内存与溢出

  1. (数与变量)阅读以下代码,判断哪个选项是正确输出:
#include <stdio.h>

int main() {
	// Add two int.
	unsigned int i,j;
	i = 1;
	j = 2;
    // details - https://zh.cppreference.com/w/c/io/fprintf
	printf("%u add %u equal %u\n",i,j,i+j);
	return 0;
}

  A. 1 add 2 equal 3
  B. 1 + 2 equal 3
  C. 1u add 2u equal 3u
  D. 1.0 add 2.0 equal 3.0

  1. (进制转换)计算(122) 2 =(说明:十进制数122用二进制怎么表示)
    A.1111011
    B.1111010
    C.1111110
    D.1011111

短除法

  1. (进制转换)计算(122) 3 =(说明:十进制数122用三进制怎么表示)
    A. 11222
    B. 11122
    C. 11112
    D. 10112

  2. (进制转换)计算(1011011) 2 = (____) 8
    A. 133
    B. 132
    C. 135
    D. 129

  3. (进制转换)计算(965) 10 = (____) 16
    A. a12
    B. 3b4
    C. 3c5
    D. 3c4

  4. (进制转换)计算(1011101010) 2 = (____) 16
    A. 2eb
    B. 2ec
    C. 2fa
    D. 2ea

  5. (进制转换)阅读下方代码,判断输出结果:

#include <stdio.h>

int main() {
	unsigned int i = 0xDAF;
	unsigned int j = 06057;
	printf("i in Decimal is %u\n", i);
	printf("j in Decimal is %u\n", j);
	return 0;
}

  A.
  i in Decimal is 3503
  j in Decimal is 3119
  B.
  i in Decimal is 3503
  j in Decimal is 06057
  C.
  i in Decimal is 3504
  j in Decimal is 3119
  D.
  i in Decimal is 3503
  j in Decimal is 13651

%u-无符号10进制整数
%X-16进制整数
%o-8进制整数

  1. (字节与字)阅读下方代码,判断输出:
#include <stdio.h>
#define UINT_MAX -1

typedef unsigned char byte;
typedef unsigned short word;

int main() {
	byte b = UINT_MAX;
	word w = UINT_MAX;
	printf("Maxmum byte is %X , %u\n", b, b);
	printf("Maxmum word is %X , %u\n", w, w);
	return 0;
}

  A.
  Maxmum byte is FF , 256
  Maxmum word is FFFF , 65535
  B.
  Maxmum byte is FF , 255
  Maxmum word is FFFF , 65535
  C.
  Maxmum byte is FF , 255
  Maxmum word is FFFF , 65536
  D.
  Maxmum byte is FF , 256
  Maxmum word is FFFF , 65536

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. (二进制补的计算)25 =(00011001) 2 的负数的表示是
    A. 11100111
    B. 11100110
    C. 11110111
    D. 11111110

全部取补码就好

  1. (二进制补的计算)在定点二进制运算器中,减法运算一般通过______来实现。
    A.原码运算的二进制减法器
    B.补码运算的二进制减法器
    C.补码运算的十进制加法器
    D.补码运算的二进制加法器

  2. (溢出)计算下方代码输出

unsigned char x = 0xff;
x++;
printf("%d\n",++x);

  A. 257
  B. 1
  C. 0
  D. -256

在这里插入图片描述

  1. (溢出)下方代码的输出为:
#include<stdio.h>
int main()
{
	int a, b;
	a = 2147483647;//2^31
        a = a+1;
	b = a+a;
	printf("%d,%d\n",a,b);
}

  A. -2147483648,0
  B. 2147483648,4294967296
  C. -2147483648,2147483647
  D. 2147483648,0

  1. (溢出)下方代码的输出为:
#include <stdio.h> 
int main()
{ 
        char x= 0xff;
        x = x + 1;
        x = x - 1;
	printf("%d\n", x);
	return 0; 
}

#include <stdio.h> 
int main()
{ 
        char x= 0xff;
        x = x + 1;
        x = x - 1;
	printf("%d\n", x);
	return 0; 
}

  A. 255
  B. 0
  C. -1
  D. -256

  1. (溢出)以下关于数据溢出说法不正确的是:
    A.有符号整数运算发生溢出的话会发生未定义行为
    B.所有溢出后的数会以2^(8*sizeof(type))作模运算
    C.表达式赋值仅根据转换规则,不做任何检查
    D.C语言对于int型数据的超范围处理,只有截断处理,即超出int位长度范围的高字节被自动截断。

  2. (浮点数与格式化)下方代码的输出为:

#include<stdio.h>
int main(){
    double a, b;
    a = 1.0;
    b = -3.123;
    printf("%.2f %-3.2f",a,b);
    return 0;
}

  A. 1 -3.12
  B. 1.00 -3.12
  C. 1.00 3.12
  D. 1 3.12

  1. (浮点数与格式化)下方代码的输出为:
#include <stdio.h> 
int main()
{ 
	printf("%010.3e\n", 3.12e5);
	return 0; 
}

  A. 3.12e+05
  B. 3.120e+05
  C. 03.120e+05
  D. 3.120e+005

在这里插入图片描述

  1. (浮点数与格式化)以下说法正确的是
    A.double在机内存占8个字节,有效数字最少为15位。
    B.float在机内存占4个字节,精度8位。
    C.double精度更高,因此编程时较少考虑float。
    D.在C语言中,为提高运算速度,不同类型的变量在进行算术运算时,double类型的变量会无条件的转化为float类型。

  2. (不定项)(内存)以下说法正确的是
    A. 位是计算机内部数据储存的最小单位,一个二进制位只能表示0和1两种状态。
    B. 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成。
    C. 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。一个字通常由一个或多个字节构成。
    D. 在32位计算机种:1字=4字节=32位

  3. (不定项)(内存)以下说法不正确的是:
    A. 内存地址在32位计算机中用四位十六进制表示。
    B. 计算机内存中的各个存储单元都是有序的,比特是计算机存储单元的最小存储单位。
    C. 对于值相同的不同存储单元,内存地址也相同。
    D. 数据类型是用来定义变量的,而这些变量需要存储、运算在内存中。

  4. (不定项)(内存)以下说法正确的是:
    A. 内存映射到物理空间一定连续,数据都按顺序处理。
    B. 变量是内存中具有特定属性的一个存储单元,变量的地址用于寻找存储空间,存储空间存放变量的值,该值的类型由变量类型来定义。
    C. 地址空间表示一个计算机实体所占用的内存大小。
    D. 内存地址只是一个编号,代表一个内存空间。内存地址所执行的内存单元大小与内存地址位数无关。


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值