如有错误请及时通知我改正,我会第一时间在博客上更新,避免误人子弟
//2019 10 11
//coded by user0914 , Visual Studio 2017
//如有错误,请通知我更正
#include <stdio.h>
//2016
//20191113更正3题4题
//1.A
//2.C
//3.B
//int a[M][N];
//定义了一个M行N列的数组,总元素个数为M*N。
//其第一维长度,也就是总的行数,在C语言中,就是定义中的M。
//类似的,第二维长度,也就是每行元素个数。在C语言中就是定义中的N。
//4.A//B没有分号
//5.A
//6.D
//int main() {
// int a[5] = { 1,2,3,4,5 }, *p = a;
// //a[0] = { 1,2,3,4,5 };
// printf("&p+5 %X\n", &p + 5);
// //printf("**a+1 %X\n", **a+1);//Error C2100 illegal indirection
// printf("**a+1 is illeagal!\n");
// printf("&*a+3 %X\n", &*a+3);
// printf("*(a+0) %X\n", *(a+0));
// printf("*(a+1) %X\n", *(a + 1));
// //虽然首元素地址和首地址在数值上是相同的,但是它们所表示的意义却不相同
// //只有使用“&数组名”时,才是取数组首地址;直接打印数组名或者&数组名[0]都是取得数组首元素地址。
// //首地址 + 1得到的是跳过整个数组的地址,首元素地址 + 1得到的是下一个元素的地址。
// printf("test\n");
// printf("&a %X\n", &a);
// printf("a %X\n", a);
// printf("&a[0] %X\n", &a[0]);
// printf("&a+1 %X\n", &a+1);
// printf("a+1 %X\n", a+1);
// printf("&a[0]+1 %X\n", &a[0]+1);
//}
//7.B
//int main() {
// int *p1, m;
// p1 = m;
// p1 = &m;
// p1 = *m;
// p1 = &*m;
//}
//8.A
//结构体占用内存大小,参考这个https://blog.csdn.net/qq_18815817/article/details/82788394
//9.D
//double fun(int x,int y){
// double z;
// z = x + y;
// return z;
//}
//10.B
//11.F//20191022更正
//void main() {
// for (;;) {
// printf("1 ");
// }
// /*while () {
//
// }
// do {
//
// } while ();*/
//}
//12.T
//13.F
//14.T
//15.F
//16.F//20191022更正
//比如
//struct STUDENT
//{
// long studentID;
// char studentName[10];
// char studentSex;
// int score[4];
// struct DATE
// {
// int year;
// int month;
// int day;
// }birthday;
//}student;
//17.T
//18.T
//19.T
//void main() {
// char a[10] = "abc";
// printf("%d\n",strlen(a));
//}
//20.F//是break
//21.
//int main() {
// int a, b, result;
// char op;
// scanf("%d%c%d",&a,&op,&b);
// switch (op) {
// case '+':result = a + b; break;
// case '-':result = a - b; break;
// case '*':result = a * b; break;
// case '/':if (b != 0)
// result = a / b;
// break;
// default:result = 0;
// }
// //printf("%d %c %b =%d\n",a,op,c,result);//出题有误,c未定义,%b应为%d
// printf("%d %c %d =%d\n", a, op, b, result);
// return 0;
//}
//(1)输入 12+120 则输出 12 + 120 = 132
//(2)输入 60/3 则输出 60 / 3 = 20
//功能:作四则运算
//22.
//int main() {
// int n, i, j, num[20], tmp;
// printf("Please input n:");
// scanf("%d",&n);
// printf("Please input %d num:",n);
// for (i = 0; i < n; i++) {
// scanf("%d",&num[i]);
// }
// for (i = 0; i < n; i++) {
// //for (j = 0; j < n - i; j++)//出题有误
// for (j = 0; j < n - i-1; j++) {
// if (num[j]>num[j+1]) {
// tmp = num[j];
// num[j] = num[j + 1];
// num[j + 1] = tmp;
// }
// }
// }
// printf("Output:\n");
// for (i = 0; i < n; i++) {
// printf("%d ",num[i]);
// }
//}
//输入10
//输入49 32 61 97 76 13 27 38 55 86
//则原题输出 Output:-858993460 13 27 32 38 49 55 61 76 86
//更正算法后 Output:13 27 32 38 49 55 61 76 86 97
//23.
//#include <string.h>
//int main() {
// int i = 0;
// char str[100];
// printf("Please input string:");
// gets(str);
// while (str[i] != '\0') {
// if (('a' <= str[i]) && (str[i] <= 'z'))
// /*str[i++] = str[i++] - 'a' + 'A';*///出题有误
// str[i] = str[i] - 'a' + 'A';
// i++;
// }
//
// printf("Output:");
// puts(str);
// return 0;
//}
//这道题我在VS2017上编译的,我调试时发现原题代码i值不会变化,程序会死循环
//所以我改了下代码
//输入Introduction of C++ Language
//则输出INTRODUCTION OF C++ LANGUAGE
//将小写字母变为大写
//24.
//void main() {
// int score;
// char grade;
// scanf("%d",&score);
// if (score < 0 || score > 100) {
// printf("Error Input!\n");
// return;
// }
// if (score >= 90) {
// grade = 'A';
// }
// if (score >= 80 && score <= 89) {
// grade = 'B';
// }
// if (score >= 70 && score <= 79) {
// grade = 'C';
// }
// if (score >= 60 && score <= 69) {
// grade = 'D';
// }
// if (score < 60) {
// grade = 'E';
// }
// printf("score:%d grade:%c",score,grade);
//}
//25.
//void main() {
// char s[64];
// scanf("%s",s);
// int i = 0;
// for ( ; s[i] != '\0'; i++) {
// }
// int j = --i;
// for (i = 0; ; ) {
// if (j<0) {
// printf("Yes\n");
// break;
// }
// if (s[i] != s[j]) {
// printf("No\n");
// break;
// }
// i++;
// j--;
// }
//}
//26.
//按他的意思应该是求主对角线元素的和
//#define X 5
//void main() {
// int a[X][X] = { 0 };
// int n = 0;
// int sum = 0;
// scanf("%d", &n);
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < n; j++) {
// scanf("%d", &(a[i][j]));
// }
// }
// for (int i=0;i<n;i++) {
// sum += a[i][i];
// }
// if (n < 1 || n > X) {
// printf("error input!\n");
// return 0;
// }
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < n; j++) {
// printf("%d ", a[i][j]);
// if (j == n - 1) {
// printf("\n");
// }
// }
// }
// printf("sum = %d\n",sum);
//}