20纳新题目答案

注意:分数有争议的私聊群主

一.选择题 (每题 2 分)

  1. C 语言程序是由(C)构成的。
    A.一些可执行语言
    B.main 函数
    C.函数
    D.字符

  2. C 语言程序从(C)开始执行。
    A. 程序中的第一条可执行语句
    B. 程序中第一个函数
    C. 程序中的 Main 函数
    D. 包含文件中的第一个函数

  3. 下列方法中错误的是(D)
    A. 主函数可以分为两个部分:主函数说明部分和主函数体。
    B. 主函数可以调用任何非主函数的其他函数。
    C. 任何非主函数可以调用其它任何非主函数。
    D. 程序可以从任何非主函数开始执行。

  4. 下面四个选项中,合法的标志符是:(D)
    A.*y B. Define C. 6a D.c

  5. 若有以下类型说明语句:char a; int b;float c;double d;则表达式 a*b+d-c 的结果类型为 (D)
    A.float B. Char C.int D.double

  6. 若 int x = 2,y = 3 ,z = 4,则表达式 x < z ? y:z 的结果是(B)
    A.4 B.3 C.2 D.0

  7. 设 a,b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则下面表达式中,值为 0 的表达式是(D)
    A、’a’&&’b’ B、a<=b C、a||b+c&&b-c D、!((a<b)&&!c||1)

  8. 下面(D)表达式的值为 4.
    A. 11/3 B. 11.0/3 C. (float)11/3 D. (int)(11.0/3+0.5)

  9. 已知 int x=5,y=5,z=5;执行语句 x%=y+z;后,x 的值是(C )
    A .0 B. 1 C. 5 D. 6

  10. 为表示逻辑表达式 79<X<90,应使用的 C 语言表达式是 (A)。
    A.( X>79 )&&( X<90 ) B. ( X>79 )!=( X<90 ) C. 79<X<90 D. (X>79 )||( X<90 )

  11. 若 int i=10; 执行下列程序后,变量 i 的正确结果是(A )。

switch ( i ) { 
case 9: i+=1; 
case 10: i+=1; 
case 11: i+=1; 
default : i+=1; 
} 

A、13 B、12 C、11 D、10

  1. 定义变量int x=1,y=3,z=5;以下语句执行后x,y,z的值是()。答案为1,1,1 所有同学都得分
If(x>y)
    x = y; z = x; y = z;

A、x=1 y=5 z=1

B、x=1 y=3 z=5

C、x=3 y=5 z=1

D、x=1 y=5 z=3

二.填空题 (每空 1分)

  1. 结构化设计中的三种基本结构顺序、选择、循环
  2. 若有说明和语句:int a=5,b=6,y=6;b - = - -a;y = (a–)+(++b)则b和y的值分别是3 7
  3. 二进制:1010 0001 转为十进制数为161,再转换成十六进制数为0xa1,左移 2 位之后,转为十进制数为132,再转换成十六进制数为0x84;1010 0001 转为十进制数为161,再转换成十六进制数为0xa1,右移 3 位之后,转为十进制数为20,再转换成十六进制数为0x14
  4. 二进制:1011 0101 与 1 相或后二进制数为1011 0101,1011 0101 与 0110 0010 相与后二进制数为0010 0000
  5. 十六进制:0x55 & 0xff 后的值为0x55,~(0xC4 << 2) 后的值为0xef

三.程序设计题

  1. 排序问题(5 分)
    输入三个整数 x,y,z,请把这三个数由小到大排序并在屏幕上输出。
 void main()
   {
        int a,b,c,t;
        printf("请输入三个整数\n");
        scanf("%d,%d,%d",&a,&b,&c);
        if(a>b)
        {   
        	t=a;a=b;b=t;
        } 
        if(a>c)
        {  
        	t=a;a=c;c=t;
        }  
        if(b>c)
        {  
        	t=b;b=c;c=t;
        }
        printf("%d,%d,%d",a,b,c);
        
   }
  1. 打印下图图案(5 分)
    在这里插入图片描述
/*答案不唯一,输出图案即可*/
   void main()
   {
       	int n=4;
	   	int i,j;
	   	for(i=0;i<n;i++)
	       {
	           for(j=0;j<i;j++)
	               printf(" ");
	           for(j=i;j<2*n-i-1;j++)
	   		    printf("*");
	           printf("\n");
	       }
   }
  1. 水仙花数是指一个3位数,各位数字立方和等于该数本身。例如153,1的立方+5的立方+3的立方等于152.输出所有的3位数水仙花数,并输出水仙花数的个数。(5分)注意:统计水仙花个数,很多同学都没有实现
void main()
   {
       int i,a,b,c;
       int count=0;
       for(i=100;i <= 999;i++)
       {
           a=i/100;
           b=(i/10)%10;
           c=i%10;
           if(a*a*a+b*b*b+c*c*c == i)
           {
              printf("%d为水仙花数!\n",i);
              count++;
           }
       }
       printf("共有%d个水仙花数!",count);
   }
  1. 斐波那契数列问题(7分)
    斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多•斐波(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个 数列:1、1、2、3、5、8、13、21、34、……利用所学的知识求出前 30 项数值(数组最好),这个数列从第3项开始,每一项都等于前两项之和。 并在屏幕上输出。(每行输出 5 个数值)。
void main() 
{
	int f1,f2;
	int f3;
	int i;
	for(i = 1;i <=20;i++)
	{
		if(i==1 || i==2)
		{
			f1 = f2 = 1;
			printf("%d\t",f1);	
		}
		else
		{
			f3 = f1+ f2;
			printf("%d\t",f3);
			f1 =f2;
			f2 = f3;	
		}
		if(i %5 ==0)
		{
			printf("\n");	
		}
	}
}
  1. 有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(8分)
void main()
   {
        int i,j,k;
   	 printf("\n");
   	  for(i=1;i<5;i++)
   	    for(j=1;j<5;j++)
   	      for (k=1;k<5;k++)
   	      {
   	        if (i!=k&&i!=j&&j!=k)
   	        printf("%d%d%d\n",i,j,k);
   	      }
   }

四.逻辑思维题

  1. 谁偷了奶酪(3分)
    有四只小老鼠一块出去偷食物(它们都偷食物了),回来时族长问它们都偷了什么食物。
    老鼠 A 说:我们每个人都偷了奶酪。老鼠 B 说:我只偷了一颗樱桃。老鼠 C 说:我没偷奶 酪。老鼠 D 说:有些人没偷奶酪。族长仔细观察了一下,发现它们当中只有一只老鼠说了 实话。那么下列的评论正确的是:(A
    a.所有老鼠都偷了奶酪;
    b.所有的老鼠都没有偷奶酪;
    c.有些老鼠没偷奶酪;
    d.老鼠 B 偷了一颗樱桃。

  2. 今天星期几?(3 分)
    有一富翁,为了确保自己的人身安全,雇了双胞胎兄弟两个作保镖。兄弟两个确实尽职 尽责,为了保证主人的安全,他们做出如下行事准则:
    a.每周一、二、三,哥哥说谎;
    b.每逢四、五、六,弟弟说谎;
    c.其他时间两人都说真话。

  3. 一天,富翁的一个朋友急着找富翁,他知道要想找到富翁只能问兄弟俩,并且他也知道
    兄弟俩个的做事准则,但不知道谁是哥哥,谁是弟弟。另外,如果要知道答案,就必须知道
    今天是星期几。于是他便问其中的一个人:昨天是谁说谎的日子?结果两人都说:是我说谎
    的日子。你能猜出今天是星期几吗?(C
    A.周末
    B.周一
    C.周四
    D.周六

选做:(4、5题任选一题作答,两题都做者按得分高的题赋分。答案要求简洁,会就写,不会别蒙,不给辛苦分)

  1. 天秤称木料。(4 分)
    桌子上有 12 块木料,这 12 块木料是一模一样的,但是其中有一个和其它的重量不同,
    只有一个天秤。请问:怎样称才能用三次就找到那块木料。

  2. 如何分酒?(6分)
    一个人晚上出去打了 10 斤酒,回家的路上碰到了一个朋友,恰巧这个朋友也是去打酒
    的。不过,酒家已经没有多余的酒了,且此时天色已晚,别的酒家也都已经打烊了,朋友看
    起来十分着急。于是,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个 7 斤和 3 斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?


版权声明:本文为yzh2384581238原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。