实验三:单精度的有效数字为7位,双精度的有效数字为16位。 实验四:x=3.600000,i=3 当以浮点型输出时,小数点默认为6位;
int b=-1;
1111 1111 1111 1111;
p=(i++)+(i++)+(i++);备注:i=5,在Turbo C中把5作为表达式中所有的i值,因此三个5相加得15,再求出表达式的值后在实现自加三次得8;
q=(++j)+(++j)+(++j);备注:j=5,同上,j先自加三次得8,再将8作为表达式中所有的j值,因此三个8相加的24;
i+=i*=i+6;备注:+号比复合运算符高级,先算;再从右向左计算;
k=(j=++i,i+=j,i+=5);备注:逗号也是一种运算符,从左向右算,左后得到的值为k得值;
\\t 作用是跳过8列;\\b 作用是退一列;\\ddd 代表1到3位八进制数
(101)8=(65)10;
a=12赋值运算符优先级低于算术运算符
a*=5
a等于12*5=60 a+=a-=a*=a
结果为0
从右到左
实验五:进制间的转换
双精度也是用%f输出,但长整型要用%ld输出。long n=1234567长整型有32位 比普通整型多一倍
当未规定小数点后的位数时,系统自动输出6位小数。Printf(“%e”,123.456); 会输出1.23456e+02 ,其中小数点也算一位
scanf(“%d%d%d”,&a,&b,&c); 使用scanf函数时不要丢掉&,输入形式由双引号内的形式决定;
printf(“%d,%d,%d\\n”,a,b,c);} 输出的形式由双引号内的形式决定。 #include 数学函数的应用:cos(x) sin(x) tan(x) fabs(x) log(x) log10(x) pow(x,y) x的y次方;
实验六:不完全运算: c=(a
实验七:do{„„}while (n) do 循环体语句 while (表达式);先执行循环体语句,再判断表达式,“真”,继续执行,“加”结束循环;当输入0时
循环结束
while(1) {„„}由于表达式为真,为避免循环体语句不断循环下去,循环体语句中必有break 。
while ((d/=10)>9) ;
空操作 :当表达式的 值为真时,不执行任何操作
1.对于整型变量x,与while(!x)等价的是(B)
A.while(x!=0)
B.while(x==0)
C.while(x!=1)
D.while(~x)
6.以下程序段运行后变量n的值为( D ) int i=1,n=1; for( ; i
{
当表达式为真时,不做任何操作(空操作)
continue;
当表达式为真时,跳过n=n+i
n=n+i;
} A.4
B.3 C.2
D.1 所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。
课本例6.9 求100~200间的全部素数
# include
main()
{
int m,k,i,n=0;
for(m=101;m
{
k=sqrt(m);
for (i=2;i
if (m%i==0) break; if (i>=k+1){printf(\"%d
\",m);n=n+1;}
if(n%10==0) printf(\"\n\");
}
printf (\"\n\");
}
实验八:用起泡法对10个数排序(由小到大)
main()
{
int a[11];
int i,j,t;
printf(\"input 10 numbers :\\n\");
for (i=1;i
scanf(\"%d\",&a [i]);
printf(\"\\n\");
for(j=1;j
for(i=1;i
if (a[i]>a[i+1]) {t=a [i];a [i]=a [i+1];a[i+1]=t;}
printf(\"the sorted numbers :\\n\");
for(i=1;i
printf(\"%d \",a[i]);
} 8.若有定义int a [ ] [ 3 ]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为( A )
A、3
B、4
C、5
D、9 5.若有定义int a[2][3];则对数组元素的非法引用是( D ) A.a[0][1/2]
B.a[1][1]
C.a[4-4][0]
D.a[0][3]
1/2==0
10
7、以下数组定义中,正确的是( B ) A、int a[2][3]={1,2,3,4,5,6,7}; B、int a[ ][ ]={{1,2,3},{4,5,6}, {7,8,9}}; C、int a[2][ ]={1,2,3,4,5,6}; D、int a[ ][4]={6} 实验九:scanf函数以空格结束一个字符串的输入,而gets函数以回车结束
4.以下程序结束后屏幕输出(B)
char str[]=“ab\\cd”;printf(“%d”,strlen(str));
\\代表一个字节? A.4.
B.5
C.6
D.7 补充:若题目问:“分配多少空间给数组str[],则结果为4个,包括一个结束标识符‘\\0’”
实验十:scanf(“%f,%f”,&a,&b); 输入20,30 逗号不要忘了
2.已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是( B ) A.scanf(“%d”,&a);
B.scanf(“%lf”,&a);
C.scanf(“%c“,a);
D.scanf(”%u”,&a);
整型和字符型可互相转换,但浮点型不可以
用选择法对数组中10个整数按由小到大排序。所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换„„每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。
void sort(int array[],int n)
{int i,j,k,t;
for(i=0;i
{k=i;
for(j=i+1;j
if(array[j]
t=array[k];
array[k]=array[i];
array[i]=t;}} main()
{int a[10],i;
printf(“enter the array\\n”);
for(i=0;i
scanf(“%d”,&a[i]);
sort(a,10);
printf(“the sorted array:\\n”);
for(i=0;i
printf(“%d”,a[i]);
printf(“\\n”);
} 1.若有以下函数定义: int fun () { static int k=0; return ++k; } 以下程序段运行后屏幕输出为( D ) int i;
for (i=1;i
fun(); printf(“%d”,fun());
第六次调用
A. 0
B.
C. 5
D. 6 自增自减运算符比关系运算符高级,自增自减运算符属于算术运算符
*p=&a(该星号只起标识作用,没有特殊意义,标识p为指针变量。表达式对指针变量附值)
定义指针变量p后,*p 中的星号为指针运算符,整个表达式表示指针变量所指向的变量
数组变量赋值:scanf(“%c”,a); 注意区分他们的区别 但&a 和a都是地址 整型变量赋值:scanf(“%d”,&a);