运算器是完成算术和逻辑操作的处理部件,通常称为CPU。× 通常硬盘安装在主机箱内,因此它属于主存储器。× 指令与数据在计算机内是以ASCII码进行存储的。× 操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集
合。√
5. 用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过编译才能执行。√
6. 计算机的所有计算都是在内存中进行的。×
7. 字长是指计算机能直接处理的二进制信息的位数。√
8. 计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9. 系统软件就是市场上买来的软件,应用软件就是自己编写的软件。×
10. 常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、
大写英文字母。× 11. 多台计算机相连,就形成了一个网络系统。×
12. 在Internet网上,IP地址、E-mail地址都是唯一的。√ 13. 不同类型的变量在内存中占用存储空间的大小都是一样的。× 14. 表示数学式3 与float型数据相比,double型数据的精度高,取值范围大。√ 在C语言中,表达式(010+2)的值是10。√ do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。√ 在C 语言中,常量和变量都有数据类型。√ 22. C 语言的运算符只有单目运算符和双目运算符两种。× 23. 若变量已正确定义,表达式 x + y = z符合C语言语法。× 24. C编译器可以找出C源程序中所有的语法错误和逻辑错误。× 25. 表达式3 * 5 / 2 和表达式3 / 2 * 5等价。× 26. 表达式m = n++ 的求解顺序是先计算m = n,再计算n = n + 1。√ 27. 变量名fahr和Fahr代表两个不同的变量。√ 28. 对整型变量可进行自加或自减运算,而对常量或表达式不可以。√ 29. while语句先判断循环条件,所以循环体有可能一次也不执行。√ 30. C程序中无法比较二个字符的大小。× 31. continue语句和break语句都只能用在循环体中。× 32. 表达式 3.14%2 是合法的C语言表达式。× 33. C语言编写的源程序必须经过编译连接,生成扩展名为.exe的可执行文件才能运行。√ 34. 格式符“%o”是按16进制输出整数。× 35. for循环只能用于循环次数已确定的场合。× 36. 算术运算符和赋值运算符的结合方向均由左自右。× 37. break语句只能用在switch语句中。× 38. C的任何类型数据在计算机内部都是以二进制形式存储的。√ 39. 按格式符“%d”输出float类型变量时,截断小数位后取整输出。× 40. 表达式0195是一个八进制整数。× 41. 执行 printf (\"%d\,输出0。√ 42. 43. 44. 45. 表达式 !x 等价于x != 1。× 表达式 (z=0, (x=2)||(z=1),z) 的值是1。× 在 C 程序中,用整数0表示逻辑值“假”。√ 若变量已正确定义,表达式 x=y=1符合C语言语法。√ 46. 表达式 !(x>0||y>0) 等价于!(x>0)&&!(y>0)。√ 47. 在C源程序中语句if(x==5) y++;与if(x=5) y++;等价。× 48. 在的关系运算符(>=、>、==、!=、<=、<)中,优先级最低的运算符是==、!=。√ 49. 若x的当前值为5, 执行语句“if(x=3) x=x+5;”后,x的值依然是5。× 50. 执行循环语句“for(i=1;i<10;i=i+2) s+=i;”后,i的当前值为11。√ 单选题 1. 学校的学生学籍管理程序属于______。C (A)工具软件        (B)系统软件         (C)应用软件       (D)文字处理软件 2. 有些高级语言源程序在计算机中执行时,采用的是解释方式。在解释方式下,源程序由______边解释边执行。B (A)编译程序        (B)解释程序         (C)操作系统       (D)汇编程序 3. 关于计算机软件的叙述,错误的是______。B (A)软件是一种商品             (B)软件借来复制也不损害他人利益  (C)《计算机软件保护条例》对软件著作权进行保护 (D)未经软件著作权人的同意复制其软件是一种侵权行为 4. 在下列四条叙述中,正确的一条是______。C (A)最先提出存储程序思想的人是英国科学家艾伦·图灵   (B)ENIAC计算机采用的电子器件是晶体管   (C)在第三代计算机期间出现了操作系统   (D)第二代计算机采用的电子器件是集成电路 5. 已知英文小写字母d的ASCII码为十进制数100,则英文小写字母h的ASCII码为十进 制数_______。B (A)103             (B)104             (C)105             (D)106 6. 有一个数值152,它与十六进制数6A相等,那么该数值是______。D (A)十进制数        (B)二进制数        (C)四进制数       (D)八进制数 7. Internet比较确切的一种含义是______。B (A)一种计算机的品牌                (B)网络中的网络,即互连各个网络        (C)一个网络的顶级域名              (D)美方的非机密军事情报网络 8. 下列关于系统软件的四条叙述中,正确的是______。A (A)系统软件与具体应用领域无关             (B)系统软件与具体的硬件无关        (C)系统软件是在应用软件基础上开发的      (D)系统软件就是指操作系统 9. 计算机内存的每个基本单位,被赋予一个唯一的______,称为地址。C (A)容量           (B)字节            (C)序号         (D)功能  10. 十六进制数FF.1转换成十进制数是______。C (A)255.625          (B)250.1625         (C)255.0625     (D)250.0625 11. 在计算机中存储数据的最小单位是______。B (A)字节             (B)位             (C)字            (D)记录 12. 因特网中某主机的二级域名为“edu”,表示该主机属于______。C (A)赢利性商业机构   (B)军事机构     (C)教育机构    (D)非军事性组织机构 13. 下列字符中,其ASCII码值最大的是______。D (A)9               (B)D              (C)a             (D)y 14. 语句printf(―%%d%d‖, 123);  将输出: A、%123%d       B、%%d123        √C、%d123       D、上述语句语法有错 15. 对于int x, y; 语句  if (x<0) y= -1; else if (!x) y=0; else y=1;  等价于: A、 y=0;  if (x>=0) if (x) y=1; else y= -1; √B、 if (x!=0) if (x>0) y=1; else y= -1; else y=0; C、 if (x<0) y= -1; if (x!=0) y=1; else y=0;     D、 y= -1; if (x!=0) if  (x>0) y=1; else y=0; 16. 语句if (a>b) k=0; else k=1;等价于: A、k=(a>b)?1:0;        B、k=a>b;        √C、k=a<=b;       D、以上均不是 17. 执行下列程序段:      int i, j; i = 3/2 + 7/2 == 5; j = 45 % 11 + (((7>8) ? 14:21) == 14);    后变量i,j的值应为: √A、i=0 j=1         B、i=1 j=1         C、i=0 j=2         D、i=1 j=2 18. 如果 int i=16, j=23 ; 执行 printf(\"%x--%o\后输出为: A、10—23          √B、10--27         C、16--23          D、16—27 19. 若x是double型变量,n是int型变量,执行         ,并输入3  1.25后,x=1.25, n=3。 √A、scanf(\"%d%lf\   B、scanf(\"%lf%d\C、scanf(\"%lf%d\      D、scanf(\"%d,%lf\20. 若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C表达式 是         。 A、(x%3 != 0) || (y%3 != 0)       C、(x%3 == 0) || (y%3 == 0)       21. while(          ) 等价于while(x)。 A、x == 0                    C、x == 1                     22. 下列程序段的输出结果是           。 int count = 0, x, y, z; for(x = 1; x <= 2; x++)    for(y = 1; y <= 3; y++)       for(z = 1; z <= 4; z++)          count++; printf(\"%d\ A、10                            B、9 √C、24                            D、0 23. 判断变量ch 是英文字母的表达式为          。 A、( 'a' <= ch <= 'z') || ( 'A' <= ch <= 'Z') B、(ch >= 'a' && ch <= 'z') && ( ch >= 'A' && ch <= 'Z') √C、(ch >= 'a' && ch <= 'z') || ( ch >= 'A' && ch <= 'Z')  D、( 'A' <= ch <= 'z') && ( 'A' <= ch <= 'z') B、(x%3 != 0) && (y%3 != 0) √D、(x%3 == 0) && (y%3 == 0)  √B、x != 0 D、x != 1 24. while(          ) 等价于while(!x)。 A、x == 1 √B、x == 0 C、x != 0                         D、x != 1 25. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是        。 A、for(i=1,p=1;i<=5;i++) p*=i;          √B、for(i=1;i<=5;i++){ p=1; p*=i;}     C、i=1;p=1;while(i<=5){p*=i; i++;}      D、i=1;p=1;do{p*=i; i++; }while(i<=5); 26. 有以下程序 #include  {   int i=0,x=0; for (;;) {   if(i==3||i==5) continue; if (i==6) break; i++; x+=i; } printf(\"%d\\n\ } 程序运行后的输出结果是        。 A、10             B、13             C、21            √D、程序进入死循环  27. 下列条件语句中,功能与其他语句不同的是        。  A、if(a) printf(\"%d\\n\ B、 if(a==0) printf(\"%d\\n\ C、 if (a!=0) printf(\"%d\\n\   √D、 if(a==0) printf(\"%d\\n\ 28. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是        。 A、abs(x-y)<10   B、x-y>-10&& x-y<10  √C、(x-y)<-10||!(y-x)>10   D、(x-y)*(x-y)<100 29. 有以下程序 #include  for(i=0;i<3;i++) switch(i) {   case 0:printf(\"%d\ case 2:printf(\"%d\default:printf(\"%d\} } 程序运行后的输出结果是        。 A、022111           B、021021           √C、000122           D、012 30. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a√A、1               B、2               C、3               D、4 31. 若k为整型,以下while循环执行_   __次。 k=2; while(k=0) printf(\"%d\    printf(\"\\n\"); A、无限次            √B、0次             C、1次              D、2次 32. 数字字符0的ASCII值为48,以下程序的输出结果是        。 #include  {  char a='1',b='2'; printf(\"%c,\ printf(\"%d\\n\  } A、3,2              B、50,2            √C、2,2            D、2,50 33. 有以下程序 #include  {  int a,b,d=25;   a=d/10%9;   b=a&&(-1); printf(\"%d,%d\\n\ } 程序运行后的输出结果是        。 A、6,1           √B、2,1           C、6,0            D、2,0 34. 若有 int d=2,a=5,s=3; s*=d+a;   变量s的值是        。 A、3               B、11                √C、21             D、17  35. 设有整型变量a, b, c,其中a,b的值分别为15与19,计算表达式“c=(a%2==0)?a:b” 后,c的值是(  )。 A、0               B、1                 C、15               √D、19 36. 整型常量的书写格式决定了整数的类型和值,03322是        。 A、用16进制表示的int类型常量     √B、用8进制表示的int类型常量 C、用10进制表示的int类型常量     D、用16进制表示的long int 类型常量 37. 若有 int  i , j , n = 8 ; 连续执行下述两条语句,则  i , j 和n的值应是        。 i = n++ ; j =++n ; A、i = 8 j = 9   n = 10             B、i = 8 j = 8  n= 9      √C、i = 8 j = 10  n = 10            D、i = 9 j = 8  n = 9 38. 要为字符型变量a赋初值,下列语句中哪一个是正确的        。 A、char a=\"k\";     B、char a=*;       C、char a=%;       √D、char a='3'; 39. 若有定义:int k=2,x;则能使变量x的值为3的表达式是 A、x=5/k+0.5        √B、x=5/k+1;        C、x=x+k        D、x=2*k--  40. .以下程序段的输出结果是        。       char s=‘b‘; s=s-1; printf(―%c\\n‖,s); A、b             √B、a                C、s的地址        D、c      41. 以下程序段的输出结果是        。 int j=3,s; s=j++; printf(―%d %d\\n‖,s,j); √A、3  4          B、4   4           C、4     3         D、3    3  42. 判断char 形变量c为数字字符的正确表达式为是        。 √A、‘0‘<=c&&c<=‘9‘                B、‘0‘<=c<=‘9‘      C、c>=0||C<=‘9‘                   D、c>=0&&c<=9 43. 运算符        的优先级最高。 A、*                 B、=             C、+               √D、++ 44. 计算变量x(x大于1)整数部分位数的表达式,可以写作          。     A、(int)log10(x)    B、log10(x)     C、log10(x)+1    √D、(int)log10(x)+1 45. 判断变量x、y中有且只有1个值为0的表达式为         。     √A、!(x*y)&&x+y B、(x*y)&&x+y C、x*y==0     D、x==0&&y!=0 46. 执行语句“for(s=0,k=1; s<20||k<10; k=k+2) s+=k;”后,s、k的值为        。 A、25、9       √B、25、11  47. 下列程序段执行后s值为        。 C、36、11 D、36、9 int i=1,s=0; while(i++)  if(!(i%3)) break; else s+=i; √A、2                B、3               C、6            D、以上均不是 48. 执行下列程序段后的输出结果是        。     char x=’9’; while(x>’7’) printf(“%c”,x--); A、99              √B、98              C、987             D、87 49. 该程序段的输出结果是多少? m=37;n=13; while(m!=n) {   while(m>n) m=m-n; while(n>m) n-=m; } printf(\"m=%d\\n\ A、m=13           B、m=11            √C、m=1           D、m=2 50. 以下程序段的输出结果为?    for(i=0;i<5;i++)    {  for(j=1;j<10;j++)          if(j==5) break;       if(i<2) continue;       if(i>2) break;       printf(\"%d,\   } printf(\"%d\\n\ A、10,3             B、5,2            √C、5,3            D、10,2 51. 以下程序段的输出结果是______。 int x=3;    do {  printf(\"%3d\  }while(!(--x)); A、1              B、30             √C、1  –2           D、死循环 52. 若k、s的当前值分别为4、0,执行语句“while(--k) s+=k;”后k、s值分别为        。     A、10、0     B、0、10         C、6、0        √D、0、6 53. 执行语句“for(x=0,s=0; x!=60; x=x+0.3) s=s+x;”后,变量x的值为          。     A、不可能大于60 C、一定小于60 B、不可能大于60.3             √D、可以远大于60 54. 为表示“a和b都不等于0”,应使用的C语言表达式是          。 A、(a!=0) || (b!=0)                B、a || b C、!(a=0)&&(b!=0)              √D、a && b 55. 已知字符 ‘c’ 的ASCII码为 99 ,语句printf (\"%d,%c\的输出为        。 A、99,c         B、99,100         √C、99,d           D、语句不合法 56. 下列程序段的输出结果是          。 int k, s; for(k=0, s=0; k<10; k++,s--) if (s>k) break;      else s += k; printf(\"(%d, %d)\ A、(4, 5)          B、(4, 6)          √C、(6, 9)           D、不是A、B、C 57. 下列程序的输出结果是   (30)     。      #include  double d=3.4, x;         x=(y=d/2.0)/2; printf(\" (%0.2f, %d) \", x, y);     } √ A、(0.00, 1)         B、(0.85, 1.7)       C、(0.50, 1)      D、以上都不对 58. 下列程序段的输出结果是           。       int k=1;       switch(k) { case 1: putchar('P');         case 2: case 3: putchar('Q'); break;         case 4: putchar('R');         default: putchar('S');       } A、P              √B、PQ             C、PQR            D、PQRS 59. 下列程序的输出结果是         。      #include  for(k=1; k<5; k++) { if(k%2)  printf(\"#\"); else continue;           printf(\"*\");         }       } √A、#*#*          B、*#*#     C、##   D、以上都不对 60. 语句float  x=3.0, y=4.0 ;下列表达式中y的值为9.0的是         。     A、y/=x*27/4     √B、y+=x+2.0      C、y-=x+8.0       D、y*=x-3.0 61. 下列表示中正确的C程序常量是         。 4 A、2.5           B、e1             C、'ok'           √D、1.414e+2 62. 表达式 x==0&&y!=0||x!=0&&y==0等效于         。 A、x==0||y==0                  B、x*y==0&&(x+y==0)     √C、x*y==0&&(x+y)!=0          D、x*y==0||x+y==0 63. 按C语言的实数书写规则,下列实数表示不正确的是         。    A、223.      B、.456e22        √C、e22         D、345e12 . 表达式a!=0||b!=0等效于         。 √A、a||b          B、!(a||b)         C、a=0||b=0      D、a!=0&&b!=0 65. 下列语句与语句while (i<100) { s+=i;i++; } 功能相同的是         。    √A、for ( ; i<100;i++) s+=i;            B、for ( ; i<100;i++, s=s+i);    C、for ( ; i<100;i++){ s+=i; i++;}        D、for ( ; i<=100;i++) s=s+i; 66. 下列宏定义命令中,哪一个格式是正确的         。 A、#define  PI=3.14159;            B、define  PI  3.14159    C、#define  PI=‖3.14159‖          √D、#define  PI  (3.14159) 67. 已知x=10,ch=‗a‘,y=-5;则表达式x>=y&&ch<‘B‘的值是         。    √A、0            B、1             C、“假”       D、“真” 68. 语句printf(―%d  %.1f‖,5/2,5.0/2)的输出结果是         。 A、2.5  2.5      B、2.5  2       √C、2  2.5      D、2  2 69. 若x、y都是整型变量,且x=2,y=3;经下列计算后,x的值等于6的是         。    √A、x*=6-y       B、x=x+y>2?5:6       C、x=y*4.8/2        D、x=(5*y)/2 70. 程序中调用了库函数sqrt,必须包含头文件         。 A、string.h        B、stdlib.h        C、ctype.h       √D、math.h 简答题 1. x=(-26)10,写出它的8位补码         。  11100110 2. 若int k=5, 循环语句while (k!=0) k=k-1; 则循环体执行几次? 5次 3. 假设整型变量a的值是一个三位整数,写出将a的百位数字赋给变量x的表达式。 x=a/100 4. 写出判断整型变量a大于0且a是偶数的逻辑表达式。a>0&&a%2==0 5. int i=-5; while(i<0) i++;  写出循环的执行次数。5次 6. a是一个整型变量,写出把a中十位数字赋值给变量x的表达式。 x=a%100/10                      7. 程序段 int s=0,i=1;while(i<=5) {s*=i;i++;}是否总能计算1~5的乘积?如果能计算,写出 计算结果,如果不能计算写出原因。不能。变量s的初值为0,结果为0。 8. 将数学代数式(y6+6xy-8)/(7a)写成C程序的算术表达式。(pow(y,6)+6*x*y-8)/(7*a) 9. 写出|z|>5的关系表达式。fabs(z)>5 10. 写出“求整型x的个位数字”的表达式。x%10 11. 若实型变量x、y已有值,写出“求x、y两个变量中较大值”的表达式。x>y?x:y                      12. 将数学代数式 x2+2sin(x)+3  写成C程序的算术表达式。x*x+2*sin(x)+3 13. 设有如下定义:int a=1,b=2,c=3,d=4,m=5,n=6;则执行表达式: (m=a>b)‖(n=c>d) 后,n的值是 ? 6 14. 若 int  i=3; 写出下面程序段的输出结果。AB   switch(i+1) { case 4:    printf(\"A\");   case 2:  printf(\"B\");   break;      default:   printf(\"%2d\\n\   } 15. 已知方程ax2+bx+c=0,a、b、c是方程的系数且存在两个实根,写出计算任意一个实根 的算术表达式。    (-b+sqrt(b*b-4*a*c))/(2*a) 16. 写出判断整型变量a的值是偶数的逻辑表达式。    a%2==0 17. 整型变量m的值为27,语句printf(―%x  ―,m);的输出结果是。    1b 18. 若int i=10,s=0;执行语句while(i!=0) { s+=i;i--; }后s、i值分别为         。  55,0 19. 表达式 1<0<5 的值是______。 1 20. 下列程序段的输出是______。  7,9.000000    int k;    float s; for (k=0, s=0; k < 7; k ++)    s += k/2; printf(\"%d, %f\\n\ 21. 写出执行下列语句后的输出结果。3 int x=5; if(x=3) printf(\"%d\\n\else printf(\"%d\\n\22. 写出“仅当char类型变量ch是大写英文字母时改变ch为对应小写字母”的C表达式。        ch=ch>=‟A‟&&ch<=‟Z‟?ch-„A‟+‟a‟:ch 23. 在C语言中,逻辑值”真“用什么表示?非0的数 24. 用for语句循环打印0 1 2 0 1 2 0 1 2; for(i=1;i<=9;i++) printf(“%2d”,_____);  (i-1)%3 25. 语句:printf(“%d”,(a=2)&&(b=-2));的输出结果是? 1 阅读程序题 1. #include  void main( ) {  char ch; while((ch = getchar()) != '\\n'){ if ( ch>='A' && ch<='Z' )  ch = 'a' + 'Z' - ch;       putchar(ch);     } } 程序运行时,输入ABC,输出    程序运行时,输入xyz,输出     程序运行时,输入a+Z,输出    (1) A、abc    √B、zyx (2) A、XYZ B、ABC (3) √A、a+a   2. #include  void main( ) (1)    。 (2)    。 (3)   。  C、ZYX C、cba D、ABC √D、xyz D、a+A B、z+z  C、Z+a {   int choice, i; float price; for( i = 1; i <= 5; i++) { scanf(\"%d\         if(choice == -1)  break;         switch (choice) {                     case 1: price=2.5; break;            case 2: price=1.5; break;            case 3: price=4.5; break;            case 4: price=3.5; break;            default: price=0.0; break;         } printf(\"%0.1f\\n\      } printf(\"Thanks \\n\"); } 程序运行时,输入3  7  -1,第1行输出   (1)   ,第2行输出   (2)   ,第3行输出   (3)   。 (1) A、0.0   B、3.0           √C、4.5            D、Thanks (2) √ A、0.0      B、3.0           C、7.0            D、Thanks  (3) A、-1.0        B、0.0 C、7.0             √D、Thanks 3. 该程序的运行结果是         。 void main() {   int a,b,c; a=2;b=7;c=5; switch(a>0) {  case 1: switch(b<10) {  case 1:printf(\"^\");break; case 0:printf(\"!\");break; } case 0: switch(c==5) {  case 0: printf(\"*\");break; case 1: printf(\"#\");break; default:printf(\"%%\");break; } default: printf(\"&\"); } printf(\"\\n\"); } √A、^#&           B、^            C、&             D、^!*#%& 说明:阅读下列程序,写出运行时的输出结果。 4. 写出程序的运行结果 #include  void main() {    int x=3,y=3,z=1; if(x==y+z) printf(“* * * *”); else printf(“# # # #”); } 解答:# # # # 5. 下述程序的输出结果为         。 #include {  int k=1,sum=0; do{ k=k*(k+1)/2; sum+=k; }while(sum%7); printf(“%d”,sum); } 解答:7 6. 下列程序的输出为         。 #include main( ) { int i=1; while(i<=-1) printf(“###”); printf(“%d”,i); } 解答:1 7. 输入4<回车>后,下列程序的输出结果是_______。 # include \"stdio.h\" int main( ) {  int j,k,n;    float f,s;    scanf(\"%d\   s=0; f=1; for(k=1;k<=n;k++){       for(j=1;j printf(\"%.0f#\} } 解答:1#3#21#1173# 8. 以下程序运行后,x和y的值分别代表什么? #include  {    int a,b,c,x,y; printf(“input three numbers:\\n”); scanf(“%d%d%d”,&a,&b,&c); if(a>b) { x=a; y=b;      } else { x=b; y=a; } if(x printf(“x=%d  y=%d\\n”,x,y); } 解答:三个数的最大、最小值 9. 下列程序的输出结果是_______。 #include  {  int x = 10023;    do{ printf(\"%d#\      x = x / 10;    }while (x != 0); } 解答:3#2#0#0#1# 10. 下列程序的输出结果是_______。 #include  for (i = 1; i <= 5; i++){          x = x + y;         y++; printf(\"%d#\    } } 解答:2#4#7#11#16# 11. 下列程序的输出结果是_______。 #include char x,y='A'; scanf(\"%c\// 输入字符m  switch(x) {   case  's':  y+=1; printf(\"%c\    case  'm':  y+=3; printf(\"%c\    case  't':  y+=5; printf(\"%c\ default:  y+=7; printf(\"%c\ } } 解答:DI 12. 下列程序的输出结果是_______。 #include  {   int x,i; for( i = 1,x=1; i <= 3; i++) { x=x+i; switch (x) { case 1: putchar('a');  break;            case 2: putchar('b');  break;            case 3: putchar('c');  break;            case 4: putchar('d');  break;            default: putchar('e'); break;          }       }  } 解答:bde 13. 下列程序的输出结果是_______。 #include float k,s=0; scanf(\"%d\ //输入7368     do{ k=x%10; if (k!=0) s+=1/k;         x/=10; }while(x!=0); printf(\"sum=%.3f\\n\ } 解答:0.768 14. 下列程序的输出结果是_______。 #include  {  long a,b,r; scanf(\"%ld\   b=0;    do{ r=a%10;        a=a/10;        b=b*10+r;     }while(a); printf(\"%ld\ } 程序运行时如果输入 37 , 输出为_    __。  解答:73 程序运行时如果输入 -345 , 输出为_    __。  解答:-543 程序运行时如果输入 10239, 输出为    ___。  解答:93201 15. 下列程序的输出结果是_______。 #include  for(ch=’z’;ch>=’p’;ch-=2)     {    putchar(‘(‘); printf(“%c,%c”,ch-32,ch);          putchar(‘)’);      } } 解答:(Z,z)(X,x)(V,v)(T,t)(R,r)(P,p)  16. 写出下面程序的功能 #include  {   int x,d,count=0; scanf(“%d”,&x);  //输入一个正整数         do{ d=x%10; if(d) count++;            x/=10; }while(x!=0); printf(“count=%d”,count);      } 解答:统计正整数中非0数字个数。  17. #include {   int x,d,count=0; scanf(\"%d\//306067     do{ d=x%10; if ( d==6 ) count++;         x/=10; }while(x!=0); printf(\"count=%d\ } 解答:count=2 18. 写出下面程序的输出结果。 #include  do{   x=getchar();       //运行时输入ab104dE0Ae            if(x>=’A’&&x<=’Z’) i=0;            else i=1; }while(i>=1); for(c=’A’;c<=x;c++) {   for(i=1;i<5+c-‘A’;i++)                putchar(‘ ‘); for(i=1;i<=2*(x-c)+1;i++)                putchar(c+32);             putchar(‘\\n’);          } } 解答:aaaaaaaaa             bbbbbbb              ccccc               ddd e 19. 写出下面程序的输出结果。 #include  {  int i; for( i=1;i<=4;i++) {   if ((i%3)==0) { printf(\"$\"); continue;}             else printf(\"*\");             printf(\"#\"); } } 解答:*#*#$*# 20. #include  {   int m=18,s=0;        do { switch(m%7) { case 2 : m/=2;s+=2; break;                 case 3 : m/=3;s+=3; break;                 case 5 : m/=5;s+=5; break;                 default : m--; s--;              } printf(\"%d\\n\         } while(m);      } 解答:-1       2 7       6 21. 写出下面程序的输出结果。 #include  for(i=1;i<5;i++) switch(i%5) {   case 5:  printf(\" 5\");    case 3:  printf(\" 3\");    case 1: printf(\" 1\");    default: printf(\"%2d\ }     } 解答:1 1 2 3 1 3 4 程序填空题 1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】求 1 + 2/3 + 3/5 + 4/7 + 5/9 + … 的前20项之和。     运行示例: sum = 11.239837 【程序】 #include  double s;         (1)    ; for(i = 1; i <= 20; i++){         s = s +     (2)    ;              (3)         } printf(    (4)    , s); } 【供选择的答案】 (1) A、√s = 0  (2)  A、i/b C、i/2*i-1 (3)  A、; B、s = 1        C、s = -1 D、s = 2 B、double(i)/double(b)   √D、(double)i/(double)b B、b = 2 * i – 1; C、b = 1.0 * b; (4)  A、\"sum = %d\\n\"      √D、b = b + 2;       B、\"s = %c\\n\" √C、\"sum = %f\\n\"      D、\"s = %s\\n\" 2. 【程序说明】求 2/1 + 3/2 + 5/3 + 8/5 + „ 的前10项之和。(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)          【程序】 #include  {    int i, a = 1, b = 1, t;         (1)   ;     for(i = 1; i <= 10; i++){         t = a;             (2)   ;         b = t;    y =    (3)   ;     } printf(\"%f\\n\} (1) A、int y = 0   B、int y        √C、double y = 0 (2) A、a = b     B、b = a + b    √C、a = a + b D、double y D、b = a (3) √A、y + 1.0*a/b    B、y + a/b      C、a/b      D、1.0*a/b  3. 输入的一个小写字母,将字母循环后移5个位置后输出,如‘a‘变成‘f‘, ‗w‘变成‘b‘。 #include  c=getchar(); if(____________)    解答:c>=‟a‟&&c<‟v‟         c=c+5;     else if (c>='v' && c<='z') ____________    解答:c=c+5-26; putchar(c); } 4. 输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include  {   int m,n,k; while(scanf(\"%d%d\  解答:m<=0 || n<=0     for( ________; n%k!=0||m%k!=0; k--);   解答:k=m>n?n:m     printf(\"%d\\n\ } 5. 输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。 #include  {   _______  n,i,j;   解答:int printf(\"输入非零的整数(输入零结束程序)\");   i=j=0; scanf(\"%d\ while_______   解答:(n!=0)   {    if(n>0) i=______;   解答:i+1 if(n<0) j=______;   解答:j+1 ______;    解答:scanf(\"%d\     } printf(\"i=%4d j=%4d\\n\ } 6. 斐波哪契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:0,1,1,2,3,5,8,13,21,...等。下面这个程序就是求斐波哪契数列的前20个数。 #include  void main() {   int f,f1,f2,i; f1=0;f2=______;   解答:1   printf(\"%d\\n%d\\n\ for(i=3;i<=20;______)   解答:i++   { f=______;    解答:f1+f2       printf(\"%d\\n\      f1=f2; f2=______;   解答:f   } } 7. 【程序说明】根据下式计算s的值,要求精确到最后一项的绝对值小于10–6。 s1131517  #include  #include  {    int flag = 1, t = 1;         (1)   ;      while(   2)   ){          item = flag * 1.0 / t;         s = s + item;            (3)   ;         t = t + 2;      } printf ( \"s = %f\\n\} (1) √A、double item = 2, s = 0; C、double item = 1, s = 1;  (2) A、item < 1E-6       C、fabs (item) < 1E-6   (3) A、flag = -1 B、double item = 0, s = 0; D、double item = 3, s = 1; B、item >= 1E-6 √D、fabs (item) >= 1E-6  B、s = -s √C、flag = -flag;       D、t = -t 8. [程序功能]  输入 100个数,求它们的和并输出。         #include  {   float x,sum;              int  i=0; ;     解答:sum=0 printf(\"please input data:\\n\");                                 while(i<100)                          {   scanf(\"%f\ sum+=x;                             i++;                          } ;     解答:printf(“sum=%f\\n”,sum)          } 9. 以下程序的功能是: 输出{  2,3 | m>=1,n>=1}中由小到大排列的前32项数,并 且每行8个数。(如  2,3,4,8,9,16,27,32 ) #include\"stdio.h\" void  main() { long  m2,n3; int  k; m2=2;n3=3;k=0; while(k<32) { if (         )     解答:m2 printf(\" %ld\m2*=2; m n } else { printf(\" %ld\ ;    解答:n3*=3  }  k++; if (         ) printf(\"\\n\");  解答:k%8==0       }    } 10. 【程序说明】 输出1~1000之间所有满足各位数字的立方和等于它本身的数。     【程序】 #include  {  int digit, k, m, s; for (k=1; k<=1000; k++){               (1)                while(m!=0){ digit=m%10; s=s+digit*digit*digit;                 (2)     ;            } if(    (3)     )  printf(\"%d \", s);         }       } (1) A、s=0;        √B、m=k; s=0;     C、m=k;       D、k=m; s=0;    (2) √A、m=m/10      B、m=m%10        C、m=m        D、m=k/10    (3) A、m!=s          B、m==s          C、k!=s       √D、k==s  11. [程序功能]输入20个整数,输出其中最小数。    #include  {  int i,x,min; scanf(―%d‖,&x); ________;   解答:min=x for(i=2;i<=N;i++) {   scanf(―%d‖,&x); ________;   解答: if(min>x) min=x } printf(―%d\\n‖,min); } 12. 输入1 个正整数 n, 计算并输出 s 的前n项的和。    s = 1/2 -2/3 + 3/4 - 4/5 + „„(-1)n-1 n/(n+1) #include  {   int k, flag=1, n;     float s=0; scanf(\"%d\    for (k=1 ; k<=n; k++){         s=s+    (1)    ;            ( 2)   ;     } printf(\"sum=%f\\n\ } (1) A、1.0*k/(k+1)* flag     √B、flag*n/(n+1)     C、- k/(k+1)  (2) A、flag= -1             B、s= -s             C、flag= -flag 13. [程序说明]输入x、n后输出下列算式的值。 234nxxxx...(1)n1x 2!3!4!n![程序] #include  {  float s,t,x; int i,n; scanf(\"%f%d\             (1)             for(i=1;i<=n;i++) {      (2)       s+=t; }              (3)       ;      } (1)A、 s=0; t=0; √B、 s=0; t=-1;            C、 s=x; t=1;         D、 s=x; t=-1;  (2)√A、 t=-t*x/i;                  B、 t=pow(-x,i)/i;        C、 t=-pow(x,i)/i;                D、 t=t*x/i; (3)√A、 printf(\"%f\\n\          B、 printf(\"%f\\\\n\    C、 printf(\"%s\\n\            D、 printf(\"%c\\n\ D、1.0*k/(k+1) D、k= -k          √ 编程序 1. 编写程序,判断输入字符的种类,即区分空格、数字字符、英文字母和其他字符。    #include  printf(\"Please input a character:\\n\");       c=getchar(); if(c==' ') printf(\"This is a blank\");       else if(c>='0'&&c<='9') printf(\"This is a digit\"); else if(c>='A'&&c<='Z'||c>='a'&&c<='z') printf(\"This is a letter\"); else printf(\"This is an other character\");     } 2. 编写程序,输入一批正整数,遇0或负数则输入结束,要求统计并输出其中奇数和偶数个数。 #include  {   int x,a=0,b=0; printf(“Enter data:”);        scanf(“%d”,&x);        while(x>0) {    if(x%2!=0) a++;             else b++; scanf(“%d”,&x);        } printf(“奇数:%d\\n偶数:%d\\n”,a,b);    } 3. 输入入一个职工的月薪salary,计算并输出应交的个人所得税tax = rate * (salary-850)。 其中rate的计算方式如下: 当 salary ≤850 时,rate = 0; 当 850 < salary ≤ 1350 时,rate = 5%; 当 1350 < salary≤  2850 时,rate = 10%; 当 2850 < salary ≤ 5850 时,rate = 15%; 当 5850 < salary 时,rate = 20%。    #include  void main() {    double salary,rate,tax; printf(“Please input salary:\\n”);    scanf(“%lf”, &salary); if(salary<=850) rate=0; else if(salary>850&& salary<=1350) rate=5; else if(salary>1350&& salary<=2850) rate=10; else if(salary>2850&& salary<=5850) rate=15;              else rate=20;    tax=rate*(salary-850)/100;    printf(“tax=%.2f\\n”,tax);    } 4. 编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。 #include  {   int a,b,sum=0;        for(a=1;a<=10;a++)           for(b=1;b<=a;b++)               sum+=b; printf(\"1+(1+2)+(1+2+3)+„+(1+2+...+10)=%d\\n\ } 或 #include  {   int a,b=0,sum=0;        for(a=1;a<=10;a++)        {    b+=a;                sum+=b; } printf(\"1+(1+2)+(1+2+3)+„+(1+2+...+10)=%d\\n\ } 5. 输出一张平方根表(如下表所示),x的取值范围是[5, 1000],请调用库函数sqrt()计算 平方根。 x 5 6 … 999 1000 #include {  float x,y; printf(\"    x     sqrt(x)\\n\");        for(x=5;x<=1000;x++)        {  y=sqrt(x); printf(\"%5.0f%10.2f\\n\       } } 6. 输入一个实数a,判断是 “正数”、“负数”或“零”,并输出“正数”、“负数”或“零” 的判断结果。 #include sqrt(x) 2.24 2.45 … 31.61 31.62 { float a; scanf(\"%f\     if(a>0) printf(\"正数\\n\"); else if (a==0) printf(\"零\\n\"); else  printf(\"负数\\n\"); } 7. 输入被除数和除数x,y,如果除数y不等于0,计算x除以y的商,如果除数y等于 0,输出“数据错误”。 #include double x,y,s; printf(“Input x y:\\n”); scanf(\"%lf%lf\    if(y!=0){ s=x/y; printf(\"%f\\n\} else printf(\"数据错误\\n\"); } 8. 输入一个小时、分、秒的时间,将输入的时间加1秒后,输出新的时间。要求输入输出 时间格式为小时:分:秒(例如输入5:45:9,则输出5:45:10,若输入23:59:59, 则输出0:0:0)。 #include  scanf(“%d:%d:%d”,&h,&m,&s);     s++; if(s==60)   // 加1秒后为60,向分进位     {   s=0;         m++; if(m==60)  // 60分时向时进位         {   m=0; h++; if(h==24)  h=0;        }     } printf(“%d:%d:%d\\n”,h,m,s); } 9. 输入年份、月份,判定是否为闰年,并输出该年该月的天数。    #include  {   int y,m,days,leap=0; printf(“输入年 月\\n”);        scanf(“%d%d”,&y,&m); if(m%2==1&&m<8||m>=8&&m%2==0)  days=31;        else if(m==4||m==6||m==9||m==11) days=30;         else if(m==2) if(y%4==0&&y%100!=0||y%400==0) {  days=29; leap=1; } else days=28;        if(leap==1) printf(“%d年是闰年,”,y);        else printf(“%d年不是闰年,”,y); printf(“%d月有%d天\\n”,m,days); } 10. 计算表达式1+2!+3!+...+10!+11!+12!的值,并将计算结果以格式\"%d\"输出。    #include  void main( )                                        {    int s=1,k=1,i;         for(i=2;i<=12;i++) {  k*=i; s+=k; } printf(\"%d\\n\ } 或 #include  void main( )                                        {    int s=0,k,i,j; for(i=1;i<=12;i++) {   k=1; for(j=1;j<=i;j++) k*=j; s+=k; } printf(\"%d\\n\ } 11. 计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累加),将 求和的结果保留4位小数输出。   #include  void main( )                                {  float s=1,t=1,i=3;        do {          t= -t* (i-1)*i;                 s=s+1/t; i+=2; }while(fabs(1/t) >= 1e-5);        printf(\"%.4f\\n\  } 12. 编写一个程序求出300~500之间满足如下条件的数:它们三个数字之积为42,三个数 字之和为12。 #include  #include  void main( )                              {  int  x,a,b,c; for(x=300;x<=500;x++){         a=x/100;         b=x%100/10;         c=x%10; if(a*b*c==42&&a+b+c==12)             printf(\"%d\\n\ }  } 13. 输入一个实数x,一个整数n,输出xn的值(不使用pow函数)。 #include { double x,t=1;     int i,n; printf(“Input x n:\\n”); scanf(\"%lf%d\ for(i=1;i<=n;i++)          t*=x; printf(\"%f\\n\ } 14. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们中偶数的和。 #include { int i,n,x,sum=0; printf(“Input n:\\n”); scanf(\"%d\for(i=1;i<=n;i++){ scanf(“%d”,&x);             if(x%2==0)                 sum+=x; } printf(\"sum=%d\\n\ } 15. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们中偶数的平均值。 #include { int i,n,x,sum=0,count=0; double aver; printf(“Input n:\\n”); scanf(\"%d\for(i=1;i<=n;i++){          scanf(“%d”,&x);             if(x%2==0){                 sum+=x;                 count++;             }         } aver=(double)sum/count;  // 或 aver=1.0*sum/count; printf(\"average=%d\\n\    } 16. 统计某科成绩的总分,平均分,及格人数,输入-1时,结束。 #include {    int  score,num=0,passnum=0; float  ave,sum=0;      do { scanf(“%d”,&score);     if(score==-1) break; sum=sum+score; num++; if(score>=60)  passnum++; } while(score!=-1);  // 或 }while(1); ave=sum/num; printf(“sum=%f,ave=%f,pass=%d”,sum,ave,passnum); } 17. 将满足条件pow(1.05,n)<1e6 void main()                             // 运行结果:283, 992137 {   float y=1.05; int n=1; for(n=1;;n++) if((pow(y,n)<1e6)&&(1e6 x2sinxxy2x2xx1x22x2x2#include  #include  {   int i,n; double x,y; scanf(“%d”,&n); for(i=1;i<=n;i++) {   scanf(“%lf”,&x); if(x<-2) y=x*x-sin(x); else if(x<2) y=pow(2,x)+x;               else y=sqrt(x*x+x+1); printf(“y=%f\\n\ } } 19. 在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数。 #include  void main( )                                  // 运行结果:313    {   int i,j;     for(i=1; ; i++) if(i%3==1&&i%5==3&&i%7==5&&i%9==7)  break;        printf(\"%d\\n\   } 20. z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出使z取最小值的 x1,y1。    #include {   int x,y,x1,y1; float z,z1;    x1=y1=0; z1=10*cos(x1-4)+5*sin(y1-2);  // 赋初值    for(x=0;x<=10;x++) for(y=0;y<=10;y++) {   z=10*cos(x-4)+5*sin(y-2);              if(z printf(“%d,%d\\n”,x1,y1);     }              
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务
