奥特曼 发表于 2017-5-4 10:35:53

西南交大17春《高级语言程序设计B》在线作业二一满分答案

西南交大17春《高级语言程序设计B》在线作业二

一、单选题:
1.以下程序有语法错误,有关错误原因的正确说法是  main(    )  { int G=5,k;  void prtchar(    );  ...  k=prtchar(G);  ...  }          (满分:2)
    A. 语句 void prtchar(    );有错,它是函数调用语句,不能用void说明
    B. 变量名不能使用大写字母
    C. 函数说明和函数调用语句之间有矛盾
    D. 函数名不能使用下划线
2.有如下程序:  long fib(int n)  { if(n>2)return(fib(n-1)+fib(n-2));  else return(2);  }  main(    )  { printf("%d\n",fib(3));}  该程序的输出结果是          (满分:2)
    A. 2
    B. 4
    C. 6
    D. 8
3.能正确表达逻辑关系"a≥10"或"a≤0"的C语言表达式是(    )          (满分:2)
    A. a>=10ora<=0
    B. a>=0|a<=10
    C. a>=10&&a<=0
    D. a>=10(    )a<=0
4.一个C语言程序是由          (满分:2)
    A. 一个主程序和若干子程序组成
    B. 函数组成
    C. 若干过程组成
    D. 若干子程序组成
5.C语言表示逻辑假的方法是(    )          (满分:2)
    A. FALSE
    B. 0
    C. 1
    D. NULL
6.有如下程序  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
7.下列符号中,合法的C常量是(    )          (满分:2)
    A. ‘\t’
    B. 079
    C. 3.5e2.1
    D. 0xch
8.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是          (满分:2)
    A. a=20000+20000;
    B. a=4000*10;
    C. a=30000+10000;
    D. a=4000L*10L
9.以下叙述中不正确的是          (满分:2)
    A. 在不同的函数中可以使用相同的名字的变量
    B. 函数中的形式参数是局部变量
    C. 在一个函数内定义的变量只在本函数范围内有效
    D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
10.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”(双引号)括起来时,寻找被包含文件的方式是(    )          (满分:2)
    A. 仅仅搜索当前目录
    B. 仅仅搜索源程序所在目录
    C. 直接按系统设定的标准搜索目录
    D. 在系统当前目录搜索和C语言系统系统指定的INCLUDE目录中搜索
11.C语言开始执行程序的开始执行点是(    )          (满分:2)
    A. 程序中第一条可执行的语句
    B. 程序中第一个函数
    C. 程序中的main(    )函数
    D. 包含文件中的第一个函数
12.定义C函数时,不给出返回值类型,则默认的返回值类型是(    )          (满分:2)
    A. float
    B. void
    C. int
    D. NULL指针
13.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是          (满分:2)
    A. p=1;
    B. *q=2;
    C. q=p;
    D. *p=5;
14.函数 rewind 的作用是          (满分:2)
    A. 使文件位置指针重新返回文件的开始位置
    B. 将文件位置指针指向文件中所要求的特定位置
    C. 使文件位置指针指向文件的末尾
    D. 使文件位置指针自动移至下一个字符位置
15.以下程序有错,错误原因是  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;没有意义,可能会影响后面语句的执行结果
16.能正确表达逻辑关系"a≥5"且"a≤10"的C语言表达式是(    )          (满分:2)
    A. a>=5ora<=10
    B. a>=5|a<=10
    C. a>=5&&a<=10
    D. a>=5(    )a<=10
17.以下不正确的叙述是          (满分:2)
    A. 在C程序中,逗号运算符的优先级最低
    B. 在C程序中,APH和aph是两个不同的变量
    C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
    D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
18.下列程序的输出结果是  main(    )  { double d=3.2; int x,y;  x=1.2; y=(x+3.8)/5.0;  printf(&quot;%d\n&quot;, d*y);  }          (满分:2)
    A. 3
    B. 3.2
    C. 0
    D. 3.07
19.有定义static int a[]={1, 2, 3, 4},*p ; 执行语句p=a+2 ; 后,表达式*p的值为(    )          (满分:2)
    A. 4
    B. 1
    C. 2
    D. 3
20.C语言中,能识别处理的文件为          (满分:2)
    A. 文本文件和数据块文件
    B. 文本文件和二进制文件
    C. 流文件和文本文件
    D. 数据文件和二进制文件
21.若有如下说明 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
22.执行以下程序后,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
23.返回值为void的函数,其含义为(    )          (满分:2)
    A. 调用函数之后,被调用的函数没有返回值
    B. 调用函数之后,被调用的函数不返回
    C. 调用函数之后,被调用的函数的返回值为任意的类型
    D. 该类函数不允许被调用
24.以下正确的C标识符是(    )          (满分:2)
    A. 0XH
    B. 80
    C. main
    D. #A$
25.sizeof(float)是          (满分:2)
    A. 一个双精度型表达式
    B. 一个整型表达式
    C. 一种函数调用
    D. 一个不合法的表达式
二、多选题:
1.已知: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++;
2.关于实参和形参的说法正确的是(    )。          (满分:2)
    A. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
    B. 实参可以是变量、常量或表达式
    C. 实参与形参的类型应相同或赋值兼容
    D. 实参变量对形参变量的数据传递是“值传递”
3.下列说法不正确的是(    )。          (满分:2)
    A. C程序由符号构成
    B. C程序由标识符构成
    C. C程序由函数构成
    D. C程序由C语句构成
4.下列字符中能构成标识符的是(    )。          (满分:2)
    A. 数字字符
    B. 连接符
    C. 下划线字符
    D. 大写字母
5.不与while(x)语句中的x等价的是(    )。          (满分:2)
    A. x= =0
    B. x= =1
    C. x!=1
    D. x!=0
6.对静态变量的正确描述          (满分:2)
    A. 静态局部变量在静态存储区内分配单元( )
    B. 静态外部变量可以赋初值,也可以不赋初值
    C. 静态外部变量的作用与外部变量相同
    D. 静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
7.以下不正确的叙述是(    )。          (满分:2)
    A. C语言的主函数是无参函数
    B. C语言的主函数最多允许有1个参数
    C. C语言的主函数最多允许有2个参数
    D. C语言的主函数可以有2个以上参数
8.若定义:int a{0,2,4,6,8,10};以下描述正确的有          (满分:2)
    A. A、*(a+1)为元素6的地址
    B. B、*(a+1)的值为2
    C. C、**(a+1)+2的值为8
    D. D、a与a相同
9.函数调用可以(    )。          (满分:2)
    A. 出现在一个表达式中
    B. 出现在执行语句中
    C. 作为一个函数的实参
    D. 作为一个函数的形参
10.在动态存储区中主要存放以下数据(    )。          (满分:2)
    A. 函数形式参数
    B. 自动变量
    C. 函数调用时的现场保护和返回地址
    D. 全局变量
11.在文件操作中,用于检测和设置文件状态的函数有(    )。          (满分:2)
    A. 文件结束检测函数feof(    )
    B. 读写文件出错检测函数ferror(    )
    C. 文件出错和结束标志文件函数才clearerr(    )
    D. 文件关闭函数fclose(    )
12.若有以下定义和语句: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所指的存储单元
13.以下说法不正确的是(    )。          (满分:2)
    A. 定义函数时,形参的类型说明可以放在函数体内
    B. return后边的值不能为表达式
    C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
    D. 如果形参与实参的类型不一致,以实参类型为准
14.以下叙述中正确的是(    )。          (满分:2)
    A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
    B. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
    C. 可以通过赋初值的方式确定数组元素的个数
    D. 数组名代表的是数组所占存储区的首地址,其值不可改变
15.对函数的正确使用方法描述          (满分:2)
    A. A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组
    B. B、实参数组元素和形参数组元素类型可以不一致
    C. C、形参数组长度可以不指定
    D. D、形参数组长度可以大于实参数组长度
三、判断题:
1.静态外部变量既可以在文本文件中引用,也可以在其它文件引用          (满分:2)
    A. 错误
    B. 正确
2.宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。          (满分:2)
    A. 错误
    B. 正确
3.switch语句中,多个case可以共用一组执行语句。(    )          (满分:2)
    A. 错误
    B. 正确
4.使用printf和scanf函数时,必须添加#include 命令。(    )          (满分:2)
    A. 错误
    B. 正确
5.宏名必须用大写字母表示。          (满分:2)
    A. 错误
    B. 正确
6.for(;;)语句相当于while(1)语句          (满分:2)
    A. 错误
    B. 正确
7.C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。(    )          (满分:2)
    A. 错误
    B. 正确
8.putchar(    )函数可以输出一个字符串          (满分:2)
    A. 错误
    B. 正确
9.函数必须有返回值,否则不能使用函数          (满分:2)
    A. 错误
    B. 正确
10.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。          (满分:2)
    A. 错误
    B. 正确
西南交《高级语言程序设计B》在线作业一

一、单选题:
1.已知实型变量a存贮的是一个0--1之间的实数,将a以两位小数百分比形式输出(如:a=0.347592,则输出为34.75%)正确的打印语句是(    )          (满分:2)
    A. printf(“%.2f%%”,a*100)
    B. printf(“%.2f%”,a)
    C. printf(“%.2f%%”,a/100)
    D. printf(“%.2f%%”,100*(a+0.5));
2.以下说法中错误的是(    )          (满分: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
3.以下程序的输出结果是   void reverse(int a[],int n)   { int i,t;   for(i=0;i <n/2;i++)  { t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}   }   main(    )   { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;   reverse(b,8);   for(i=6;i<10;i++)s+=b[i];   printf(&quot; %d\n &quot;,s);          (满分:2)
    A. 22
    B. 10
    C. 34
    D. 30
4.C语言开始执行程序的开始执行点是(    )          (满分:2)
    A. 程序中第一条可执行的语句
    B. 程序中第一个函数
    C. 程序中的main(    )函数
    D. 包含文件中的第一个函数
5.下面程序的运行结果是  #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
6.设有数组定义: char array[]=&quot;China&quot;; 则数组 array所占的空间为          (满分:2)
    A. 4个字节
    B. 5个字节
    C. 6个字节
    D. 7个字节
7.下面程序的运行结果是  #include  main(    )  { int y=10;  do{y--;}while(--y);  printf(&quot;%d\n&quot;,y--);  }          (满分:2)
    A. 1
    B. 1
    C. 8
    D. 0
8.设有以下说明语句  struct ex  { int x ; float y; char z ;} example;  则下面的叙述中不正确的是          (满分:2)
    A. struct结构体类型的关键字
    B. example是结构体类型名
    C. x,y,z都是结构体成员名
    D. struct ex是结构体类型名
9.函数Func的功能是(    )   intFunc(char*ptr)   {char*p;      p=ptr;      while (*p++);      return (p-ptr-1);    }          (满分:2)
    A. 比较两个字串的大小
    B. 求字符串的长度
    C. 将串ptr复制到p中
    D. 以上三种说法都不对
10.以下正确的C标识符是(    )          (满分:2)
    A. 0XH
    B. 80
    C. main
    D. #A$
11.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为          (满分:2)
    A. 4
    B. 16
    C. 32
    D. 52
12.设有int x=11;则表达式(x++*1/3)的值是          (满分:2)
    A. 3
    B. 4
    C. 11
    D. 12
13.下面用scanf语句获得从键盘输入的值,正确的语句是:(    )          (满分:2)
    A. inta;scanf(“%d”,&a)
    B. chara;scanf(“%s”,&a)
    C. inta;scanf(“%d”,a)
    D. inta;scanf(“%d”,a);
14.以下可作为函数fopen中第一个参数的正确格式是(    )          (满分:2)
    A. c:user\text.tex
    B. c:\user\text.txt
    C. “c:user\text.tex”
    D. “c:\\user\\text.txt”
15.有定义static int a[]={1, 2, 3, 4},*p ; 执行语句p=a+2 ; 后,表达式*p的值为(    )          (满分:2)
    A. 4
    B. 1
    C. 2
    D. 3
16.下列各数据类型不属于构造类型的是          (满分:2)
    A. 枚举型
    B. 共用型
    C. 结构型
    D. 数组型
17.请选出以下语句的输出结果  printf(&quot;%d\n&quot;,strlen(&quot;\t\&quot;\065\xff\n&quot;));          (满分:2)
    A. 5
    B. 14
    C. 8
    D. 输出项不合法,无正常输出
18.若有定义:inta,*p=a;,则p+5表示(    )          (满分:2)
    A. 元素a的地址
    B. 元素a的值
    C. 元素a的地址
    D. 元素a的值
19.下列程序的输出结果是  main(    )  { double d=3.2; int x,y;  x=1.2; y=(x+3.8)/5.0;  printf(&quot;%d\n&quot;, d*y);  }          (满分:2)
    A. 3
    B. 3.2
    C. 0
    D. 3.07
20.sizeof(float)是          (满分:2)
    A. 一个双精度型表达式
    B. 一个整型表达式
    C. 一种函数调用
    D. 一个不合法的表达式
21.若有如下说明 int a={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的元素的表达式是(    )          (满分:2)
    A. *p+5
    B. *(p+5)
    C. *p+=5
    D. p+5
22.若k为整形,则while循环执行(    )次。k=2;while(k==0)printf(“%d”,k);   k--;printf(“\n”);          (满分:2)
    A. 10
    B. 9
    C. 0
    D. 1
23.C语言中,能识别处理的文件为          (满分:2)
    A. 文本文件和数据块文件
    B. 文本文件和二进制文件
    C. 流文件和文本文件
    D. 数据文件和二进制文件
24.如下程序 :                                             void main(    ){ int i,sum; for(i=1;i<=5;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是(    )          (满分:2)
    A. 死循环
    B. 3
    C. 6
    D. 15
25.以下说法中正确的是(    )          (满分:2)
    A. 一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针
    B. a/=b+c;这个式子和a=a/b+c;等价
    C. C语言开始执行程序的开始执行点是程序中第一条可执行的语句
    D. 对二维数组a赋值可以用这样的语句完成inta[]={1,2,3,4,5,6,7,8};
二、多选题:
1.以下(    )是正确的转义字符。(    )          (满分:2)
    A. ‘\\'
    B. ‘\’
    C. ‘\81'
    D. ‘\0'
2.对静态变量的正确描述          (满分:2)
    A. 静态局部变量在静态存储区内分配单元( )
    B. 静态外部变量可以赋初值,也可以不赋初值
    C. 静态外部变量的作用与外部变量相同
    D. 静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
3.内存中供用户使用的存储空间可分为:(    )。          (满分:2)
    A. 程序区
    B. 静态存储区
    C. 动态存储区
    D. 数据存储区
4.关于静态局部变量的说明正确的是(    )。          (满分:2)
    A. 静态局部变量存储在静态存储区
    B. 静态局部变量是在编译时赋初值的,即只赋一次值,在程序运行时它已有初值
    C. 若在定义局部变量时不赋初值,则编译时自动赋初值为0或空字符
    D. 虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的
5.关于宏定义的说法正确的是:          (满分:2)
    A. <p>宏名一般习惯用大写字母表示,以便与变量名相区别</p>
    B. 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
    C. 宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
    D. 宏定义不是C语句,不必在行末加分号
6.下列说法中错误的是(    )。          (满分:2)
    A. C程序总是从第一个定义的函数开始执行
    B. C程序总是从main函数开始执行
    C. C函数必须有返回值,否则不能使用函数
    D. C程序中有调用关系的所有函数必须放在同一个程序文件中
7.以下说法不正确的是(    )。          (满分:2)
    A. 定义函数时,形参的类型说明可以放在函数体内
    B. return后边的值不能为表达式
    C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
    D. 如果形参与实参的类型不一致,以实参类型为准
8.在缓冲文件系统中用于读写的函数有          (满分:2)
    A. putchar(    )
    B. fread(    )
    C. rewind(    )
    D. putw(    )
9.以下对C语言函数的有关描述中,错误的是:(    )。          (满分:2)
    A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
    B. 函数既可以嵌套定义又可以递归调用
    C. 函数必须有返回值,否则不能使用函数
    D. 程序中有调用关系的所有函数必须放在同一个源程序文件中
10.下列字符中能构成标识符的是(    )。          (满分:2)
    A. 数字字符
    B. 连接符
    C. 下划线字符
    D. 大写字母
11.在文件操作中,用于检测和设置文件状态的函数有(    )。          (满分:2)
    A. 文件结束检测函数feof(    )
    B. 读写文件出错检测函数ferror(    )
    C. 文件出错和结束标志文件函数才clearerr(    )
    D. 文件关闭函数fclose(    )
12.不与while(x)语句中的x等价的是(    )。          (满分:2)
    A. x= =0
    B. x= =1
    C. x!=1
    D. x!=0
13.若定义:int a{0,2,4,6,8,10};以下描述正确的有          (满分:2)
    A. A、*(a+1)为元素6的地址
    B. B、*(a+1)的值为2
    C. C、**(a+1)+2的值为8
    D. D、a与a相同
14.对函数的正确使用方法描述          (满分:2)
    A. A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组
    B. B、实参数组元素和形参数组元素类型可以不一致
    C. C、形参数组长度可以不指定
    D. D、形参数组长度可以大于实参数组长度
15.下列关于#include命令的叙述中,正确的是(    )。          (满分:2)
    A. 一个#include命令中只能指定一个被包含文件
    B. 一个#include命令中可以指定多个被包含文件
    C. 一个被包含文件中又可以包含另一个被包含文件
    D. #include命令中,文件名可以用双引号或尖括号括起来
三、判断题:
1.使用printf和scanf函数时,必须添加#include 命令。(    )          (满分:2)
    A. 错误
    B. 正确
2.语句int pt中的*pt是指针变量名。          (满分:2)
    A. 错误
    B. 正确
3.宏名必须用大写字母表示。          (满分:2)
    A. 错误
    B. 正确
4.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。          (满分:2)
    A. 错误
    B. 正确
5.一个int型与一个double型数据进行混合运算时,其结果是double型。          (满分:2)
    A. 错误
    B. 正确
6.模运算符要求两侧均应为整型数据。(    )          (满分:2)
    A. 错误
    B. 正确
7.puts和gets函数只能输入或输出一个字符串          (满分:2)
    A. 错误
    B. 正确
8.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。          (满分:2)
    A. 错误
    B. 正确
9.数据结构指的是数据的组织形式,数组就是一种数据结构(    )          (满分:2)
    A. 错误
    B. 正确
10.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。          (满分:2)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 西南交大17春《高级语言程序设计B》在线作业二一满分答案