江南大学现代远程教育  第三阶段测试卷
考试科目:《C语言程序设计》第10章至第13章(总分100分)  时间:90分钟
            学习中心(教学点) 批次:            层次:                 
专业:                  学号:                    身份证号:             
姓名:                                                  得分:                 
 
一、单项选择题(本题共20小题,每小题2分,共40分。)
1、设有定义:int a,*pA=&a;以下scanf语句中能正确为变量a读入数据的是(        )。
A、scanf(“%d”,pA) ;           B、scanf(“%d”,A) ;
C、scanf(“%d”,&pA) ;          D、 scanf(“%d”,*pA);
2、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是(        )。
A、a,point,*&a                        B、&*a,&a,*point           
C、*&point,*point,&a                D、&a,&*point,piont
3、有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
  printf(“%d\n”,strlen(p[4]));
}
执行后输出结果是(        )。
A、2            B、3            C、4            D、5
4、C语言结构体类型变量在程序执行期间(        )。
A、所有成员一直驻留在内存中                  B、只有一个成员驻留在内存中
C、部分成员驻留在内存中                      D、没有成员驻留在内存中
5、以下对C语言中共用体类型数据的叙述(        )的叙述是正确的。
A、可以对共有变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共有体变量中不能同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
6、有以下程序
main()
{      char    str[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)    puts(ps);
}
执行后的输出结果是(        )。
A、yz            B、z            C、z            D、x
xyz              yz              yz                xy
xyz              xyz
7、设有如下定义
struct  ss
{    char    name[10];
        int        age;
    char    sex;
}std[3],*p=std;
下面各输入语句中错误的是(        )。
A、 scanf("%d",&(*p).age);            B、scanf("%s",&std.name);
C、 scanf("%c",&std[0].sex)            D、scanf("%c",&(p->sex));
8、以下叙述中不正确的是(        )。
A、C语言中的文本文件以ASCⅡ码形式存储数据
B、C语言中对二进制文件的访问速度比文本文件快
C、C语言中,随机读写方式不适用于文本文件
D、C语言中,顺序读写方式不适用于二进制文件
9、如果希望向文本文件末尾添加数据,则应以(        )方式打开文件。
A、"r"                B、"w"                C、"a"                D、"ab"
10.设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为(        )。
union exp
{ int i;
  float j;
  double k;
}x;
A、14个        B、7个      C、8个      D、随机而定
11、对于基类型相同的指针变量,不能进行(        )运算
A、+          B、-            C、=          D、==
12、阅读下面程序,并给出结果(        )。
main()
{
  union EXAMPLE { struct{
                          int x; int y; }in;
                  int a,b;
                }e;
  e.a=1;e.b=2;
  e.in.x=e.a*e.b;
  e.in.y=e.a+e.b;
  printf("%d%d",e.in.x,e.in.y);
}
A3  8          B、4  8          C、4  7        D、2  5
13、以下函数的功能是(        )。
fun(char *a,char *b)
{ while((*a!='\0')&&(*b!='\0')&&(*a= =*b))
{ a++;b++;}
return(*a-*b);}
A、计算a和b所指字符串的长度之差         
B、将b所指字符串连接到a所指字符串中
C、将b所指字符串连接到a所指字符串后面       
D、比较a和b所指字符串的大小
14、运行下列程序后的输出结果是(        )。
main()
{ char s[ ]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);}
A、 n/No            B、/No                C、 n/NO            D、Yes
    Yes\              Yes                 /No                Yes
15、下面正确调用形式是(        )。
A、fscanf(文件指针,格式字符串,输出表列);
B、fscanf(格式字符串,文件指针,输出表列);
C、fscanf(格式字符串,输出表列,文件指针);
D、fscanf(文件指针,格式字符串,输入表列);
16、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是(        )。
A、EOF                B、0                C、非零值                D、NULL
17、若有定义:int a[3][4];则对该数组的ij列元素值的正确引用为(        )。
A、*(*(a+i)+j)        B、(a+i)[j]        C、*(a+i+j)        D、*(a+i)+j
18、.对于基类型相同的指针变量,不能进行(        )运算。
A、+        B、-          C、=        D、==
19、函数
AAA(s,t)
    char *s,*t;
    { while(*t++);
      t--;
      while(*t++=*s++);
    }
的功能是(        )
A、求串的长度                    B、 比较两个串的大小
C、将串s复制到串t中            D、将串s连接到串t中
20、写出下列语句执行结果(        )。
int a,b,c,d=4,m=6,n=8;
int *p1=&d,*p2=&m,*p3;
a=p1==&d;
b=3*(-*p1)/(*p2)+7;
c=*(p3=&n)=*p1*(*p2);
printf("%d,%d,%d",a,b,c);
A、1,5,24                  B、4,5,23
C、1,2,22                  D、5,5,14
二、填空题(本题共6小题,每空2分,共30分)
1、若有定义语句“static char str[4][20] = {“thank” , “you” , “very” , “much!” };” 则 str数组中存储 ‘\0’ 的数组元素有         
2、设有如下说明语句:enum  week{sun,mon,tue=100,wed,thu,fri,sat};则元素sun对应的实际值为          wed对应的实际值为             
3、下面的程序将D盘上的文件的内容显示在屏幕上,请填空。
#include  "stdio.h"
main()
{    FILE *fp; char c;
    if((          )==NULL)
    {    printf("cannot open file!\n");
        exit(0);
    }
    while((              )!=EOF)    putchar(c);
                  ;}
4、运行下列程序后,第一行输出内容          ,第二行输出内容         
main()
{ char  a[2][5]={"fghi", "name" }; 
    char *p, *s int j
字符串函数编程题    p=a[0] s=a[1]
    while(*p) p++
    while(*s) *p++=*s++
for(j=0j<2j++)  printf("%s\n",a[j])}  
5、输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如:“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。
#include”stdio.h”
int f(char  *p)
{
  char *p1, *p2;    p1=p2=p;
  while( *p2++);
                ;
while(            ){
  if(            ) return(0);
  p1++;      p2 --;  }
return 1;}
main()
{
  char s[200];
  printf(“输入一个字符串:”);
  scanf(“%s,s );
  if(              )printf(“字符串:%s是回文!\n”,s);
  else printf(“字符串:%s不是回文!\n”,s);

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