计算机二级C语言都有哪些题型?

Python011

计算机二级C语言都有哪些题型?,第1张

全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。

单选题中1~10题为二级公共基础知识,考试内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。单选题的11~40题是C语言的内容。

操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。

程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。程序填空题以实际填写的内容为评分依据,填写正确一个空,给一个空的分。如果是2个空,每个空就是9分;如果是3个空每个空是6分。

程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。与程序填空类似,2处错误的话,每处9分,3处错误的话,每处6分。程序改错题的题目会提示每一处错误所在的行,在那一行的上一行有********found********标识。

编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。因此,大多数情况下,编程题要么就是得24分满分,要么就是0分。

在C语言中,整型常量有十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。(1)十进制整型常量。此种格式的整型常量只能出现 0~9 的数字,且可带正、负号。(2)八进制整型常量。此种格式的整型常量以数字0开头的八进制数字串。其中数字为 0~7。(3)十六进制整型常量。此种格式的整型常量以0x或0X(x是大写)开头的十六进制数字串。其中每个数字可以0~9、a~f或 A~F 中的数字或英文字母。

提问的图片中的代码里,「char x = 040」的意思是「定义并初始化字符型变量x,初始值为ASCII码值为八进制整数040的字符」。八进制整数040也就是十进制整数0×8^0+4×8^1=32,ASCII码值为32的字符为「空格」,不过最后一句格式化输出printf里,是按整型格式输出x的新值的,所以可以不用管到底ASCII码值对应的是什么字符。

格式化输出printf那一行里,「x = x <<1」的执行过程,包含2步,(1) 「x <<1」中的「<<」是左移运算符,这里首先要知道「数据在计算机中是以补码形式存储的」,而左移运算符就是直接对内存中的补码进行操作的,它的具体规则是「左移运算符:左边抛弃,右边补零。」。那么变量x的初始值是32,在内存中的补码,用8位二进制表示就是「0010 0000」,(实际上,中间没有空格,这里为了便于阅读,故意每4位二进制数添加了一个空格,请不要误解。)那么,按照左移运算符的规则向左移1位,得到的结果就是「0100 0000」,再转换为十进制就是整数「64」了。(2)现在再把十进制数64赋值给x,所以x的最新的值就是十进制数64了。

输出整数64。

虽然,通常可以把左移运算符看作是原数乘以2,但是,要注意数据类型在计算机中是有长度限制的,也就是说数据在计算机中是有取值范围的,如果一个数乘以2的结果超过了这个数本身的类型取值范围的话,那么结果就不再是乘以2的结果了。比如,十进制数1073741824(十进制) 的补码是 01000000000000000000000000000000(二进制,4个字节,32个二进制位),正数的补码和原码相同,左边第一位是符号位,0表示正,1表示负;所以,如果对1073741824做左移运算1位的话,得到的补码是二进制数10000000000000000000000000000000,转换回十进制数就是-2147483648,已经不是十进制数1073741824的2倍了。因为4个字节的整型数值的最大值是2147483647,所以并不是所有的整型做左移1位的运算都是原数乘以2。当然了,在十进制数1073741824以下的范围内,对整型数据做左移1位的运算,结果是原数乘以2。

如有帮助,烦请采纳,谢谢!

在fun中, s先申请了内存, 赋值,释放。 所以改变的*s值, 是分配释放的空间。

而改变s, 是改变形参, 并不影响实参。

所以, 经过fun调用, 对于主函数中q和*q都没有任何影响。

于是输出的还是a[0] 也就是1.

选C。