
Starting Out with C++ from Control Structures to Objects (8th Edition)
8th Edition
ISBN: 9780133769395
Author: Tony Gaddis
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Textbook Question
Chapter 6, Problem 41RQE
T F If other functions are defined before main, the
Expert Solution & Answer

Want to see the full answer?
Check out a sample textbook solution
Students have asked these similar questions
Match each of the assembler routines on the left with the equivalent C function on
the right. Write the name of the label (e.g., foo) to the right of the corresponding
function. Note: shrq is the logical right shift instruction, and sarq is the arithmetic
right shift instruction.
foo1:
leaq
0(,%rdi, 8), %rax
long choice1 (long x)
{
ret
return x -
8 >8;
foo3:
}
movq
sarq
%rdi, %rax
$8, %rax
long choice4 (long x)
ret
{
return x*256;
}
foo4:
long choice5 (long x)
leaq
-8 (%rdi), %rax
{
ret
return x-8;
}
long choice6 (long x)
foo5:
{
leaq
-8 (%rdi), %rax
return x+8;
shrq
$63, %rax
}
ret
Given the variables and code in the text below, identify where in memory they will
live once the code is compiled.
1 char
big_array [1L<<24]; /* 16 MB */
2 GB *
:/
2 char huge_array [1L<<31]; /*
3
4 int global = 0;
5
6 int useless () { return 0; }
7
8 int main()
9 {
10
void *p1, p2, *p3, *p4;
int local =
0;
malloc (1L << 28); /* 256 MB *,
11
12
p1
13
p2
=
malloc (1L << 8);
/* 256 B *
14
p3
15
p4
=
malloc (1L << 32);
malloc (1L << 8);
/* 4
GB *
*/
/* 256
B */
16 }
Note: *pN is the thing at which pN points.
1. big_array
2. huge_array
3. global
4. useless
5. void* p1
6. *p1
7. void* p2
8. *p2
9. void* p3
10. *p3
11. void* p4
12. *p4
The next problem concerns the following C code:
/copy input string x to buf */
void foo (char *x) {
char buf [8];
strcpy((char *) buf, x);
}
void callfoo() {
}
foo("ZYXWVUTSRQPONMLKJIHGFEDCBA");
Here is the corresponding machine code on a Linux/x86 machine:
0000000000400530 :
400530:
48 83 ec 18
sub
$0x18,%rsp
400534:
48 89 fe
mov
%rdi, %rsi
400537:
48 89 e7
mov
%rsp,%rdi
40053a:
e8 di fe ff ff
callq
400410
40053f:
48 83 c4 18
add
$0x18,%rsp
400543:
c3
retq
400544:
0000000000400544 :
48 83 ec 08
sub
$0x8,%rsp
400548:
bf 00 06 40 00
mov
$0x400600,%edi
40054d:
e8 de ff ff ff
callq 400530
400552:
48 83 c4 08
add
$0x8,%rsp
400556:
c3
This problem tests your understanding of the program stack. Here are some notes to
help you work the problem:
⚫ strcpy(char *dst, char *src) copies the string at address src (including
the terminating '\0' character) to address dst. It does not check the size of
the destination buffer.
• You will need to know the hex values of the following characters:
Chapter 6 Solutions
Starting Out with C++ from Control Structures to Objects (8th Edition)
Ch. 6.2 - Is the following a function header or a function...Ch. 6.2 - Is the following a function header or a function...Ch. 6.2 - What will the output of the following program be...Ch. 6.2 - The following program skeleton determines whether...Ch. 6.6 - Indicate which of the following is the function...Ch. 6.6 - Write a function named timesTen. The function...Ch. 6.6 - Write a function prototype for the timesTen...Ch. 6.6 - Prob. 6.8CPCh. 6.6 - What is the output of the following program?...Ch. 6.6 - The following program skeleton asks for the number...
Ch. 6.9 - How many return values may a function have?Ch. 6.9 - Write a header for a function named distance. The...Ch. 6.9 - Write a header for a function named days. The...Ch. 6.9 - Write a header for a function named getKey. The...Ch. 6.9 - Write a header for a function named lightYears....Ch. 6.11 - What is the difference between a static local...Ch. 6.11 - Prob. 6.17CPCh. 6.11 - Prob. 6.18CPCh. 6.13 - Prob. 6.19CPCh. 6.13 - Write the prototype and header for a function...Ch. 6.13 - Write the prototype and header for a function...Ch. 6.13 - What is the output of the following program?...Ch. 6.13 - The following program asks the user to enter two...Ch. 6.15 - What is the output of the following program?...Ch. 6.15 - What is the output of the following program?...Ch. 6 - Why do local variables lose their values between...Ch. 6 - What is the difference between an argument and a...Ch. 6 - Where do you define parameter variables?Ch. 6 - If you are writing a function that accepts an...Ch. 6 - When a function accepts multiple arguments, does...Ch. 6 - How do you return a value from a function?Ch. 6 - What is the advantage of breaking your...Ch. 6 - How would a static local variable be useful?Ch. 6 - Give an example where passing an argument by...Ch. 6 - The_______ is the part of a function definition...Ch. 6 - If a function doesnt return a value, the word...Ch. 6 - Either a functions _______ or its _______ must...Ch. 6 - Values that are sent into a function are called...Ch. 6 - Special variables that hold copies of function...Ch. 6 - When only a copy of an argument is passed to a...Ch. 6 - A(n) _______ eliminates the need to place a...Ch. 6 - A(n) _______ variable is defined inside a function...Ch. 6 - _______ variables are defined outside all...Ch. 6 - _______ variables provide an easy way to share...Ch. 6 - Unless you explicitly initialize global variables,...Ch. 6 - If a function has a local variable with the same...Ch. 6 - _______ local variables retain their value between...Ch. 6 - The _______ statement causes a function to end...Ch. 6 - _______ arguments are passed to parameters...Ch. 6 - When a function uses a mixture of parameters with...Ch. 6 - Prob. 26RQECh. 6 - When used as parameters, _______ variables allow a...Ch. 6 - Reference variables are defined like regular...Ch. 6 - Reference variables allow arguments to be passed...Ch. 6 - The _______ function causes a program to...Ch. 6 - Two or more functions may have the same name, as...Ch. 6 - Examine the following function header, then write...Ch. 6 - The following statement calls a function named...Ch. 6 - A program contains the following function: int...Ch. 6 - Write a function named timesTen that accepts an...Ch. 6 - A program contains the following function: void...Ch. 6 - Write a function named getNumber that uses a...Ch. 6 - T F Functions should be given names that reflect...Ch. 6 - Prob. 39RQECh. 6 - T F Function prototypes are terminated with a...Ch. 6 - T F If other functions are defined before main,...Ch. 6 - T F When a function terminates, it always branches...Ch. 6 - T F Arguments are passed to the function...Ch. 6 - T F The scope of a parameter is limited to the...Ch. 6 - T F Changes to a function parameter always affect...Ch. 6 - T F In a function prototype, the names of the...Ch. 6 - T F Many functions may have local variables with...Ch. 6 - T F Overuse of global variables can lead to...Ch. 6 - T F Static local variables are not destroyed when...Ch. 6 - T F All static local variables are initialized to...Ch. 6 - T F Initialization of static local variables only...Ch. 6 - T F When a function with default arguments is...Ch. 6 - T F It is not possible for a function to have some...Ch. 6 - T F The exit function can only be called from...Ch. 6 - T F A stub is a dummy function that is called...Ch. 6 - Each of the following functions has errors. Locate...Ch. 6 - double average(int value1, int value2, int value3)...Ch. 6 - void area(int length =30, int width) { return...Ch. 6 - void getValue(int value) { cout "Enter a value:...Ch. 6 - (Overloaded functions) int getValue() { int...Ch. 6 - Markup Write a program that asks the user to enter...Ch. 6 - Rectangle AreaComplete the Program If you have...Ch. 6 - Winning Division Write a program that determines...Ch. 6 - Safest Driving Area Write a program that...Ch. 6 - Falling Distance When an object is falling because...Ch. 6 - Kinetic Energy In physics, an object that is in...Ch. 6 - Celsius Temperature Table The formula for...Ch. 6 - Coin Toss Write a function named coinToss that...Ch. 6 - Present Value Suppose you want to deposit a...Ch. 6 - Future Value Suppose you have a certain amount of...Ch. 6 - Lowest Score Drop Write a program that calculates...Ch. 6 - Star Search A particular talent competition has...Ch. 6 - Days Out Write a program that calculates the...Ch. 6 - Order Status The Middletown Wholesale Copper Wire...Ch. 6 - Overloaded Hospital Write a program that computes...Ch. 6 - Population In a population, the birth rate is the...Ch. 6 - Transient Population Modify Programming Challenge...Ch. 6 - Paint Job Estimator A painting company has...Ch. 6 - Prob. 19PCCh. 6 - Stock Profit The profit from the sale of a stock...Ch. 6 - Multiple Stock Sales Use the function that you...Ch. 6 - isPrime Function A prime number is a number that...Ch. 6 - Prob. 23PCCh. 6 - Rock, Paper, Scissors Game Write a program that...Ch. 6 - Group Project 25. Travel Expenses This program...
Additional Engineering Textbook Solutions
Find more solutions based on key concepts
Star Pattern Write a program that displays the following pattern:
Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)
Why are some items within a class designated as private?
Computer Science: An Overview (13th Edition) (What's New in Computer Science)
The data shown in the following graph was collected during testing of an electromagnetic mass driver. The energ...
Thinking Like an Engineer: An Active Learning Approach (4th Edition)
Big data Big data describes datasets with huge volumes that are beyond the ability of typical database manageme...
Management Information Systems: Managing The Digital Firm (16th Edition)
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Consider the following assembly code for a C for loop: movl $0, %eax jmp .L2 .L3: addq $1, %rdi addq %rsi, %rax subq $1, %rsi .L2: cmpq %rsi, %rdi jl .L3 addq ret %rdi, %rax Based on the assembly code above, fill in the blanks below in its corresponding C source code. Recall that registers %rdi and %rsi contain the first and second, respectively, argument of a function. (Note: you may only use the symbolic variables x, y, and result in your expressions below do not use register names.) long loop (long x, long y) { long result; } for ( } return result; __; y--) {arrow_forwardIn each of the following C code snippets, there are issues that can prevent the compiler from applying certain optimizations. For each snippet: Circle the line number that contains compiler optimization blocker. ⚫ Select the best modification to improve optimization. 1. Which line prevents compiler optimization? Circle one: 2 3 4 5 6 Suggested solution: ⚫ Remove printf or move it outside the loop. Remove the loop. • Replace arr[i] with a constant value. 1 int sum (int *arr, int n) { 2 int s = 0; 3 for (int i = 0; i < n; i++) { 4 5 6 } 7 8 } s = arr[i]; printf("%d\n", s); return s; 234206 2. Which line prevents compiler optimization? Circle one: 2 3 4 5 6 Suggested solution: Move or eliminate do_extra_work() if it's not necessary inside the loop. Remove the loop (but what about scaling?). ⚫ Replace arr[i] *= factor; with arr[i] = 0; (why would that help?). 1 void scale (int *arr, int n, int factor) { 5 6 } for (int i = 0; i < n; i++) { rr[i] = factor; do_extra_work ();arrow_forward123456 A ROP (Return-Oriented Programming) attack can be used to execute arbitrary instructions by chaining together small pieces of code called "gadgets." Your goal is to create a stack layout for a ROP attack that calls a function located at '0x4018bd3'. Below is the assembly code for the function 'getbuf', which allocates 8 bytes of stack space for a 'char' array. This array is then passed to the 'gets' function. Additionally, you are provided with five useful gadgets and their addresses. Use these gadgets to construct the stack layout. Assembly for getbuf 1 getbuf: sub mov $8, %rsp %rsp, %rdi call gets add $8, %rsp ret #Allocate 8 bytes for buffer #Load buffer address into %rdi #Call gets with buffer #Restore the stack pointer #Return to caller Stack Layout each 8-byte (fill in section) Address Value (8 bytes) 0x7fffffffdfc0 0x7fffffffdfb8 0x7fffffffdfb0 0x7fffffffdfa8 0x7fffffffdfa0 0x7fffffffdf98 0x7fffffffdf90 0x7fffffffdf88 Gadgets Address Gadget Ox4006a7 pop %rdi; ret Ox4006a9…arrow_forward
- Problem 1 [15 points] The code below is buggy. Assume the code compiles. Briefly: 1). Identify the problem with the code (e.g., can access memory out of bounds) and 2). Suggest a solution (e.g., check the length). Question 1 1 #define BLENGTH 5 2 int b[BLENGTH]; 3 void copy_from_global_int_array_b (int n, int* dest) { 4 5 } *dest = b[n]; ==arrow_forwardWhich statement regarding SGA_MAX_SIZE is true? SGA_MAX_SIZE is modifiable after an instance is started, only when Automatic Memory Management is used. SGA_MAX_SIZE is not dyamically modifiable. SGA_MAX_SIZE is ignored when MEMORY_TARGET > 0. SGA-MAX_SIZE must be specified when SGA_TARGET > 0arrow_forwardExplian this C program #include <stdio.h> unsigned int rotateRight(unsigned int num, unsigned int bits) { unsignedint bit_count =sizeof(unsignedint) *8; bits = bits % bit_count; // Handle cases where bits >= bit_count return (num >> bits) | (num << (bit_count - bits)); } int main() { unsignedint num, bits; printf("Enter a number: "); scanf("%u", &num); printf("Enter the number of bits to shift: "); scanf("%u", &bits); printf("After rotation: %u\n", rotateRight(num, bits)); return0; }arrow_forward
- Explian thiS C program #include<stdio.h> int countSetBits(int n) { int count = 0; while (n) { count += n & 1; n >>= 1; } return count;} int main() { int num; printf("Enter a number: "); scanf("%d", &num); printf("Output: %d units\n", countSetBits(num)); return 0;}arrow_forwardPlease provide the Mathematica codearrow_forwardExplian this C program code. #include <stdio.h> void binary(unsigned int n) { if (n /2!=0) { binary(n /2); } printf("%d", n %2); } int main() { unsignedint number =33777; unsignedchar character ='X'; printf("Number: %u\n", number); printf("Binary: "); binary(number); printf("\nDecimal: %u\nHexadecimal: 0x%X\n\n", number, number); printf("Character: %c\n", character); printf("ASCII Binary: "); binary(character); printf("\nASCII Decimal: %u\nASCII Hexadecimal: 0x%X\n", character, character); return0; }arrow_forward
- Design a dynamic programming algorithm for the Longest Alternating Subsequence problem described below: Input: A sequence of n integers Output: The length of the longest subsequence where the numbers alternate between being larger and smaller than their predecessor The algorithm must take O(n²) time. You must also write and explain the recurrence. Example 1: Input: [3, 5, 4, 1, 3, 6, 5, 7, 3, 4] Output: 8 ([3, 5, 4, 6, 5, 7, 3, 4]) Example 2: Input: [4,7,2,5,8, 3, 8, 0, 4, 7, 8] Output: 8 ([4, 7, 2, 5, 3, 8, 0,4]) (Take your time with this for the subproblem for this one)arrow_forwardDesign a dynamic programming algorithm for the Coin-change problem described below: Input: An amount of money C and a set of n possible coin values with an unlimited supply of each kind of coin. Output: The smallest number of coins that add up to C exactly, or output that no such set exists. The algorithm must take O(n C) time. You must also write and explain the recurrence. Example 1: Input: C24, Coin values = = [1, 5, 10, 25, 50] Output: 6 (since 24 = 10+ 10+1+1 +1 + 1) Example 2: Input: C = 86, Coin values = [1, 5, 6, 23, 35, 46, 50] Output: 2 (since 86 = 46+35+5)arrow_forwardDesign a dynamic programming algorithm for the Longest Common Subsequence problem de- scribed below Input: Two strings x = x1x2 xm and y = Y1Y2... Yn Output: The length of the longest subsequence that is common to both x and y. . The algorithm must take O(m n) time. You must also write and explain the recurrence. (I want the largest k such that there are 1 ≤ i₁ < ... < ik ≤ m and 1 ≤ j₁ < ... < jk ≤ n such that Xi₁ Xi2 Xik = Yj1Yj2 ··· Yjk) Example 1: Input: x = 'abcdefghijklmnopqrst' and y = 'ygrhnodsh ftw' Output: 6 ('ghnost' is the longest common subsequence to both strings) Example 2: Input: x = 'ahshku' and y = ‘asu' Output: 3 ('asu' is the longest common subsequence to both strings)arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,
- Programming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:CengageSystems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage LearningEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT

C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr

C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning

Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage

Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning

EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
functions in c programming | categories of function |; Author: Education 4U;https://www.youtube.com/watch?v=puIK6kHcuqA;License: Standard YouTube License, CC-BY