C Jeopardy: Fix and clean-up some questions; fix substitution if "is" in answers

This commit is contained in:
Pragmatic Software 2014-08-04 00:35:41 +00:00
parent 4bf78bf978
commit bf9fe32682
3 changed files with 30 additions and 30 deletions

View File

@ -13,7 +13,7 @@ use warnings;
# These are set automatically by the build/commit script
use constant {
BUILD_NAME => "PBot",
BUILD_REVISION => 761,
BUILD_REVISION => 762,
BUILD_DATE => "2014-08-03",
};

View File

@ -79,7 +79,7 @@
[5.2.1 Character sets] Two sets of characters and their associated collating sequences shall be defined: the set in which these are written, and the set interpreted in the execution environment.|source files{It is called the source character set.}
[5.2.1 Character sets] Two sets of characters and their associated collating sequences shall be defined: the set in which source files are written, and the set interpreted in this environment.|execution{It is called the execution character set.}
[5.2.1 Character sets] In a character constant or string literal, members of the execution character set shall be represented by corresponding members of the source character set or by escape sequences consisting of this character followed by one or more characters.|backslash|\
[5.2.1 Character sets] A byte with all bits set to this is called the null character, shall exist in the basic execution character set.|zero{It is used to terminated a string, for instance.}|0{It is used to terminate a string, for instance.}
[5.2.1 Character sets] A byte with all bits set to this is called the null character; it shall exist in the basic execution character set.|zero{It is used to terminated a string, for instance.}|0{It is used to terminate a string, for instance.}
[5.2.1 Character sets] A byte with all bits set to 0 is called this.|null character{It is used to terminate a string, for instance.}
[5.2.1 Character sets] A byte with all bits set to 0, called the null character, is used to terminate this.|string
[5.2.1 Character sets] The representation of each member of the source and execution basic character sets shall fit in this.|char|byte
@ -93,7 +93,7 @@
[5.2.1.2 Multibyte characters] The source character set and the execution character set may both contain multibyte characters. If so, this character set shall be present and each character shall be encoded as a single byte.|basic character set|basic
[5.2.1.2 Multibyte characters] This character shall not occur as part of any other multibyte character.|null character
[5.2.1.2 Multibyte characters] An identifier, comment, string literal, character constant, or header name shall consist of a sequence of this kind of valid characters.|multibyte
[5.2.2 Character display semantics] The this position is that location on a display device where the next character output by the fputc function would appear.|active
[5.2.2 Character display semantics] This position is the location on a display device where the next character output by the fputc function would appear.|active|active position
[5.2.2 Character display semantics] The active position is that location on a display device where the next character output by this function would appear.|fputc
[5.2.2 Character display semantics] An example of this behavior is the direction of writing characters to the display.|locale-specific
[5.2.2 Character display semantics] If the active position is at the final position of a line (if there is one), the behavior of the display device is this.|unspecified
@ -106,27 +106,27 @@
[5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the initial position of the next vertical tabulation position.|\v{It stands for "vertical tab"!}|vertical tab{It is represented as \v.}
[5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. Each of these escape sequences shall produce a unique implementation-defined value which can be stored in a single this.|char|byte
[5.2.3 Signals and interrupts] The instructions that compose the executable representation of a function is called this.|function image
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many nesting levels of blocks.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many nesting levels of conditional inclusion.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many pointer, array, and function declarators (in any combinations) modifying an arithmetic, structure, union, or void type in a declaration.|12{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many nesting levels of parenthesized declarators within a full declaration.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many nesting levels of parenthesized expressions within a full expression.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many significant initial characters in an internal identifier or a macro name (each universal character name or extended source character is considered a single character).|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many external identifiers in one translation unit.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many identifiers with block scope declared in one block.|511{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many macro identifiers simultaneously defined in one preprocessing translation unit.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many parameters in one function definition.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many arguments in one function call.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many parameters in one macro definition.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many arguments in one macro invocation.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many characters in a logical source line.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many characters in a string literal (after concatenation).|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many bytes in an object (in a hosted environment only).|65535{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many nesting levels for #included files.|15{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many case labels for a switch statement (excluding those for any nested switch statements).|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many members in a single structure or union.|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many enumeration constants in a single enumeration.|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains the following limit: At least this many levels of nested structure or union definitions in a single struct-declaration-list.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of blocks.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of conditional inclusion.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many pointer, array, and function declarators (in any combinations) modifying an arithmetic, structure, union, or void type in a declaration.|12{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of parenthesized declarators within a full declaration.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of parenthesized expressions within a full expression.|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many significant initial characters in an internal identifier or a macro name (each universal character name or extended source character is considered a single character).|63{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many external identifiers in one translation unit.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many identifiers with block scope declared in one block.|511{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many macro identifiers simultaneously defined in one preprocessing translation unit.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many parameters in one function definition.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many arguments in one function call.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many parameters in one macro definition.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many arguments in one macro invocation.|127{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many characters in a logical source line.|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many characters in a string literal (after concatenation).|4095{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many bytes in an object (in a hosted environment only).|65535{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels for #included files.|15{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many case labels for a switch statement (excluding those for any nested switch statements).|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many members in a single structure or union.|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many enumeration constants in a single enumeration.|1023{That ought to be enough for anybody, right?}
[5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many levels of nested structure or union definitions in a single struct-declaration-list.|63{That ought to be enough for anybody, right?}
[5.2.4.2 Numerical limits] An implementation is required to document all its numerical limits in these headers (name both, separated by "and").|limits.h and float.h|float.h and limits.h
[5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the number of bits for smallest object that is not a bit-field (byte).|CHAR_BIT
[5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type signed char.|SCHAR_MIN
@ -503,7 +503,7 @@
[6.7.2.2 Enumeration specifiers] The expression that defines the value of an enumeration constant shall be this kind of expression that has a value representable as an int.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
[6.7.2.2 Enumeration specifiers] If the first enumerator has no =, the value of its enumeration constant is this value.|zero|0
[6.7.2.3 Tags] This kind of type may only by used when the size of an object of that type is not needed.|incomplete
[6.7.2.4 Atomic type specifiers] Atomic type specifiers shall not be used if the implementation does not support this kind of types.|atomic
[6.7.2.4 Atomic type specifiers] Atomic type specifiers shall not be used if the implementation does not support this kind of types.|atomic{That was kind of obvious, wasn't it?}
[6.7.2.4 Atomic type specifiers] If the _Atomic keyword is immediately followed by this, it is interpreted as a type specifier (with a type name), not as a type qualifier.|left parenthesis
[6.7.3 Type qualifiers] Types other than pointer types whose referenced type is an object type shall not be qualified with this type qualifier.|restrict
[6.7.3 Type qualifiers] The type modified by the this type qualifier shall not be an array type or a function type.|_Atomic
@ -747,7 +747,7 @@
[7.8.2.2 The imaxdiv function] This structure shall contain (in either order) the members quot (the quotient) and rem (the remainder), each of which has type intmax_t.|imaxdiv_t
[7.11.1.1 The setlocale function] This function may be used to change or query the program's entire current locale or portions thereof.|setlocale
[7.11.1.1 The setlocale function] This value for the locale argument causes the setlocale function to return a pointer to the string associated with the category for the program's current locale; the program's locale is not changed.|null pointer|NULL|0
[7.11.1.1 The setlocale function[ The implementation shall arrange to encode in a string the various categories due to a heterogeneous locale when the category argument to the setlocale function has this value.|LC_ALL
[7.11.1.1 The setlocale function] The implementation shall arrange to encode in a string the various categories due to a heterogeneous locale when the category argument to the setlocale function has this value.|LC_ALL
[7.11.2.1 The localeconv function] This function sets the components of an object with type struct lconv with values appropriate for the formatting of numeric quantities (monetary and otherwise) according to the rules of the current locale.|localeconv
[7.12 Mathematics <math.h>] If FLT_EVAL_METHOD is set to this, float_t and double_t are float and double, respectively.|0
[7.12 Mathematics <math.h>] If FLT_EVAL_METHOD is set to this, float_t and double_t are both double.|1
@ -1125,7 +1125,7 @@
[7.27.2.1 The clock function] This function determines the processor time used.|clock
[7.27.2.1 The clock function] This function returns the implementation's best approximation to the processor time used by the program since the beginning of an implementation-defined era related only to the program invocation.|clock
[7.27.2.2 The difftime function] This function computes the difference between two calendar times: time1 -time0.|difftime
[7.27.2.2 The difftime function] This function returns the difference expressed in seconds as a double.|difftime
[7.27.2.2 The difftime function] This function returns the difference of time expressed in seconds as a double.|difftime
[7.27.2.3 The mktime function] This function converts the broken-down time, expressed as local time, in the structure pointed to by timeptr into a calendar time value with the same encoding as that of the values returned by the time function.|mktime
[7.27.2.3 The mktime function] This value causes the mktime to attempt to determine whether Daylight Saving Time is in effect for the specified time.|negative
[7.27.2.3 The mktime function] The mktime function returns the specified calendar time encoded as a value of this type.|time_t
@ -1244,7 +1244,7 @@
[I. Common warnings] An example of this is when an implicit narrowing conversion is encountered, such as the assignment of a long int or a double to an int, or a pointer to void to a pointer to any type other than a character type.|common warning
[I. Common warnings] An example of this is when a hexadecimal floating constant cannot be represented exactly in its evaluation format.|common warning
[I. Common warnings] An example of this is when an integer character constant includes more than one character or a wide character constant includes more than one multibyte character.|common warning
[I. Common warnings] An example of this is when The characters /* are found in a comment.|common warning
[I. Common warnings] An example of this is when the characters /* are found in a comment.|common warning
[I. Common warnings] An example of this is when an ``unordered'' binary operator (not comma, &&, or \|\|) contains a side effect to an lvalue in one operand, and a side effect to, or an access to the value of, the identical lvalue in the other operand.|common warning
[I. Common warnings] An example of this is when a function is called but no prototype has been supplied.|common warning
[I. Common warnings] An example of this is when The arguments in a function call do not agree in number and type with those of the parameters in a function definition that is not a prototype.|common warning

View File

@ -21,8 +21,8 @@ if ($channel !~ /^#/) {
exit;
}
$text =~ s/^\s*is\s*//i;
$text =~ s/^\s*are\s*//i;
$text =~ s/^\s*is\s+//i;
$text =~ s/^\s*are\s+//i;
$text =~ s/^(a|an)\s+//i;
$text =~ s/\s*\?*$//;
$text =~ s/^\s+//;