“C程序设计及实验”试题卷
注意:答题内容必须写在答题卷上,写在本试题卷上无效
一.单项选择题(每题1分,共10分)
1.下列运算符中,优先级最低的是_____
A.<<
B.!=
C.&&
D.=
2.以下选项中不正确的整型常量是_____
A.0xa   
B.010L
c十十程序设计语言
C.10
D.1.0
3.表达式 !(x>0||y>0) 等价于_____
A.!(x>0)&&!(y>0)
B.!x>0&&!y>0
C.!x>0||!y>0
D.!(x>0)||!(y>0)
4.表达式______的值不是0。
A.1/2
B.!\0
C.!EOF
D.NULL
5.x 是浮点型变量,表达式 (x=10/4) 的值是_____
A.2.5
B.2.0
C.3
D.2
6.若变量已正确定义并赋值,表达式______不正确。
A.a&b
B.a^b
C.&&x
D.a, b
7.对于变量定义 int a[10], *p=a;,表达式______是不正确的。
A.a[9]
B.p[5]
C.*p++
D.a++
8.不正确的赋值或赋初值的方式是______
A.char str[10]; str="string";
B.char str[ ]="string";
C.char *p="string";
D.char *p; p="string";
9.设程序中不再定义和声明变量,写出在函数fun中可以使用的所有变量______
  #include <stdio.h>
    void fun(int x)
{  static int y;
      ……
      return;
    }
    int z;
    void main( )
    {  int a,b;
        fun(a);
        ……
    }
A.x, y
B.x, y, z
C. a,b,y,z
D.a,b,x,y,z
10.对于变量定义 int p[5], *a[5];,表达式______是正确的。
A.p=a
B.p[0]=a
C.*(a+1)=p
D.a[0]=2
二、填空题(每题2分,共30分)
1.数组定义为 int a[2][3][4],则数组a 中有_____个数组元素。
2.计算下列分段函数的条件表达式是______
    1      x>0
y=    0    x=0
      -1    x<0
3.表达式 1<10<5 的值是______
4.表达式 ~(10<<1)&4的值是______
5.表达式sizeof(hello)的值是______
6.下列程序段的输出结果是_____ 
int k, s;
    for(k=1, s=0; k<10; k++){
        if (k%2==0) continue;
    s += k;
}
printf("k=%d s=%d", k, s);
7.下列程序段的输出结果是_____ 
    #define MM(x,y)  (x*y)
    printf("%d", MM(2+3,15));
8.下列程序段的输出结果是_____ 
int k=1, s=0;
switch (k) {
      case 1: s+=10;
      case 2: s+=20; break;
      default: s+=3;
}
printf("k=%d s=%d", k, s);
9.下列程序的输出结果是_____
# include <stdio.h>
    int f( )                     
{   static int k;
        return ++k;
}
void main( )
int k;
  for(k=0;k<3;k++)
    printf("%d#", f( ));
}
10.下列程序的输出结果是_____
f (int x)
if(x<=1) return 1;
else return f(x-1)+f(x-2);
}
void main( )
{  printf("%d", f(4));
}
11.下列程序段的输出结果是_____
int k=1, j=2, *p, *q, *t;
p=&k; q=&j;
t=p; p=q; q=t;
printf("%d, %d",*p, k);
12.下列程序段的输出结果是_____
int c[ ]={10, 30, 5};
int *pc;
for(pc=c; pc<c+2; pc++)
printf("%d#", *pc);
13.下列程序段的输出结果是_____ 
char  *st[ ]={"ONE","TWO","FOUR","K"};
printf("%s, %c\n", *(st+2), **st+1);
14.下列程序的输出结果是_____
  #include <stdio.h>
    void p(int *x,int y)
{  ++ *x;
  y=y+2;
}
void main()
    {  int x=0, y=3;
      p(&y, y);
      printf("%d, %d", x, y);
    }
15.用typedef定义一个10个元素的字符指针数组类型CP。
三、程序阅读题(每题5分,共30分)
1.下列程序的输出结果是_______
    #include <stdio.h>
    void main( )
    {
        int k, x, s, t;
        x=3;
        s=0; t=x;
        for(k=1; k<=3; k++){
            t=t*10+x;
s=s+t;
        printf("%d#", s);
        }
    }   
2.输入7 3 0 3 0 3  1 2 9 7 6 0 <回车>后,下列程序的输出结果是_______
    #include <stdio.h>
    void main( )
    {
        int j, k, sub, x;
        int a[5];   
        for(j=1; j<=2; j++){
          for(k=0; k<5; k++)
              scanf(“%d”, &a[k]);
          scanf(“%d”, &x);
          sub=-1;
          for(k=0; k<5; k++)
if(a[k]==x)  sub=k;
          printf("%d#", sub);
        }
}
3.下列程序的输出结果是_______
    #include <stdio.h>
    void main( )
    {
        long number, wt, x;
       
        x=number=10230;
        wt=1;
        while(x!=0){
          wt=wt*10;
          x=x/10;
        }
        wt=wt/10;
        while(number!=0){
          printf("%d#", number/wt);
          number=number%wt;
          wt=wt/10;
        }
}
4.输入3  9 8 6 5 3 7 1 2 4  2  1 2 3 4<回车>后,下列程序的输出结果是_______
#include "stdio.h"
void main( )
      int flag,i,j,k,col,n,ri,a[6][6];
      for(ri=1; ri<=2; ri++){
          scanf("%d",&n);
          for(i=0; i<n; i++)
              for(j=0; j<n; j++)
                  scanf("%d",&a[i][j]);
      flag=0;
          for(i=0; i<n; i++){
              col=0;
              for(j=0; j<n; j++)
                  if (a[i][col]<a[i][j])  col=j;
              for (k=0; k<n; k++)
                if(a[i][col]<a[k][col])  break;
              if(k>=n){
                  printf("a[%d][%d]=%d#", i, col,a[i][col]);
                  flag=1;
              }
          }
          if(!flag)  printf("NO#");
      }
}
5.输入how are you?<回车>后,下列程序的输出结果是_______
#include <stdio.h>
void main( )
{
    int word;
        char ch;
       
    word=0;
        while((ch=getchar())!='?'){
            if(ch==' ') word=0;
            else if(word==0){
                word=1;
                if(ch<='z'&&ch>='a')
                    ch=ch-'a'+'A';
            }
            putchar(ch);
        }
}
6.假设文本文件a.txt中存放了下列数据:
one?two?1234?output?
文本文件b.txt中存放了下列数据:
one?two?1204?input?
下列程序的输出结果是_______
# include <stdio.h>
# include <stdlib.h>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。