【Linux】GCC编译并执行C/C++程序

发布于 2020-11-21  266 次阅读


1. 简答题

(1)一个 C/C++程序从开始到生成可执行的二进制文件至少需要经过哪四个步骤?

(2)如何用 gcc 将源程序 hello.c 编译生成可执行程序?

(3)什么是 makefile 文件?编写 makefile 文件的一般格式是什么?

(4)什么叫做程序调试?程序的错误可以分为哪两类?gdb 工具针对程序可以实现什么样的调试?

2. 编写一个脚本,要求:

(1)脚本中编写两个数相加的函数 sum 和三个数相乘的函数 multiply;

(2)根据脚本参数个数来调用 sum 函数或 multiply 函数;

(3)输出最后计算结果。

#!/bin/bash

# echo "Please input two/three numbers: " 
sum() {
  let o=1+2
  echo "-- o"
}

multiply() {
  let k=1*2*3
  echo "-- k"
 }

num1=1
num2=2
num3=3
echo
echo " - You have input # numbers -"
echo
if [# -eq 2  ];then
        echo "- Function sum:"

3. 编写 5 个文件,文件名分别为 main_print.c、sub1_print.c、sub2_print.c、sub1_print.h、sub2_print.h,其中,sub1_print.h、sub2_print.h 为头文件,利用main_print.c 调用 sub1_print.c、sub2_print.c。利用 gcc 的不同编译选项生成预处理、编译、汇编及链接后的生成文件,并进行对比。

4. 编写一个脚本,从终端输入 10 个数,显示最大值、最小值和平均值。

#!/bin/bash
fun() {
local arr
#arr=(`echo "@"`)
arr=(@)
echo ----------
echo array first number: {arr[0]}
echo ---------
for k in{arr[@]}
 do  
  echo k
 done
}

echo "Input Ten numbers:"
array=(6 1 3 0 0 0 0 0 0 1)

echo{array[0]}

echo ${#array[@]}