第一周从问题到C语言程序设计

1.1-测试题

1、多选题:
‎算法的描述方法除了自然语言之外,还包括:‍
选项:
A: 流程图
B: NS流程图
C: 伪代码
D: 程序语言
答案: 【 流程图;
NS流程图;
伪代码;
程序语言

2、多选题:
‎结构化程序设计方法包含三种基本结构:‏
选项:
A: 顺序结构
B: 选择结构
C: 循环结构
D: 跳转结构
答案: 【 顺序结构;
选择结构;
循环结构

3、判断题:
‏goto语句很方便,应该随意使用‎
选项:
A: 正确
B: 错误
答案: 【 错误

4、判断题:
‎程序设计包括以下五个步骤:‎‎(1)确定问题可计算;‎‎(2)建立问题的数学模型;(3)设计算法和数据结构;(4)选择合适的计算机语言编写程序;(5)调试运行程序分析结果。‎‎这种说法正确吗?‎
选项:
A: 正确
B: 错误
答案: 【 正确

5、判断题:
‎算法的特征包括:有穷性,确定性,有效性,有零或多个输入,有一或多个输出。这种说法正确吗?‎
选项:
A: 正确
B: 错误
答案: 【 正确

6、填空题:
‎计算复杂度包括【       】复杂度和空间复杂度。‌
答案: 【 时间

第二周数据计算实现与顺序结构程序设计一

小测验2.1

1、单选题:
‍以下程序的输出结果是____。          #include <stdio.h>
         main( )
         {   int x=10, y=10;              
             printf("%d %dn", x--, --y);
         }‍
选项:
A: 10 10
B: 9 9
C: 9 10
D: 10 9
答案: 【 10 9

小测验2.2

1、单选题:
‌已知:x=10,y=2; 表达式x-5<=x+y的值是____‎
选项:
A: 0
B: 1
C: 11
D: 9
答案: 【 1

第二周作业

1、单选题:
‍已知:char a;int b;float c;double d;执行语句 c=a+b+c+d;后,变量c的数据类型是____‌
选项:
A: float
B: int
C: char
D: double
答案: 【 float

2、单选题:
‌已知 int i=5;执行语句 i+=++i;i的值是____‌‌‌
选项:
A: 12
B: 10
C: 11
D: 其他答案都不对
答案: 【 12

3、单选题:
‏已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是____‌‏‌
选项:
A: 5
B: 0
C: 1
D: 6
答案: 【 5

4、单选题:
‏下列可以正确表示字符型常数的是____‎
选项:
A: 't’
B: "a"
C: "n"
D: 297
答案: 【 't’

5、单选题:
​字符串"\65a,n"的长度是____‍​‍
选项:
A: 5
B: 8
C: 7
D: 6
答案: 【 5

6、单选题:

把算术表达式    表示为一个C语言表达式,正确的写法是____

‍选项:
A: –(31.6*a*8+1.0/7)*12
B: –(31.6a*8+1/7)*12
C: –(31.6a*8.0+1.0/7.0)*12
D: –31.6*a*8+1.0/7*12
答案: 【 –(31.6*a*8+1.0/7)*12

7、单选题:
‏温度华氏和摄氏的关系是: C=5(F-32)/9。已知:float C,F;由华氏求摄氏的正确的赋值表达式是____‌‏‌
选项:
A: C=5*(F-32)/9
B: C=5/9(F-32)
C: C=5/9*(F-32)
D: 三个表达式都正确
答案: 【 C=5*(F-32)/9

8、单选题:
‏已知int i=10;表达式“20-0<=i<=9”的值是____‌‏‌
选项:
A: 1
B: 0
C: 19
D: 20
答案: 【 1

9、单选题:
‍已知:int x,y;double z;则以下语句中错误的函数调用是____‏‍‏
选项:
A: scanf ("%x%o%6.2f",&x,&y,&z)
B: scanf ("%d,%lx,%le",&x,&y,&z)
C: scanf ("%2d%d%lf",&x,&y,&z)
D: scanf ("%x%*d%o",&x,&y)
答案: 【 scanf ("%x%o%6.2f",&x,&y,&z)

10、单选题:
‍已知” int a=5,b=5,c;”,则执行表达式” c=a=a>b”后变量 a 的值为____‏
选项:
A: 0
B: 1
C: 4
D: 5
答案: 【 0

第三周数据计算实现与顺序结构程序设计二

本节作业

1、填空题:
‏假设a和b都是16位二进制整数,它们的值分别是:‎‏a: 1010,1001,0101,0111‎‏b: 0110,0000,1111,1011‎‏则c=(a>>2)|~b运算后,c的二进制表示为      。‎
答案: 【 1011111101010101##%_YZPRLFH_%##1011,1111,0101,0101

本节测验

1、单选题:
​[4]‌
选项:
A: x1,x2
B: x1;x2
C: &x1,&x2
D: &x1;&x2
答案: 【 x1,x2

2、单选题:
‍[3]‍
选项:
A: (-b-q)/(2*a)
B: -b-q/2*a
C: (-b-q)/2a
D: (-b-q)/2*a
答案: 【 (-b-q)/(2*a)

3、单选题:

​请选择正确的语句来完善程序,完成如下的功能:

​求一元二次方程的根。

​#include <math.h>

​int main()

​{ float a, b, c, x1, x2, q;

​  printf("Please input a, b, cn");

​  scanf("%f,%f,%f",&a,&b, [1] );

​  q=sqrt( [2] );

​  x1=(-b+q)/(2*a);

​  x2=     [3]    ;

​  printf("x1=%.0f, x2=%.0fn", [4]  );

​}

​[1]

‏选项:
A: c
B: &c
C: %c
D: f
答案: 【 &c

4、单选题:
‏[2]‎
选项:
A: b*b-4*a*c
B: 4*a*c-b*b
C: b^2-4ac
D: 4ac-b^2
答案: 【 b*b-4*a*c

第四周选择结构的程序设计

小测验1

1、单选题:
‏执行下列程序段后,x、y和z的值分别是      ​‏int x=10,y=20,z=30;
if(x>y)  z=x;x=y;y=z;​
选项:
A: 10,20,30
B: 20,30,30
C: 20,30,10
D: 20,30,20
答案: 【 20,30,30

小测验2

1、单选题:
if语句的控制条件      。‍
选项:
A: 只能用关系表达式
B: 只能用关系表达式或逻辑表达式
C:  只能用逻辑表达式   
D: 可以用任何表达式
答案: 【 可以用任何表达式

小测验3

1、单选题:
‏下面的程序片段所表示的数学函数关系是      y=-1;
if (x!=0) {  if (x>0) y=1;}
else y=0;‏
选项:
A:

B:
C:
D:
答案: 【 

小测验4

1、单选题:
‍若a和b均是整型变量,以下正确的switch语句是      ‏
选项:
A: A. switch (a/b)                       
    {   case 1: case 3.2: y=a+b; break ;     
        case 0: case 5:   y=a-b;              
    }
B: B. switch (a*a+b*b);
    {case 3:
     case 1: y=a+b; break ;
     case 0: y=b-a; break; }
C: C. switch a                            
    { default : x=a+b;                     
      case 10 : y=a-b;break;         
      case 11 : y=a*d; break; }    
D: D.  switch(a+b)
    {case 10: x=a+b; break;
     case 11: y=a-b; break;
    }
答案: 【 D.  switch(a+b)
    {case 10: x=a+b; break;
     case 11: y=a-b; break;
    }

小测验5

1、单选题:
‎ 以下程序的输出结果是____‍‎main( )
{ int w=4,x=3,y=2,z=1;
    if(x>y&&!(z==w))printf(”%dn”,(w<x?w:z<y?z:x));
    else printf(”%dn”, (w>x?w:z>y?z:x));
}‍
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 1

2、填空题:
if (!k) a=3;语句中的!k可以改写为      ,使其功能不变。‍‍‍
答案: 【 k==0

3、填空题:
‌以下程序的输出是         ‌‌  main( )
 {  int a=0, b=0, c=0;
    if (a=b+c)  printf (”*** a=%dn”, a);
    else        printf (”$$$ a=%dn”, a);
 } ‌
答案: 【 $$$ a=0

第四周作业

1、单选题:
‌下面程序的输出是      ‏‌     #include <stdio.h>
     main ( )
     {   int x=1, y=0, a=0, b=0;
         switch ( x )
          {  case 1: switch ( y )
                     {  case 0:  a++;  break;
                        case 1:  b++;  break;
                     }
             case 2: a++;  b++;
                     break;
           }
           printf ("a=%d,b=%dn", a, b );
     }‏
选项:
A: a=2,b=1
B: a=1,b=1
C: a=1,b=0
D: a=2,b=2
答案: 【 a=2,b=1

2、单选题:
‍ 以下程序的输出结果是            ‏‍main( )
{ float  x=2,y;
      if (x<0)  y=0;
      else if (x<5&&!x) y=1/(x+2);
           else if (x<10) y=1/x;
                else y=10;
      printf(”%fn”,y);
}‏
选项:
A: 0.500000
B: 0.000000
C: 0.250000
D: 10.000000
答案: 【 0.500000

3、填空题:
‏若下列程序执行后t的值为4,则执行时输入a,b的值范围是           ‌‏#include ”stdio.h”
main( )
{  int a, b, s=1, t=1;
         scanf (”%d, %d”, &a, &b);
         if (a>0)  s+=1;
         if (a>b)  t+=s;
         else  if(a==b) t=5;
               else     t = 2*s;
         printf (”s=%d, t=%dn”, s,t);
 }       ‌
答案: 【 0<a<b

4、填空题:
‏下列程序段当a的值为014和0x14时的执行结果分别是         ​‏if ( a=0xA | a >12 )
if ( 011&10==a )    printf (”%d!n”,a);
else                printf (”Right!%dn”,a);
else printf (”Wrong!%dn”,a);​
答案: 【 10! Right!11

第五周循环结构的程序设计一

小测验1

1、单选题:
​下列程序执行的结果是               ‌​a=1;b=2;c=3;
while(a<b<c) {t=a;a=b;b=t;c--;}
printf(”%d,%d,%d”,a,b,c);‌
选项:
A: 1,2,0
B: 2,1,0
C: 1,2,1
D: 2,1,1
答案: 【 1,2,1

小测验2

1、单选题:
‎指出程序结束之时,j、i、k的值分别是                           ‌‎main( )
{ int a=10,b=5,c=5,d=5,i=0,j=0,k=0;
      for (;a>b;++b) i++;
      while (a>++c) j++;
      do k++; while (a>d++);
}‌
选项:
A: j=5,i=4,k=6;
B: i=5,j=4,k=6;
C: j=6,i=5,k=7;
D: j=6,i=6,k=6;
答案: 【 i=5,j=4,k=6;

2、单选题:
‍下列程序段                  ‏‍x=3;
do{ y = x--;
if ( !y )  { printf(”x”); continue; }
printf(”#”);
} while(1<=x<=2);‏
选项:
A: 输出 ##
B: 输出 ##x
C: 是死循环
D: 有语法错
答案: 【 是死循环

小测验3

1、单选题:
‌下面程序的功能是计算1-3+5-7+ …… -99+101的值。  ①  ‏‌main()
{  int i,t=1,s=0;
   for(i=1;i<=101;i+=2)
   {    ①  ;
       s=s+t;
        ②   ;
    }
    printf(”%dn”,s};
    }‏
选项:
A: t = i * t
B: t = i * (t+1)
C: t = (i+1)* t
D: t = (i-1) * t
答案: 【 t = i * t

2、单选题:
‍  ②   ‏
选项:
A: t = s
B: t = -s
C: t = s > 0 ? -1 : 1
D: t = s < 0 ? -1 : 1
答案: 【 t = s > 0 ? -1 : 1

3、判断题:
‏for语句的三个表达式都是必须的。‍
选项:
A: 正确
B: 错误
答案: 【 错误

小测验4

1、单选题:
‌下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。  ①   ‍‌    main()
        {  float x,amax,amin;
           scanf(”%f”,&x);
           amax=x;
           amin=x;
           while(   ①    )
           {  if(x>amax)  amax=x;        
              if(   ②    )  amin=x;
                scanf(”%f”,&x);
          }
          printf(”namax=%fnamin=%fn”,amax,amin);
       }‍
选项:
A: x >= 0
B: x <= 0
C: x > 0
D: x < 0
答案: 【 x >= 0

2、单选题:
‎  ②   ​
选项:
A: x <= amin
B: x > amin
C: x < amin
D: x >= amin
答案: 【 x < amin

第六周循环结构的程序设计二

小测验1

1、单选题:
‍下面程序的输出结果是              ‏‍    #include<stdio.h>
    int  main( )
    { int i,j;
      float s;
      for(i=6;i>4;i--)
       {s=0.0;
        for(j=i;j>3;j--)s=s+i*j;
       }
      printf(”%fn”,s);
    }‏
选项:
A: 135.000000
B: 90.000000
C: 45.000000
D: 60.000000
答案: 【 45.000000

小测验2

1、单选题:
‍下列说法中正确的是                ​
选项:
A: break 可以用在任何选择和循环结构与居中
B: break 可以用在switch结构和任何循环结构中
C: continue可以用在switch结构和任何循环结构中
D: continue的功能是结束当前所在的循环
答案: 【 break 可以用在switch结构和任何循环结构中

第六周作业

1、单选题:

求取满足式 的n,正确的语句是____      

‎选项:
A: for(i=1,s=0;(s=s+i*i)<=1000;n=i++)
B: for(i=1,s=0;(s=s+i*i)<=1000;n=++i)
C: for(i=1,s=0;(s=s+i*++i)<=1000;n=i)
D: for(i=1,s=0;(s=s+i*i++)<=1000;n=i)
答案: 【 for(i=1,s=0;(s=s+i*i)<=1000;n=i++)

2、单选题:
‏下面的for语句                  ‌‏for(x=0,y=10;(y>0)&&(x<4);x++,y-- )‌
选项:
A: 循环执行4次
B: 是无限循环
C: 循环次数不定
D: 循环执行3次
答案: 【 循环执行4次

3、单选题:
‌已知int i=1; 执行语句while (i++<4) ;后,变量i的值为              ​‌​
选项:
A: 5
B: 3
C: 4
D: 6
答案: 【 5

4、单选题:
‏下面程序的输出结果是____‏‏          main()
          {  int i,j,x=0;
             for(i=0;i<2;i++)
             {  x++;
                for(j=0;j<-3;j++)
                {  if(j%2)
                      continue;
                   x++;
                }
                x++;
             }
             printf(”x=%dn”,x);
          }‏
选项:
A: x=4 
B: x=8
C: x=6
D: x=12
答案: 【 x=4 

5、单选题:
‏假定从键盘上输入“3.6,2.4<回车>”,下面程序的输出是____‏‏         #include <math.h>
         main()
         {  float x,y,z;
            scanf(”%f,%f”,&x,&y);
            z=x/y;
            while(1)
            {  if(fabs(z)>1.0)
               {  x=y;
                  y=z;
                  z=x/y;
               }
               else   break;
             }
             printf(”%fn”,y);
          }‏注:fabs()是浮点数绝对值函数。‏‏‏
选项:
A: 1.600000
B: 1.500000
C: 2.000000 
D: 2.400000
答案: 【 1.600000

第七周数组一

小测验1

1、单选题:
‎下面程序的输出结果是____。‌‎#include <stdio.h>
main( )
{  int i,k,a[10],p[3];
   k=5;
   for(i=0;i<10;i++)
     a[i]=i;
   for(i=0;i<3;i++)
      p[i]=a[i*(i+1)];
   for(i=0;i<3;i++)
      k+=p[i]*2;
   printf(”%dn”,k);
}‌‎‌
选项:
A: 20
B: 21
C: 22
D: 23
答案: 【 21

小测验2

1、单选题:
​以下程序的功能:输入30个人的年龄,统计18岁、19岁、……、25岁各有多少人。填空,使程序正确。‌​main( )
{ int i,n,age,a[30]={0};
for(i=0;i<30;i++)
{ scanf(”%d”,&age); 
  __(1)__; }
      printf(”age    numbern”);
for(__(2)__;i++)  printf(”%5d    %6dn”,i,a[i]);
}‌
选项:
A: (1)for(n=18;n<25;n++) 
    {
     if (age==n)
     a[n]++;
     }
(2)i=18;i<=25
B: (1)for(n=18;n<=25;n++) 
    {
     if (age==n)
     a[n]++;
     }
(2)i=18;i<=25
C: (1)for(n=18;n<25;n++) 
    {
     if (age=n)
     a[n]++;
     }
(2)i=18;i<=25
D: (1)for(n=18;n<25;n++)     {     if (age==n)     a[n]++;     }(2)i=18;i<25
答案: 【 (1)for(n=18;n<=25;n++) 
    {
     if (age==n)
     a[n]++;
     }
(2)i=18;i<=25

小测验3

1、单选题:
‍以下程序的功能: 在给定数组中查找某个数,若找到,则输出该数在数组中的位置,否则输出“can not found!”。填空,使程序正确。‌‍main( )
{ int i,n,a[8]={25,21,57,34,12,9,4,44};
scanf(”%d”,&n);
for(i=0;i<8;i++)
        if(n==a[i])
{ printf(”The index is %dn”,i);
            __(1)__ ;  }
      if(__(2)__)   printf(”can not found!n”);
}‌
选项:
A: (1) end(2) i==8
B: (1) break(2) i==0
C: (1) break(2) i==8
D: (1) end(2) i==0
答案: 【 (1) break(2) i==8

第八周数组二

小测验1

1、单选题:
​以下正确的数组定义语句是____。​
选项:
A: int     y[2][3] = {1,2,3,4,5,6};
B: float   x[3][ ] = {{1},{2},{3}};
C: long    s[2][3] = {{1},{1,2},{1,2,3}};
D: double  t[ ][3] = {0};
答案: 【 int     y[2][3] = {1,2,3,4,5,6};

2、单选题:
‏若有说明: int a[ ][4];则a[i][j]前有____个元素。‏
选项:
A: j*4+i
B: i*4+j
C: i*4+j-1
D: i*4+j+1
答案: 【 i*4+j

小测验2

1、填空题:

求出如下所示矩阵中各行元素之和,并以矩阵形式输出原矩阵及相应行元素之和。请填空,使程序正确。


#include "stdio.h"
int main( )
{ int i,j;
static int a[3][4]={{3,5,6,0},{2,1,4,0},{8,7,1,0}};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][3]+= __(1)__;      
for(i=0;i<3;i++)
for(   _(2)___    )
{ printf(”%3d”,a[i][j]);
if( _(3)___ ) printf( __(4)__  );}
}

​答案: 【 (1)a[i][j] (2)j = 0; j < 4; j++ (3)j == 3 (4)"n"

小测验3

1、单选题:
​以下程序的输出是 ___。‍​main( )
     {char a[2][5]={”6937”,”8254”};  int i,j,s=0;
      for ( i = 0; i < 2; i++ )
       for ( j = 0; a[i][j]>’0’ && a[i][j]<=’9’; j+=2 )
            s=10*s+a[i][j]-’0’;
      printf(”s=%dn”,s);
}‍
选项:
A: 6385
B: 69825
C: 63825
D: 693825
答案: 【 6385

2、填空题:
​以下程序的功能:输入10个字符串,找出每个字符串的最大字符,并依次存入一维数组中,然后输出该一维数组。请填空使程序正确。​​#include ”stdio.h”
main( )
{ int j,k;  char a[10][80],b[10];
  for(j=0;j<10;j++)  gets(a[i]);
  for(j=0,j<10;j++)
{ _(1)___;
for(k=1;a[j][k]!=’’;k++)
         if(b[j]<a[j][k]) _(2)___;
}
for(j=0,j<10;j++)
  printf(”%d   %cn”,j,b[j]);
}​
答案: 【 (1)b[j] = a[j][0] (2)b[j] = a[j][k]

小测验4

1、填空题:
‌有一名室内装潢工程队的配料员,他很擅长采用“之”字型的方式铺大理石地砖,图案如下:‍‌1 ‍‌2 ‍‌6 ‍‌7 ‍‌15 ‍‌3 ‍‌5 ‍‌8 ‍‌14 ‍‌16 ‍‌4 ‍‌9 ‍‌13 ‍‌17 ‍‌22 ‍‌10 ‍‌12 ‍‌18 ‍‌21 ‍‌23 ‍‌11 ‍‌19 ‍‌20 ‍‌24 ‍‌25 ‍以下是生成这样图形的程序,请帮助补充完整:‍‌#include "stdio.h"
int main()
{
    int a[10][10],s=0,n,i=1,j=1,t=0;
    scanf("%d",&n);
    while (i<n||j<n)
    {
        s+=1;
        a[i-1] __(1)_____=s;
        if(t)
            if (j==1)
            {t=0;if (n==i) j+=1; else i+=1;}
            else 
                if(n==i)
               {t=0;j+=1;}
                else
               {i+=1;j-=1;}
        else 
            if (i==1)
           {t=1;if (n==j) i+=1;else j+=1;}
            else
                if (n==j)
               {t=1;i+=1;}
                else{i-=1;j+=1;}
    }
    a[n-1][n-1]=s+1;
if (n>1)
  for(i=1;i<=n;i++)
       {printf("%2d",a[i-1][0]);
        for(j=2;j<=n;j++)
          printf("%3d",a[i-1][j-1]);
        ___(2)____;}
else 
   printf("1n");
    return 0;
}‍
答案: 【 (1)[j-1] (2)printf("n")

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注