2个回答
展开全部
解题
argc是命令行参数的数目
( FILEL CHINA BEIJING SHANGHAI
运行输出
CHINABEIJINGSHANGHAI)
argv是参数字符串的数组
故*argv是一个字符串,也是argv[0]
++argv会使它指向下一个字符串
argv[]={"FILEL","CHINA","BEIJING","SHANGHAI"};//题目中argv的初始值可以看成是
e.g.
所以排除单个字符的选项C D
然后看选项A B
问题焦点在"CHINA" 就是 argv[1],或者说第一次++argv后的*argv是否会被输出(显然这是会的),故选A
源代码(不使用其它编译选项的)是
#include<stdio.h>
int main(int argc, char *argv[]){
while(argc-->0){
++argv;printf("%s",*argv);}
return 0;
}
说一下心得
首先面对这种问题不要慌张,哪怕程序完整地输入进电脑也编译不出来;为什么,编译选项(以下省略一堆文字说明),出题老师极有可能编译的方式和你不一样(而使用编译选项也是开源项目里常见的状况);看一下gcc --help,它有多少行,就有多少种编译方法,其中有一个选项可以用于指定被include进编译过程的库(故可以不在源代码里include)
其次是代码的印刷质量问题,这在并非知名的出版物上十分明显,字间距的变化不一很可能会误导你对空格的判断,所以在代码的空格有歧义的地方,一定不要放弃调试,或者就当它在空格的问题上没有错误)
代码质量就不要问了,代码这个东西,应该出现在纸上,还是在电脑上,哪个更有质量,应该就不用问了(搞代码的也是要有点能调试出错误的感觉)
argc是命令行参数的数目
( FILEL CHINA BEIJING SHANGHAI
运行输出
CHINABEIJINGSHANGHAI)
argv是参数字符串的数组
故*argv是一个字符串,也是argv[0]
++argv会使它指向下一个字符串
argv[]={"FILEL","CHINA","BEIJING","SHANGHAI"};//题目中argv的初始值可以看成是
e.g.
所以排除单个字符的选项C D
然后看选项A B
问题焦点在"CHINA" 就是 argv[1],或者说第一次++argv后的*argv是否会被输出(显然这是会的),故选A
源代码(不使用其它编译选项的)是
#include<stdio.h>
int main(int argc, char *argv[]){
while(argc-->0){
++argv;printf("%s",*argv);}
return 0;
}
说一下心得
首先面对这种问题不要慌张,哪怕程序完整地输入进电脑也编译不出来;为什么,编译选项(以下省略一堆文字说明),出题老师极有可能编译的方式和你不一样(而使用编译选项也是开源项目里常见的状况);看一下gcc --help,它有多少行,就有多少种编译方法,其中有一个选项可以用于指定被include进编译过程的库(故可以不在源代码里include)
其次是代码的印刷质量问题,这在并非知名的出版物上十分明显,字间距的变化不一很可能会误导你对空格的判断,所以在代码的空格有歧义的地方,一定不要放弃调试,或者就当它在空格的问题上没有错误)
代码质量就不要问了,代码这个东西,应该出现在纸上,还是在电脑上,哪个更有质量,应该就不用问了(搞代码的也是要有点能调试出错误的感觉)
追问
While括号里的代表什么意思 没见过这种字符
追答
问题十分有趣,它实际上是两个运算符,一个自减运算符,一个大于判断运算符(编译器是不会报错的,因为自减运算符先被认出)
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
2019-12-02
展开全部
这题目有问题吧,你有编译运行一下吗?只有4个命令行参数,但是最终输出前argv指向了不存在的位置,会有输出吗?反正我写了,也试了,不会输出什么结果,你们有要求用什么编译器吗?我用的是gcc,Windows环境
追答
感觉是出题的忘了把while的循环体加上大括号了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询