云南师范大学《计算机技术基础C语言》期末考试样卷及答案.docx
《云南师范大学《计算机技术基础C语言》期末考试样卷及答案.docx》由会员分享,可在线阅读,更多相关《云南师范大学《计算机技术基础C语言》期末考试样卷及答案.docx(9页珍藏版)》请在冰豆网上搜索。
云南师范大学《计算机技术基础C语言》期末考试样卷及答案
云南师范大学《计算机技术基础(C语言)》期末考试样卷及答案
10.判断char型变量ch是否为数字的表达式是____。
C
A.‘0’<=ch<=‘9’B.(ch>’0’)&&(ch<‘9’)
C.(ch>=‘0’)&&(ch<=‘9’)D.(ch>=‘0’)||(ch<=‘9’)
11.设x,y,t为int型变量,则执行语句”x=1;y=3;t=(++x)&&(x+y)||++y;”后,y的值为____。
B
A.4B.3C.1D.不确定的值
12.C语言函数内定义的局部变量的隐含存储类别是____。
B
A.staticB.autoC.registerD.extern
13.对switch后括号内的表达式,叙述正确的是____。
C
A.只能是数字B.可以是浮点数
C.只能是整型数据或字符型数据D.以上叙述都不对
14.以下数组的定义中,合法的是____。
C
A.intx(3);B.intx[3]
C.intx[2+1];D.intn=3,x[n];
15.以下初始化中能正确进行字符串赋值的操作是_____。
C
A.char*a=“abc”;B.char*a;gets(a);
C.chara[3]=“abc”;D.chara[3]={‘a’,’b’,’c’};
16.取地址运算符&,只能作用于_____。
C
A.常量B.表达式C.变量D.整型变量
17.以下程序的执行结果是________。
D
main()
{chart=‘w’,a=‘m’,b=‘d’,c=‘x’,m;
m=(t>a)?
t:
a;
m=(m>b)?
m:
b;
m=(m>c)?
m:
c;
printf("%c",m);
}
A.wB.mC.dD.x
18.下列关于switch和break语句的说法中正确的是_____。
B
A.break语句只能用在switch语句中
B.在switch语句中,可以根据需要决定是否使用break语句
C.在switch语句中必须使用break语句
D.以下选项都不正确
19.对for(表达式1;表达式2;表达式3)中表达式的正确理解是____。
A
A.表达式2可以是任意合法表达式
B.表达式2只能是关系或逻辑表达式
C.三个表达式均可省略,但这时循环体中必须含有continue语句
D.表达式1必须是设置循环初值的赋值表达式
20.若i为整型变量,则以下循环的执行次数是____。
D
for(i=2;i>0;--i);
A.无限次B.0次C.1次D.2次
21.以下程序运行后的输出结果是____。
C
main()
{intk=0;while(k++==0);printf(“%d”,k);}
A.0B.1C.2D.有语法错误
22.有以下程序循环执行____次。
B
x=0;do{x++;x=x*x;}while(!
x);
A.死循环B.1次C.2次D.有语法错误
23.定义共用体的关键字是_____。
A
A.unionB.enumC.structD.typedef
24.若变量已正确定义,执行语句scanf("%d%d%d",&k1,&k2,&k3);时,正确的输入是_____。
B
A.2030,40B.203040C.20,3040D.20,30,40
25.main()
{intm;scanf(“%d”,&m);
switch(m%4)
{case0:
case1:
printf(“%d”,m);break;
case2:
printf(“%d”,m*m);
case3:
printf(“%d”,m*m*m);break;
}
}
该程序运行后输入2<回车>,则程序的输出结果是_____。
D
A.4B.9C.927D.48
26.下面说法中错误的是____。
D
A.共用体变量的地址和它各成员的地址都是同一地址
B.共用体内的成员可以是结构变量,反之亦然
C.在任一时刻,共用体变量的各成员只有一个有效
D.函数可以返回一个共用体变量
27.下面结构体说明正确的是____。
C
A.structstB.structst;
{intx;floaty;{intx;floaty;
}}f1,f2;
C.structstD.structst
{intx;floaty;{intx;floaty;
};};
structstf1,f2;structf1,f2;
28.若有以下共用体说明:
unionuu
{floatx;doubley;charz;
}e2;
则e2所占用的存储单元字节数为____。
A
A.8B.4C.13D.1
29.若有以下结构体说明:
Structstudent
{charname[10];floatscore[4];
}team[10];
则team数组所占用的存储单元字节数为____。
D
A.26B.300C.286D.260
30.下面叙述中正确的是____。
B
A.main函数和其他函数间可相互调用
B.main函数可以调用其他函数,但其他函数不能调用main函数
C.因为main函数可不带参数,所以其后的参数小括号能省略
D.根据情况可以不写main函数
31.下面叙述中正确的是____。
A
A.形参必须是变量
B.函数中必须要有return语句
C.在其他函数中定义的变量不得与main函数中的变量同名
D.return语句中必须要指定一个确定的返回值或表达式
32.下面叙述中正确的是____。
A
A.在C语言中静态变量在未赋值时,其值为0
B.在C语言中任何变量在未赋值时,其值为0
C.外部变量在程序的任何函数中均有效
D.函数中任何一个局部变量均无法保留上一次调用时的运行结果
33.下列关于指针定义的描述,___________是错误的。
B
A.指针是一种变量,该变量用来存放某个变量的地址值的
B.指针是一种变量,该变量用来存放某个变量的值
C.指针变量的类型与它所指向的变量类型一致
D.指针变量的命名规则与标识符相同
34.有定义:
char*p1,*p2;则下列表达式中正确合理的是____。
D
A.p1/=5B.p1*=p2C.p1=&p2D.p1+=5
35.若有初始化“inta=2,*p;”,则要使p指向a应使用的语句是_____。
C
A.*p=aB.*p=&aC.p=aD.p=&a
36.若有定义和语句“floata[5],*p=a+2;”,且数组a的首地址为1000,则p中的值为_____。
A
A.1008B.1004C.1002D.1000
37.14.下面函数调用语句中实参的个数为:
。
B
func((exp1,exp2),(exp3,exp4,exp5))
A.1B.2C.4D.5
38.C语言中可以处理的文件类型有。
A
A.文本文件和二进制文件B.文本文件和数据文件
C.数据文件和二进制文件D.以上答案都不对
39.调用fopen函数打开一个文件失败时,函数的返回值是。
C
A.-1B.EOFC.NULLD.1
40.若fp已经正确指向一个指定的文件,把字符变量ch中的字符输出到该文件中,下面语句错误的是。
C
A.fputc(ch,fp);B.fprintf(fp,”%c”,ch);
C.putchar(ch);D.fwrite(&ch,sizeof(ch),1,fp);
三、填空题:
(每空1分,共15分)。
1.表达式(int)(1/3+5*3+5%3)的计算结果为【1】。
17
2.Char数据数据的取值范围是【1】。
-128--127
3.结构化程序提倡使用的三种基本控制结构是顺序结构、分支结构和【1】。
循环结构
4.若有定义“inta=1,b=2;”,则语句“a=a+b;b=a-b;a=a-b;”的作用是【1】。
交换变量a和b的值。
5.满足|y|<9的C语言表达式是【1】。
y>-9&&y<9
6.若有定义“floata[7]”,则a数据中元素的下标下界是【1】,上界是【2】。
【1】0【2】6
7.求解表达式*p++时,首先执行的运算符是【1】。
++
8.C语言中,函数的定义由函数头和【1】两部分组成。
函数体
9.把数据从内存输入到磁盘文件中,需要进行【1】操作;而从建立的数据文件中将数据输入到内存中,需要进行【2】操作。
【1】写【2】读
10.以下程序运行后的输出结果是【1】。
1
main()
{intx=-5;printf(“%d”,0<=x<=5);}
11.以下程序功能是从键盘输入一个年份year,判断其是否为闰年。
闰年的条件:
能被4整除,但不能被100整除;或者能被400整除。
请填空。
main()
{intyear,leap=0;
printf("pleaseinputtheyear:
");scanf("%d",&year);
if(year%400==0)leap=1;
elseif(【1】)leap=1;
if(【2】)printf("%d是闰年\n",year);
elseprintf("%d不是闰年\n",year);
}
【1】year%4==0&&year%100!
=0【2】leap
9.下面程序的功能是使用“冒泡法”对float型数组a中的11个已知数据从小到大的顺序进行排序,请填空。
for(i=0;i<10;i++)
for(j=0;j<=9-i;j++)
if(【1】)
{x=a[j];a[j]=a[j+1];a[j+1]=x;}
}
【1】a[j]>a[j+1]
四、编程题:
(共30分)。
1.请编写程序,计算一元二次方程ax2+bx+c=0的根。
(10分)
2.请编写程序,输出50—100之间能被7整除的数。
(10分)
3.请编写程序,将5*5的二维整型数组w中两条对角线上的元素乘以整数m,输出原始数组和修改后的数组。
要求:
数组原始数据及m的具体数值由用户通过键盘输入。
(10分)