当前位置:首页 > 全国计算机等级考试二级C语言真题题库1+2014年9月
A.10,-1,8,-3,6, √ B.5,4,3,2,1, C.10,2,8,4,6, D.5,-1,3,-3,1,
解析:[解析]fun()函数功能是:对数组中,下标为偶数的元素累加5,下标为奇数的元素减去5,所以执行完fun()函数后,数组c变为10,-1,8,-3,6,故A选项正确。 22.有以下程序: (分数:1.00)
A.16,6,11,16, √ B.1,6,11,16, C.4,7,10,13, D.17,17,17,17,
解析:[解析]程序最后输出x[0][0],x[1][1],x[2][2],x[3][3],其中只有x[0][0]的值在fun函数中发生改变,在fun函数中,当i=0时,x[0][0]=x[3][3]=16,因此答案为A选项。 23.有如下程序: (分数:1.00) A.56,57, B.57,58, C.57,57, √ D.55,57,
解析:[解析]convert()函数定义了——个形参:指针变量*data。函数体中将指针变量*data对应地址的值进行加1处理,再返回加1前data的值。main()函数中,定义广变量data并赋初值56,调用covert()函数,改变变量data的值,此时data=57;程序执行data=convert(&data),函数convert()返回的是执行前data的值,所以data=57。因此答案为C选项。 24.设有如下程序段: (分数:1.00)
A.a,b的定义合法,c,d的定义不合法 √ B.a,b,c,d的定义都是合法的
C.a,b,c的定义是合法的,d的定义不合法 D.只有a的定义是合法的
解析:[解析]int a[1]={0}表示定义一个数组a[1]初值为0,int b[]={9},表示定义一个数组b,其中只有一个值9,系统自动识别数组有1个元素。char c[3]={\,\,数组元素为字符串,需要用二维数组来表尔,C选项错误;char d=”12”;,字符串常员不能赋值给字符变量,D选项错误;因此答案为A选项。
25.没有定义:int x=2,*p=&x;float y=3.0;char z='c';,则立即进行以下运算有安全隐患的是( ) (分数:1.00) A.p++; √ B.x++; C.y++; D.z++;
解析:[解析]A选项中,由于x是一个整型变量,将x地址赋值给p指针后,对p进行加1运算,P指针的值相当于加4(整型变量的地址占4个字节),此时p指向了未知的内存地址,对未知内存地址进行操作具有安全隐患,故答案为A选项。
以下叙述正确的是( )。 程序运行后的输出结果是( )。 程序运行后的输出结果是( )。
26.有以下程序: (分数:1.00) A.3.000000 B.3.141500 C.0.141500 √ D.0.000000
程序的运行结果是( )。
解析:[解析]这里考查了强制转换的概念,在fun()函数中,x=a-(int)a表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500,答案力C选项。 27.有以下程序: (分数:1.00) A.Beijing! B.you to Beijing!
C.Welcome you to Beijing! D.to Beijing! √
解析:[解析]while函数判断p指针指向地址的内容是否和a指针指向地址的内容相等,如果不是,则移动指针p+1,当p指向*b字符串中的‘y’时,和*a首地址元素相等,退出while语句后,p再向右移动a字符串长度+1个单位地址,此时p指向‘t’,输出‘t’及剩余的字符串,答案为D选项。 28.有如下程序: (分数:1.00) A.8 √ B.9 C.7 D.10
解析:[解析]strlen是求字符串长度的函数,“0\t\nAO11\1”是一个长度为8的字符串,其中\t、\n、\1均为转义字符常量,但是长度也是1,因此输出结果是8,答案为A选项。 29.有如下程序: (分数:1.00) A.2, √ B.2,3, C.3, D.1,
解析:[解析]在输出函数中,调用了sum()函数。sum()函数作用是定义一个静态变量init=1,对变量init进行叠加形参data的值,并将结果作为函数的返回值。在main()函数中,实参i=1传递给sum()函数的形参data,因此输出为2,答案为A选项。 30.有以下程序: (分数:1.00) A.grame ame e √ B.g a e C.programe D.无输出字符
解析:[解析]定义两个指针变量pl、p2,分别指向数纽s1、s2旨地址,存for循环中,比较两个指针对应地址的元素是否相等,如果相等,则输出当前指针指向地址的字符串,故答案为A选项。 31.以下针对全局变量的叙述错误的是( )。 (分数:1.00)
程序的运行结果是( )。
程序运行后的输出结果是( )。 程序运行后的输出结果是( )。 程序运行后的输出结果是( )。
A.全局变量的作用域是从定义位置开始至源文件结束 B.全局变量是在函数外部任意位置上定义的变量 C.用extern说明符可以限制全局变量的作用域 √ D.全局变量的生存期贯穿于整个程序的运行期间
解析:[解析]在不向编译单位内用extern说明符来扩展全局变量的作用域,extern可以将全局变量作用域扩展到其他文件,而不是限制全局变量的作用域,答案为C选项。 32.有以下程序: (分数:1.00)
A.Zhao,m,290,Qian,f,350 √ B.Zhao,m,290,Qian,m,290 C.Zhao,m,290,Zhao,m,290 D.Zhao,m,290,Qian,m,350
解析:[解析]本题定义了一个结构变量struct stu,并且命名为STU,STU结构中包含3个数据。main()函数中,首先定义两个结构体STU类型的变量a,b,并对a完成初始化,然后将a赋值给b,使得结构体a,b的值都是{\,'m',290},再调用f()函数。f()函数的功能是将形参结构体指针c指向的结构体赋值为{\,’f’,350},由于形参是指针,c指向的结构体就是b,所以实参b的值被修改为{\,'f',350},而a的值不变,故答案为A选项。 33.下面关于编译预处理的命令行,正确的是( )。 (分数:1.00)
A.#define PAI 3.14 √ B.#Define Eps 0.00001 C.##DEFINE FALSE 0 D.#define int INT
解析:[解析]宏定义用法一般表达式为“#define宏名 替换文本”,A选项满足宏定义用法;C语言中是区分大小写的,define属于C语言的关键字,不可以大写,因此B、C选项错误;D选项中,int是代表整数类型,不满足define用法,故D选项错误,因此答案为A选项。 34.有以下程序: (分数:1.00) A.7 √ B.6 C.9 D.2
解析:[解析]宏定义只作简单的替换,printf()函数中“D(i+j)”表达式执行运算为2*i+j+3,代入i,j,答案为A选项。 35.有以下程序: (分数:1.00) A.0K,6 B.#,6 C.0K,3 D.#,3 √
解析:[解析]声明结构类型S中有一个字符数组name,在main()函数中,定义了一个结构变量input,为input中成员name初始化“Ok”后,调用change()函数。chang()执行功能是把“#”赋值给name,由于change()函数的形参为结构体指针,因此change()函数改变形参指针data指向的name值的同时,也改变了实参input的成员name值;而形参value为整型变量,是num的一个副本,修改了num的副本,对num本身不产生影响,所以输出为#,3。答案为D选项。
程序运行后的输出结果是( )。 程序运行后的输出结果是( )。 } 程序运行后的输出结果是( )。
36.有如下定义: (分数:1.00) A. B. C. D. √ 以下语句错误的是( )。
解析:[解析]A选项中,p->age是结构指针访问结构成员的力式,如果为结构体内变量进行赋值,应该对指针地址指向的单元进行赋值,因此在P->age前面应该加入取地址符&,A选项语句错误,答案为A选项。
37.有以下程序: #include (分数:1.00) A.6 B.2 C.5 √ D.3
解析:[解析]malloc(size)函数作用是在内存的动态存储区分配一个长度为size的连续空间,函数的返回值是新分配的存储区的首地址,将该地址赋值给p指针,然后取p指针的地址,调用fun函数。fun函数中对指向指针的指针s指向的内存单元赋值,其中x[1]表示二维数组x的第二行的行地址,x[1]+1表示二维数组x的第二行第二列的地址,所以fun函数的功能是将二维数组x的第二行第二列的值,即x[1][1]赋值给* *s,*s为p,所以* *s代表*p,x[1][1]与a[1][1]等价,因此答案为C选项。 38.有如下定义: (分数:1.00) A. B. C. D. √ 若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中
程序的运行结果是( )。
的语句错误的是( )。
解析:[解析]fwrite()函数用法是fwrite(void *buffer,int size,int n,FILE *fP),其中buffer为要输出的数据的首地址。A选项中,因为n=1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去,因此答案为A选项。 39.有以下程序: (分数:1.00) A.C##123#0 √ B.C##1230 C.C##0 D.C##123#\0
程序运行后的输出结果是( )。
共分享92篇相关文档