作业辅导 发表于 2017-9-30 10:43:17

(答案资料)西南交通大学17秋《高级语言程序设计A》在线作业二

西南交《高级语言程序设计A》在线作业二
一、单选题:【25道,总分:50分】


1.设有以下说明语句  struct ex  { int x ; float y; char z ;} example;  则下面的叙述中不正确的是          (满分:2)
    A. struct结构体类型的关键字
    B. example是结构体类型名
    C. x,y,z都是结构体成员名
    D. struct ex是结构体类型名
2.设有int x=11;则表达式(x++*1/3)的值是          (满分:2)
    A. 3
    B. 4
    C. 11
    D. 12
3.以下说法中错误的是(    )          (满分:2)
    A. a*=1;这个式子等价于a=a*1
    B. a/=b+c;这个式子和a=a/b+c;等价
    C. a/=b-c;这个式子等价于a=a/(b-c)
    D. a*=b;这个式子等价于a=a*b;
4.若有如下说明 char a={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’},*p=a; 则输出表达式*(p+8),即printf("%c\n",*(p+8));得到(    )          (满分:2)
    A. g
    B. h
    C. i
    D. j
5.若有以下定义: char a; int b; float c; double d;则表达式a*b+d-c值的类型为(    )          (满分:2)
    A. float
    B. int
    C. char
    D. double
6.C语言开始执行程序的开始执行点是(    )          (满分:2)
    A. 程序中第一条可执行的语句
    B. 程序中第一个函数
    C. 程序中的main(    )函数
    D. 包含文件中的第一个函数
7.下面程序的运行结果是  #include  main(    )  { int a=1,b=10;  do  {b-=a;a++;}while(b--<0);  printf(&quot;a=%d,b=%d\n&quot;,a,b);  }          (满分:2)
    A. a=3,b=11
    B. a=2,b=8
    C. a=1,b=-1
    D. a=4,b=9
8.下列程序段的输出结果是(    )void fun(int *x, int *y) { printf("%d %d", *x, *y); *x=3; *y=4;}void main(    ) { int x=1, y=2; fun(&y,&x);  printf("%d %d", x, y); }          (满分:2)
    A. 1212
    B. 2143
    C. 1234
    D. 2112
9.返回值为void的函数,其含义为(    )          (满分:2)
    A. 调用函数之后,被调用的函数没有返回值
    B. 调用函数之后,被调用的函数不返回
    C. 调用函数之后,被调用的函数的返回值为任意的类型
    D. 该类函数不允许被调用
10.以下说法中正确的是(    )          (满分:2)
    A. 一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针
    B. a/=b+c;这个式子和a=a/b+c;等价
    C. C语言开始执行程序的开始执行点是程序中第一条可执行的语句
    D. 对二维数组a赋值可以用这样的语句完成inta[]={1,2,3,4,5,6,7,8};
11.以下程序有错,错误原因是  main(    )  { int *p,i;char *q,ch;  p=&i;  q=&ch;  *p=40;  *p=*q;  ......  }          (满分:2)
    A. p和q的类型不一致,不能执行*p=*q;语句
    B. *p中存放的是地址值,因此不能执行*p=40;语句
    C. q没有指向具体的存储单元,所以*q没有实际意义
    D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
12.有如下程序:  long fib(int n)  { if(n>2)return(fib(n-1)+fib(n-2));  else return(2);  }  main(    )  { printf(&quot;%d\n&quot;,fib(3));}  该程序的输出结果是          (满分:2)
    A. 2
    B. 4
    C. 6
    D. 8
13.设有以下语句:  char x=3,y=6,z;  z=x^y<<2;  则z的二进制值是          (满分:2)
    A. 00010100
    B. 00011011
    C. 00011100
    D. 00011000
14.以下不正确的叙述是          (满分:2)
    A. 在C程序中,逗号运算符的优先级最低
    B. 在C程序中,APH和aph是两个不同的变量
    C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
    D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
15.C语言中运算对象必须是整型的运算符是(    )          (满分:2)
    A. %
    B. /
    C. =
    D. <=
16.C语言表示逻辑假的方法是(    )          (满分:2)
    A. FALSE
    B. 0
    C. 1
    D. NULL
17.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后c3中的值是(    )          (满分:2)
    A. 0
    B. 0.5
    C. 1
    D. 2
18.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是          (满分:2)
    A. p=1;
    B. *q=2;
    C. q=p;
    D. *p=5;
19.下面程序的运行结果是  #include  main(    )  { int y=10;  do{y--;}while(--y);  printf(&quot;%d\n&quot;,y--);  }          (满分:2)
    A. 1
    B. 1
    C. 8
    D. 0
20.下面程序段的运行结果是  char *format=&quot;%s,a=%d,b=%d\n&quot;;  int a=11,b=10;  a+=b;  printf(format,&quot;a+=b&quot;,a,b);          (满分:2)
    A. for,&quot;a+=b&quot;,ab
    B. format,&quot;a+=b&quot;
    C. a+=b,a=21,b=10
    D. 以上结果都不对
21.执行以下程序后,a,b的值分别为   main(    )   { int a,b,k=4,m=6,*p1=&k,*p2=&m;   a=p1==&m;   b=(*p1)/(*p2)+7;   printf("a=%d\n",a);   printf("b=%d\n",b);   }          (满分:2)
    A. -1,5
    B. 1,6
    C. 0,7
    D. 4,10
22.若有以下程序  #include     int a[]={2,4,6,8};  main(    )  { int i;  int *p=a;  for(i=0;i<4;i++)a[i]=*p;  printf(&quot;%d\n&quot;,a[2]);  }  上面程序输出结果是          (满分:2)
    A. 6
    B. 8
    C. 4
    D. 2
23.函数Func的功能是(    )   intFunc(char*ptr)   {char*p;      p=ptr;      while (*p++);      return (p-ptr-1);    }          (满分:2)
    A. 比较两个字串的大小
    B. 求字符串的长度
    C. 将串ptr复制到p中
    D. 以上三种说法都不对
24.有如下程序  int a[10]={1,2,3,4,5,6,7,8,9,10};  int *p=&a[3],b;b=p[5];  则b的值是          (满分:2)
    A. 5
    B. 6
    C. 9
    D. 8
25.C语言存贮字符串时,用特殊字符(    )表示字符串结束          (满分:2)
    A. ’\x0a’
    B. ’0’
    C. 13
    D. ’\0’
二、多选题:【15道,总分:30分】

1.以下对一维数组a进行初始化,错误的语句是(    )。          (满分:2)
    A. int a=(0,0,0,0,0);
    B. int a={};
    C. int a={0};
    D. int a={10,9,8}
2.以下叙述中正确的是(    )。          (满分:2)
    A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
    B. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
    C. 可以通过赋初值的方式确定数组元素的个数
    D. 数组名代表的是数组所占存储区的首地址,其值不可改变
3.以下正确的C语言标识符是(    )。          (满分:2)
    A. ABC
    B. abc
    C. abc
    D. ab.c
4.若有以下定义和语句:double r=99,*p=&r; *p=r;则以下不正确的叙述是:(    )          (满分:2)
    A. 以上两处的*p含义相同,都说明给指针变量p赋值
    B. 语句“*p=r;”把变量r的地址值赋给指针变量p
    C. 语句“*p=r;”取变量r的值放回r中
    D. 在“double r=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
5.下列字符中能构成标识符的是(    )。          (满分:2)
    A. 数字字符
    B. 连接符
    C. 下划线字符
    D. 大写字母
6.在文件操作中,用于检测和设置文件状态的函数有(    )。          (满分:2)
    A. 文件结束检测函数feof(    )
    B. 读写文件出错检测函数ferror(    )
    C. 文件出错和结束标志文件函数才clearerr(    )
    D. 文件关闭函数fclose(    )
7.在动态存储区中主要存放以下数据(    )。          (满分:2)
    A. 函数形式参数
    B. 自动变量
    C. 函数调用时的现场保护和返回地址
    D. 全局变量
8.关于文件的打开方式描述正确的是:(    )。          (满分:2)
    A. r:打开只读文件
    B. a+:打开或建立用于更新数据的文件,数据追加到文件尾
    C. a:打开或建立一个把数据追加到文件尾的文件
    D. r+:打开用于更新数据的文件
9.关于宏定义的说法正确的是:          (满分:2)
    A. <p>宏名一般习惯用大写字母表示,以便与变量名相区别</p>
    B. 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
    C. 宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
    D. 宏定义不是C语句,不必在行末加分号
10.在C语言中,正确的int类型的常数是:(    )。          (满分:2)
    A. 0
    B. 32768
    C. 037
    D. 0xaf
11.已知:int x,a,b;下列选项中正确的if语句是(    )。          (满分:2)
    A. if(a=b) x++;
    B. if(a=<b) x++;
    C. if(a-b) x++;
    D. if(x) x++;
12.以下(    )是正确的转义字符。(    )          (满分:2)
    A. ‘\\'
    B. ‘\’
    C. ‘\81'
    D. ‘\0'
13.函数调用可以(    )。          (满分:2)
    A. 出现在一个表达式中
    B. 出现在执行语句中
    C. 作为一个函数的实参
    D. 作为一个函数的形参
14.对静态变量的正确描述          (满分:2)
    A. 静态局部变量在静态存储区内分配单元( )
    B. 静态外部变量可以赋初值,也可以不赋初值
    C. 静态外部变量的作用与外部变量相同
    D. 静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
15.下列关于#include命令的叙述中,正确的是(    )。          (满分:2)
    A. 一个#include命令中只能指定一个被包含文件
    B. 一个#include命令中可以指定多个被包含文件
    C. 一个被包含文件中又可以包含另一个被包含文件
    D. #include命令中,文件名可以用双引号或尖括号括起来
三、判断题:【10道,总分:20分】

1.C程序中各函数之间既允许直接递归调用也允许间接递归调          (满分:2)
    A. 错误
    B. 正确
2.puts和gets函数只能输入或输出一个字符串          (满分:2)
    A. 错误
    B. 正确
3.宏名必须用大写字母表示。          (满分:2)
    A. 错误
    B. 正确
4.for(;;)语句相当于while(1)语句          (满分:2)
    A. 错误
    B. 正确
5.宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。          (满分:2)
    A. 错误
    B. 正确
6.数据结构指的是数据的组织形式,数组就是一种数据结构(    )          (满分:2)
    A. 错误
    B. 正确
7.语句int pt中的*pt是指针变量名。          (满分:2)
    A. 错误
    B. 正确
8.C程序的执行总是从第一个定义的函数开始          (满分:2)
    A. 错误
    B. 正确
9.‘ a’和“a”在内存中所占字节数相同。(    )          (满分:2)
    A. 错误
    B. 正确
10.模运算符要求两侧均应为整型数据。(    )          (满分:2)
    A. 错误
    B. 正确
更多学习资料请登录www.openhelp100.com

页: [1]
查看完整版本: (答案资料)西南交通大学17秋《高级语言程序设计A》在线作业二