购物网站哪个最便宜,网站建设咨询推荐,惠阳网站优化,桂平seo关键词优化题型指引 一、选择题二、编程题 ★★写在前面★★ 本题库源自互联网#xff0c;仅作为个人学习使用#xff0c;记录C语言题目练习的过程#xff0c;如果对你也有帮助#xff0c;那就点个赞吧。 一、选择题
1、请阅读以下程序#xff0c;其运行结果是#xff08; #x… 题型指引 一、选择题二、编程题 ★★写在前面★★ 本题库源自互联网仅作为个人学习使用记录C语言题目练习的过程如果对你也有帮助那就点个赞吧。 一、选择题
1、请阅读以下程序其运行结果是
int main()
{char cA;if(0c9) printf(YES);else printf(NO);return 0;
}A: YES B: NO C: YESNO D: 语句错误 正确答案A 答案解析‘0’c‘9’并非判断x大于等于字符0,小于等于字符9而是先执行’0’c使用这个表达式的结果再和’9’比较‘0’的ASCII码值是48‘A’的ASCII码值是’65’故’0’c是真值1结果为YES选项A正确。
2、假设编译器规定int 和 short 类型长度分别为32位和16位若有下列C语言语句则y 的机器数为
unsigned short x 65530;
unsigned int y x;A: 0000 7FFA B: 0000 FFFA C: FFFF 7FFA D: FFFF FFFA 正确答案B 答案解析unsigned short类型的x变量2个字节保存了65530十六进制形式为0xFFFAx给y赋值时会整型提升而无符号数在提升时高位补0其实就相当于把x的值放在了y的低2个字节的空间中选项B正确。
3、下列程序的输出结果是什么
#includestdio.h
int main()
{int n 1001;int ans 0;for(int i 1; i n; i){ans ^ i % 3;}printf(%d,ans);return 0;
}A: -2 B: 0 C: 1 D: 2
正确答案B 答案解析i % 3 的值按1、2、0循环可推算出ans按1、3、3、2、0、0循环循环进行1001次而1001%65也就是ans按规律得到的第5个数为最终结果故ans0选项B正确。
程序运行截图 4、C 语言中下列运算符优先级最高的是 ( ) A: ! B: % C: D:
正确答案A 答案解析单目运算符的优先级通常都比较高具体情况可查阅运算符优先级表格选项A正确。
5、要使a 的低四位翻转需要进行操作是 A: a|0xF B: a0xF C: a^0xF D: ~a
正确答案C 答案解析十六进制数0xF是4位1参与运算时整型提升高位都是0。低四位和1异或01是111是0高位和0异或00是010是1。故而可以通过异或F使得a的低四位翻转并保持高位不变选项C正确。
二、编程题
1、输入一个整数将这个整数以字符串的形式逆序输出程序不考虑负数的情况若数字含有0则逆序形式也含 有0如输入为100则输出为001。 数据范围 1 n 2^30 - 1 输入描述输入一个int整数。 输出描述将这个整数以字符串的形式逆序输出。
牛客网【牛客网题号 HJ11 数字颠倒】
示例
输入1516000
输出0006151#includestdio.h
int main() {int input 0;int r 0;char ch 0;scanf(%d, input);if (input 0)putchar(0);while (input){ch input % 10 0;putchar(ch);input / 10;}return 0;
}代码思路依次取模获取整数从低到高的每一位加‘0’使其ASCII码值变为‘0’-‘9’之间然后用putchar立马进行输出。
2、对字符串中的所有单词进行倒排。 说明 1、构成单词的字符只有26个大写或小写英文字母 2、非构成单词的字符均视为单词间隔符 3、要求倒排后的单词间隔符以一个空格表示如果原字符串中相邻单词间有多个间隔符时倒排转换后也只允许出现一个空格间隔符 4、每个单词最长20个字母
牛客网【牛客网题号 HJ31 单词倒排】
示例
输入I am a student 输入$bo*y gi!r#l
输出student a am I 输出l r gi y bo//牛客网网友代码
#include stdio.h
#include stdlib.hint main(){char str[100][22];int i0;int x;while(1){xscanf(%[a-z|A-Z],str[i]);if(getchar()\n) break;if(x) i;}for(int ji;j0;j--){printf(%s ,str[j]);}return 0;
}
代码思路二维数组对输入的每一串连续输入的字母进行保存每一段连续输入的字母首元素地址即为二维数组每一行首元素的地址scanf(“%[a-z|A-Z]”,str[i])这个语句中使用了正则表达式%[a-z|A-Z]只会读取大小写字母因为scanf()函数遇到输入空格字符会停止所以这方法可以读取每次连续输入的字符中的字母字符循环结束的标志是遇到回车符号循环结束后再进行打印从最后一行往前打印即可空格用printf里面打印出来即可。