9.3C基础作业

1、下面的一段程序的输出结果为( ) (鲁科安全)

#include <stdio.h>
int main()
{
    if(-1)
        printf("1");
    else
        printf("2");
    if(0)
        printf("3");
    else
        printf("4");
    return 0;
}

A. 23 B. 24 C. 13 D. 14

答案:14

-1不为零,即条件成立

 2、设int s = 100,要输出字符串"s的值是100"应使用下列哪个语句?(山东精电电气)

A. printf("s 的值是%d", s);             B. printf("s 的值是%s", s)

C. printf("s 的值是%x", s):             D. printf("s 的值是%i", s)

答案:A

100是int类型,打印函数格式要用%d或%i,答案D缺少分号

3、if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)

答:if(8==n)好,常量在前面可以减少因编写错误缺少'='而造成的程序逻辑错误,变量在左侧编译器在编译过程中不会报错。

4、if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)

答:switch-case效率更高,在转换成汇编语言程序时,switch-case会生成一张跳转表来指定实际跳转的分支,而if-elseif-else则需要遍历分支直到条件成立。

5、结构化程序设计所规定的三种基本控制结构是:( ) (易购软件)

A. 输入、处理、输出 B. 形、网形、环形

C. 顺序、选择、循环 D. 主程序、子程序、函数

答案:c

6、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:__________ (智洋)

A. 必须为字母                         B. 必须为下划线

C. 必须为字母或下划线       D. 可以是字母,数字和下划线中任一字符

答:C

标识符可以有字幕、数字、下划线组成,但必须以字幕或下划线开头

7、若执行下面的程序时,从键盘上输入 5,则输出是 ( ) (智洋创新)

int main(int argc, char **argv)
{
    int x;
    scanf("%d", &x);
    if(x++ > 5)        
        printf("%d\n", x);
    else
        printf("%d\n", x--);
    return 0;
}

A. 7                   B. 4                    C. 6                    D. 5

答:6

++或--在后面则先运算,再+1或-1

8、以下语句中,能够判断uiNum(unsigned int)可以被16整除的有()(H3C)

A. if (((uiNum / 16) * 16) == uiNum)

B. if ((uiNum % 16) == 0)

C. if ((uiNum & 0x0F) == 0)

D. if (((uiNum >> 4) << 4) == uiNum)

答:B D

A:uiNum可以是任意值

B:可以

C:0x0F:0001 0000

任意第五位不为1的二进制数都可以满足条件

D:任意无符号整数右移四位后再左移四位,右侧补零,0x xxxx 0000转十进制得16*x+32*x+62*x+144*x,16的指数形式可以被除尽

9、编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)

#include <stdio.h>
int main()
{
    char a;
    scanf("%c",&a);
    printf("%c\n",a-32);
    return 0;
}

10、已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)

成绩(grade)

等级

90<=grade<=100

A

80<=grade<90

B

70<=grade<80

C

60<=grade<70

D

grade<60

E

请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch....case 语句)

#include <stdio.h>
int main()
{
    int gread;
    scanf("%d",&gread);
    switch(gread/10)
    {
    case 10:
    case 9 :  printf("A"\n);break;
    case 8 :  printf("B"\n);break;
    case 7 :  printf("C"\n);break;
    case 6 :  printf("D"\n);break;
    default:  printf("E\n");
    }
    return 0;
}

11、编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)

#include <stdio.h>
int main()
{
    int a = 3,b = 5;
    a = a + b;
    b = a - b;
    a = a - b;
    return 0;
}

12、编写一个程序。实现输入一个三位数,判断是否是水仙花数。

水仙花数——各个位立方之和等于本身。

eg: 1*1*1 + 5*5*5 + 3*3*3 = 153,所以153是水仙花数

153由1个100  5个10   3个1

个位 = num%10

十位 = num/10%10

百位 = num/100%10

#include <stdio.h>
int main()
{
    int a;
    scanf(" %d",&a);
    if(a == ((a%10)*(a%10)*(a%10)+(a/10)*(a/10)*(a/10)+(a/100)*(a/100)*(a/100)))
        printf("%d是水仙花数\n",a);
    else
        printf("%d不是水仙花数",a);
    return 0;
}

13、编写一个程序。实现输入一个年份,判断是不是闰年。

#include <stdio.h>
int amin()
{
    int year;
    scanf(" %d",&year);
    ((0 == year%4 && 0 != year%100) || 0 == year%400) ? printf("%d年是闰年\n",year) : 
                                                          printf("%d不是闰年\n",year);
    return 0;
}

14、编写一个程序。请实现以下功能:(威海精讯畅通)

输入三个数,分别为年、月、日,输出此日是该年的第几天。

输入:

XXX  XXX  XXX

输出:

此日是该年的第XXX 天

#include <stdio.h>
int main()
{
    int yy, mm, dd, n;
    switch(mm-1)
    {
        case 11: n +=30;
        case 10: n +=31;
        case  9: n +=30;
        case  8: n +=31;
        case  7: n +=31;
        case  6: n +=30;
        case  5: n +=31;
        case  4: n +=30;
        case  3: n +=31;
        case  2: (((0 == yy%4) && (0 != yy%100)) || (0 == yy%400)) ? (n +=29) : 
                                                                            (n +=28);
        case  1: n +=31;
        case  0: n +=dd;
    }
    printf("%d年%d月%d日是%d年的地第%d天",yy,mm,dd,yy.n);
    return 0;
}

15、编写一个程序。输入三角形的 三个边长

        判断能否构成三角形,如果能

            输出能构成三角形

            再输出是什么三角形

                等边 [a==b && a==c && b==c]

                等腰 [a==b || a==c || b==c]

                直角(勾股定理)[a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a]

                普通

        如果不能

            输出不能构成三角形

#include <stdio.h>
int main(){
	int a,b,c;
	printf("输入三边整数:");
	scanf("%d %d %d",&a,&b,&c);
	if (a + b > c && a + c > b && b + c > a)
	{
		if(a == b && a == c)
		{
			printf("%d,%d,%d是等边三角形",a,b,c);
		}
		else if
			(a == b || a == c || b == c)
		{
			if(a * a + b * b == c * c  ||
			   a * a + c * c == b * b  ||
			   b * b + c * c == a * a)
			{
				printf("%d,%d,%d是等腰直角三角形",a,b,c);
			}
			else
			{
				printf("%d,%d,%d是等腰非直角三角形",a,b,c);
			}
		}
		else if
			(a * a + b * b == c * c   ||
		  	 a * a + c * c == b * b   ||
			 b * b + c * c == a * a)  
			{
				printf("%d,%d,%d是非等腰直角三角形",a,b,c);
			}
		else
			{
				printf("%d,%d,%d是普通三角形",a,b,c);
			}
	}
	else
	{
		printf("%d,%d,%d不能构成三角形\n",a,b,c);
	}


	return 0;
}

16、编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)

#include <stdio.h>
int main()
{
	int a,b,c,d,i;
	scanf(" %d %d %d %d",&a,&b,&c,&d);
	if (a>b) i = a, a = b, b = i;
	if (b>c) i = b, b = c, c = i;
	if (c>d) i = c, c = d, d = i;
	if (a>b) i = a, a = b, b = i;
	if (b>c) i = b, b = c, c = i;
	if (a>b) i = a, a = b, b = i;
	printf("%d<%d<%d<%d\n",a,b,c,d);
	return 0;
}

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值