1.以下叙述正确的是(C) 错选D
A、 在C程序中,main函数必须位于程序的最前面
B 、C程序的每行中只能写一条语句
C、 C语言本身没有输入输出语句
D、 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
题解:真的蛮简单的一道题,我居然写错了,也是离谱呀
单纯的C语言没有输入输出语句,这些输入输出语句都是一个又一个库组成的
就像常用的scanf和printf都是stdio.h库里面的
2.假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后y的值为(D)错选了A
A 3.500000
B 3
C 2.000000
D 3.000000
题解:看清楚题目呀,如果这题只想让你选3.500000的话,这也太简单了吧,事出反常必有妖呀
问你3/2等于多少?等于1呀,整数除法得到的就是整数的结果,1+2=3呀,又因为它是double型,
所以这题应该选D
3.以 下 for 循 环 的 执 行 次 数 是(C)。错选了B
for(x=0,y=0;(y=123)&&(x<4);x++);
A 、是无限循环
B 、循环次数不定
C 、4次
D 、3次
题解:大哥,看清楚呀,是没吃饭么,下次考试记得吃早餐,真的
这种失误就不应该存在你的字典里,如果是这种水平,怎么去腾讯呀,字节呀
人家是赋值语句呀,不是判断语句呀
4.若有定义语句: int year=1009 , *p=&year ;以下不能使变量 year 中的值增至 1010 的语句是(D)错选A
A、 *p+=1;
B、 (*p)++;
C、 ++(*p)
D、 *p++
直接看++的优先级更高,所以先执行++;这个代码翻译出来就是p++;*p
因为是int型要跳过四个字节,相当于地址往后移动4位
这道题是百度之后,才想出来的,都不能算自己写出来的,讲真话也是丢人
其实思路也不难,最主要是考试的环境其实不容易想到,这是最主要的
这里再写一次吧,就相当于回忆吧
这是我写的:
#includeint main() { int m, n, temp, i; scanf_s("%d%d", &m, &n); if (m < n) { temp = m; m = n; n = temp; } for (i = m; i > 0; i++) if (i % m == 0 && i % n == 0) { printf("%d", i); break; } return 0; }
老师还写了简化的一板:
#includeint main() { int a = 0; int b = 0; scanf_s("%d %d", &a, &b); int i = 1; while (a * i % b) { i++; } printf("%dn", i * a); return 0; }
最后一道编程题,完全没想出来,草
这道题属于完全不会的范畴,破防了属于是
#include#include void reverse(char* start, char* end) { char tmp = { 0 }; while (start < end) { tmp = *start; *start = *end; *end = tmp; start++; end--; } } int main() { char arr[100] = { 0 }; gets_s(arr); int len = strlen(arr); int i = 0; reverse(arr, arr + len - 1); char* a = arr; for (i = 0;i <= len;i++) { if (arr[i] == ' ' || arr[i] == ' ') { reverse(a, arr + i - 1); a = (arr + i + 1); } } printf("%s", arr); return 0; }
交换的思想是一点都没有,草,动点脑子呀,猪脑子



