#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
//----------------------------------------------------------------------------------------第15次作业 算术转换等
//-------------------------------------------------------------------------------------------------1.单选
下面代码的结果是: ( D )
int main()
{int i = 1;int ret = (++i) + (++i) + (++i); // 求解路径不唯一-----是问题表达式printf("ret =%d\n", ret);return 0;
}
A.10
B.12
C.9
D.程序错误
//-------------------------------------------------------------------------------------------------2.单选
//下面代码的结果是: A
全局变量,静态变量都是放在静态区
全局变量,静态变量不初始化的时候,默认会被初始化为0
局部变量,放在栈区,不初始化,默认值是随机值
int i;
int main()
{i--; //-1//sizeof 字符长度,单位是字节,int类型为4个字节//sizeof 这个操作符计算返回结果是 size_t 类型的,是无符号整型,没有负数概念,//i=-1 ,就会被转换为 unsigned int 非常大的正数>4if (i > sizeof(i)){printf(">\n"); // 输出 >}else{printf("<\n"); }return 0;
}
A. > B. <
//-------------------------------------------------------------------------------------------------3.单选
关于表达式求值说法不正确的是:( D )
A.表达式求值先看是否存在整形提升或算术转换,再进行计算
B.表达式真正计算的时候先看相邻操作符的优先级决定先算谁
C.相邻操作符的优先级相同的情况下,看操作符的结合性决定计算顺序
D.只要有了优先级和结合性,表达式就能求出唯一值
//-------------------------------------------------------------------------------------------------6.编程:打印X形图案
输入描述: 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述: 针对每行输入,输出用“ *“ 组成的X形图案。
int main()
{int n = 0;while (scanf("%d", &n) == 1){int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i == j) //打印主对角线printf("*");else if (i + j == n - 1) //打印副对角线printf("*");elseprintf(" ");}printf("\n");}}return 0;
}
//-----------------------------------------------------------------------------------------7.编程:获得月份天数
输入描述: 多组输入,一行有两个整数,分别表示年份和月份,用空格分隔
输出描述: 针对每组输入,输出为一行,一个整数,表示这一年这一个月有多少天
int Leap_yesr(int year)
{if (((year % 4 == 0) && (year % 100!=0)) || (year % 400 == 0))return 1;elsereturn 0;
}int main()
{int year = 0;int month = 0;int num = 0;int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };while (scanf("%d %d", &year, &month) == 2){int num = days[month];//判断闰年if ((Leap_yesr(year) == 1) && (month == 2)){num++;}printf("%d\n", num);}return 0;
}
//-----------------------------------------------------------------------------------------8.编程:三角形的判断
输入描述: 题目有多组输入数据,每一行输入三个a,b,c (0<a,b,c<1000), 作为三角形的三个边,用空格分隔。
输出描述: 针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出 "Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”, 其余的三角形则输出"Ordinary triangle!",反之输出“Not a triangle!”。
int main()
{int a = 0;int b = 0;int c = 0;while(scanf("%d %d %d", &a, &b, &c) == 3){//判断是不是三角形,如果是(等边?等腰?普通?)if ((a + b > c) && (a + c > b) && (b + c > a)){if ((a == b) && (b == c))printf("Equilateral triangle!\n");else if (((a == b) && (b != c)) || ((b == c) && (c != a)) || ((a == c) && (c != b)))printf("Isosceles triangle!\n");elseprintf("Ordinary triangle!\n");}else{printf("Not a triangle!\n");}}return 0;
}