吉大《C语言程序设计》在线作业二
共25道题 总分:100分
一、单选题(共10题,40分)
1.以下叙述中不正确的是
A、在不同的函数中可以使用相同的名字的变量
B、函数中的形式参数是局部变量
C、在一个函数内定义的变量只在本函数范围内有效
D、在一个函数内的复合语句中定义的变量在本函数范围内有效
2.sizeof(float)是
A、一个双精度型表达式
B、一个整型表达式
C、一种函数调用
D、一个不合法的表达式
3.下面能正确进行字符串赋值操作的是
A、char s[5]={“ABCDE”};
B、char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};
C、char *s;s=”ABCDE”;
D、char *s;char a; scanf(”%s”,&s);
4.有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf(”%d\n”,fib(3));} 该程序的输出结果是
A、2
B、4
C、6
D、8
5.C语言允许函数类型缺省定义,此时函数值隐含的类型是
A、float
B、int
C、long
D、double
6.下列程序的输出结果是 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(”%d\n”, d*y); }
A、3
B、3.2
C、0
D、3.07
7.阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf(”Enter the infile name:\n”); scanf(”%s”,infile); printf(”Enter the outfile name:\n”); scanf(”%s”,outfile); if((in=fopen(infile,”r”))==NUL
A、程序完成将磁盘文件的信息在屏幕上显示的功能
B、程序完成将两个磁盘文件合二为一的功能
C、程序完成将一个磁盘文件复制到另一个磁盘文件中
D、程序完成将两个磁盘文件合并并在屏幕上输出
8.有以下程序: #include union pw { int i; char ch[2];}a; main() {a.ch[0]=13;a.ch[1]=0;printf(”%d\n”,a.i);} 程序的输出结果是
A、13
B、14
C、208
D、209
9.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。 #include “stdio.h” main(){ int i=0,j,k;do{i++;k=316-13*i;}while(k%11);j=k/11;printf(“316=13*%d+11*%d”,i,j);}
A、k吉大答案请进:opzy.net或请联系微信:1095258436
B、k
C、k/11==0
D、k==0
10.一个C语言程序是由
A、一个主程序和若干子程序组成
B、函数组成
C、若干过程组成
D、若干子程序组成
二、多选题(共5题,20分)
1.以下对C语言函数的有关描述中,错误的是:______。
A、调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B、函数既可以嵌套定义又可以递归调用
C、函数必须有返回值,否则不能使用函数
D、程序中有调用关系的所有函数必须放在同一个源程序文件中
2.关于静态局部变量的说明正确的是______。
A、静态局部变量存储在静态存储区
B、静态局部变量是在编译时赋初值的,即只赋一次值,在程序运行时它已有初值
C、若在定义局部变量时不赋初值,则编译时自动赋初值为0或空字符
D、虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的
3.以下不正确的描述是______。
A、函数的定义可以嵌套,函数的调用不可以嵌套
B、函数的定义不可以嵌套,函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义和函数的调用均不可以嵌套
4.对静态变量的正确描述
A、静态局部变量在静态存储区内分配单元
B、静态外部变量可以赋初值,也可以不赋初值
C、静态外部变量的作用与外部变量相同
D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
5.下列关于#include命令的叙述中,正确的是______。
A、一个#include命令中只能指定一个被包含文件
B、一个#include命令中可以指定多个被包含文件
C、一个被包含文件中又可以包含另一个被包含文件
D、#include命令中,文件名可以用双引号或尖括号括起来
三、判断题(共10题,40分)
1.puts和gets函数只能输入或输出一个字符串
A、错误
B、正确
2.语句int pt中的*pt是指针变量名。
A、错误
B、正确
3.switch语句中,多个case可以共用一组执行语句。( )
A、错误
B、正确
4.C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
A、错误
B、正确
5.共用体所占的内存空间大小取决于占空间最多的那个成员变量。
A、错误
B、正确
6.使用getchar函数可以不添加#include <stdio.h>命令。( )
A、错误
B、正确
7.for(;;)语句相当于while(1)语句
A、错误
B、正确
8.宏名必须用大写字母表示。
A、错误
B、正确
9.putchar()函数可以输出一个字符串
A、错误
B、正确
10.静态外部变量既可以在文本文件中引用,也可以在其它文件引用
A、错误
B、正确
吉大《C语言程序设计》在线作业二
共25道题 总分:100分
一、单选题(共10题,40分)
1.阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf(”Enter the infile name:\n”); scanf(”%s”,infile); printf(”Enter the outfile name:\n”); scanf(”%s”,outfile); if((in=fopen(infile,”r”))==NUL
A、程序完成将磁盘文件的信息在屏幕上显示的功能
B、程序完成将两个磁盘文件合二为一的功能
C、程序完成将一个磁盘文件复制到另一个磁盘文件中
D、程序完成将两个磁盘文件合并并在屏幕上输出
2.有如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=p[5]; 则b的值是
A、5
B、6
C、9
D、8
3.设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是
A、struct结构体类型的关键字
B、example是结构体类型名
C、x,y,z都是结构体成员名
D、struct ex是结构体类型名
4.下列程序的输出结果是 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(”%d\n”, d*y); }
A、3
B、3.2
C、0
D、3.07
5.函数 rewind 的作用是
A、使文件位置指针重新返回文件的开始位置
B、将文件位置指针指向文件中所要求的特定位置
C、使文件位置指针指向文件的末尾
D、使文件位置指针自动移至下一个字符位置
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); }
A、-1,5
B、1,6
C、0,7
D、4,10
7.若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是
A、a[p-a]
B、*(&a[i])
C、p[i]
D、a[10]
8.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(–argc>0) printf(”%s”,argv[argc]); printf(”\n”); }
A、ABCDEFG
B、IJHL
C、ABCDEFGHIJKL
D、IJKLABCDEFGH
9.以下不正确的定义语句是
A、double x[5]={2.0,4.0,6.0,8.0,10.0};
B、int y[5]={0,1,3,5,7,9};
C、char c1[]={′1′,′2′,′3′,′4′,′5′};
D、char c2[]={′\x10′,′\xa′,′\x8′};
10.设有数组定义: char array[]=”China”; 则数组 array所占的空间为
A、4个字节
B、5个字节
C、6个字节
D、7个字节
二、多选题(共5题,20分)
1.若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有
A、A、*(a+1)为元素6的地址
B、B、*(a[1]+1)的值为2
C、C、**(a+1)+2的值为8
D、D、a[0]与a相同
2.内存中供用户使用的存储空间可分为:______。
A、程序区
B、静态存储区
C、动态存储区
D、数据存储区
3.已知:int x,a,b;下列选项中正确的if语句是______。
A、if(a=b) x++;
B、if(a=<b) x++;
C、if(a-b) x++;
D、if(x) x++;
4.已知:int x;,则下面的说明指针变量pb的语句______不是正确的。
A、int pb=&x;
B、int *pb=x;
C、int *pb=&x;
D、*pb=*x
5.下列描述正确的是
A、由main 函数及其参数argc和* argv[]可以实现命令行方式
B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
C、字符数组并不要求它的最后一个字符是‘\0’
D、‘A’和“A”都是字符串常量
三、判断题(共10题,40分)
1.使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )
A、错误
B、正确
2.‘ a’和“a”在内存中所占字节数相同。( )
A、错误
B、正确
3.语句int pt中的*pt是指针变量名。
A、错误
B、正确
4.C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( )
A、错误
B、正确
5.switch语句中,多个case可以共用一组执行语句。( )
A、错误
B、正确
6.函数必须有返回值,否则不能使用函数
A、错误
B、正确
7.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
A、错误
B、正确
8.switch语句中,各个case和default的出现次序不影响执行结果。( )
A、错误
B、正确
9.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。
A、错误
B、正确
10.C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
A、错误
B、正确