C语言程序设计复习资料(答案)
- 格式:doc
- 大小:145.50 KB
- 文档页数:24
C语言程序设计复习资料
一、填空题
1、C语言程序是函数构成的,其中有且只有1个 主 函数,程序的的执行总是从该函数开始。
2、用条件运算符写出求两个整数x,y中大数的表达式 z = x>y?x:y 。
3、定义一个符号常量PI,其值为3.1415926,格式是#define PI 3.1415926 。
4、设整型变量X=5,Y=6,Z=7,执行X%=Y+Z后,X = 5 。
5、执行语句“for(j=15 ;j >=5 ;j-- );”后,变量j的值为 4 。
6、在一个函数中有定义int a=60,*p=&a ; 执行*p=*p +15;后,a的值为 。
7、结构化程序设计的三种基本结构是顺序结构、选择结构和 循环结构 。
8、定义一个长度为100的整形一维数组a ,且前5个元素的初值为3,6,9,12,15,定义的格式为: int a[100]={3,6,9,12,15} 。
9、写出表达式25>15&&65<25||88>75的值 1 。
10、函数的传值调用中,实际参数把它的值传递给 形式 参数。
11、表达式 (int)(20+2.5*3+6+5.3) 的值是 38 。
12、若有以下定义:char a; int b; float c; double d; 则表达式a*b+d-c的值的类型是 。
13、写出表达式66>65&&65<85||85>95的值 1 。
14、在C语言中,允许在程序中用typedef来定义新的类型名代替已有的类型名,例如
typedef int INTEGER; 。
15、C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑、 编译 、连接、执行;
16、C程序是由函数组成的,一般情况下函数体由说明部分和执行部分组成,其中说明部分的作用是 ;
17、表达式m = a > b ? a+b : b+5 当a=15,b=11时,m的值为: 26 ;
18、函数的传值调用中,实际参数把它的值传递给 形式 参数;
19、写出表达式1<4&&7<5的值 ;
20、在C语言中,字符串是用双引号引起来的一串字符。在机器中,字符串"ABcdEFg\n" 需占用 字节的内存空间;
21、结构化程序设计的三种基本结构是顺序结构、选择结构和 循环结构 ;
22、定义一个长度为2行3列的整形二维数组a ,元素的初值为6,12,18,24,30,36定义的格式为: int a[2][3]={6,12,18,24,30,36} ;
23、表达式 (int)(5.5*3+11+5.5) 的值是 ;
二、选择题:
1.下列各组字符序列中,可用作C语言程序标识符的一组字符序列上( )。
(A)M.b, sum, average, _above (B)class, day, lotus_1, 2day
(C) #md, &12x, month, student_n1 (d) D56, r_1_2, name, st_1
2.下列变量说明语句中,正确的是( )。
(A)char:a b c; (B) char a;b;c;
(C) int x;y; (D) int x,y;
3.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为( )。
(A)2.5 (B)7 (C)4.7 (D)2.75
4.下列语句中,不正确的( )。
A、static int a[2][3]={1,2,3,4,5,6};
B、static int a[2][3]={{1},{4,5}};
C、static int a[ ][3]={{1},{4}};
D、static int a[ ][ ]={{1,2,3},{4,5,6}};
5.下列定义数组的语句中正确的是( )。
(A)#define size 10 (B) char str[ ];
char str1[size],str2[size+2];
(C) int num[‘10’]; (D) int n=5;
int a[n][n+2];
6.以下程序的输出结果是( )。
#include
main()
{ int i,j,k,a=3,b=2;
i=(--a==b++)? - -a;++b;
j=a++;k=b;
Printf(“i=%d,j=%d,k=%d\n”,i,j,k);
}
(A)i=2,j=1,k=3 (B)i=i,j=1,k=2
(C)i=4,j=2,k=4 (D)i=1,j=1,k=3
7. 一个C语言的源程序中( C )。
(A)必须有主函数和其它函数 (B)可以有多个主函数
(C)必须有一个主函数 (D)可以没有主函数
8.写出程序的运行结果( A )。
main()
{ int n;
for(n=1;n<=10;n++)
{ if(n%3==0) continue;
printf("%d",n);
}
}
(A)12457810 (B)369
(C)12 (D)12345678910
9.若输入ab,程序运行结果为( C ) 。
main()
{ static char a[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
} (A)a,b (B)a,
(C)b, (D)程序出错
10.下列函数定义不正确的有( A )。
int max() (B) int max(x,y)
{int x,y,z; int x,y;
z=x>y?x:y; {int z;
} z=x>y?x:y;
(C) int max(x,y) return(z);
{int x,y,z; }
z=x>y?x:y; (D) int max()
return(z); { }
}
11. 在函数内,定义变量时存储类型符可省略的是 (A )
A. auto B. static C. extern D. register
12. 下列表达式的值为0的是 ( )
A. 3﹪5 B. 3/5.0 C. 3/5 D. 3<5
13. 正确的C语言用户自定义标识符是 ( A )
A. print B. float C. when? D. random﹪2
14. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是 ( )
A. 0和2 B. 0和3 C. 1和2 D. 1和3
15. 设 char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);的输出是( )
A. x = a,y = 97 B. x = 97,y = a
C. x = 97,y = 97 D. x = a,y = a
16.设char str[100];int i = 5;则引用数组元素的错误形式是 ( )
A. str[i + 10] B. (str + i) C. (str + i - 1) D. ((str + + ) + i)
17. 执行下列程序
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
main()
{printf(″﹪d \ n″,a[1][0] + b[0][0]);}
后输出的结果是 ( D )
A. 0 B. 1 C. 2 D. 3
18.执行下列程序
int a = 3, b = 4;
void fun(int x1, int x2)
{printf(″﹪d, ﹪d \ n″, x1 + x2, b);} main()
{int a = 5, b = 6;fun(a, b);}
后输出的结果是 ( C )
A. 3,4 B. 11,1 C. 11,4 D. 11,6
19.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f" ,&i, ,&f);
为了把100和765.12分别赋给i和f,则正确的输入为 ( B )
A) 100765.12 B) i=100,f=765.12 C) 100765.12 D) x=100y=765.12
20. 设x和y均为int型变量,则执行下的循环后,y值为 ( )
for(y=1,x=1;y<=50;y++)
{ if(x=10))break;
if (x%2==1)
{ x+=5; continue;}
x-=3;
}
A) 2 B) 4 C) 6 D) 8
21 为表示关系x≥y≥z,应使用C语言表达式___A____
A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)