在线作业 发表于 2017-10-9 11:44:31

北交17秋《C语言程序设计(专)》在线作业12题目

北交《C语言程序设计(专)》在线作业一
一、单选题:【10道,总分:40分】
1.以下程序的输出结果是  void reverse(int a[],int n)  { int i,t;  for(i=0;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(" %d\n ",s);          (满分:4)
    A. 22
    B. 10
    C. 34
    D. 30
2.请选出可用作C语言用户标识符的是          (满分:4)
    A. void,define,WORD
    B. a3b3,123,IF
    C. FOR,--abc,Case
    D. 2a,Do,Sizeof
3.以下程序有语法错误,有关错误原因的正确说法是  main(    )  { int G=5,k;  void prtchar(    );  ...  k=prtchar(G);  ...  }          (满分:4)
    A. 语句 void prtchar(    );有错,它是函数调用语句,不能用void说明
    B. 变量名不能使用大写字母
    C. 函数说明和函数调用语句之间有矛盾
    D. 函数名不能使用下划线
4.函数 rewind 的作用是          (满分:4)
    A. 使文件位置指针重新返回文件的开始位置
    B. 将文件位置指针指向文件中所要求的特定位置
    C. 使文件位置指针指向文件的末尾
    D. 使文件位置指针自动移至下一个字符位置
5.设有以下说明语句  struct ex  { int x ; float y; char z ;} example;  则下面的叙述中不正确的是          (满分:4)
    A. struct结构体类型的关键字
    B. example是结构体类型名
    C. x,y,z都是结构体成员名
    D. struct ex是结构体类型名
6.执行以下程序后,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);   }          (满分:4)
    A. -1,5
    B. 1,6
    C. 0,7
    D. 4,10
7.有如下程序:  long fib(int n)  { if(n>2)return(fib(n-1)+fib(n-2));  else return(2);  }  main(    )  { printf("%d\n",fib(3));}  该程序的输出结果是          (满分:4)
    A. 2
    B. 4
    C. 6
    D. 8
8.以下叙述中不正确的是          (满分:4)
    A. 在不同的函数中可以使用相同的名字的变量
    B. 函数中的形式参数是局部变量
    C. 在一个函数内定义的变量只在本函数范围内有效
    D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
9.若有以下程序  #include     int a[]={2,4,6,8};  main(    )  { int i;  int *p=a;  for(i=0;i<4;i++)a[i]=*p;  printf("%d\n",a[2]);  }  上面程序输出结果是          (满分:4)
    A. 6
    B. 8
    C. 4
    D. 2
10.以下程序有错,错误原因是  main(    )  { int *p,i;char *q,ch;  p=&i;  q=&ch;  *p=40;  *p=*q;  ......  }          (满分:4)
    A. p和q的类型不一致,不能执行*p=*q;语句
    B. *p中存放的是地址值,因此不能执行*p=40;语句
    C. q没有指向具体的存储单元,所以*q没有实际意义
    D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
二、多选题:【10道,总分:40分】

1.在文件操作中,用于检测和设置文件状态的函数有(    )。          (满分:4)
    A. 文件结束检测函数feof(    )
    B. 读写文件出错检测函数ferror(    )
    C. 文件出错和结束标志文件函数才clearerr(    )
    D. 文件关闭函数fclose(    )
2.以下(    )是正确的转义字符。(    )          (满分:4)
    A. ‘\\'
    B. ‘\’
    C. ‘\81'
    D. ‘\0'
3.以下叙述中正确的是(    )。          (满分:4)
    A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
    B. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
    C. 可以通过赋初值的方式确定数组元素的个数
    D. 数组名代表的是数组所占存储区的首地址,其值不可改变
4.以下说法不正确的是(    )。          (满分:4)
    A. 定义函数时,形参的类型说明可以放在函数体内
    B. return后边的值不能为表达式
    C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
    D. 如果形参与实参的类型不一致,以实参类型为准
5.在C语言中,正确的int类型的常数是:(    )。          (满分:4)
    A. 0
    B. 32768
    C. 037
    D. 0xaf
6.以下正确的C语言标识符是(    )。          (满分:4)
    A. ABC
    B. abc
    C. abc
    D. ab.c
7.关于实参和形参的说法正确的是(    )。          (满分:4)
    A. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
    B. 实参可以是变量、常量或表达式
    C. 实参与形参的类型应相同或赋值兼容
    D. 实参变量对形参变量的数据传递是“值传递”
8.带参宏定义与函数的区别是:(    )。          (满分:4)
    A. 函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换
    B. 函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的
    C. 宏不存在类型问题,宏名和参数都不存在类型问题
    D. 调用函数只能得到一个返回值,而使用宏可设法得到几个结果
9.C语言中函数返回值的类型与下列哪项无关?          (满分:4)
    A. 定义函数时所指定的函数类型
    B. 调用函数时临时
    C. 调用该函数的主函数类型
    D. return语句中的表达式类型
10.以下对一维数组a进行初始化,错误的语句是(    )。          (满分:4)
    A. int a=(0,0,0,0,0);
    B. int a={};
    C. int a={0};
    D. int a={10,9,8}
三、判断题:【5道,总分:20分】

1.宏名必须用大写字母表示。          (满分:4)
    A. 错误
    B. 正确
2.‘ a’和“a”在内存中所占字节数相同。(    )          (满分:4)
    A. 错误
    B. 正确
3.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。          (满分:4)
    A. 错误
    B. 正确
4.主函数和其它函数可以相互调用          (满分:4)
    A. 错误
    B. 正确
5.C程序中各函数之间既允许直接递归调用也允许间接递归调          (满分:4)
    A. 错误
    B. 正确
北交《C语言程序设计(专)》在线作业二
一、单选题:【10道,总分:40分】

1.下面程序的输出结果是  main(    )  { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;  printf("%d\n",*(p+2));}          (满分:4)
    A. 3
    B. 4
    C. 1
    D. 2
2.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是          (满分:4)
    A. a=20000+20000;
    B. a=4000*10;
    C. a=30000+10000;
    D. a=4000L*10L
3.有如下程序  int a[10]={1,2,3,4,5,6,7,8,9,10};  int *p=&a[3],b;b=p[5];  则b的值是          (满分:4)
    A. 5
    B. 6
    C. 9
    D. 8
4.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是          (满分:4)
    A. p=1;
    B. *q=2;
    C. q=p;
    D. *p=5;
5.下列各数据类型不属于构造类型的是          (满分:4)
    A. 枚举型
    B. 共用型
    C. 结构型
    D. 数组型
6.以下程序有错,错误原因是  main(    )  { int *p,i;char *q,ch;  p=&i;  q=&ch;  *p=40;  *p=*q;  ......  }          (满分:4)
    A. p和q的类型不一致,不能执行*p=*q;语句
    B. *p中存放的是地址值,因此不能执行*p=40;语句
    C. q没有指向具体的存储单元,所以*q没有实际意义
    D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
7.设有int x=11;则表达式(x++*1/3)的值是          (满分:4)
    A. 3
    B. 4
    C. 11
    D. 12
8.下列程序的输出结果是  main(    )  { double d=3.2; int x,y;  x=1.2; y=(x+3.8)/5.0;  printf("%d\n", d*y);  }          (满分:4)
    A. 3
    B. 3.2
    C. 0
    D. 3.07
9.有如下程序:  long fib(int n)  { if(n>2)return(fib(n-1)+fib(n-2));  else return(2);  }  main(    )  { printf("%d\n",fib(3));}  该程序的输出结果是          (满分:4)
    A. 2
    B. 4
    C. 6
    D. 8
10.设有数组定义: char array[]="China"; 则数组 array所占的空间为          (满分:4)
    A. 4个字节
    B. 5个字节
    C. 6个字节
    D. 7个字节
二、多选题:【10道,总分:40分】

1.C提供的预处理功能主要有(    )。          (满分:4)
    A. 宏定义
    B. 文件包含
    C. 条件编译
    D. 异常终止
2.以下正确的C语言标识符是(    )。          (满分:4)
    A. ABC
    B. abc
    C. abc
    D. ab.c
3.对静态变量的正确描述          (满分:4)
    A. 静态局部变量在静态存储区内分配单元
    B. 静态外部变量可以赋初值,也可以不赋初值
    C. 静态外部变量的作用与外部变量相同
    D. 静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
4.关于宏定义的说法正确的是:          (满分:4)
    A. 宏名一般习惯用大写字母表示,以便与变量名相区别
    B. 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
    C. 宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
    D. 宏定义不是C语句,不必在行末加分号
5.以下不正确的描述是(    )。          (满分:4)
    A. 函数的定义可以嵌套,函数的调用不可以嵌套
    B. 函数的定义不可以嵌套,函数的调用可以嵌套
    C. 函数的定义和函数的调用均可以嵌套
    D. 函数的定义和函数的调用均不可以嵌套
6.关于实参和形参的说法正确的是(    )。          (满分:4)
    A. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
    B. 实参可以是变量、常量或表达式
    C. 实参与形参的类型应相同或赋值兼容
    D. 实参变量对形参变量的数据传递是“值传递”
7.不与while(x)语句中的x等价的是(    )。          (满分:4)
    A. x= =0
    B. x= =1
    C. x!=1
    D. x!=0
8.下列描述正确的是          (满分:4)
    A. 由main 函数及其参数argc和* argv[]可以实现命令行方式
    B. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
    C. 字符数组并不要求它的最后一个字符是‘\0'
    D. ‘A'和“A”都是字符串常量
9.在动态存储区中主要存放以下数据(    )。          (满分:4)
    A. 函数形式参数
    B. 自动变量
    C. 函数调用时的现场保护和返回地址
    D. 全局变量
10.下列字符中能构成标识符的是(    )。          (满分:4)
    A. 数字字符
    B. 连接符
    C. 下划线字符
    D. 大写字母
三、判断题:【5道,总分:20分】

1.C程序中各函数之间既允许直接递归调用也允许间接递归调          (满分:4)
    A. 错误
    B. 正确
2.switch语句中,各个case和default的出现次序不影响执行结果。(    )          (满分:4)
    A. 错误
    B. 正确
3.共用体所占的内存空间大小取决于占空间最多的那个成员变量。          (满分:4)
    A. 错误
    B. 正确
4.使用getchar函数可以不添加#include 命令。(    )          (满分:4)
    A. 错误
    B. 正确
5.putchar(    )函数可以输出一个字符串          (满分:4)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 北交17秋《C语言程序设计(专)》在线作业12题目