一、填空题(每空1分 ,共20分)
C语言程序的基本单位是 函数 。若整型数的十进制形式为112, 则它的八进制形式为(160)8 、十六进制形式为 (70)16 。设int a=10,b=4, 则表达式 a/b的值为 2 。结构化编程的三种基本结构分别是 顺序 结构 、 选择结构 、 循环结构 。在逻辑运算中,7&&0等于 0 ,1||0等于 1 。C语言规定:合法的标识符只能由 字母 、 数字 、 下划线 组成,第一个字符必须为 字母 、 下划线 。函数体以符号 { 开始,以符号 } 结束。
8、按变量的作用域分,变量分为两种类型,分别为 局部 变量和 外部 变量。二维数组 int a[3][4]共包含 12 个元素,它的首地址用_ a[0][0]_____表示。
二、选择题(每题2分,共22分)
1.一个C程序的执行是从( A )
A.main函数开始执行的; B.程序文件中的第一个函数开始执行的;
C. 程序文件中的第一个子函数开始执行的; D. 程序文件最后1个函数开始的。.数据在内存中以( A)形式存放。
A、二进制 B、八进制 C、十进制 D、十六进制
3.下列语句的输出为( D )
int a=4;
a*=2+3;
printf(“%d”, a);
A. 6 B.15
C. 30 D.20
4.定义变量如下:char x; float y;则以下输入语句中( C )是正确的。
A. scanf(“%c%f”,x,y); B. scanf(“%f%d”, x, y);
C. scanf(“%c%f”,&x,&y); D. scanf(“%f%d”,&x,&y);
5.int a=0,b=10,条件表达式(a>b)?(a+b):(a*b)的值为 ( B )
A. 1; B.0;
C. -1; D.10。在C语言中形参的缺省存储类别是( A )
A.自动(auto);B.静态(static);C.寄存器(register);D.外部(extern)。
7.设有如下定义 int x=10,y=3,z; 则语句printf(“%d\n”,z=(x/y,x%y));
的输出结果是( A )
A. 1 ; B.0 ; C. 4 ; D. 3。
8.若有定义int x,*p;则以下正确的赋值表达式是( A )
A. P=&x ; B. p=x ; C. *p=&x ; D. *p= *x。
9.变量的指针,其含义是指该变量的( B )。
A.值 B.地址 C.名字 D.一个标志
10.字符串“China”在内存中占(B )个字节
A、5 B、6 C、7 D、8
11.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为( B )
If(a<b)
If(c<d) x=1;
else if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A、3 B、2 C、6 D、7
三、程序填空(每空3分,共24分)
1. 计算100(含100)内正偶数之和的程序如下:
main( )
{
int i,sum=0;
for(i=2; (1) ;(2)_ )
sum+= (3) ;
printf(“sum=%d\n”,(4)_);
}
(1): I<=100 (2): i=i+2 (3): i (4):sum
2.判断键盘输入的符号是否是数字,是输出它,否则输出0。程序如下(提示:数字与ASCII码的对应关系为: 0 对应48,9对应57 )
main( )
{
char ch;
printf(“Please input a symbol:”);
scanf(“(1)”,&ch);
if( (2) &&_(3)__)
printf(“\n %d”,(4));
else
printf(“\n 0”);
}
(1): %c (2): ch>=48 (3): ch<=57 (4): ch
四、根据程序写结果(每题4分,共24分)
1 .int yushu(int x,int y) 2. main( )
{ int s; { int i,j,m,n;
s=x%y; i=8;
return(s); j=10;
} m=i++;
main( ) n=++j;
{int a,b,c; printf(“%d,%d”,m,n);
a=5;b=3; }
c=yushu(a,b);
printf(“%d”,c);
}
结果为: 2 结果为: 8,11
3. 4.
main( ) f(int x)
{ int n; {int y=0;
for(n=1;n<=10;n++) static z=3;
{ if(n%4 = =0) continue; y++;z++;
printf(“ %d ”,n); return(x+y+z);
} }
} main( )
{int a=3,i;
for(i=0;i<3;i++)
printf(“%d”,f(a));
printf(“\n”);
}
结果为: 1 2 3 4 5 6 7 8 9 10 结果为: 8910
5.main( ) 6. #include <stdio.h>
{int a[]={2,4,6,8,10}; int x,y;
int y=1,i,p; f( )
p=&a[2]; {int a=3,b=6;
for(i=0; i<3;i++) y=(p+i); x=x+a+b;
printf(“%d\n”,y); y=y+a-b;
} }
main( )
{ int a=5,b=2;
x=a+b;
y=a-b;
f( );
printf(“%d,%d”,x,y);
}
结果为: 10 结果为: 16,0
五.编写程序题 (10分)
1. 按下列要求编写出C源程序:自定义求最大值的函数max、求乘积的函数product,主函数main中输入三个整数,通过调用max、product函数,求它们的最大值和乘积并返回主函数输出。
int max(int x,int y,int z)
{int n,m;
if(x>y)
n=x;
else n=y;
if(z>n)
m=z;
else m=n;
return m;
}
long product(int x,int y,int z)
{long s;
s=xyz;
return s;}
main()
{int a,b,c,m,p;
scanf("%d , %d, %d",&a,&b,&c);
m=max(a,b,c);
p=product(a,b,c);
printf(“max=%d,乘积=%ld\n”,m,p);
}