2016年C语言程序设计试卷1
需积分: 0 82 浏览量
更新于2022-08-08
收藏 42KB DOCX 举报
【C语言程序设计试卷解析】
本试卷主要涵盖了C语言的基础知识,包括数据类型、运算符、数组、指针、常量、输入/输出以及文件操作等核心概念。以下是试卷各题涉及的知识点详解:
1、非法语句识别:
C语言中,`printf(c);`是非法的,因为`printf`需要格式化字符串作为参数,而不是一个变量。
2、空字符的表示:
空字符(ASCII值为0)用转义序列`\0`表示,用于标记字符串的结束。
3、常量的数据类型:
常量'1'是字符型(char),1是整型(int),1.0是浮点型(float)。
4、局部变量的存储类型:
`int a;`的存储类型默认为自动类型(auto),它会在函数调用时分配在栈上。
5、输入格式:
`scanf("%d%d%d",&a,&b,&c)`期望读入三个整数,正确的输入序列是每个数字之间由空格分隔,如`1 2 3`。
6、字符串数组长度:
数组`s[]="HUST"`包含5个字符,但C语言会自动添加一个结束符`\0`,所以数组实际长度为6。
7、二维数组元素位置:
在二维数组`a[i][j]`之前,有`(i-1)*N+j`个元素,因为二维数组可以看作一维数组,行与行之间连续存储。
8、const关键字使用:
`const int ci=10, cj=10; const int *pci=&ci; const int * const cpci=&ci;`
- `pci=&cj;`非法,因为`pci`指向常量,不能改变。
- `*cpci=10;`非法,`cpci`是常量指针,其指向的值不能修改。
- `cpci=&cj;`合法,`cpci`可以指向其他常量。
- `*pci=8;`非法,同上。
9、位运算:
表达式`1|2|4>>2`先进行右移操作,`4>>2`等于1,然后进行按位或运算,最终结果为3。
10、指针与内存:
声明`int a=0x12345678, *pa=&a; unsigned char *pc=(unsigned char *)pa;`后,`*(pc+2)`将访问`a`的第三个字节,即0x56。
**多项选择题知识点解析:**
1、标识符规则:
标识符不能以数字开头,因此`3days`非法;`float_`和`integer`是合法的;`num-people`包含非法字符`-`。
2、数组初始化:
A、B选项是合法的数组初始化,C选项没有给出数组大小,但默认为足够容纳初始化列表中的元素;D选项是空数组初始化,也是合法的。
3、指针操作:
A、`*p=q;`试图将指针赋给指针解引用的结果,非法;B、`i=*q;`是合法的,将`q`指向的值赋给`i`;C、`q=&p;`试图将指针的地址赋给`q`,合法;D、`*p=&q;`非法,试图将指针的地址赋给指针解引用的结果。
4、文件操作:
打开二进制文件`a.dat`的语句中,`fopen("a.dat", "rb")`是正确的,表示以只读模式打开二进制文件;`"wb"`用于写入,而`"ab"`用于追加。
以上内容详尽解析了试卷中涉及的C语言知识,包括基本语法、类型系统、指针操作、字符串处理、文件操作等方面。掌握这些知识点对于理解和编写C语言程序至关重要。