您的位置:考核练习 >> 习题浏览
数组和指针
一、单项选择题 1、
下面程序段运行结果是_____ char *p=\int a=111,b=10,c; c=a%b; p+=3; printf(p,c,a,b); (分数:1分) A. 1,a=111,b=10 B. a=111,b=10 C. a=1,b=111 D. 以上结果都不对。
2、执行下面程序段后,ab的值为_____。 int *var,ab;
ab=100;var=&ab; ab=*var+10; (分数:1分)A. 120 B. 110 C. 100 D. 90
3、设有程序: main()
{ int i,a[11];
printf(\给数组赋值:\\n\; for (i=0;i<=10;i++) scanf(\,( )); ... ...
printf(\输出数组:\\n\; for(i=0;i<=10;i++) printf(\; }
则在程序中的两个园括号中分别应填入_______ A. &a[i]和&a[i] B. a[i]和&a[i]
1分)
正确答案:C
正确答案:B
(分数: C. &a[i]和a[i] D. a[i]和a[i]
正确答案:C
4、设已定义:int a[15]; 则数组a占用的内存单元数是_____ (分数:1分) A. 15 B. 16 C. 30 D. 32
5、阅读程序: main()
{ int a[2]={0},i,j,k=2; for(i=0;i for(j=0;j 以上程序的输出结果是_____ (分数:1分) A. 1 B. 3 C. 2 D. 不确定的值 6、阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf(\} 以上程序的输出结果是_____ (分数:1分) A. 720 B. 6 C. 24 D. 120 7、以下定义语句中,错误的是_____ (分数:1分) A. int a[ ] = {6,7,8}; 正确答案:C 正确答案:D 正确答案:D B. int n=5, a[n]; C. char a[ ]= \ D. char a[5 ]={'0','1','2','3','4'}; 正确答案:B 8、以下描述中正确的是______ (分数:1分) A. 数组名后面的常量表达式用一对圆括弧括起来 B. 数组下标从1开始 C. 数组下标的数据类型可以是整型或实型 D. 数组名的规定与变量名相同 正确答案:D 9、定义数组int a[10] ,其最后一个数组元素为_____ (分数:1分) A. a[0] B. a[1] C. a[9] D. a[10] 正确答案:C 10、定义数组:int x[2][3]; 则数组x 的维数是_____ (分数:1分) A. 1 B. 2 C. 3 D. 6 正确答案:B 11、阅读程序: main() { char a[10]; int i; for(i=1;i<=5;i++) scanf(\printf(\} 设从键盘输入字符串:abcde,则程序的输出结果是_____ (分数:1分) A. a B. 空格 C. 不确定 D. 0 正确答案:A 12、定义字符数组c:char c[ ]={\language\;数组c在内存中所占字节数是_____ (分数:1分) A. 9 B. 10 C. 11 D. 12 正确答案:C 13、有如下语句int a=10,b=20,*p1,*p2;p1=&a;p2=&b;若要实现p1,p2均指向b,可选用的赋值语句是_____ (分数:1分) A. p1=p2; B. *p1=*p2; C. p1=*p2; D. *p1=p2; 正确答案:A 14、以下程序的运行结果是_____。 sub(int x,int y,int *z) {*z=y-x;} main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(\(分数:1分) A. 5,2,3 B. -5,-12,-7 C. -5,-12,-17 D. 5,-2,-7 正确答案:B 15、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是_____。 main() {int *p,*q,a,b; p=&a; printf(\scanf(\?? } (分数:1分) A. *p表示的是指针变量p的地址 B. *p表示的是变量a的值,而不是变量a的地址 C. *p表示的是指针变量p的值 D. *p只能用来说明p是一个指针变量。 正确答案:B 16、下面程序运行结果是_____。 void fun(int *x) { printf(\main() {int a=25;fun(&a);} (分数:1分) A. 23 B. 24 C. 25 D. 26 正确答案:D 17、以下程序运行后,输出结果是( )。 main( ) { int a[10]={19,23,44,17,37,28,49,36},*p; p=a; printf(\} (分数:1分) A. 44 B. 17 C. 49 D. 运行时出错,无定值 正确答案:C 18、若定义数组int a[10] ,其数组元素的下标下限为_______ (分数:1分) A. 1 B. 0 C. 9 D. 10 正确答案:B 19、若定义数组int a[10],以下语句哪一个不成立______ (分数:1分) A. a 数组在内存中占有一连续的存储区 B. a代表a数组在内存中占有的存储区的首地址 C. *(a+1)与a[1]代表的数组元素相同 D. a是一个变量 正确答案:D 20、定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个成立______ (分数:1分) A. 若引用a[10],编译时报错 B. 若引用a[10],连接时报错 C. 若引用a[10],运行时出错 D. 若引用a[10],系统不报错 正确答案:A 21、执行下面的程序段后,变量k中的值为( ). int k=3,s[2]; s[0]=k;k=s[1]*10; (分数:1分) A. 不定值