2017计算机二级《C语言》考试题及答案
(34)在c语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。
A.aut0和static
B.extern和register
C.aut0和register
D.static和register
(35)下面结构体的定义语句中,错误的是( )。
A.struct ord{int x;int Y;int z;}struct ord a;
B.struct ord{int x;im Y;im z;};struct ord a;
C.struct ord{int x;int Y;int Z;}a;
D.struct{int x;int Y;int z;}a;
(36)有以下程序:
程序运行后的输出结果是( )。
A.2,4
B.1,2
C.1,4
D.2.3
(37)以下叙述中正确的是( )。
A.在C语言中,预处理命令行都以“#”开头
B.预处理命令行必须位于c源程序的起始位置
C.#include必须放在C程序的开头
D.C语言的预处理不能实现宏定义和条件编译的功能
(38)有以下程序:
程序运行后的输出结果是( )。
A.O
B.10
C.20
D.出错
(39)有以下程序:
程序运行后的输出结果是( )。
A.16
B.1
C.32
D.O
(40)读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A.一个内存块的字节数
B.一个整型变量,代表待读取的数据的字节数
C.一个文件指针,指向待读取的文件
D.一个内存块的首地址,代表读人数据存放的地址
二、程序填空题(共18分)
下列给定程序中,函数fun的功能是:将形参n中个位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。
例如,输入一个整数27638496,函数返回值为64862。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。
不得增行或删行,也不得更改程序的结构!#include
unsigned long fun(unsigned long n){unsigned long x=0;int t;
三、程序修改题(共18分)
下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
四、程序设计题(共24分)
编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串的后面。
例如,分别输人下面两个字符串:FirstString--SecondString
程序运行后的输出结果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。