视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
贵州师范大学大二计算机专业高级程序设计语言试卷及答案
2025-10-03 14:43:08 责编:小OO
文档
贵州师范大学202   年第   学期

《高级程序设计语言》课程考试试题

姓名      年级       层次    专业         学号      

总分100题 号

题 分

阅卷人得 分

一、单项选择题(每题3分,合计60分)

1.自定义标识符中,符合C语言规定的是        。

  A. for      B. 3a    C. *a    D. _123

2. 为表示关系100≥x≥10,应使用C语言表达式        。

  A. (100>=x)&&(x>=10)   B. (100>=x) AND (x>=10)    

C. (100>=x>=10)        D. (100>=x)&(x>=10);

3.定义int a; float f; double i; 6.定义表达式15+i*f+ˊAˊ的值是       。      

  A. float     B. int     C. char      D. double

4.下面程序要求从键盘上输入值并打印,请选择正确的输入方法      。

  main( )

  {  int a,b;

     scanf("x=%d,y=%d",&x,&y);

     printf("x=%d,y=%d\\n",x,y);

  }

A. 5,6      B. x=5, y=6    C. 5↙6      D. 5 6

5.定义如下变量和数组:

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

   则下面语句的输出结果是        。

for(i=0;i<3;i++) printf("%d",x[i][2-i]);

  A. 1 5 9      B. 1 4 7     C. 3 5 7      D. 3 6 9

6.在定义了 int a[3][2];之后,对a的引用正确的是       。

A.a[3][2]    B.a[3][0]     C.a[0][0]    D.a[0,0]

7.执行以下程序段后,m的值为         。

int a[2][3]={{1,2,3},{4,5,6}};

int m,*p;  p=&a[0][0];

m=(*p)+(*(p+2))+(*(p+4));

A. 9         B. 8         C. 7        D. 6

8.若有以下定义和语句,则输出结果是        。

    char s1="12345",s2="1234"

    printf("%d\\n",strlen(strcpy(s1,s2)));

A. 4         B. 5        C. 9         D. 10

9.有一函数关系见下表:

xy=
x<0x-1
x=0x
x>0x+1
下面程序中能正确表示上面关系的是        。

A. y=x+1;                 B. y=x-1;

if(x>=0) if(x!=0)

if(x==0) y=x; if(x>0) y=x+1;

     else y=x-1;                else y=x;

C. if(x<=0)               D. y=x;

       if(x<0) y=x-1;          if(x<=0)

       else y=x;                  if(x<0) y=x-1;

     else y=x+1;               else y=x+1;

10.以下正确的程序段是          。

A. char  str[2];               B. char *p;

     scanf("%s",&str);              scanf("%s",p);

C. char str[20];               D. char str[20],*p=str;

     scnaf("%s",&str[2]);           scanf("%s",p[2]);

11.以下正确的函数定义形式是          。

A. double fun(int x,int y)    B. double fun(int x;int y)

C. double fun(int x,int y);    D. double fun(int x,y);

12.以下有关宏替换不正确的是          。

  A. 宏替换不占用运行时间           B. 宏名无类型   

  C. 宏替换只是字符替换             D. 宏名必须用大写字母表示

13.有如下语句int a=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示。若要实现图2所示的存储结构,可选用的赋值语句是        。

A. *p1=*p2;    B. p1=p2;   C. p1=*p2;    D. *p1=p2;

14.设char *s="\a\\018bc";则指针变量s指向的字符串所占的字节数

是         。

A. 9        B. 5       C. 6         D. 7

15.以下程序的输出结果是        。

#include

#include

  main( )

  {  char *s1="AbCbEf",*s2="AB";

     s1++;s2++;

     printf("%d\\n",strcmp(s1,s2));

  }

  A. 正数      B. 负数      C. 零      D. 不确定的值

16.以下一维数组a的正确定义是          。

  A. int a(10);       B. int n=10,a[n];

  C. int n;           D. #define SIZE 10

     scanf("%d",&n);     int a[SIZE];

     int a[n];          

17. 若有定义:int a[2][3];则对a数组中第i行第j列元素地址的正确

引用为          。

A. *(a[i]+j)      B. (a+i)     C. *(a+j)      D. a[i]+j 

18.以下程序段的输出结果是         。

   main()

   {  int n[3],i,j,k;

for(i=0;i<3;i++)

   n[i]=0;

k=2;

for(i=0;i for(j=0;j     n[j]=n[i]+1;

printf("%d\\n",n[1]);

   } 

  A. 2        B. 1         C. 0        D. 3 

19.以下程序输出的结果是          。

int d=1;

fun(int p)

   { int d=5;  

     d+=p++;  printf("%d ",d);

    } 

  main(  )

  {  int a=3;

fun(a);

d+=a++;

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

}

A. 8  4       B. 9  6       C. 9  4       D. 8  5

20. 20. 若有以下说明和语句: struct student

                          {  int number; char *name;

                          }stu1,*p=&stu1;

则以下引用方式不正确的是       和       。

A. stu1->number      B. (*p).number   C. p->number

D. stu1.number       E. *p.number

二、填空题(每题2分,合计20分)

1.C程序是由        构成的,其编译是以         为单位进行的。

2.设a为int型变量,请写出描述"a是奇数"的表达式          

3.若数组a有m列,则a[i][j]之前的数组元素个数为         。

4.请读程序片段:

   char str[]="english",*p=str;

   printf("%s\\n",*(p+3));

上面程序片段的输出结果是        。  

5.执行下面的程序段后,k值为     。

   k=1;n=263;

   do{k*=n%10;  n/=10;} while(n);

6. 变量的作用域是指变量的有效范围。按作用域变量可分为      变量

和       变量两大类。

7.设有程序片段:

  switch(ch )

  {  case ˊAˊ:  printf("85-100\\n");

case ˊBˊ:  printf("70-84\\n");

case ˊCˊ:  printf("60-69\\n");

case ˊDˊ:  printf("<60\\n");

     default   :  printf("error!\\n");

  }

  若ch的值为ˊDˊ,则输出结果是        。

8.下面程序的功能是在三个字符串中找出最小的,请填空: 

#include

  #include

  main( )                                        

  {  char s[20],str[3][20];    int i;    

for(i=0;i<3;i++) gets(str[i]);

strcpy(s,                               );

if(strcmp(str[2],s)<0) strcpy(s,str[2]); 

     printf("%s\\n      );  

  } 

9.写出下列两种指针的定义:

   指针p1为指向整型数据的指针             ;

   p2为指向字符串"I am a student"的指针            。

10.在一个源文件中定义的局部变量的作用域为                  。

三、阅读程序,按要求完成各题。(20分)

1.以下程序的功能是:利用函数求出用户输入的5个float型数据的平均值,请填空。(4分)

float func(float a[],int n)

   {  int i;  

float sum=0.0,ave;

      for(i=0;        ;i++)

        sum=            ;   

      ave=          ;

      return (        );

   }

   main( )

   {  int i; float a[5],average;

for(i=0;i<5;i++)

   scanf("%f",&a[i]);

average=func(a,5);

printf("The average of five float is:%f\\n",average);

   }

2.下面程序是将数组a的内容逆置重放。请填空:(6分)

   main()

   {  int a[8],i,j,t;

printf("Input 8 number to the array:\\n");

for(i=0;i<8;i++)

  scanf("%d",        );

for(i=0;i<=3;i++)

{  j=        ;

   t=a[i];a[i]=a[j];         ;

}

printf("\\n The array has been invered:");

for(i=0;i<8;i++)    printf("%d  ",a[i]);

}

3. 以下程序的功能是:从键盘输入两个字符串,利用函数比较其是否相

等,若相等返回1,否则返回0。(6分)

   f(char s[],char t[])

   {  int i=0;

while(s[i]==t[i] && s[i]!=ˊ\\0ˊ)            ;

if(s[i]==ˊ\\0ˊ&&           )  return(1);

else           ; }

   main( )

   {  char a[6],b[7];   int i;

      scanf("%s%s",a,b);

i=f(a,b);

      printf("%d\\ni);

   }

4.输入一整数x,在数组a中查找x第一次出现的位置。请填空。(4分)

  #include

main()

  {  int a[10]={10,24,34,55,9,17,87,22,9,19},x,i;

printf(“Input an integer:”);

scanf("    ",&x);

for(i=0;        ;i++)

if(         ) break;

if(        )

printf("Not found.\\n");

     else 

   printf("Position is: %d\\n",i);

}

《高级程序设计语言》试题答案

一.选择题

1.D    2.A     3.D     4.B     5.C     

6.C    7.A     8.A     9.C     10.B   

11.A   12.D    13.B    14.D    15.A   

16.D   17.D    18.D    19.A    20.A、E

二.填空题

1. 函数, 文件       2. a%2!=0(或a%2==1)        3. i*m+j

4. lish             5.36                6.全局  局部

7.<60          

   error!        

8. (strcmp(str[0],str[1])<0 ? str[0]:str[1])      s

9. int *p1;     char *p2="I am a student";

10.该变量所在的函数

三.阅读程序

1.i2. &a[i]      8-i-1      a[j]=t     

3.i++    t[i]==ˊ\\0ˊ   return(0)

4. %d  i<10   a[i]==x  i>=10下载本文

显示全文
专题