苏科大 C语言知识整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、思考与实践
一.在()里填写正确答案。
1. 一个C语言编写的程序总是从(main函数)开始执行。
2. 在C语言程序中,用关键字(int )定义基本整型变量,用关键字(float)定义单精度实型变量,用关键字(double)定义双精度实型变量。
3. 通常一个字节包含(8)个二进制位。在一个字节中存放的最大(十进制)整数是(127),最小(十进制)整数是(-128)。
4. 在C语言中,注释部分两侧的分界符号分别为(/*)和(*/)。
5. 用字符串的形式表示China(“China”)
6. 字符串“ab\034\\\x79”的长度为(5)。
7. 若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为(1)
8. 若a,b,c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a,b,c的值分别为(6)(4)(2)。
9. 若有定义int x=3, y=2; float a=2.5, b=3.5;则表达式
(x+y)%2+(int)a/(int)b的值为(1)。
10. 若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后的值为(0)。
11. 假设所有变量的类型均为整型,则表达式
(a=2,b=5,a++,b++,a+b)的值为(9)。
12. 以下所有变量的类型均为整型,则sum=pad=5;
pad=sum++, pad++, ++pad; 后,pad的值为(7)。
13. 已知int a,b=1; 执行语句a=-b++;后a的值为(-1)。
14. 已知int m=5, y=2; 则执行y+=y-=m*=y后y 的值为(16)。
15. 表达式8.0*(1/2)的值为(0.0)。
二.下列程序完成交换两个变量的功能,请填空。
#include
void main()
{int x,y;
x=10;y=15;
printf("before swap:x=%d,y=%d\n",x,y);
x+=y ;y=x-y ;
x=x-y ;
printf("after swap:x=%d,y=%d\n",x,y);
}
注意:在填写程序中不可修改其它行的程序,包括增加变量定义等。
四、思考与实践
1 在C语言中,关系运算符有()
2 在C语言中,当表达式值为()时表示“假”,当表达式值为()时表示“真”。
3 逻辑运算符优先级从高到低:()
4 计算下面表达式的值。设a=1,b=2,c=3。(设每小题开始时a,b,c均为此值)
(1)a = a!=b?b:c
(2)a>b?b+1:c+1
(3)(a=4) ? a--:b--
5 写出满足下面条件的关系或逻辑表达式。
(1)a在区间(3,10)内。
(2)x是3的倍数。
(3)x和y的和大于100且x大于45。
(4)a等于c或b不等于0
(5)a是小写字母
6 计算下面逻辑表达式的值。设a=0,b=1,c=2,d=4。(设每小题开始时a,b,c,d均为此值)
(1)a>=b
(2)c-b==a
(3)c!=d-b
(4)b>a && c>b
(5)a && d-c
(6)!a && b>c
(7)(b>a) || c
(8)a || d-c
(9)!a || c>d
(10)(a||b) && c
(11)(a && d) && c
(12)!a && c>d
五、思考与实践
填空题:(每空2分)
1. C语言中的语句可分为5类,即(控制语句)、(函数调
用语句)、(表达式语句)、(空语句)、(复合语句)。(按书上顺序)
2. printf语句对不同类型的数据有不同的格式字符。例如:格式字符(%d)是用来输出十进制整数,格式字符(%c)是用来输出一个字符。
3. %-ms表示如果串长(<)m(用符号表示),则在m列范围内,字符串向(右)对齐。
4. 复合语句是由({ } )括起来的若干语句组成。(用符号表示)
5. 分析下面程序:
#include
main()
{
int x=2,y,z;
x*=3+2;printf("%d\n",x);
x*=y=z=4;printf("%d\n",x);
}
程序的输出结果:
第一行(5),第二行(4 )
6. 分析下面程序
main()
{
int x=2,y,z;
x=y=1;
z=x++-1;printf("%d,%d\n",x,z);
z+=-x++ +(++y);printf("%d,%d",x,z);
}
程序的输出结果:
第一行(2,0 ),第二行(2,1 )。
7. 以下程序的输出结果为:(3.140000,3.141 )。
main( )
{ float a=3.14, b=3.14159;
printf(“%f,%5.3f\n”,a,b); }
8. 下列程序的输出结果是(97,A )。
#include
main()
{char a; a=’A’;
printf("%d %c",a,a);
}
输入一批正整数,求其中的奇数和。
【源程序代码】
#include
void main()
{
int number,sum=0;
scanf("%d",&number);
while (number>0)
{
if(number%2!=0)
sum=sum+number;
scanf("%d",&number);
}
printf("sum=%d\n",sum);
printf("16200115206周忆涵\n");
}
3、编写一个程序,输入一个正整数,要求以相反顺序输出,以myf73.c存盘。
提示:使用循环的方法,用n存放输入的正整数,n%10可以得到个位上的数字,将其输出,再让n=n/10;使n减小10倍,再用n%10得到数字……直到n=0为止。
【源程序代码】
#include
void main()
{
int m,n;
scanf("%d",&n);
while(n!=0)
{
m=n%10;
n=n/10;
printf("%d",m);
}
printf("16200115206周忆涵\n");
}
3. 编程求s=1+2+3+4+5……+99+100的值。
【源程序代码】
#include
void main()
{