c语言综合Word格式.docx
《c语言综合Word格式.docx》由会员分享,可在线阅读,更多相关《c语言综合Word格式.docx(59页珍藏版)》请在冰豆网上搜索。
![c语言综合Word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/15/e6d3a8e2-3f28-488c-9526-c0099526c33b/e6d3a8e2-3f28-488c-9526-c0099526c33b1.gif)
A、int*p=a;
B、int*p=&
a;
C、int&
p=a;
D、intp=&
13,以下正确的描述是(B)。
A、函数的定义和函数的调用均不可以嵌套
B、函数的定义不可以嵌套,函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义可以嵌套,函数的调用不可以嵌套
14,设inta;
floatb;
则执行(int)b后b的数据类型为(A)。
A、floatB、不确定C、voidD、int
15,执行语句“x=(a=5,b=a++)”后,x,a,b的值依次为(D)。
A、6,6,5B、6,5,5C、6,5,6D、5,6,5
16,C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)。
A、地址传递B、单向值传递
C、由用户指定传递方式D、由实参传给形参,再由形参传回给实参
17,以下程序段的输出结果是(C)。
doublea=1234.56;
printf("
%6.1f\n"
a);
A、提示出错,无结果B、1234.56C、1234.6D、1234.5
18,设inta=3,b=4,c=5;
则a||b+c&
b-c值为(C)。
A、真B、假C、1D、0
19若二维数组a有m列,则在a[i][j]前的元素个数为(C)。
A、j*m+IB、i*m+j+1C、i*m+jD、i*m+j-1
20设x=0,y=4,z=5,则执行x&
++y&
z--后x,y,z的值分别为(A)。
A、0,4,5B、0,5,5C、0,5,4D、0,4,4
21,设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是(C)。
A、4B、4.2C、3.9D、3.75
22,设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;
后a的值为(D)。
A、132B、12C、144D、0
23,执行下列程序段后,n值为(D)。
intn=0,a=1;
switch(a){
case1:
n+=1;
case2:
n+=2;
break;
default:
n+=3;
}
A、6B、1C、2D、3
24,执行以下程序后,s值为(B)。
intn=1,s=0;
while(++n<
10)
{if(!
(n%5))break;
s+=n;
A、1B、9C、25D、以上均不是
25,下列程序段执行几次循环(B)。
intj=0;
while(!
(++j%3))break;
A、3
B、一次也不执行
C、6
26,假定所有变量均已正确定义,下列程序段运行后x的值是(A)。
a=b=c=0,x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A、4B、35C、3D、34
27,下列各语句中,能够且仅输出整型变量a、b中最大值的是(D)。
A、if(a<
b)printf(”%d\n”,a);
printf(”%d\n”,b);
B、printf(”%d\n”,b);
if(a>
C、if(a>
D、if(a>
elseprintf(”%d\n”,b);
28,以下程序循环几次(D)。
intx=-1;
do{x=x*x;
}while(!
x);
A、死循环B、有语法错误C、2D、1
29,假定所有变量均已正确定义,下列程序段运行后y的值是(C)。
inta=0,y=10;
if(a=0)y--;
elseif(a>
0)y++;
elsey+=y;
A、9B、0C、20D、11
30,执行下列程序段后,a值为(C)。
inta=15,b=-1;
if((a>
b)?
a++:
b++)a%=5;
A、16B、0C、1D、15
31,下列while循环,将执行几次(C)。
inti=4;
while(i--)printf(“%d”,i);
A、无限次B、0C、4D、3
二.判断题
1.表达式(j=3,j++)的值是4.错误
2.假设有inta[10],*p;
则p=&
a[0]与p=a等价正确
3.语句scanf("
%7.2f"
&
a);
是一个合法的scanf函数。
错误
4.C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
正确
5.x*=y+8等价于x=x*(y+8)。
6.变量根据其作用域的范围可以分作局部变量和全局变量.正确
7.若a=3,b=2,c=1则关系表达式"
(a>
b)==c"
的值为"
真"
。
8.通过return语句,函数可以带回一个或一个以上的返回值。
9.while和do…while循环不论什么条件下它们的结果都是相同的.错误
10.c程序总是从程序的第一条语句开始执行.错误
11.语句printf("
%f%%"
1.0/3);
输出为0.333333错误
12.果被调用函数的定义出现在主调函数之前,可以不必加以声明.正确
13.在C程序中,函数既可以嵌套定义,也可以嵌套调用错误
14.C语言中"
%"
运算符的运算对象必须是整型.正确
15.a=(b=4)+(c=6)是一个合法的赋值表达式。
16.循环结构中的continue语句是使整个循环终止执行错误
17.若i=3,则printf("
%d"
-i++);
输出的值为-4错误
18.while和do…while循环不论什么条件下它们的结果都是相同的.错误
19.如果想使一个数组中全部元素的值为0,可以写成inta[10]={0*10};
错误
20.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
21.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.错误
22.函数strlen("
ASDFG\n"
)的值是7。
23.char*p="
girl"
;
的含义是定义字符型指针变量p,p的值是字符串"
24.a=(b=4)+(c=6)是一个合法的赋值表达式。
三.填空题
1.变量的指针,其含义是指该变量的_地址
2.使用printf()的头文件是_stdio.h
3.设a=2,b=3,x=3.5,y=2.5,(float)(a+b)/2+(int)x%(int)y的值为_3.5____。
4.设有定义inta[10],*p=a;
则指针P指向数组a的_____。
5.设x=2.5,a=7,y=4.7,x+a%3*(int)(x+y)%2/4的值为:
__2.5___。
6c语言字符型常量的定界符是__'
'
7.若执行k=10;
while(k==10)k=k-1;
后,则while循环次数为__1___。
8.写出下列程序运行结果:
_a=10,b=50,c=10____。
#include<
stdio.h>
voidmain()
{
inta=10,b=50,c=30;
b)a=b,b=c;
c=a;
printf("
a=%d,b=%d,c=%d"
a,b,c);
}
9.写出下列程序运行结果:
_s=2____。
#include<
{ints=1,k;
for(k=10;
k>
5;
k--)
{switch(k)
{case1:
case4:
case6:
s++;
break;
case2:
case3:
case7:
case0:
case5:
s+=2;
}printf("
s=%d"
s);
}
10.写出下列程序的运行结果:
64_____。
#include<
voidmain()
{
intcube(intx);
inty=4;
cube(y));
intcube(intx)
{intz;
z=x*x*x;
return(z);
11.写出下列程序运行结果:
__3___。
intabc(intu,intv);
main()
inta=12,b=15,c;
c=abc(a,b);
printf("
%d\n"
c);
intabc(intu,intv)
{
intw;
while(v)
w=u%v;
u=v;
v=w;
returnu;
12."
A"
在内存中占_2____字节。
13.定义一个指向实型数据的指针变量p的命令格式是_float*p;
14.执行inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
z);
后a的值为___0__。
15.下列程序的结果为:
a_____。
{intc1;
c1=97;
printf(“%c\n”,c1);
16.写出下列程序运行结果:
17_____。
voidmain()
{
intx=8,y;
if(x<
5)y=x;
elseif(x<
10)y=2*x+1;
elsey=3*x-1;
y);
17.写出下列程序运行结果:
18.写出下列程序运行结果:
19.写出下列程序的运行结果:
__a=10,b=50,c=10___。
20.定义指向文件的指针变量fp语句格式是_FILE*fp;
____。
21.定义一个符号常量PRICE100的命令格式是_#definePRICE100____。
22.(a=3*5,a*4),a+5的值是___20__。
23.若intx=10;
n=2,则执行x%=n后x的值是__0___。
24.写出下列程序的运行结果___bad__。
25.
#include<
{inta=1;
switch(a)
{case1:
bad\n"
);
case3:
pass\n"
case4:
case5:
good\n"
default:
error\n"
26.(a=3*5,a*4),a+5的值是__20___。
27.假设变量x、y和t均为整型,以下语句借助中间变量t把x、y值进行交换,请填空:
t=x;
_x=y____y=t;
28.若执行k=10;
29.设有定义inta[10],*p=a;
则指针P指向数组a的首地址
四.程序设计
1.功能:
编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
voidTestFunc();
voidswap(int*a,int*b)
/**********Begin**********/
intk;
k=*a;
*a=*b;
*b=k;
/**********
End
**********/
intx,y,z;
scanf("
%d%d%d"
y,&
if(x<
y)swap(&
y);
z)swap(&
if(y<
%3d%3d%3d"
x,y,z);
TestFunc();
voidTestFunc()
FILE*IN,*OUT;
intm,n;
inti[2];
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
3;
n++)
{
for(m=0;
m<
2;
m++)
fscanf(IN,"
i[m]);
swap(&
i[0],&
i[1]);
fprintf(OUT,"
i[0]);
i[1]);
fclose(IN);
fclose(OUT);
2.功能:
从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。
#include"
stdio.h"
intfun(intx[],intn)
intmin,i;
min=x[0];
for(i=1;
i<
n;
i++)
{if(x[i]<
min)min=x[i];
returnmin;
inta[10],i,min;
for(i=0;
10;
a[i]);
%3d"
a[i]);
\n"
min=fun(a,10);
min);
intiIN[10],i;
intiOUT,iCOUNT;
PleaseVerifyTheCurrerntDir..ItMayBeChanged"
PleaseVerifyTheCurrentDir..ItMayBeChanged"
for(iCOUNT=0;
iCOUNT<
iCOUNT++)
iIN[iCOUNT]);
iOUT=fun(iIN,10);
iOUT);
3.功能:
根据整型形参m,计算如下公式的值:
y=sin(m)*10。
例如:
若m=9,则应输出:
4.121185
#include"
math.h"
void
bky();
doublefun(intm)
doubley=0;
y=sin(m)*10;
return(y);
main()
intn;
Entern:
"
&
n);
\nTheresultis%1f\n"
fun(n));
}
void
bky()
inti;
intt;
doubleo;
ReadFILEError"
WriteFILEError"
t);
o=fun(t);
%f\n"
o);
4.功能:
求一个给定字符串中的字母的个数。
程序中如果用到循环,必须使用for循环。
intfun(chars[])
inti,k=0;
s[i]!
='
\0'
if(s[i]>
a'
s[i]<
z'
||s[i]>
A'
Z'
)
k++;
returnk;
charstr[]="
Bestwishesforyou!
"
k=fun(str);
k=%d\n"
k);
charsIN[80];
intiOUT,i;
21.in"
21.out"
%s"
sIN);
iOUT=fun(sIN);
5.题目:
分别统计字符串中字母