广西区计算机等级二级C语言试题解析

需积分: 9 8 下载量 66 浏览量 更新于2024-08-01 收藏 113KB DOC 举报
"广西区计算机等级二级C试题1.doc" 这篇文档是关于广西区计算机等级二级C语言考试的试题集,包含选择题。这些题目主要测试考生对C语言的基础知识掌握,包括语法、运算符优先级、数据类型转换、输入输出格式、结构体使用以及变量赋值等方面。 1. C语言规定,main函数的位置可以任意,因此选项C是正确的。这表明在编写C程序时,main函数可以在程序的任何位置,只要能在程序执行时被找到即可。 2. 下面的程序是一个结构体数组的使用示例,计算并输出两个复数的商。由于整数除法会去掉小数部分,且cnum[0].y/cnum[0].x的结果为0,再乘以cnum[1].x的结果也是0,因此输出是0,答案是A。 3. 表达式18/4*2/8的计算中,18/4的结果是4(整数除法),然后乘以2是8,再除以8等于1,因此其数据类型为int,选A。 4. 选项D是不正确的,因为C程序在输入数据时,整型变量可以接收整型或浮点型数值(会自动转换),同样实型变量也可以接收任何类型的数值,只要能转换成浮点数。 5. 该程序用于打印结构体`struct date`的大小。在大多数32位系统中,结构体的成员会被对齐到4字节边界,所以一个int型和两个int型会占用12字节的内存,因此输出是D,12。 6. 正确的说法是D,当输入数据时,必须指明变量的地址,如scanf("%f",&f)。其他选项都有错误,A中的实型常量不能作为输入项,B没有输入项是错误的,C中虽然可以指定小数点后的位数,但格式控制部分的语法是错误的。 7. 合法的C语言表达式是A,a+=a-=(b=4)*(a=3),这涉及到运算符的优先级和结合性。B选项中的赋值语句不合法,因为赋值运算符不能出现在表达式的左边。C选项中,%是整数除法运算符,不能用于浮点数。D选项中,将整型变量i强制转换为float型是非法的,应该使用`(float)i`。 8. 不正确的赋值语句是A,ch='a+b';因为'a'和'b'是字符,它们的加法运算会产生ASCII码的和,而不是字符的拼接。B、C和D都是合法的赋值语句。 9. 输入语句`scanf("a=%d,b=%d,c=%d",&a,&b,&c)`期望用户输入形如"a=1,b=2,c=3"的格式。为了使变量a的值为1,用户应该输入如"a=1,b=随便一个数字,c=随便一个数字"。 以上是对试题的详细解析,这些题目涵盖了C语言的关键概念,对理解C语言的基础知识有很大帮助。