0、C语言:题目整理

题目来源慕课网
记录学习过程中遇到的错题
随时更新

  1. 字符串"\\’\054"占用的存储空间的长度是____。
    答案:4
    解释:
      首先\\,是转义字符,表示反斜线字符,占一个字节
      然后\’,是转义字符,表示单引号字符,占一个字节
      其次\054,是转义字符,表示用反斜杠后的三位八进制数字对应的ASCII码的字符,占一个字节
      最后字符串还有个结束符\0,占一个字节

  2. 下列转义字符中,错误的是( )。
    A. ’ \031’   B. ’ \b’   C. ’ \0xa5’   D. ’ \"’
    答案:C
    解释:A选项是转义字符,用三位八进制表示ASCII码。B选项的反斜杠b表示的是退格。C选项中如果是用三位八进制数表示,则里面不可能出现a和x,而且位数不对。D选项表示的是双引号。

  3. 字符串 "\\abcd\\\n"在内存中占用的字节数是( )。
    A. 11   B. 14   C. 10   D. 9
    答案:C
    解释:\\表示反斜杠,有两个,占2个字节;abcd一个字符占1个字节,共4个字节;又到了\\,有两个,占2个字节;\n表示换行转义符,占1个字节;最后还有一个结束符\0,占一个字节。所以2+4+2+1+1=10。

  4. 以下哪个数字占据的空间最大( )。
    A. 32768.0F   B. ‘3’   C. 32768   D. 32768.0
    答案:D
    解释:A选项指定了为float类型,占4个字节;B选项是一个字符,占1个字节;C选项是个整型,占4个字节;D选项是一个浮点数,C语言中浮点数默认为double类型,占8个字节。

  5. printf(“a\rHappi\by”);在屏幕上正确的输出形式是( )。
      A. Happy
      B. aHappi
      C. aHappy
      D. Happi
    答案:A
    解释:首先输出a,然后到\r的时候,表示光标回到本行的开头,所以后面输出的H就把a覆盖掉了。之后输出Happi。到\b的时候,表示光标退一格。然后输出的y就把i覆盖了。所以最后是Happy。

  6. 运行下面的程序,正确的输出结果是( )

    #include <stdio.h> 
    	int main( ) 
    	{ 
    	  double  x=68.7563, y= -789.127;  
    	  printf ("%f, %10.2f\n", x,y);  
    	  return 0; 
    	}
    

    A. 68.756300, □□□-789.13
    B. 68.75, □□□-789.13
    C. 68.756300, □□□-789.12
    D. 68.75, -789.12
    答案:A
    解释:%f默认保留6位小数。%10.2f表示有10个位置来显示,不满就右对齐,保留两位小数。

  7. 设int a=3;,则表达式a<1&&–a>1的运算结果和a的值分别是()
      A. 0和3
      B. 0和2
      C. 1和2
      D. 1和3
    答案:A
    解释:从左到右计算判断。首先a<1的结果为0,后面又是&&,所以后面部分不会计算,直接输出结果为0。此时a的值没有发生改变。运算符优先次序由高到低:!,算术运算符,关系运算符,&&,||,条件运算符,赋值运算符,逗号运算

  8. 求1~100以内 ( 包括100)能被3整除同时被5整除余数为1的所有数之和。要求用for语句完成。
    输出格式:“sum=%d\n”
    输出样例:sum=357
    答案:

    #include<stdio.h>
    int main(){
    	int i,sum=0;
    	for(i=1;i<=100;i++){
    		if(i%3==0 && i%5==1){
    			sum = sum + i;
    		}
    	}
    	printf("sum=%d\n",sum);
    	return 0;
    }
    
  9. 用do while 语句实现反复从键盘输入一个整数,如果大于或等于零,累加求和,直到输入负数结束。然后求出平均值并输出。
    输入格式:"%d"
    输出格式:“AVE=%.2f\n”

    #include<stdio.h>
    int main(){
    	int n,sum=0,count=0;
    	do{
    		scanf("%d",&n);
    		if(n>0){
    			sum=sum+n;
    		}
    		count++;
    	}while(n>=0);
    	double c = sum/(count-1);
    	printf("AVE=%.2f\n",c);
    	return 0;
    }
    
  10. 求1到10的阶乘的和

    #include<stdio.h>
    int main(){
    	int n,j,sum=0,tmp;
    	for(n=1;n<=10;n++){
    		tmp = 1;
    		for(j=1;j<=n;j++){
    			tmp = tmp*j;
    		}
    		sum = sum + tmp;
    	}
    	printf("%d",sum);
    	return 0;
    }
    
  11. 用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)

    #include<stdio.h>
    int main(){
    	int i,j,k,count=0;
    	for(i=0;i<20;i++){
    		for(j=0;j<50;j++){
    			for(k=0;k<100;k++){
    				if(i*5+j*2+k==100){
    					count++;
    					printf("%d %d %d\n",i,j,k);
    				}
    			}
    		}
    	}
    	printf("%d",count);
    	return 0;
    }
    
  12. 辗转相除法求两个整数的最大公约数

    #include<stdio.h>
    int main(){
    	int a,b,max,min,r;
    	scanf("%d%d",&a,&b);
    	if(a>b){max=a;min=b;}
    	else{max=b;min=a;}
    	do{
    		r = max%min;
    		max = min;
    		min = r;
    		if(r==0){
    			printf("%d",max);
    		}
    	}while(r!=0);
    	return 0;
    }				
    
  13. 找出一个大于给定整数且紧随这个整数的素数,例如 给定整数3,找到的素数是5。

    #include<stdio.h>
    int main(){
    	}
    
  14. 已知梯形的上底为a,下底为b,高为h,用C语言书写的正确的面积公式是( )。
    A. 1.0/2*(a+b)*h   B. 1.0/2.0(a+b)h   C. 1.0/2*a+b*h    D. 1/2*(a+b)*h
    答案:A
    解析:B选项,C语言中乘法运算符不能省略;C选项,缺少了括号;D选项,C语言中用斜杠作除法运算时,如果除数和被除数都是整型,那最后结果也会四舍五入取整。所以

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值