电科19春《C语言》在线作业2[答案]满分答案
18春《C语言》在线作业2-0001
试卷总分:100 得分:0
一、 单选题 (共 10 道试题,共 50 分)
1.若有以下程序段:int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t;} ...... 则该程序段的功能是( )
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)
D.对数组a进行选择排序(降序)
2.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
3."文件包含"预处理语句的使用形式中,当#include后面的文件名用" ",(双引号)括起时,寻找被包含文件的方式是( )
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
4.对下面程序 ,从整体功能及语法上看,说法正确的是( )(每行程序前面的数字表示行号)。 1 main() 2 { 3 float a[10]={0.0}; 4 int i 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=0;i<10;i++) a[0]=a[0]+a[i]; 7 printf("%d\n",a[0]); 8 }
A.没有错误
B.第3行有错误
C.第5行有错误
D.第7行有错误
5.设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( )
A.a[1][2]
B.a[1]
C.*(p+1*10+2)
D.*(a[1]+2)
6.设有程序段 t=0; while(printf("*")) {t++; if(t<3) break; } 下面描述正确的是( )
A.其中循环控制表达式与0等价
B.其中循环控制表达式与'0'等价
C.其中循环控制表达式是不合法的
D.以上说法部不对
7.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include<string.h> void f(char *p[],int n) { char *t; int i,j; for(i=0; i<n-1; i++) for(j=i+1;j<n; j++) if(strcmp(p[i],p[j])>0){t = p[i];p[i]=p[j];p[j] =t;} } main( ) { char *p[5] ={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”}
A.2
B.3
C.6
D.4
8.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
9.不能把字符串:Hello!赋给数组b的语句是( )
A.char b[10]={'H','e','l','l','o','!'};
B.char b[10];b="Hello!";
C.char b[10];strcpy(b,"Hello!");
D.char b[10]="Hello!";
10.若调用一个函数,且此函数中没有return语句,关于该函数则正确的说法是( )
A.没有返回值
B.返回若干个系统默认值
C.能返回一个用户所希望的函数值
D.返回一个不确定的值
电科19春《C语言》在线作业2[答案]多选题答案
二、 多选题 (共 10 道试题,共 50 分)
1.下列符号中可以用作自定义函数名的是( )
A.int
B.go_to
C.INT
D.Getchar
E.typedef
2.C语言规定,如下说法是正确的( )
A.不能将结构作为整体来进行存取;
B.结构是若干变量的集合,这些变量的类型可以相同;
C.共用体(联合)允许不同数据类型的数据使用共同的存储区域;
D.不能用&来取结构的地址;
E.位段是一种特殊的结构成员。位段的类型可以是char、int、float、double等。
3.在定义函数时,函数的存储类型可以( )
A.是static
B.是auto
C.是register
D.是extern
E.省略
4.以下程序正确计算p=n! (n>=0)的是( )
A.for(p=1.0,k=1;k<=n;) p*=k++;
B.p=1.0;k=0;while(k<n) p*=++k;
C.p=1.0;k=1;do{++k;p*=k;} while(k<=n);
D.p=1.0;for(k=n;k>=1;k--) p*=k--;
5.以下数据类型在内存中占用4个字节的是( )
A.int
B.unsigned long
C.float
D.unsigned char
6.以下哪些是关于指针数组的正确描述( )
A.int (*a)[4];
B.int *a[4];
C.指针数组每个元素都是指针变量
D.若int a[4][4]; int *b[]={a[0],a[1],a[2],a[3]}; 则b是指针数组
E.指针数组与指向数组的指针是等价的
7.以下关于C源程序文件的说法中正确的是( )
A.是一种二进制文件
B.是一种文本(ASCII码)文件
C.可以用DOS的type命令显示其内容
D.文件扩展名一般为c
8.下面关于C语言的说法错误的是( )
A.C函数必须有形式参数
B.任何复合语句体的{ }中允许定义局部变量
C.局部变量都存储在动态存贮区
D.C程序的执行起点只能是main函数
9.在函数调用过程中,下列说法正确的是( )
A.形式参数和实在参数各占一个独立的存储单元
B.形式参数和实在参数存储空间都是在函数调用时分配的
C.)在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D.函数调用结束时,临时存储区被撤消
E.在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
10.定义char s[81]; 后,能正确输入一个字符串到数组s的语句是( )
A.gets(s);
B.scanf (”%c”,s);
C.scanf (”%s”,&s[0]);
D.gets(&s[0]);
电科19春《C语言》在线作业2[答案]历年参考题目如下: