2-1
分数 2
作者 王俊玲-ktp
单位 集美大学
以下对C语言函数的描述中,正确的是(A)。
A.
C程序由一个或一个以上的函数组成
B.
函数既可以嵌套定义又可以递归调用
C.
函数必须有返回值,否则不能使用函数
D.
C程序中调用关系的所有函数必须放在同一个程序文件中
答案正确:2 分
2-2
分数 2
作者 张庆
单位 集美大学
能把函数处理结果的两个数据返回给主调函数,下面的方法中不正确的是(D )
A.
return 数组的首址
B.
形参用数组
C.
用两个全局变量
D.
return 两个数
答案正确:2 分
2-3
分数 2
作者 wangxiu
单位 福州大学
若有以下调用语句,则不正确的 fun( )函数的首部是( D)。
main( )
{ …
int a[50], n;
…
fun(n, &a[9]);
…
}
A.
void fun(int m, int x[ ])
B.
void fun(int s, int h[41])
C.
void fun(int p, int *s)
D.
void fun(int n, int a)
答案正确:2 分
2-4
分数 2
作者 xuwz
单位 广东东软学院
以下正确的函数声明形式是(B )。
A.
int func(int x , int y)
B.
int func(int , int);
C.
int func(int x ; int y);
D.
int func(int x , y);
答案错误:0 分
2-5
分数 2
作者 李廷元
单位 中国民用航空飞行学院
已定义以下函数
int fun(int *p) { return *p; }
该函数的返回值是__C__。
A.
不确定的值
B.
形参p中存放的值
C.
形参p所指存储单元中的值
D.
形参p的地址值
答案正确:2 分
2-6
分数 2
作者 王俊玲-ktp
单位 集美大学
某程序中对myfun函数有此说明:void myfun( ); 此说明的含义是(A)。
A.
myfun函数无返回值
B.
myfun函数的返回值可以是任意的数据类型
C.
myfun 函数的返回值是无值型的指针类型
D.
指针myfun指向一个函数,该函数无返回值
答案正确:2 分
2-7
分数 2
作者 王俊玲-ktp
单位 集美大学
以下函数值的类型是 ( A)。
fun (float x)
{ float y; y= 3*x-4; return y;}
A.
int
B.
不确定
C.
void
D.
float
答案正确:2 分
2-8
分数 2
作者 崔孝凤
单位 山东理工大学
对于一维数组名作为函数实参,以下描述正确的是( B)。
A.
实参数组类型与形参数组类型可以不一致。
B.
必须在主调函数中说明此数组的大小。
C.
函数调用时是将实参数组中的所有元素值复制到形参数组中。
D.
实参数组名与形参数组名必须保持一致。
答案正确:2 分
2-9
分数 2
作者 张高燕
单位 浙大城市学院
以下关于函数叙述中,错误的是( B)。
A.
函数未被调用时,系统将不为形参分配内存单元
B.
实参与形参的个数必须相等,且实参与形参的类型必须对应一致
C.
当形参是变量时,实参可以是变量、常量或表达式
D.
如函数调用时,实参与形参都为变量,则这两个变量不可能占用同一内存空间
答案正确:2 分
2-10
分数 2
作者 李克峰
单位 山东交通学院
如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 (C)。
void fun(int x)
{
static int y;
……
return;
}
int z;
void main( )
{
int a,b;
fun(a);
……
}
A.
x,y
B.
x,y,z
C.
a,b,z
D.
a,b,x,y,z
答案正确:2 分
2-11
分数 2
作者 崔孝凤
单位 山东理工大学
以下关于局部变量和全局变量的叙述错误的是(C )。
A.
main函数中定义的变量是局部变量。
B.
局部变量可以与全局变量重名。
C.
形式参数不是局部变量。
D.
在所有函数外定义的变量是全局变量。
答案正确:2 分
2-12
分数 2
作者 王俊玲-ktp
单位 集美大学
有如下程序,执行后输出结果是(D)。
void f(int x,int y)
{
int t;
if(x
A.
3,4,5
B.
5,3,4
C.
5,4,3
D.
4,3,5
答案正确:2 分
2-13
分数 2
作者 王俊玲-ktp
单位 集美大学
有以下程序,程序的执行结果是(D)。
char fun(char x , char y)
{
if(x
A.
函数调用出错
B.
8
C.
9
D.
7
答案正确:2 分
2-14
分数 2
作者 qin
单位 中国人民解放军海军工程大学
有以下程序
#include
void f(int *p,int *q);
main(){
int m=1,n=2,*r=&m;
f(r, &n);
printf("%d,%d",m,n);
}
void f(int *p,int *q)
{
p=p+1;
*q=*q+1;
}
程序运行后的输出结果是(B)
A.
2,3
B.
1,3
C.
1,4
D.
1,2
答案正确:2 分
2-15
分数 2
作者 张高燕
单位 浙大城市学院
执行下面程序,正确的输出是(A)。
int x = 5, y = 7;
void swap ( )
{
int z ;
z = x ; x = y ; y = z ;
}
int main(void)
{
int x = 3, y = 8;
swap ( ) ;
printf ("%d,%d n", x , y ) ;
return 0 ;
}
A.
3,8
B.
8,3
C.
5,7
D.
7,5
答案正确:2 分
2-16
分数 2
作者 李廷元
单位 中国民用航空飞行学院
5-6. 下列程序的输出结果是(A)
#include
int x1 = 30, x2 = 40;
sub(int x, int y) {
x1 = x; x = y; y = x1;
}
int main()
{
int x3 = 10, x4 = 20;
sub(x3, x4);
sub(x2, x1);
printf("%d,%d,%d,%dn", x3, x4, x1, x2);
return 0;
}
A.
10,20,40,40
B.
10,20,30,40
C.
10,20,40,30
D.
20,10,30,40
答案正确:2 分
2-17
分数 2
作者 王俊玲-ktp
单位 集美大学
以下程序的输出的结果是_C___。
#include
int x=3;
void incre();
int main()
{
int i;
for (i=1;i
A.
3 3
B.
2 2
C.
2 6
D.
2 5
答案正确:2 分
2-18
分数 2
作者 李廷元
单位 中国民用航空飞行学院
5-5. 下列程序的输出结果是(C)
#include
int fun3(int x) {
static int a = 3;
a += x;
return (a);
}
int main()
{
int k = 2, m = 1, n;
n = fun3(k); n = fun3(m);
printf("%dn", n);
return 0;
}
A.
3
B.
4
C.
6
D.
9
答案正确:2 分
2-19
分数 2
作者 周强
单位 青岛大学
执行以下程序,打印输出的内容是:(A)
#include
int x=5;
void incx( ){
x++;
}
int main( ){
int x=3;
incx( );
printf("%dn", x);
return 0;
}
A.
3
B.
4
C.
5
D.
6
答案正确:2 分
2-20
分数 2
作者 黄龙军
单位 绍兴文理学院
对于以下函数:
int f(int n) {
return n>1 ? f(n-1) * n : 1;
}
调用f(6)的结果是(B )
A.
120
B.
720
C.
1
D.
以上都错
答案正确:2 分
2-1
分数 4
作者 张泳
单位 浙大城市学院
若有下列定义,则以下不合法的表达式是( D)。
struct student{
int num;
int age;
};
struct student stu[3] = {{101, 20}, {102, 19}, {103, 20}}, *p = stu;
A.
(p++)->num
B.
p++
C.
(*p).num
D.
p = &stu.age
答案正确:4 分
2-2
分数 4
作者 范玉玲
单位 浙江大学
若有以下语句,则下面表达式的值为1002的是(D)。
struct student
{int age;
int num;};
struct student stu[3]={{1001,20},{1002,19},{1003,2}};
struct student *p;
p=stu;
A.
(p++)->num
B.
(p++)->age
C.
(*p).num
D.
(*++p).age
答案错误:0 分
2-3
分数 4
作者 往年试卷
单位 浙江大学
对于以下结构定义,++p->str中的++加在_A___。
struct {
int len;
char *str;
} *p;
A.
指针str上
B.
指针p上
C.
str指的内容上
D.
以上均不是
答案正确:4 分
创建提问
2-4
分数 4
作者 张泳
单位 浙大城市学院
对于以下结构定义,(*p)->str++中的++加在(D)。
struct { int len; char *str; } *p;
A.
指针str上
B.
指针p上
C.
str指向的内容上
D.
语法错误
答案正确:4 分
2-5
分数 4
作者 范玉玲
单位 济南大学
有以下程序
#include
struct S
{
int a,b;
}data[2]={10,100,20,200};
main()
{
struct S p=data[1];
printf("%dn",++(p.a));
}
程序运行后的输出结果是(B)
A.
20
B.
21
C.
10
D.
11
答案正确:4 分
2-6
分数 4
作者 张泳
单位 浙大城市学院
如果结构变量s中的生日是“1984年11月11日”,下列对其生日的正确赋值是(D)。
struct student
{
int no;
char name[20];
char sex;
struct{
int year;
int month;
int day;
}birth;
};
struct student s;
A.
year = 1984; month = 11; day = 11;
B.
birth.year = 1984; birth.month = 11; birth.day = 11;
C.
s.year = 1984; s.month = 11; s.day = 11;
D.
s.birth.year = 1984; s.birth.month = 11; s.birth.day=11;
答案正确:4 分
2-7
分数 4
作者 张泳
单位 浙大城市学院
下列程序的输出结果是( B)。
struct stu{
char num[10];
float score[3];
};
int main( )
{
struct stu s[3] = {{ "20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}};
struct stu *p = s;
int i;
float sum = 0;
for(i=0; i<3; i++){
sum = sum + p->score[i];
}
printf("%6.2f", sum);
return 0;
}
A.
260.00
B.
270.00
C.
280.00
D.
285.00
答案正确:4 分
2-8
分数 4
作者 张泳
单位 浙大城市学院
以下程序的输出结果是( C)。
struct stu{
int x;
int *y;
} *p;
int dt[4] = {10, 20, 30, 40};
struct stu a[4] = {50, &dt[0], 60, &dt[1], 70, &dt[2], 80, &dt[3]};
int main( )
{
p=a;
printf("%d,", ++p->x);
printf("%d,", (++p)->x);
printf("%d", ++(*p->y));
return 0;
}
A.
10,20,20
B.
50,60,21
C.
51,60,21
D.
60,70,31
答案正确:4 分
2-9
分数 4
作者 吴年志
单位 湖北汽车工业学院
以下选项中,能定义s为合法的结构体变量的是___B___。
A.
typedef struct abc
{ double a;
char b[10];
} s;
B.
struct
{ double a;
char b[10];
}s;
C.
struct ABC
{ double a;
char b[10];
} ;
ABC s;
D.
typedef ABC
{ double a;
char b[10];
} s;
答案正确:4 分
2-10
分数 4
作者 C课题组
单位 福州大学至诚学院
以下程序运行后的输出结果是【 C 】。
#include
typedef struct
{
int no;
double score;
}REC;
void fun(REC x)
{
x.no=20;
x.score=92.5;
}
int main()
{
REC a={10,80.0};
fun(a);
printf("%d,%.1lfn",a.no,a.score);
return 0;
}
A.
20,80.0
B.
20,92.5
C.
10,80.0
D.
10,92.5
答案正确:4 分
2-11
分数 4
作者 usx程序设计类课程组
单位 绍兴文理学院
以下程序的输出结果是( D)。
struct XY{
int x;
int y;
}s[2]={5, 3, 2, 6};
int main(){
printf("%dn",s[0].y*s[1].y);
return 0;
}
A.
30
B.
6
C.
10
D.
18
答案正确:4 分
2-12
分数 4
作者 黄龙军
单位 绍兴文理学院
以下代码段的输出结果是(B )。
struct Stu{
char name[9];
int age;
} p[5]={"John",18,"Iris",19,"Mary",17,"Jack",16};
for(int i=0;i<4;i++) p[4].age+=p[i].age;
p[4].age/=4;
printf("%dn",p[4].age);
A.
18
B.
17
C.
16
D.
不确定
答案正确:4 分
2-13
分数 4
作者 王秀秀
单位 山东交通学院
若有以下说明语句,
struct birthday
{
int year;
int month;
int day;
}day1;
则下面叙述正确的是( D)。
A.
day1为结构体类型名
B.
struct birthday为结构体变量名
C.
month为结构体变量名
D.
day1为结构体变量名
答案正确:4 分
2-14
分数 4
作者 王秀秀
单位 山东交通学院
如果结构变量s中的生日是“1990年12月15日”,下列对其生日的正确赋值是(D)。
struct student
{
int no;
char name[20];
char sex;
struct{
int year;
int month;
int day;
}birth;
};
struct student s;
A.
year = 1990;
month = 12;
day = 15;
B.
birth.year = 1990;
birth.month = 12;
birth.day = 15;
C.
s.year = 1990;
s.month = 12;
s.day = 15;
D.
s.birth.year = 1990;
s.birth.month = 12;
s.birth.day=15;
答案正确:4 分
2-15
分数 4
作者 王秀秀
单位 山东交通学院
设有如下定义,则对data中的a成员的正确引用是(B)。
struct sk
{
int a;
float b;
} data, *p=&data;
A.
(*p).data.a
B.
(*p).a
C.
p->data.a
D.
p.data.a
答案正确:4 分
2-16
分数 4
作者 王秀秀
单位 山东交通学院
设有如下定义,则对data中的a成员的正确引用是(D)。
struct sk
{
int a;
double b;
} data, *p = &data;
A.
(*p).data.a
B.
(*p).a
C.
p->data.a
D.
p.data.a
答案正确:4 分
2-17
分数 4
作者 王秀秀
单位 山东交通学院
当定义一个结构变量时,系统分配给它的内存空间大小是( A)。
A.
各成员所需内存量的总和
B.
结构中第一个成员所需内存量
C.
成员中占内存量最大者所需容量
D.
结构中最后一个成员所需内存量
答案正确:4 分
2-18
分数 4
作者 王秀秀
单位 山东交通学院
若有定义
typedef struct {
int n;
char ch[8];
} PER;
以下叙述中正确的是( B )。
A.
PER是结构体变量名
B.
PER是结构体类型名
C.
typedef struct 是结构体类型
D.
struct 是结构体类型名
答案正确:4 分
2-19
分数 4
作者 王秀秀
单位 山东交通学院
typedef double real;的含义是:(C)
A.
定义double类型变量real
B.
定义real类型的变量double
C.
将real声明为double类型的别名,real的使用和double一致
D.
将double声明为real类型的别名,double的使用和real一致
答案正确:4 分
2-20
分数 4
作者 LianBin
单位 浙大宁波理工学院
结构体定义如下:
struct date
{
int month;
int day;
int year;
};
struct student
{
char name[10];
int age;
char gender;
struct date birthday;
}std[30],*p=std;
相关程序的如下语句有错误的是:(D)
A.
(*p).birthday.day = std[15].birthday.day;
B.
printf("%c",(*(p+5)).gender);
C.
scanf("%c",&p->gender);
D.
scanf("%d",&p.age);
答案正确:4 分
2-1
分数 5
作者 李廷元
单位 中国民用航空飞行学院
下列关于C语言数据文件的叙述中正确的是__D__。
A.
文件由ASCII码字符序列组成,C语言只能读写文本文件
B.
文件由二进制数据序列组成,C语言只能读写二进制文件
C.
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.
文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
答案正确:5 分
2-2
分数 5
作者 崔孝凤
单位 山东理工大学
文件操作的一般步骤是(B )。
A.
读/写文件→修改文件→关闭文件
B.
打开文件→读/写文件→关闭文件
C.
读/写文件→打开文件→关闭文件
D.
读文件→写文件→关闭文件
答案正确:5 分
2-3
分数 5
作者 张泳
单位 浙大城市学院
定义FILE *fp; 则文件指针fp 指向的是(D)。
A.
文件在磁盘上的读写位置
B.
文件在缓冲区上的读写位置
C.
整个磁盘文件
D.
文件类型结构体
答案错误:0 分
2-4
分数 5
作者 崔孝凤
单位 山东理工大学
关于文件指针,以下说法错误的是(D )。
A.
只有通过文件指针变量才能调用相应文件。
B.
定义文件指针变量时,FILE必须大写。
C.
一个文件指针变量只能对应一个文件。
D.
一个文件指针变量可以同时对应多个文件。
答案正确:5 分
2-5
分数 5
作者 张泳
单位 浙大城市学院
若fopen()函数打开文件失败,其返回值是( C)。
A.
1
B.
-1
C.
NULL
D.
ERROR
答案正确:5 分
2-6
分数 5
作者 张泳
单位 浙大城市学院
以下可作为函数fopen中第一个参数的正确格式是(D )。
A.
c:usertext.txt
B.
c:usertext.txt
C.
"c:usertext.txt"
D.
"c:\user\text.txt"
答案错误:0 分
2-7
分数 5
作者 崔孝凤
单位 山东理工大学
若想对文本文件进行只读操作,打开此文件的方式是(D )。
A.
"rb"
B.
"w"
C.
"ab"
D.
"r"
答案正确:5 分
2-8
分数 5
作者 CLL
单位 上海第二工业大学
下列语句可以向文本文件readme.txt尾部继续添加数据,则正确的打开文件语句是:(B)
A.
fp=fopen("readme.txt", "ab");
B.
fp=fopen("readme.txt", "a+");
C.
fp=fopen("readme.txt", "rb");
D.
fp=fopen("readme.txt", "w");
答案正确:5 分
2-9
分数 5
作者 张泳
单位 浙大城市学院
函数fgetc的作用是从指定文件读入一个字符,该文件的打开方式必须是( D)。
A.
只写
B.
追加
C.
读或读写
D.
答案B和C都正确
答案错误:0 分
2-10
分数 5
作者 张泳
单位 浙大城市学院
若以“a+”方式打开一个已存在的文件,则以下叙述正确的是( A)。
A.
文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B.
文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C.
文件打开时,原有文件内容被删除,只可作写操作
D.
以上各种说法都不正确
答案正确:5 分
2-11
分数 5
作者 张泳
单位 浙大城市学院
函数fscanf()的正确调用形式是( D) 。
A.
fscanf(fp, 格式字符串, 输出表列);
B.
fscanf(格式字符串, 输出表列, fp);
C.
fscanf(格式字符串, 文件指针, 输出表列);
D.
fscanf(文件指针, 格式字符串, 输入表列);
答案正确:5 分
2-12
分数 5
作者 C课程组
单位 成都信息工程大学
在C语言中,下面关于文件操作正确的叙述是(B)
A.
对文件操作时需要先关闭文件
B.
对文件操作时需要先打开文件
C.
对文件操作时,必须先检查文件是否存在,然后再打开文件
D.
对文件操作时打开和关闭文件的顺序没有要求
答案正确:5 分
2-13
分数 5
作者 余贞侠
单位 成都信息工程大学
按照文件的存储方式,文件可以分为(C)
A.
数据文件与程序文件
B.
文本文件与字符文件
C.
二进制文件与文本文件
D.
格式文件与流式文件
答案正确:5 分
2-14
分数 5
作者 徐镜春
单位 浙江大学
当下面什么情况下,文件打开方式“w+”和“a+"有同样的效果。(B)
A.
打开文件既写又读
B.
要打开的文件存在且为空
C.
要打开的文件存在且不为空
D.
打开文件只写不读
答案正确:5 分
2-15
分数 5
作者 唐艳琴
单位 中国人民解放军陆军工程大学
有以下程序:
#include
int main()
{
FILE*fp;
int k,n,a[6]=[1,2,3,4,5,6];
fp = fopen("d2. dat", "w");
fprintf(fp, "%d%d%dn", a[0], a[1], a[2]);
fprintf(fp, "%d%d%dn", a[3], a[4], a[5]);
fclose(fp);
fp fopen("d2. dat","r");
fscanf(fp, "%d%d",&k,&n);
printf("%d %dn",k,n);
fclose(fp);
return 0;
}
程序运行后的输出结果是(C )
A.
1 2
B.
1 4
C.
123 456
D.
123 4
答案正确:5 分
2-16
分数 5
作者 C课程组
单位 湖南工程学院
为写文本文件my.txt而打开其的正确写法是(D )。
A.
fp=fopen("my.txt","r")
B.
fp=fopen("my.txt","rb")
C.
fp=fopen("my.txt","wb")
D.
fp=fopen("my.txt","w")
答案正确:5 分
2-17
分数 5
作者 唐艳琴
单位 中国人民解放军陆军工程大学
有如下定义,下面说法正确的是(D)。
FILE *fp;
fp=fopen("a.txt","w");
A.
若文件不存在,则无法将其打开
B.
文件打开后,初始读写位置取决于文件内有无内容,如有,则在文件最后
C.
可以对文件进行读写操作
D.
会打开一个空的文本文件
答案正确:5 分
2-18
分数 5
作者 伍建全
单位 重庆科技学院
以只读方式打开一个已有的文本文件test.txt,已有文件指针声明FILE* fp,正确调用fopen函数的方法是:(B)
A.
fp = fopen("test.txt", "a");
B.
fp = fopen("test.txt", "r");
C.
fp = fopen("test.txt", "rb");
D.
fp = fopen("test.txt", "w");
答案正确:5 分
2-19
分数 5
作者 CLL
单位 上海第二工业大学
若要“打开二进制文件进行读/写/追加”,在fopen函数中应使用的文件打开方式是(B )。
A.
"wb"
B.
"ab+"
C.
"wb+"
D.
"w+"
答案正确:5 分
2-20
分数 5
作者 郑卫华
单位 新疆科技学院
如果二进制文件a.dat已经存在,现在要求写入全新数据,应以(B )方式打开。
A.
”w”
B.
”wb”
C.
”w+”
D.
”wb+”
答案正确:5 分



