当前位置:文档之家› 苏科大 C语言知识整理

苏科大 C语言知识整理

五、思考与实践一.在()里填写正确答案。

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 <stdio.h>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<b(8)a || d-c(9)!a || c>d(10)(a||b) && c<b(11)(a && d) && c(12)!a && c>d五、思考与实践填空题:(每空2分)1. C语言中的语句可分为5类,即(控制语句)、(函数调用语句)、(表达式语句)、(空语句)、(复合语句)。

(按书上顺序)2. printf语句对不同类型的数据有不同的格式字符。

例如:格式字符(%d)是用来输出十进制整数,格式字符(%c)是用来输出一个字符。

3. %-ms表示如果串长(<)m(用符号表示),则在m列范围内,字符串向(右)对齐。

4. 复合语句是由({ } )括起来的若干语句组成。

(用符号表示)5. 分析下面程序:#include<stdio.h>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<stdio.h>main(){char a; a=’A’;printf("%d %c",a,a);}输入一批正整数,求其中的奇数和。

【源程序代码】#include <stdio.h>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 <stdio.h>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 <stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("sum is %d\n",sum);printf("16200115206周忆涵\n");}2.编写程序完成以下功能:输出100以内个位数为6且能被3整除的数。

【源程序代码】#include <stdio.h>int main(){int a;for(a=1;a<=100;a++){if(a%10==6 && a%3==0)printf("%d\n",a);}printf("16200115206周忆涵\n");return 0;}3.一个整数,加上100是一个完全平方数,再加上168又是一个完全平方数,求100000以内有多少这样的数,并将其打印出来。

【源程序代码】#include <stdio.h>#include <math.h>int main(){int i,x,y;for(i=1;i<=100000;i++){x=sqrt(i+100);y=sqrt(i+268);if(x*x==i+100&&y*y==i+268)printf("%d\n",i);}printf("16200115206周忆涵\n");return 0;}求一维数组元素的最大值并输出其所对应的下标。

【源程序代码】#include <stdio.h> int main(){int i,max,max_i,a[10];for (i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];max_i=0;for(i=1;i<10;i++)if (a[i]>max){max=a[i];max_i=i;}printf("The Max Number is a[%d]=%d\n",max_i,max);printf("16200115206周忆涵\n");return 0;}输入一个3行4列的矩阵,要求编程求出其中的最小数,及其所在的行号及列号,以ex8_3.cpp存盘。

【源程序代码】#include <stdio.h>void main(){int i,j,max,min;int max_row=0,max_col=0,min_row=0,min_col=0;int a[3][4]={{12,23,34,5},{45,32,56,6},{9,16,34,21}};for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%4d",a[i][j]);printf("\n");}max=a[0][0];min=a[0][0];printf("\n");for (i=0;i<3;i++)for(j=0;j<4;j++){if (a[i][j]>max){ max=a[i][j]; max_row=i;max_col=j;}if (a[i][j]<min){ min=a[i][j]; min_row=i;min_col=j;}}printf("The max number is:a[%d][%d]: %d\n",max_row,max_col,max);printf("The min number is:a[%d][%d]: %d\n",min_row,min_col,min);printf("16200115206周忆涵\n");}(1) 在数组中输入10个数据,求它们的和并输出结果。

相关主题