======C/C++ Programming Knowledge Assessment====== =====0x0===== For the following values, list the smallest possible C data type it can fit into: * 32 * 562 * -32769 * 98435984 * 3.14 * -65 * 31415926535897 * -24764 =====0x1===== Analyze the following code, and answer the questions: #include #define SIZE 31 int main() { char data[SIZE]; int i; printf("Enter a string of up to %d letters (upper and lowercase), NO spaces: ", (SIZE-1)); scanf("%s", data); for(i = 0; i < SIZE; i++) { if (data[i] != 0) { if ((data[i] == 97) || (data[i] == 101) || (data[i] == 105) || (data[i] == 111) || (data[i] == 117)) { data[i] = data[i] - 32; } } else { break; } } printf("After processing, the string is: %s\n", data); return(0); } * What does this program do? * What do both the if() statements in the loop do? * How does the program travel through the string? * How does the program change its data? Why? * What condition would cause the **else** to be evaluated? =====0x2===== Analyze the following code, and answer the questions: #include #define SIZE 31 int main() { char data[SIZE]; int i, j = 0; printf("Enter a string of up to %d letters (upper and lowercase), NO spaces: ", (SIZE-1)); scanf("%s", data); for(i = 0; i < SIZE; i++) { if (data[i] != 0) { if ((data[i] == 101) || (data[i] == 69)) { j = j + 1; } } else { break; } } printf("After processing, j is: %d\n", j); return(0); } * What does this program do? (What information does it provide?) * What is the inner if()-statement looking for? =====0x3===== Analyze the following code, and answer the questions: #include #define SIZE 31 int main() { char data[SIZE]; int i, j = 0, k = 0; printf("Enter a string of up to %d letters (upper and lowercase), NO spaces: ", (SIZE-1)); scanf("%s", data); for(i = 0; i < SIZE; i++) { if (data[i] != 0) { if ((data[i] >= 65) && (data[i] <= 90)) { j = j + data[i]; k++; } } else { break; } } i = j / k; j = i; printf("After processing, j is: %c\n", j); return(0); } * What does this program do? (What information does it provide? However nonsensical.) * What is the inner if() statement looking for? * In what format is this program displaying j? =====0x4===== Analyze the following code, and answer the questions: #include #include #include #define SIZE 31 int main() { char data[SIZE]; int i, j = -1, k = 0; srand(time(NULL)); for(i = 0; i < SIZE; i++) { data[i] = rand() % 2599 + 1; } for(i = 0; i < SIZE; i++) { if (data[i] > j) j = data[i]; } printf("After processing, j is: %d\n", j); return(0); } * What does this program do? (What information does it provide?) * What specifically is the first for() loop doing? * What is the second for() loop doing?