就业数据资源平台
当前位置:首页 > C语言程序设计
2013计算机等级考试二级C语言试题及答案4

(26)下列程序是用来判断数组中特定元素的位置所在的。


#include


#include


int fun(int *s, int t, int *k)


{ int i;


  *k=0;


  for(i=0;i

  if(s[*k]

  return s[*k]; }


main()


{   int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;


  fun(a, 10, &k);


  printf("%d, %d\n",k,a[k]);}


如果输入如下整数:876 675 896 101 301 401 980 431 451 777


则输出结果为外语学习


    A)7,431            B)6               C)980                    D)6,980


(27)下面程序的文件名为t.exe,在DOS下输入的命令行参数为:t to meet me<回车>


则程序输出的结果是


#include "stdio.h"


main(argc,argv)


int argc;char *argv[];


{  int i;


printf("%d\n",argc);}


    A)3       B)4     C)2         D)以上答案都不正确


(28)有如下程序


int a[10]={1,2,3,4,5,6,7,8,9,10};


int *p=&a[3],b;b=p[5];


则b的值是


    A)5      B)6     C)9        D)8


(29)以下叙述中错误的是


    A)改变函数形参的值,不会改变对应实参的值     B)函数可以返回地址值


    C)可以给指针变量赋一个整数作为地址值     D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL


(30)下面程序的输出结果是


#include


main()


{  int a[]={1,2,3,4,5,6,7,8,9,0},*p;


  p=a;


  printf("%d\n",*p+9);}


    A)0     B)1       C)10     D)9


(26)D   
【解析】本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。


(27)B   
【解析】 argc中存入的是命令行中字符串的个数。argv是一个指向字符型的指针数组的指针。


(28)C   
【解析】 p=&a[3]将指针指向数组a的第4个元素,p[5]指向数组a的第9个元素,而a[8]=9,所以b=9。


29)C   
【解析】函数形参和实参分别占用不同的内存单元,改变形参的值不会影响对应实参的值,选项A)正确。指针类型的函数可以返回地址值,选项B)正确。在文件stdio.h中,NULL被定义为void 型的指针,选项D)也正确。指针变量的值只能是存储单元地址,而不能是一个整数,选项C)错误。


(30)C   
【解析】此题考查了指针引用一维数组元素的方法。*p+9因为运算符"*"的优先级高于"+",所以输出结果为p指向的元素1,然后加9,值为10。

就业数据资源平台