C和指针第二章编程练习

1.编写一个程序,它由3个函数组成,每个函数分别保存在一个单独的源文件中。函数increment接受一个整形参数,它的返回值是该参数的值加1.increment函数应该位于文件increment.c中。第二个函数称为negate,它也接受一个整形参数,它的返回值是该参数的负值。最后一个函数是main,保存于文件main.c中,它分别用参数10,0,-10调用另外两个函数,并打印错误。

int increment(int n)
{
    return n+1;
}
int negate(int n)
{
    return -n;
}
int main()
{
    printf("%d\n", increment(10));
    printf("%d\n", increment(0));
    printf("%d\n", increment(-10));
    printf("%d\n", negate(10));
    printf("%d\n", negate(0));
    printf("%d\n", negate(-10));
    system("pause");
    return 0;
}

2.编写一个程序,它从标准输入读取c源代码,并验证所有的花括号都正确的成对出现。注意:不必担心注释内部、字符串常量内部和字符常量形式的花括号。

int main()
{
    int i = 0;
    char str[1000] = { 0 };
    int count = 0;
    printf("请输入:\n");
    scanf("%s", str);
    while (str[i] != ‘\n‘)
    {
       if (str[i] == ‘{‘)
       {
          count++;
       }
       if ((str[i] == ‘}‘)&&(count==0))
       {
          count--;
          break;
       }
       if ((str[i] == ‘}‘) && (count != 0))
       {
          count--;
       }
       i++;
    }
    if (count == 0)
    {
       printf("所有花括号成对出现\n");
    }
    else
    {
       printf("花括号未成对出现\n");
    }
    system("pause");
    return 0;
}
时间: 2024-10-05 01:56:37

C和指针第二章编程练习的相关文章

数据结构与算法分析C++表述第二章编程题

把昨天看的第二章巩固一下,做一做编程习题. 2.6: 第一天交2元罚金,以后每一天都是前一天的平方,第N天罚金将是多少? 这个题目和2.4.4-3介绍的幂运算基本一致.若按相同的递归思路分析,比那个问题要简单,因为从1次幂开始并且指数呈2^(n-1)分布,即1,2,3,4,16……所以没有对指数是奇数时的判定.实际上用循环来求要比用递归快.在不考虑溢出的前提下,解法如下: #include<iostream> using namespace std; typedef unsigned long

C Primer Plus (第五版) 第二章 编程练习

编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓.输出应如下所示(当然里面要换成您的姓名): Anton Bruckner    第一个输出语句 Anton        第二个输出语句 Bruckner       仍然第二个输出语句 Anton Bruckner    第三个和第四个输出语句 #include <stdio.h> int main(void) {

C和指针第一章编程练习

2.编写一个程序,从标准输入读取几行输入,每行输入都要打印到标准输出上,前面要加上行号.在编写程序时要试图让程序能够处理的输入行的长度没有限制. int main() {     int ch=0;     int i = 1;//行号     int flag = 1;     while ((ch = getchar()) != EOF)//EOF是标准输入的结尾     {         if (flag == 1)//注意比较是==        {          printf("

c++primer 第二章编程练习答案

2.7.1 #include<iostream> int main() { using namespace std; char name[20]; char address[20]; cout << "input name :"; cin >> name; cout << "input address:"; cin >> address; cin.get(); cout << "nam

第二章编程练习题2.8

import java.util.Scanner; public class Main7 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number = input.nextInt(); System.out.println((char)number); } }

第二章编程练习题2.6

import java.util.Scanner; public class Main5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number = input.nextInt(); int last = number % 10; int shengxia = number/10; int second = shengxia%10; shengxia = sheng

第二章编程练习题2.9

public class Main8 { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in); int amount = input.nextInt(); int re = amount; int number1 = re/100; re = re%100; int number2 = re/25; re = re%25; int number3 =

第二章编程练习题2.7

import java.util.Scanner; /** * 给一个分钟的数字,算出来这些分钟代表多少年和多少天 * @author Administrator * */ public class Main6 { public static void main(String[] args) { Scanner input = new Scanner(System.in); long minuts = input.nextLong(); long numberOfDays = minuts/(2

第二章编程练习题2.2

import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); double radius = input.nextDouble();//圆的半径 double length = input.nextDouble();//圆的高度 double area = Math.PI* radius *radius;