2,C
3,A
4,C
5,B
6,B
7,B
8,B
9,A
10,D
11,A
12,D
13,A
14,A
15,B
执行下列程序段后,*p的值是char *p="asdf"
printf("%c",*(p+strlen(p)));
答案是a
(p+strlen(p)是什么意思 strlen不是测试字符串长度么 答案为什么是a啊???
我的解释:答案是错误的,应该显示空格。
strlen(p)是返回字符串有效字符长度,所以应该为4,而非5
p为字符串指针,其值为字符串内存地址首地址,即指向'a'
p + strlen(p)会对指针p加上偏移量strlen(p),即p + 4*sizeof(char), 这时指向"asdf"后面一个字符,这个字符应为系统添加的那个字符串结束符'/0',屏幕显示应该为空格。
有以下程序
#include<stdio.h>
main()
{char s[]="159",*p
p=s
printf("%c",*p++)
printf("%c",*p++)
程序运行后的结果是_______
答案是15 怎么算的?????
我的解释:答案应该为15,
p=s// 首先字符串指针p指向字符串数组s首地址,即'1'
printf("%c",*p++)// 由于是后置++,此时p的值仍然为s首地址,
// 所以*解引用指针p,输出字符串第一个字符'1'
printf("%c",*p++)// 现在p的值已经增加了1*sizeof(char)了,同理是后置++
// 所以输出第二个字符'5',此函数运行完后,p的值再增加1*sizeof(char)
分别用十进制表示整形常量-ox1f为
答案是-31 怎么算的????
我的解释: -0x1f为16进制常量-1f(注意前面的0x表示16进制),转换为10进制:
-(1*16 + 15) = -31
以下由for语句构成的循环执行了______次
#include<stdio.h>
#difine N 2 // 定义宏常量N为2
#difine M N+1 // 定义宏M 为 N+1,即为3
#difine NUM(M+1)*N/2 //定义宏NUM 为(M+1)*N/2,即为4
main()
{int i,n=o;
for(i=1;i<=NUMi++)
{n++printf("%d",n)}
printf("\n")}
我的解释:
4次循环,输出结果为:
1
2
3
4
答案是:a
1,高级语言的数据结构要比汇编和机器语言丰富。
2,高级语言与具体机器结构的关联没有汇编及机器语言密切。
3,高级语言更接近自然语言(算法语言)更容易掌握。
4,高级语言编写的程序要经过编译或解释计算机才能执行。
扩展资料:
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。
所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。
程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:
1,高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作。
2,高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高。
3,高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高。
4,由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。
参考资料来源:百度百科-高级语言
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)