免费找题库的网站推荐 计算机二级选择题题库( 五 )


A) *(*(a+i)+j)
B) (a+i)[j]
C) *(a+i+j)
D) *(a+i)+j
30、参考答案:A
本题考查了二维数组元素的引用方法 。选项A)中a+i指向了数组a的第i+1行,*(a+i)则是第i+1行第0列的地址值,*(a+i)+j指向了数组a第i+1行,j+1列,*(*(a+i)+j)取到的是数组a的a[i][j]元素 。
31.有以下程序:
#include <stdio.h>
main()
{char c1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1);putchar(c2);
printf(“%c%c\n”,c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是()
A) 1267
B) 1256
C) 1278
D) 1245
31、参考答案:D
putchar(c1)输出1,putchar(c2)输出2,printf(“%c%c\n“,c5,c6)输出45 。
32.以下程序的运行结果是() 。
#include <stdio.h>
int a=1;
int f(int c){ static int a=2;
c=c+1;
return(a++)+c;}
main(){ int i,k=0;
for(i=0;i<2;i++){int a=3;k+=f(a);}
k+=a;
printf(“%d\n”,k);
}
A) 17
B) 16
C) 15
D) 14
32、参考答案:D
fun函数语句return(a++)+c;中访问的a,是其内部定义的静态局部变量,main函数中语句k+=f(a)访问的a是其局部变量,所以两次调用实际上都是调用f(3) 。第一次调用时,fun函数中c=4,表达式(a++)+c的值为6,a递增为3,k=6 。第二次调用时,fun函数中c=4,表达式(a++)+c的值为7,a递增为4,k=6+7=13 。语句k+=a中的a是全局变量,所以k=13+1=14 。
33.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是() 。
A) *p=*q;
B) p=q;
C) *p=&n1;
D) p=*q;
33、参考答案:A
本题考查的是指针变量的赋值 。题目中各变量定义后,指针变量p指向了变量n2所在的存储单元,指针变量q指向了变量n1所在的存储单元,要使得n1的值赋给n2,可用指针变量q所指向的存储单元的值赋给指针变量p所指向的存储单元,即*p=*q 。
34.设有如下说明:
typedef struct ST
{ long a;
int b;
char c[2];
}NEW;
以下说法正确的是() 。
A) NEW是一个结构体变量
B) NEW是一个结构体类型
C) ST是一个结构体类型
D) 以上说明形式非法
34、参考答案:B
以上形式定义NEW表示ST的结构类型,然后可以用NEW来说明结构体变量 。因此选项B)正确
35.有以下程序:
#include <stdio.h>
#include <string.h>
typedef struct{ char name[9]; char sex; float score[2]; }STU;
void f(STU a)
{ STU b={“Zhao”,’m’,85.0,90.0}; int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{ STU c={“Qian”,’ f ‘,95.0,92.0};
f(c);
printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是() 。
A) Qian,f,95,92
B) Qian,m,85,90
C) Zhao,f,95,92
D) Zhao,m,85,90
35、参考答案:A
本题考查的是函数调用时的参数传递以及结构体变量的引用的问题 。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: