一Word格式.docx
《一Word格式.docx》由会员分享,可在线阅读,更多相关《一Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
![一Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/30/dc0a97f6-f38f-4937-b7ff-1968135a96bf/dc0a97f6-f38f-4937-b7ff-1968135a96bf1.gif)
;
charb[]=."
astudent."
inti,j;
i=strlen(a);
for(j=__(8)__0_;
b[j]!
='
\0'
j++)
a[__(9)_i+j_]=b[__(10)j
__];
}
a[___(11)i+j__]=___(12)'
___;
7.for(表达式1;
表达式2;
表达式3)
语句组
的执行顺序是先求解表达式1、再___(13)判断表达式2_如果成立则执行___(14)__语句组__、然后___(15)__求解表达式3____。
1.已知宏定义#define
s
2+3
printf(”%d”,s*4);
的输出结果是__
(1)_14____。
2.若已知a=10,b=20,则表达式!
a<
b的值是_____
(2)__1____
3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。
void
fun2(int*x,int*y)
int
t;
t=*x;
*x=*y;
*y=t;
fun1()
a=20,b=30,c=25;
if(c>
b)
fun2(_____(3)_&
b,&
c
if(a<
c)
fun2(_____(4)__&
a,&
fun2(_____(5)__&
b_____);
(6)0
{intt=1,i=5;
for(;
printf("
5.C语言函数是由函数头和函数体两部分组成。
其中,函数头包括(7)函数说明,(8)函数名和(9)圆括号中的形式参数。
6.表达式(a==b)&
&
(a>
b)的值是___(10)__0__。
7.将下列字符串表示成C语言的字符串常量
C:
\TC\LIB_____(11)___"
\\TC\\LIB"
______
Hesaid:
"
I’mastudent."
__(12)_"
_____________
85%studentpassed.(13)_____"
\"
I\'
mastudent.\"
________)
8.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。
#include<
stdio.h>
i,t=1,s=0;
for(i=1;
i<
=101;
__(14)i+=2
{
s=s+i*t;
t=__(15)-t___;
}
二、填空题
1.在C语言中,正确的标识符是由__字母、数字、下划线_______组成的,且由____以字母、下划线___开头的。
2.设x=3,那么表达式y=(++x)+(++x)的结果为_10____,表达式执行后,变量x的结果为_5____.
3.一个变量的指针是指______该变量的地址____________.
4.组成数组元素的特点是_____一组数据类型相同的元素构成的;
组成结构体元素的特点是__一组数据类型不同的元素构成的
5.在C语言程序中,对文件进行操作首先要______打开_________;
然后对文件进行操作,最后要对文件实行__关闭___操作,防止文件中信息的丢失。
6.对字符串进行操作的函数有____字符串长度、取子字符串、字符串替换、字符串复制等。
7.C语言程序是由____函数_______构成的,而C语言的函数是由__语句____构成的。
8.要想定义整型变量a,实型变量b,字符型的变量c,应该使用的正确语句为___inta;
floatb;
charc;
___.
9.写出下面表达式的值
3*5/7+7%3_9.3____
x=2;
y=4;
(x++)+y
___6____
3+4>
=7-10___1___
3>
4?
3%2:
1
__1____
x=2,y=2;
++x&
++y____1___
x=3;
x+=x-=2
___2____
二、选择题
1、设整型变量a为5,使b不为2的表达式是(1、C)。
A.b=a/2B.b=6-(——a)C.b=a%2D.b=a%26gt;
3?
2:
1
2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:
C程序中的else总是与(2、C)组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前未配对的最近的ifD.同一行上的if
3、以下程序的输出结果是。
3、D
intx=10,y=10;
printf(“%d%d“n”,x——,——y);
A.1010B.99C.910D.109
4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为(4、B)。
A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i
5、选出下列标识符中不是合法的标识符的是(5、D)。
A.hot_doB.cat1C._priD.2ab
6、以下程序的输出结果是(6、A)。
inta=5;
floatx=3.14;
a*=x*(‘E’-‘A’);
printf(“%f“n”,(float)a);
A.62.000000B.62.800000C.63.000000D.62
7、设有说明double(*p1)[N];
其中标识符p1是(7、C)。
A.N个指向double型变量的指针。
B.指向N个double型变量的函数指针。
C.一个指向由N个double型元素组成的一维数组的指针。
D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
8、在C程序中有如下语句:
char*func(intx,inty);
它是(8、C)。
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
9、以下程序的输出结果是(9、D1)。
charstr[15]=“hello!
”;
printf(“%d“n”,strlen(str));
A.15B.14C.7D.6
10、分析以下程序的输出结果是(0、A)。
main
intadds(intx,inty)
A.2,3B.2,2C.3,2D.2,4
11、下列描述中不正确的是(11、C)。
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
12、以下程序的输出结果是(12、C)。
#definef(x)x*x
A.9B.6C.36D.18
13、设有如下定义:
intx=10,y=3,z;
则语句printf(“%d“n”,z=(x%y,x/y));
的输出结果是(13、D)。
A.1B.0C.4D.3
14、定义如下变量和数组:
inti;
intx=;
则语句for(i=0;
i%26lt;
3;
i++)printf(“%d”,x[i][2-i]);
的输出结果是(14、C)。
A.159B.147C.357D.369
15、以下对二维数组a进行正确初始化的是(15、B
A.inta=,,};
B.inta[]=;
C.inta[]=;
D.inta[]=,};
16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(16C)。
intx;
scanf(“%d”,%26amx);
if(x++%26gt;
5)printf(“%d”,x);
elseprintf(“%d“n”,x--);
A.7和5B.6和3C.7和4D.6和4
17、设有如下定义:
char*aa=;
则以下说法中正确的是。
17、DA)aa数组成元素的值分别是“abcd”和ABCD“
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址
18、下列程序的输出结果是(18、D)。
char*p1=“abcd”,*p2=“ABCD”,str[50]=“xyz”;
strcpy(str+2,strcat(p1+2,p2+1));
printf(“%s”,str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
19、下列程序的输出结果是(19、C)。
inta=,*P,**k;
p=a;
k=%26amp;
printf(“%d”,*(p++));
printf(“%d“n”,**k);
A.44B.22C.24D.46
20、不能把字符串:
Hello!
赋给数组b的语句是(20、B)。
A.charb=;
B.charb;
b=“Hello!
C.charb;
strcpy(b,“Hello!
”);
D.charb=“Hello!
三、读程序题
1、floatf=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是.1)3.141593,3.1416,3.142
2、intx=6,y=7;
printf(“%d,”,x++);
printf(“%d“n”,++y);
程序的输出结果是.
(2)6,8
3、a=3;
a+=(a%26lt;
1)?
a:
1;
printf(“%d”,a);
结果是.(3)4
4、for(a=1,b=1;
a%26lt;
=100;
a++)
b-=5;
程序的输出结果a的值为.(4)22
5、inty=1,x,*p,a[]=;
p=%26ama;
for(x=0;
x%26lt;
x++)
y+=*(p+x);
printf(“%d“n”,y);
程序的输出结果y的值是.(5)19
四、程序填空题
1、从键盘上输入10个数,求其平均值。
printf(“average=%f“n”,sum/10);
1、scanf(“%f”,%26amf);
sum+=f;
2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include
while(c!
=EOF);
2、fopen(“myfile”,w)fclose(fp);
3、以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
printf(““namax=%f“namin=%f“n”,amax,amin);
3、x%26gt;
=0.0x%26lt;
=amin
五、编程题
1.三个整数a、b、c,由键盘输入,输出其中最大的一个数。
1、main
2.输出1900~2000年中所有的闰年。
每输出3个年号换一行。
(判断闰年的条件为下面二者之一:
能被4整除,但不能被100整除。
或者能被400整除。
)2、#include“stdio.h”
if(n%3==0)
printf(““n”);
}}}
3.请编一个函数intfun(inta),它的功能是:
判断a是否是素数,若a是素数,返回1;
若不是素数,返回0.A的值由主函数从键盘读入。
3、#include“stdio.h”
intfun(inta)
printf(“%disaprime!
”,a);
return1;
4.有N个学生,每个学生的包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的,要求输出总平均成绩最高的学生,包括学号、性别、姓名和平均成绩。
4、#include“stdio.h”
#defineN3
structstudent
;
for(I=0;
I<
N;
I++)<
P>
max=stuarr[0].average;
index=0;
for(I=1;
if(stuarr[I].average%26gt;
max)
{max=stuarr[I].average;
1.程序段
*p,a;
p=&
a;
a=10;
%d"
p);
的输出应为:
1.C
A)10
B)0
C)不能确定
D)语法错误
2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是2.A
A)单向值传递
B)地址传递
C)相互传递
D)由用户指定方式
3.以下语句或语句组中,能正确进行字符串赋值的是。
3.D
A)char*sp;
*sp="
right!
B)chars[10];
s="
C)chars[10];
*s="
D)char*sp="
4.for(i=0;
10;
i++)
if(i〈=5)
break;
则循环结束后i的值为4.D
A)0
B)1
C)5
D)10
5.有以下程序
intm,n,p;
scanf("
m=%dn=%dp=%d"
&
m,&
n,&
p);
%d%d%d\n"
m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。
5.A
A)m=123n=456p=789
B)m=123
n=456
p=789
C)m=123,n=456,p=789
D)123
456
7896.C
6.C语言中,最基本的数据类型包括:
A)整型、实型、逻辑型
B)整型、字符型、数组
C)整型、实型、字符型
D)整型、实型、结构体
7.以下说法正确的是7.C
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main()函数中定义
C)C程序总是从main()函数开始执行
D)C程序的main()函数必须放在程序的开始部分
8.程序段
int*p,a=1;
*p=10;
a的值为:
8.B
A)1
B)10
C)不能确定
D)11
9.以下定义语句中,错误的是9.DA)inta[]={1,2};
B)char*a[3];
C)chars[10]="
test"
D)intn=5,a[n];
10.假定int类型变量占用两个字节,有定义:
intx[10]={0,2,4};
,则数组x在内存中所占字节数是
10.D
A)3
B)6
C)10
D)20
三、写出程序的运行结果(30分,每题10分)
1.写出程序运行后的输出结果。
intf(intb[][4])
inti,j,s=0;
for(j=0;
j<
4;
j++)
{
i=j;
if(i>
2)
i=3-j;
s+=b[i][j];
returns;
inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
f(a));
1.
16
2.
0.500000
2.写出程序运行后的输出结果
float
x=2,y;
if(x<
0)
y=0;
elseif(x<
10)
y=1/x;
else
y=1;
printf(“%f\n”,y);
3.
(1)函数sub()的功能是什么?
(2)写出程序运行的输出结果。
long
sub(int
num)
i;
subsum=1;
for(i=1;
=num;
subsum*=i;
return(subsum);
sum=0;
=4;
sum+=sub(i);
sum%1d=%ld\n"
,i,sum);
(1)函数sub()的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:
subsum*=i的次数。
(注:
非标准答案,表述相近既可)
实参i取值
返回值subsum的值
2
1*2=2
3
2*3=6
4
6*4=24
运行结果:
sum0=1
sum1=3
sum2=9
sum3=33
四、编程(完形填空)(20分,每题10分)
1.写一个函数,实现将一个长度≤80的字符串按逆序存放。
解题要求:
该函数的唯一形参是字符串的起始地址。
convert(charstring[])
length,mid,i;
char
temp;
length=____
(1)strlen
____(string);
mid=_
(2)length/2
for(__(3)i=1;
mid;
temp=_(4)string[i]
string[i]=string[_(5)(length-1)-i_];
string[(length-1)-i]=temp;
2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。
yy,mm,day;
scanf(“%d%d”,&
yy,&
mm);
switch(_(6)mm
case1:
case3:
case5:
case7:
case8:
case10:
case12:
day=__(7)_(7)31
break;
case4:
case6:
case9:
case11:
day=_(8)30break;
case2:
if(((yy%4==0)(9)&
(yy%100!
=0))(10)||
_(yy%400==0))
day=29;
day=28;
1.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式(a<
b?
a:
b)<
(c<
d?
c:
d)的值是。
.A
A)1
B)2
C)3
D)0
2.for(i=0;
则循环结束后i的值为2.A
3.下面正确的字符常量是:
3.B
A)“c”
B)‘\\’’
C)‘W’
D)‘’
4.C语言中,运算对象必须是整型的运算符是:
4.A
A)%
B)/
C)*
D)+
5.数字字符0的ASCII值为48,若有以下程序
chara='
1'
b='
2'
%c,"
b++);
b-a);
程序运行后的输出结果是。
5.C
A)3,2
B)50,2
C)2,2
D)2,50
6.以下选项中不能作为合法常量的是。
6.B
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
7.以下说法正确的是7.C
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main()函数中定义
C)C程序总是从main()函数开始执行