c语言综合.docx
- 文档编号:5361953
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:59
- 大小:30.93KB
c语言综合.docx
《c语言综合.docx》由会员分享,可在线阅读,更多相关《c语言综合.docx(59页珍藏版)》请在冰豆网上搜索。
c语言综合
C语言练习
一选择题
1.C语言源程序是由(A)构成的。
A、函数B、文本
C、子程序D、函数和过程
2,下列数据中,是合法常量的(C)。
A、0xt89B、abcC、123D、0678
3,下列字符序列中,可以作为变量名的是(A)。
A、D56,r_1_2,name,_st_1B、class,day,lotus_1,2day
C、#md,&12x,month,student_n!
D、S.b,sum,average,_above
4,两个字符串比较大小用(A)。
A、strcmp()B、strcat()C、strlen()D、strcpy()
5,用scanf(“%f,%f”,&x,&y)输入数据时,下列输入方式中正确的是(A)。
A、123.6,456.7B、23.6;456.7C、123.6/456.7D、123.6456.7
6,C语言中运算对象必须是整型数据的运算符是(D)。
A、!
B、&&C、/D、%
7,根据C语言的特点以下选项中不正确的选项是(B)。
A、语言简洁
B、用C编写的程序可移植性不好
C、数据类型丰富
D、运算符丰富
8,以下叙述正确的是(B)。
A、在C程序中,main函数必须位于程序的最前面。
B、C语言本身没有输入输出语句。
C、在对一个C程序进行编译的过程中,可以发现注释中的拼写错误。
D、C程序的每行中只能写一条语句。
9,一个C程序的执行是从(D)。
A、本程序的main函数开始,到本程序文件的最后一个函数结束。
B、本程序的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序文件的第一个函数开始,到本程序main函数结束。
D、本程序的main函数开始,到main函数结束。
10,设x=3,y=4,z=5,则((x+y)>z)&&(y==z)&&x||y+z的值为(B)
A,0B、1C、2D、-1
11,已知函数定义如下:
ab(char*s1,char*s2)
{while(*s2++=*s1++);}函数ab的功能是(A)。
A、串复制B、求串长C、串反向D、串比较
12,若已定义a为整型变量,则(B)是对指针变量p的正确定义和初始化。
A、int*p=a;B、int*p=&a;
C、int&p=a;D、intp=&a;
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”,b);if(a>b)printf(”%d\n”,a);
C、if(a>b)printf(”%d\n”,a);printf(”%d\n”,b);
D、if(a>b)printf(”%d\n”,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的值是字符串"girl"。
错误
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
voidmain()
{
inta=10,b=50,c=30;
if(a>b)a=b,b=c;
c=a;
printf("a=%d,b=%d,c=%d",a,b,c);
}
9.写出下列程序运行结果:
_s=2____。
#include
voidmain()
{ints=1,k;
for(k=10;k>5;k--)
{switch(k)
{case1:
case4:
case6:
s++;break;
case2:
case3:
case7:
break;
case0:
case5:
s+=2;break;
}
}printf("s=%d",s);
}
10.写出下列程序的运行结果:
64_____。
#include
voidmain()
{
intcube(intx);
inty=4;
printf("%d",cube(y));
}
intcube(intx)
{intz;
z=x*x*x;
return(z);
}
11.写出下列程序运行结果:
__3___。
#include
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_____。
#include
voidmain()
{intc1;
c1=97;
printf(“%c\n”,c1);
}
16.写出下列程序运行结果:
17_____。
#include
voidmain()
{
intx=8,y;
if(x<5)y=x;
elseif(x<10)y=2*x+1;
elsey=3*x-1;
printf("%d\n",y);
}
17.写出下列程序运行结果:
__3___。
#include
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;
}
18.写出下列程序运行结果:
_s=2____。
#include
voidmain()
{ints=1,k;
for(k=10;k>5;k--)
{switch(k)
{case1:
case4:
case6:
s++;break;
case2:
case3:
case7:
break;
case0:
case5:
s+=2;break;
}
}printf("s=%d",s);
}
19.写出下列程序的运行结果:
__a=10,b=50,c=10___。
#include
voidmain()
{
intcube(intx);
inty=4;
printf("%d",cube(y));
}
intcube(intx)
{intz;
z=x*x*x;
return(z);
}
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
voidmain()
{inta=1;
switch(a)
{case1:
case2:
printf("bad\n");break;
case3:
printf("pass\n");break;
case4:
case5:
printf("good\n");break;
default:
printf("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;while(k==10)k=k-1;后,则while循环次数为__1___。
29.设有定义inta[10],*p=a;则指针P指向数组a的首地址
四.程序设计
1.功能:
编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
#include
voidTestFunc();
voidswap(int*a,int*b)
{
/**********Begin**********/
intk;
k=*a;
*a=*b;
*b=k;
/********** End **********/
}
voidmain()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x if(x if(y printf("%3d%3d%3d",x,y,z); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intm,n; inti[2]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<3;n++) { for(m=0;m<2;m++) { fscanf(IN,"%d",&i[m]); } swap(&i[0],&i[1]); fprintf(OUT,"%d\n",i[0]); fprintf(OUT,"%d\n",i[1]); } fclose(IN); fclose(OUT); } 2.功能: 从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。 #include"stdio.h" voidTestFunc(); intfun(intx[],intn) { /**********Begin**********/ intmin,i; min=x[0]; for(i=1;i {if(x[i] returnmin; /********** End **********/ } voidmain() { inta[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); min=fun(a,10); printf("%d\n",min); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intiIN[10],i; intiOUT,iCOUNT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<5;i++) { for(iCOUNT=0;iCOUNT<10;iCOUNT++) fscanf(IN,"%d",&iIN[iCOUNT]); iOUT=fun(iIN,10); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 3.功能: 根据整型形参m,计算如下公式的值: y=sin(m)*10。 例如: 若m=9,则应输出: 4.121185 #include #include"math.h" void bky(); doublefun(intm) { /**********Begin**********/ doubley=0; y=sin(m)*10; return(y); /********** End **********/ } main() { intn; printf("Entern: "); scanf("%d",&n); printf("\nTheresultis%1f\n",fun(n)); bky(); } void bky() { FILE*IN,*OUT; inti; intt; doubleo; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%f\n",o); } fclose(IN); fclose(OUT); } 4.功能: 求一个给定字符串中的字母的个数。 程序中如果用到循环,必须使用for循环。 #include"stdio.h" void TestFunc(); intfun(chars[]) { /**********Begin**********/ inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') k++; returnk; /********** End **********/ } voidmain() { charstr[]="Bestwishesforyou! "; intk; k=fun(str); printf("k=%d\n",k); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; charsIN[80]; intiOUT,i; IN=fopen("21.in","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("21.out","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<10;i++) { fscanf(IN,"%s",sIN); iOUT=fun(sIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 5.题目: 分别统计字符串中字母
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 综合
![提示](https://static.bdocx.com/images/bang_tan.gif)