Study Questions 1 - 40 Flashcards
What is wrong with the following code?
#include /\*This is a directive line\*/ main /\* This function will be automatically called\*/ (void/\* I do not have arguments to pass\*/) { /\* This is the first line in the program /\* I am so excited to write this program \*/ printf(“Hello world\n”)} /\* Finally I am done with it /\* But I am not sure why it does not work :-( \*/ }
Extra curly bracket. Wrong quotations marks, should be “ not “
Which of the following are legal C identifier? 100_bottles, _100_bootles, one-hundred-bottles, one_hundred_bottles, one_hundred_bottles_, one__hundred__bottles, one__hundred__bottles__, If, main, Printf, and while.
Identifier may contain digits, letters and underscores but must only begin with letter or underscore. Keywords cannot be used as identifiers: _100_bootles, one_hundred_bottles, one_hundred_bottles_, one_hundred_bottles, one_hundred_bottles_, main, Printf, are legal apparently :P
How many token are there in the following C statement? x=answer=(a*b/++c+6-a%f)/(k);
24 tokens x: Identifier, =: operator, answer: Identifier, =: operator, (: punctuation, a: identifier, *: operator, b: identifier, etc.
What is the output of the following C statement? printf(“%6d, %4d\n” , 86, 1040);
%d is a placeholder for integers. %6d indicates 6 figures for the integer. %4d indicates 4 figures for the integer. 86, 1040
What is the output of the following C statement? printf(“%12.5e\n”, 30.253) ;
%e placeholder for exponent. %12.5 indicates 12 figures and 5 decimal places. 3.02530e+01
What is the output of the following C statement? printf(“%.4f\n”, 83.162) ;
%f is a placeholder for float. %.4f indicates 4 decimal places 83.1620
What is the output of the following C statement? printf(“%-6.2g\n”, .0000009979);
1e-06 %g converts it into exponential or fixed decimal.
if it is more than 4 figures, it will show as exponent.
if it is less than 4 decimal places of zeros, it will also show as exponent.
in the example, it has gone back 7 decimal places.
Write calls to printf that display a float variable x in the following formats: (a) Exponential notation; left-justified in a field of size 8; one digit after the decimal point. (b) Exponential notation; right-justified in a field of size 10; six digits after the decimal point. (c) Fixed decimal notation; left-justified in a field of size 8; three digits after the decimal point. (d) Fixed decimal notation; right-justified in a field of size 6; no digits after the decimal point.
(a) %-8.1e (b) %10.6e (c) %-8.3f (d) %6.f (inclusion of minus sign indicates left-justified)
What is the output of the following C statement? printf(“*%d*\n*%-d*\n*%d*\n*%-d*\n”,123456,123456,-123456,-123456);
*123456*
*123456*
*-123456*
*-123456*
What is the output of the following C statement? printf(“*%.10d*\n*%-.10d*\n*%.10d*\n*%-.10d*\n”, 123456,123456,-123456,-123456);
*0000123456*
*0000123456*
*-0000123456*
*-0000123456*
What is the output of the following C statement? printf(“*%20d*\n*%-20d*\n*%20d*\n*%-20d*\n”, 123456,123456,-123456,-123456);
* 123456*
*123456 *
* -123456*
*-123456 *
What is the output of the following C statement? printf(“*%20.10d*\n*%-20.10d*\n*%20.10d*\n*%-20.10d*\n”, 123456,123456,-123456,-123456);
* 0000123456*
*0000123456 *
* -0000123456*
*-0000123456 *
What is the output of the following C program? #include main(void) { float m = 6, n = 6, o = 6, p = 6, q = 6; int i = 3, j = 3; m ++; ++ m; m += n += o -= p *= q /= i %= ++j ; printf(“%f\n%f\n %f\n %f\n %f\n %d\n%d”, m, n, o, p, q, i, j); m += 3 + (n += 3 + (o -= 3 + (p *= 3 + (q /= 3 + (i %= j++))))); printf(“%f %f\n%f %f\n%f %d %d\n”, ++m, n++, –o, p–, ++q, i–, –j); }
Should include otherwise won’t compile. once included. It should produce: 8.000000 0.000000 -6.000000 12.000000 2.000000 3 4-34.000000 -46.000000 -50.000000 40.000000 1.333333 3 4
Suppose that we call scanf as follow: scanf (“%d%f%d” , &i, &x, &j); If the user entered 10.3 5 6 what will be the values of i, x, and j after the call? (Assume that i and j are int variables and x is a float variable.)
i will be 10, x will be 5.000000 and j will be 6
Suppose that we call scanf as follow: scanf(“%f%d%f”, &x, &i, &y); If the user entered 12.3 45.6 789 what will be the values of x, i, and y after the call? (Assume that x and y are float variables and i is an int variable.)
x will be 12.300000, i will be 45, 789 will be 789.000000
For each of the following pairs of scanf format strings, indicate whether or not the two strings are equivalent. If they’re not, show how they can be distinguished. (a) “%d” versus “ %d” (b) “%d-%d-%d” versus “%d -%d -%d” (c) “%f” versus “%f “ (d) “%f,%f” versus “%f, %f”
(a) equivalent (b) equivalent (c) Different, space after %f seems to prompt for another entry, and but only execute the first entry (d) Equivalent
Write a program that formats products information entered by the user. A program session should be as follow: Enter item number: 583 Enter unit price: 13.5 Enter purchase date (mm/dd/yyyy): 09/24/2008 Item Unit Purchase Price Date 583 $ 13.50 09/24/2008 The item number and date should be left justified; the unit price should be right justified. Allow dollar amounts up to $9999.99. Hint: Use tabs (i.e., “\t”) to line up the columns.
#include main(void) { int item, mm, dd, yyyy; float price; printf("Enter item number: "); scanf("%d", &item); printf("Enter unit price: "); scanf("%f", &price); printf("Enter purchase date (mm/dd/yyyy): "); scanf("%d/%d/%d", &mm, &dd, &yyyy); printf("Item\tUnit\tPurchase\n\tPrice\tdate\n%-d\t%4.2f\t%-.2d/%-.2d/%-.2d\n", item, price, mm, dd, yyyy); }
Write a program that prompts the user to enter a ten digit telephone number in the form xxxxxxxxxx and then displays the number in the form (xxx) xxx-xxxx.
include <stdio.h><br></br> main(void)<br></br> {<br></br> int phone, phone1, phone2, phone3;<br></br> printf("Enter telephone number: ");<br></br> scanf("%d", &phone);<br></br> phone1 = phone*0.0000001;<br></br> phone2 = (phone - (phone1*10000000))*0.0001;<br></br> phone3 = phone - (phone1*10000000) - (phone2*10000);<br></br> while(phone1 > 999 || phone1 < 100 || phone2 > 999 || phone2 < 100 || phone3 > 9999 || phone3 < 100)<br></br> {<br></br> printf("Invalid number, enter number again: ");<br></br> scanf("%d", &phone);<br></br> phone1 = phone*0.0000001;<br></br> phone2 = (phone - (phone1*10000000))*0.0001;<br></br> phone3 = phone - (phone1*10000000) - (phone2*10000);<br></br> }<br></br> printf("(%d) %d-%d\n", phone1, phone2, phone3);<br></br> }</stdio.h>
Write a program that asks the user to enter the numbers from 1 to 16 (in any order) and then displays the numbers in the same order in a 4 by 4 row-wise arrangement, followed by the sums of each rows, each columns, and each diagonals.
?
Show the output produced by the following program fragment. int i, j; i = 7; j = 8; i *= j + 1; printf(“%d %d\n”, i, j);
63 8
Show the output produced by the following program fragment. int i; int j, k; i = j = k = 1; i += j += k; printf(“%d %d %d\n”, i, j, k);
3 2 1
Show the output produced by the following program fragment. int i; int j; int k; i = 1; j = 2; k = 3; i -= j -= k; printf(“%d %d %d\n”, i, j, k);
2 -1 3
Show the output produced by the following program fragment. int i, j, k; i = 2; j = 1; k = 0; i *= j *= k; printf(“%d %d %d\n”, i, j, k);
0 0 0
Show the output produced by the following program fragment. int i, j; i = 6 ; j = i += i; printf(“%d %d”, i, j);
12 12
Show the output produced by the following program fragment. int i, j; i = 5 ; j = (i -= 2) + 1; printf(“%d %d”, i, j);
3 4
Show the output produced by the following program fragment. int i, j; i = 7 ; j = 6 + (i = 2.5) ; printf(“%d %d”, i, j);
2 8
Show the output produced by the following program fragment. int i, j; i = 2; j = 8; j = (i = 6) + (j = 3); printf(“%d %d”, i, j);
6 9
Show the output produced by the following program fragment. int i; i = 1 ; printf(“%d “ i++ - 1); print f(“%d”, i);
0 2
Show the output produced by the following program fragment. int i, j; i = 10; j = 5; printf(“%d “ i++ - ++j); printf(“%d %d”, i, j),
4 11 6
Show the output produced by the following program fragment. int i, j; i = 7 ; j = 8 ; printf(“%d “ i++ - –j); printf(“%d %d”, i, j);
0 8 7
Show the output produced by the following program fragment. int i, j, k; i = 3; j = 4; k = 5; printf(“%d “, i++ - j++ + –k); printf(“%d %d %d”, i, j, k);
3 4 5 4
. Show the output produced by the following program fragment. int i, j; i = 5; j = ++i * 3 - 2; printf(“%d %d”, i, j);
6 16
Show the output produced by the following program fragment. int i, j; i = 5 ; j = 3 - 2 * i++; printf(“%d %d”, i, j);
6 -7
Show the output produced by the following program fragment. int i, j; i = 7 ; j = 3 * i– + 2; print f(“%d %d”, i, j);
6 23
Show the output produced by the following program fragment. int i, j; i = 7 ; j = 3 + –i * 2; printf(“%d %d”, i, j);
6 15
Write a program that computes the volume of a sphere (4/3 π r3), where r is the radius of the sphere. Your program should ask the user to enter the radius of the sphere.
include #include int main(){ float r; float volume; printf(“Enter radius of the sphere : “); scanf(“%f”,&r); volume = (4.0/3) * M_PI * r * r * r; printf(“\nVolume of sphere is : %.3f”,volume); return 0; }
Write a program that asks the user to enter a value for x and then displays the value of the following polynomial: 3x^5 + 2x^4 – 5x^3 + x^2 – x – 6
include #include int main(){ float x; float polynomial; printf(“Enter value for x: “); scanf(“%f”,&x); polynomial = (x*x*x*x*x*3)+(x*x*x*x*2)+(x*x*x*5)+(x*x)-x-6; printf(“\npolynomial value is: %.3f”,polynomial); return 0; }
Write a program that asks the user to enter a dollar amount and then shows how to pay that amount using the smallest number of $20, $10, $5, $2, and $1.
?
Write a program that asks the user to enter a two-digit number, then prints the number with its digits reversed. A session with the program should have the following appearance: Enter a two-digit number: 28 The reversal is: 82 Hint: Read the number using %d, then break it into two digits. If n is an integer, then n % 10 is the last digit in n and n / 10 is n with the last digit removed.
?
Write a program to read a float representing a number of degrees Celsius, and print as a float the equivalent temperature in degrees Fahrenheit. Print your results in a form such as Enter a temperature is Celsius degrees: 100 100.0 degrees Celsius is equivalent to 212.0 degrees Fahrenheit
include #include int main(){ floattemp_c, temp_f; printf (“Enter the value of Temperature in Celcius: “); scanf (“%f”, &temp_c); temp_f = (1.8 * temp_c) + 32; printf (“The value of Temperature in Fahreinheit is: %f”, temp_f); return 0; }