面试题:C语言用十种方法实现hello world程序,怎么做?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-23
C语言编程“Hello,world”应该怎们弄

步骤如下:
1、打开我们的Visual C++ 6.0软件,我使用的为中文版,软件主界面如下图所示:

2、然后点击上图工具栏中的文件,里面有个新建菜单,然后我们可以设置一下我们的工作空间,如下图所示:

3、接下来,再点击工具栏下的文件,里面有个新建菜单,点击它,出现下图的对话框:

4、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:

5、可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译此程序,按Ctrl+F5运行此程序。编译无错误的话,点击运行按钮后如下图所示:

扩展资料:
C语言特点:
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。

代码如下:
#include
int main(void)
{
printf("Hello, world!");
return 0;
}
一、首先,打开我们的Visual C++ 6.0软件,我使用的为中文版,软件主界面如下图所示:

1、然后点击上图工具栏中的文件,里面有个新建菜单,然后我们可以设置一下我们的工作空间,如下图所示:

2、然后在一步步默认点击确定,完成即可,此时工作空间就建立起来了。
二、接下来,再点击工具栏下的文件,里面有个新建菜单,点击它,出现下图的对话框:

1、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:

2、或者可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译此程序,按Ctrl+F5运行此程序。编译无错误的话,点击运行按钮后如下图所示: 

扩展资料:
C语言的基本构成:
1、数据类型。C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量。常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组。如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针。
(1)、如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一
(2)、指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
(3)指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5、字符串。C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件。
6、文件输入/输出在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。
参考资料:百度百科:C语言

1 最经典的“Hello world!”,直接用 printf 输出 “Hello world!”
#include <stdio.h>
#include <iostream>

int main(){

printf("Hello world! "); // 教科书的写法

puts("Hello world!"); // 我最喜欢的

puts("Hello" " " "world!"); // 拼接字符串

std::cout << "Hello world!" << std::endl; // C++风格的教科书写法

return 0;}

2、用宏写的“Hello world!”

“#”可以“提取”参数的名 字,把它变成字符串。

#include <stdio.h>

#define Say(sth) puts (#sth)

int main(){

return Say(Hello world!);

}

3. 断章取义的“Hello world!”

#include <stdio.h>

int main(){
return puts ("Do not say: Hello world! "[12]);

}

4. 退出时运行的“Hello world!”

atexit()注册回调函数。这个函数可以调用多次,最后注册的函数最先执行。
#include <stdio.h>

#include <stdlib.h>
void say(){printf("world! ");}
void sth(){printf("Hello ");}
int main(){
return atexit(say), atexit (sth);
}
5. 读取自己的“Hello world!”
// Hello world!
#include <iostream>

#include <fstream>
#include <string>
int main(){
std::ifstream ifs(__FILE__);
std::string say, some, word;
ifs >> say >> some >> word;
std::cout << some << " " << word;
return 0;
}
6. 话分两头的“Hello world!”
声明一个全局的类的实例,在 main 函数执行之前会调用这个类的构造函数,结束之后则会调用析构函数。
#include <iostream>

class say{
public:say(){std::cout << "Hell";}
~say(){std::cout << "world!";}
}hello;
int main(){
std::cout << "o ";
return 0;
}
7. 传入模板的“Hello world!”
#include <iostream>

template <char * words>
class say{
public:
void operator () (){std::cout << words;}
};
char hello[] = "Hello world!";
int main(){
return say<hello>()(), 0;
}
8. 调用私有函数的“Hello world!”

#include <iostream>

#include <cstddef>

class secret{

private:

virtual void say(){std::cout << "Hello world!";}

};

int main(){

secret word;

(reinterpret_cast<void (*)()>(**(intptr_t**)(&word)))();

return 0;

}

9. 直接修改函数的返回地址
#include <stdio.h>

#include <stdlib.h>
#include <stddef.h>
void say(){
puts("Hello world!");
exit(0);
}
int main()
{
volatile intptr_t a = 0;
volatile intptr_t * p = &a;
*(p + 2) = (intptr_t)say;
*(p + 3) = (intptr_t)say;
return 0;
}
10. 外星人说的“Hello world!”
#include <stdio.h>

void alien_say (char * p){
while (putchar (*(p += *(p + 1) - *p)));
}
int main(){
return alien_say ("BETHO! Altec oh liryom(a loadjudas!) dowd."), 0;
}

  • C语言数据库设计
    答:/*主程序功能模块—-文件名:student.c*/ define MAX_BAR 4 /*最大菜单数,可以自定*/ include"io.h"include"dos.h"include"fcntl.h"include"stdio.h"include"stdlib.h"include"math.h"include"graphics.h"include"chi_asc.c" /*调用图形模式下汉字、字符共显功能*/ include"public.c" ...
  • c语言程序理解题,帮忙解释部分语句的含义。题中\t,%c什么含义
    答:\t是换到下一个制表位就是和空几格对其差不多,%c表示输出的是字符,%s就是字符串了
  • 二级c公共基础题库
    答:三 函数必不可少的分号。四 输入输出所使用的函数:scanf、getchar、gets、printf、putchar、puts等。五 注释:不能嵌套。习题94页18题。六 大小写区分:printf与Printf之不一样。七 C语言上机过程:编辑(.c)——>编译(.obj)——>连接(.exe)——>运行得结果。八 C程序执行是从main()函数...
  • 计算机二级考试题
    答:C)便于用户、开发人员进行理解和交流D)便于开发人员进行需求分析 (7)下列叙述中错误的是 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个函数可单独作为一个C程序文件存在(8)下列不属于软件工程的3个要素的是A)方法 B)过程 C)工具 D)环境 (9)...
  • 关于电脑的一点常识!~
    答:.exe是可执行文件,*.rar是压缩文件.要是陌生人给你发来*.exe文件最好不要执行,有可能是病毒.
  • 编程入门先学什么好?
    答:python是火、java的确工作需求多、易语言是简单,你可以以后学,但不应该作为第一门编程语言的选择或为功利性选择的原因!如果大家普遍安排这么学习,那么中国的IT就没有未来了,你在IT这条道路也走不远!为什么全国那么多所高校计算机专业第一门语言都是C语言? 为什么非计算机专业考试都安排C语言? 又...
  • 想求计算机二级C语言的复习资料,题也是可以的,麻烦百度云盘
    答:http://wenku.baidu.com/link?url=8Z1oRet3uYd-HcRuLXKv-QhgyuKWjaZ5PRFXOzDS_CwiWiVXuVGaMpU96HbbxjZ7WxpZqrHoA1ATjXMWT2t8HTxHelHcYmx10eY5v1HIFo7
  • C语言这个HEL和PRINTF函数一做
    答:40 strcmp的参数,s2++先取值,于是传入"Hello"--s1 先自减, 传入 s1的上一个值。 由于s1上一个值不确定,所以 这里结果也就不确定 选D 41 输出为*k k=&j 于是输出的*k=j j=&i 于是输出的是i的地址。选C
  • c语言字符数组初始化语法:char str[]=""与char str[]={}有何区别?_百...
    答:区别不大,看你怎么用 如果你这样写:char str[]="abc" ;char str[]={"abc"} ;那就没区别 char str[]="abc" ;char str[]={'a','b','c'} ;那就有区别了,char str[]="abc" ;相当于char str[]={'a','b','c',0 } ;这样就看出区别了,数组长度不一样,一个是4因为会...
  • C语言问题
    答:argc是读入有多少个参数 这里hello good显然有2个参数 argc=2;而*argv[]显然把hello good都读进去了 argv[0]指向的是第一个参数hello argv[1]指向的是第二个参数good 题目还有个小小的问题 i应该是0开始 所以当指向第一个参数时 由于打印的是%c所以只有第一个字符h被打印了出来 随后++ 指向第...