Ca>10&&a<15D!
(a<=10)&&!
(a>=15)
9、在C语言中逻辑值“真”用什么表示:
【A】
A非零的数B非零的整数C1D0
10、C语言提供的基本的数据类型有:
【A】
A整型,字符型,实型B数组,整型,实型
C指针,数组,实型D空类型,实型,字符型
11、以上说法不正确的是:
【D】
AC程序由一个或多个函数组成;
BC程序有且必须有一个主函数;
C可在程序的任何位置加注释;
DC语言不区分大小写;
12、以下是合法的标识符的是:
【D】
Asignedb30BmaxmainC#abcabcDsalarysly
13、以下说法不正确的是:
【D】
A变量必须先定义再使用;
B变量的定义和说明没有区别;
C转换字符’\n’代表回车-换行;
D一个字符常量在计算机的存储中占据一个字节;
14、在c语言中,当函数调用时【D】
A实参和形参各占一个独立的存储单元
B实参和形参共用存储单元
C可以由用户指定实参和形参是否共用存储单元
D由系统自动确定实参和形参是否共用存储单元
15、以下函数调用语句中,含有的实参个数是【A】
fun(x+y,(e1,e2),fun(x,y,d,(a,b)));
A3B4C6D8
16、在c语言中,逻辑值“真”用()表示【D】
AtrueB.大与0的数C非零整数D非0的数
17、下列程序的输出是:
【B】
main()
{
intx=5,y=3;
printf(“%d\n”,y=x/y);
}
A0B1C3D不确定的值
18、C语言的if语句中用作判断的表达式为:
【D】
A关系表达式B逻辑表达式
C算术表达式D任意表达式
19、设有语句“chara=’\72’;”,则变量a【A】
A包含1个字符B包含2个字符
C包含3个字符D说明不合法
20、在以下一组运算符中,优先级最高的是:
【C】
A<=B=C%D&&
21、C语言提供的合法的关键字是【D】
AswicthBCharCCaseDshort
22、若有以下定义和语句:
charc1=‘b’,c2=‘e’;
printf(“%d,%c\n”,c1-c2,c2-‘a’+’A’);
则输出的结果是【C】
A2,MB3,EC2,E
23、合法的数组定义是【A】
Ainta[]=”abcdef”;Binta[3]={0,1,2,3};
Cchara=”abcdef”;Dinta[]={0,1,2,3};
24、以下函数的类型是【D】
f(floatx)
{printf(“%d\n”,x);}
Avoid类型Bint类型
C无法确定D与参数x的类型相同
25、以下说法中正确的是:
【C】
Ac语言程序总是从第一个定义的函数开始执行
B在c语言程序中,要调用的函数必须在main()函数中定义
Cc`语言程序总是从main()函数开始执行
Dc语言程序中的main()函数必须放在程序的开始部分
26、设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y的功能是【D】
A把x和y按从大到小排序B把x和y按从小到大排序
C无确定结果D交换x和y中的值
27、设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:
(m=a
A1B2C3D0
28、若t为double类型,表达式t=1,t+5,t++的值是【D】
A1B6.0C2.0D1.0
29、若i,j已定义为int类型,则以下程序段中,内循环体的总的执行次数是【B】
for(i=5;i;i――)
for(j=0;j<4;j++){...}
A20B24C25D30
30、设有如下定义:
intx=10,y=3,z;
则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是:
【D】
A1B0C4D3
二、判断题
1、C语言不能进行位(bit)操作。
(T)
2、C语言注释中的内容只能用英文书写。
(F)
3、scanf和printf都是C系统提供的标准输入输出函数。
(T)
4、一个C程序总是从main函数开始执行。
(T)
5、表达式3++的值为4,而表达式++3的值为3。
(F)
6、逻辑非“!
”为双目运算符。
(F)
7、系统对字符串常量进行处理时,自动在其结尾处加’\0’作结束符;(T)
8、赋值运算符是按“自左至右”结合顺序的;(F)
9、使用宏定义,用户可以用一简单的名字代替一很长的字符串;(T)
10、用C语言写的程序可移植性比较差。
(F)
11、C语言中的注释,对编译和运行也起一定的作用。
(F)
12、C程序都是由函数构成的。
(T)
13、C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。
(T)
14、运算符、常量及变量构成了表达式;(T)
15、表达式3++的值为4,而表达式++3的值为3。
(F)
16、数组中的各元素的数据类型可以不一致;(F)
17、C语言的循环结构程序设计中不允许循环的嵌套。
(F)
18、使用宏定义,用户可以用一简单的名字代替一很长的字符串;(T)
19、赋值运算符是按“自左至右”结合顺序的;(F)
三、填空题
1、一个函数由两部分组成:
数据声明部分和______执行语句________________。
2、一个用C编写的源程序的源文件名为source.c,则进行编译后,所形成的目标程序文件名为:
source.obj。
3、表示一个良好算法的三种基本结构有:
顺序结构、选择结构和_______________循环结构_。
4、设x=2.5,a=7,y=4.7,则表达式(int)(x+a)%3*(int)(x+y)%2/4的值为:
0。
5、存储类别修饰符共有四种分别是:
__________、extern、static、register;
6、已知chara;intb;floatc;doubled;则表达式a*b+c-d的结果为_double_________类型。
7、当a=1,b=2,c=3时,执行下面语句后,a、b、c的值分别是___3____,_2_____,_2_____。
if(a>c)
b=a;a=c;c=b;
8、C语言中的数组的下标都是从___0____开始的。
9、计算机的内存以字节为单位,每一字节有一个编号,被称为____________。
10、所有的关系及逻辑运算符所产生的结果只有两个,分别是:
___0__、___1____。
11、C语言的数据结构以数据类型形式出现,基本的类型包括:
____整型_______、____实数型_______、字符型和枚举类型。
12、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y的值为:
_____3.500000______。
13、C语言中的标识符只能由三种字符组成:
__数字_________、____字母_______、___下划线_______;
14、C语言中的数组的下标都是从___0____开始的。
15、已知chara;intb;floatc;doubled;则表达式a*b+c-d的结果为___double_______类型。
16、从函数的形式看,函数分为两类:
无参函数和________有参函数和空函数_____________。
17、在表示函数“不带回值”时,可以用_____形参________来定义函数的返回值类型。
18、按函数在程序中出现的位置来分,可以有以下三种函数调用方式:
函数语句、______函数表达式_____________、函数参数。
19、在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为_____________________。
20、当a=1,b=2,c=3时,执行下面语句后,a、b、c的值分别是___3____,____2__,_2_____。
if(a>c)
b=a;a=c;c=b;
四、程序填空题
1、
main()
{
_____intmax(intx,inty);____________
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
_return(z)__________________;
}
2、从键盘输入一个大写字母,要求改用小写字母输出。
#include
main()
{
charc1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
_____c2=c1+32__________;
printf("%c,%d\n",c2,c2);
}
3、求100~200间的全部素数
#include
#include
main()
{
intm,k,i,n=0;
for(_____m=101;m<=200;m=m+2________________)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(___m%i==0___________)break;
if(i>=k+1)
{
printf("%6d",m);
n=n+1;
}
if(n%5==0)
printf("\n");
}
}
4、输入8个整数,然后按输入的相反的顺序显示这些数据:
#include
voidmain()
{
intdata[8],i;
printf("pleaseinputeightnumber:
\n");
for(i=0;i<8;i++)
scanf("%d",&data[i]);
printf("\n");
for(_____i=7;i>=0;i--_____________________)
printf("%3d",data[i]);
}
5、
#include
voidmain()
{inta,b;
intfun1(intx,inty);
intfun2(intx,inty)__________________;
printf("aºÍbµÄƽ·½ºÍÊÇ£º%d",fun1(a,b));
}
intfun1(intx,inty)
{
intfun2(intm);
return(fun2(x)+fun2(y));
}
intfun2(intm)
{
______return(fun2(intm))________________;}
6、在程序中提示输入整数n,编写函数用递归的方法求1+2+3+…+n的值。
#include
longfun(intn)
{
if(n==0||n==1)
return1;
else
_________________________;
}
voidmain()
{
intm,s;
printf("pleaseinputaintergernumber:
\n");
scanf("%d",&m);
______________________;
printf("thetotalnumberis%d",s);
}
五、程序结果题
1、
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
结果:
9,11,9,10
40、结果:
9876543210
main()
{
inti,a[10];
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%3d",a[i]);
}
2、
#include
main()
{
charc[10]={'c','','p','r','o','g','r','a','m'};
inti;
for(i=0;i<10;i++)
printf("%c",c[i]);
printf("\n");
}
结果:
cprogram
3、设输入的内容为:
23,请写出输出结果。
#include
voidmain()
{intx,y;
printf("Enterxandy:
\n");
scanf("%d%d",&x,&y);
if(x!
=y)
if(x>y)
printf("x>y\n");
else
printf("xelse
printf("x=y\n");}
结果:
x4、结果:
arraya:
123
456
arrayb:
14
25
36
#include
main()
{
inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];}
printf("\n");
}
printf("arrayb:
\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");}
}
5、
#include
voidmain()
{inti,j;
for(i=1;i<=5;i++)
{for(j=1;j<=i;j++)
Printf("*");
Printf("\n");}
}
结果:
*
**
***
****
*****
6、结果:
I=7
I=5
#include
inti;
voidmain()
{i=5;
{
inti;
i=7;
printf("i=%d\n",i);
}
printf("i=%d\n",i);
}
7、结果:
sum=55
#include
voidmain()
{inti=1,sum=0;
do{
sum+=i;
i++;
}while(i<=10);
printf("sum=%d",sum);
}
8、结果:
3
main()
{intn[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;ifor(j=0;jn[j]=n[i]+1;
printf("%d",n[1]);
}
9、结果:
cprogram
#include
main()
{
charc[10]={'c','','p','r','o','g','r','a','m'};
inti;
for(i=0;i<10;i++)
printf("%c",c[i]);
printf("\n");
}
10、、结果:
arraya:
123
456
arrayb:
14
25
36
#include
main()
{
inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("arrayb:
\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
11、
#include
voidmain()
{inti,j;
for(i=1;i<=5;i++)
{for(j=1;j<=i;j++)
Printf("*");
Printf("\n");}
}
结果:
*
**
***
****
*****
六、程序设计题
1、写出下列流程图所表示的C程序。
#include
voidmain()
{
intx,y;
scanf(“%d”,&x);
if(x<0)
y=-1
else
if(x==0)y=0;
elsey=1;
printf(“x=%d,y=%d\n”,x,y);
}
2、
求Fibonacci数列前40个数,这个数列有如下特点,第1,2两个数为1,1,从第3个数开始,该数是其前面两个数之和,即:
F1=1
F2=1
Fn=Fn-1+Fn-2(n≥3)
3、请写出与下列语句等效的if语句
switch(k){
case1:
case2:
printf(“A”);break;
case3:
case4:
case5:
printf(“A”);break;
default:
printf(“A”);break;