(1) | _____ |
All functions in C must return a value. |
(2) | _____ |
C only uses "call by value". |
(3) | _____ |
Uninitialized pointers should never be set
to NULL .
|
char *school = "JMU"; school[0] = 'G';which is part of a file that contains everything that is needed for it to compile and link.
char school[] = "JMU"; school[0] = 'G';which is part of a file that contains everything that is needed for it to compile and link.
const char *school = "JMU"; school[0] = 'G';which is part of a file that contains everything that is needed for it to compile and link.
const char school[] = "JMU"; school[0] = 'G';which is part of a file that contains everything that is needed for it to compile and link.
const char *school = "JMU"; char *temp = school; temp[0] = 'G';which is part of a file that contains everything that is needed for it to compile and link.
char *s = "James Madison University"; printf("%s", s+6);
char *s = "James\0Madison University"; printf("%s", s);
char *s = "James\0Madison University"; printf("%s", s+6);
rectangle.h
struct rectangle { int x; // x-coordinate of the upper left vertex int y; // y-coordinate of the upper left vertex int width; int height; };Indicate whether each of the following statements will or will not compile (assuming that everything has been included properly).
rectangle r;
struct rectangle s;
struct rectangle t = {0, 0, 50, 100}; printf("%d\n", t.width);
struct rectangle *p; p = &t; printf("%d\n", p.height);
struct rectangle *p; p = &t; printf("%d\n", p->height);
#include <stdio.h> int max(int a, int b) { if (a > b) return a; else return b; } int min(int *a, int *b) { (*a)++; (*b) = (*b) + 2; if (*a < *b) return *a; else return *b; } int main(void) { int temp, x, y; x = 3; y = 7; temp = max(x, y); printf("max: %d \n", temp); temp = min(&x, &y); printf("min: %d \n", temp); printf("x,y: %d,%d \n", x, y); }
int n = 0; int main(void) { n += 100; printf("%d\n", n); return 0; }
int n = 0; int main(void) { int n; n += 5; printf("%d\n", n); return 0; }
int n = 0; int main(void) { int n = 1; n += 100; printf("%d\n", n); return 0; }
int total(int x) { static int total = 0; total += x; return total; } int main(void) { total(5); total(10); printf("%d\n", total(15)); return 0; }
int n = 0; int main(void) { extern int n; n += 100; printf("%d\n", n); return 0; }
int add(int a, int b) { return a+b; }
op
that could hold a pointer to the function add()
.
add()
to op
.
op
to add the values 5 and 6.
typdef
to make the code more
readable.)
#include <stdio.h> typedef int binop_t(int, int); int add(int a, int b) { return a+b; } int multiply(int a, int b) { return a*b; } int operate(binop_t *op, int a, int b) { return op(a, b); } int main(void) { binop_t *op = add; printf("%d\n", op(5, 6)); printf("%d\n", operate(multiply, 5, 6)); return 0; }
#include <stdio.h> void change(int *a, int length) { int i; for (i=1; i<length; i++) { a[i] += *(a+i-1); } } int main(void) { int i; int n = 4; int value[4]; for (i=0; i<n; i++) { value[i] = 100 * i; } change(value, n); for (i=0; i<n; i++) { printf("%d\n", value[i]); } }
total()
function:
int total(int *a, int n) { int sum; for (int i=0; i<n; i++) sum += a[i]; return sum; }
what will be printed by the following? Write "UNKNOWN" if the answer is unknown (e.g., because it depends on the contents of a memory location and there is not enough information to know what is in that memory location).
int x[4] = {1,2,3,4}; cout << total(x,4) << "\n";
total()
function:
int total(int *a, int n) { int sum; sum = 0; for (int i=0; i<n; i++) sum += *(a++); return sum; }
what will be printed by the following? Write "UNKNOWN" if the answer is unknown (e.g., because it depends on the contents of a memory location and there is not enough information to know what is in that memory location).
int x[4] = {1,2,3,4}; cout << total(x,4) << "\n";
total()
function:
int total(int *a, int n) { int sum; sum = 0; for (int i=0; i<n; i++) sum += *(a+i); return sum; }
what will be printed by the following? Write "UNKNOWN" if the answer is unknown (e.g., because it depends on the contents of a memory location and there is not enough information to know what is in that memory location).
int x[4] = {1,2,3,4}; cout << total(x,4) << "\n";
total()
function:
int total(int *a, int n) { int sum; sum = 0; for (int i=0; i<n; i++) sum += *(++a); return sum; }
what will be printed by the following? Write "UNKNOWN" if the answer is unknown (e.g., because it depends on the contents of a memory location and there is not enough information to know what is in that memory location).
int x[4] = {1,2,3,4}; printf("%d\n", total(x,4));
print_args.c
#include <stdio.h> int main(int argc, char **argv) { int i; printf("argc: %d\n", argc); for (i=0; i<argc; i++) { printf("argv[%d]: %s\n", i, argv[i]); } return 0; }
and assuming that it is compiled and linked into an executable named
print_args
, what will be output for each of the following?
./print_args
./print_args 2 9
./print_args 2+9
malloc()
.
/** * Returns a substring of the given "string". * The correct amount of memory required * by the substring is allocated from the heap. * * @param s A pointer to the string * @param start Index of the first char in the substring * @param length Length of the substring */ char *substring(const char *s, int start, int length) { }
Copyright 2017