C语言复习习题及答案.ppt

上传人:tia****nde 文档编号:7752904 上传时间:2020-03-24 格式:PPT 页数:85 大小:649.50KB
返回 下载 相关 举报
C语言复习习题及答案.ppt_第1页
第1页 / 共85页
C语言复习习题及答案.ppt_第2页
第2页 / 共85页
C语言复习习题及答案.ppt_第3页
第3页 / 共85页
点击查看更多>>
资源描述
数组习题 数组习题 单项选择题 1 在下列数组定义 初始化或赋值语句中 正确的是 A inta 8 a 8 100 B intx 5 1 2 3 4 5 6 C intx 1 2 3 4 5 6 D intn 8 intscore n 2 若已有定义 inti a 100 则下列语句中 不正确的是 A for i 0 i 100 i a i i B for i 0 i 100 i scanf d C C 返回目录 数组习题 单项选择题 3 与定义charc GOOD 不等价的是 A charc G O O D 0 B charc GOOD C charc 4 GOOD D charc 5 G O O D 0 4 若已有定义 charc 8 GOOD 则下列语句中 不正确的是 A puts c B for i 0 c i 0 i printf c c i C printf s c D for i 0 c i 0 i putchar c C D 数组习题 单项选择题 5 若定义a 3 0 1 2 3 4 5 6 7 则a数组中行的大小是 A 2B 3C 4D 无确定值6 以下程序的运行结果是 includevoidf intb inti 0 while b i 10 b i 2 i A 271211139B 171211137C 171211139D 17129137 B B main inti a 1 5 10 9 13 7 f a 1 for i 0 i 6 i printf 4d a i 数组习题 单项选择题 7 若执行以下程序段 其运行结果是 charc a b 0 c 0 printf s n c A abcB a b C abcD ab8 数组名作为参数传递给函数 作为实际参数的数组名被处理为 A 该数组长度B 该数组元素个数C 该函数中各元素的值D 该数组的首地址11 当接受用户输入的含空格的字符串时 应使用函数 A scanf B gets C getchar D getc D D B 数组习题 单项选择题 9 执行下面的程序段后 变量k中的值为 intk 3 s 2 1 s 0 k k s 1 10 A 不定值B 33C 30D 010 在定义inta 5 4 之后 对a的引用正确的是 A a 2 4 B a 5 0 C a 0 0 D a 0 0 D C 数组习题 程序填空题 1 以下程序用来检查二维数组是否对称 即 对所有i j都有a i j a j i includemain inta 4 4 1 2 3 4 2 2 5 6 3 5 3 7 8 6 7 4 inti j found 0 for j 0 j 4 j for i 0 i 4 i if found break if found break if found printf 不对称 n elseprintf 对称 n a i j a j i 1 数组习题 程序填空题 2 以下程序是用来输入5个整数 并存放在数组中 找出最大数与最小数所在的下标位置 并把两者对调 然后输出调整后的5个数 includemain inta 5 t i maxi mini for i 0 ia maxi 5 printf 最小数的位置是 3d n mini printf 最大数的位置是 3d n maxi t a maxi 6 a mini t printf 调整后的数为 for i 0 i 5 i printf d a i printf n 0 a mini a i maxi i a maxi a mini 数组习题 程序填空题 3 给定一3x4的矩阵 求出其中的最大元素值 及其所在的行列号 main inti j row 0 colum 0 max staticinta 3 4 1 2 3 4 9 8 7 6 10 10 4 4 7 for i 0 i 2 i for j 0 j 3 j 8 9 printf d d row colum max a 0 0 if a i j max max a i j row i colum j 数组习题 程序填空题 4 下述函数用于确定给定字符串的长度 请完成程序 strlen chars inti 0 while 10 i return 11 s i 0 i 数组习题 程序填空题 5 以下程序的功能是从键盘上输入若干个字符 以回车键作为结束 组成一个字符数组 然后输出该字符数组中的字符串 请填空 includemain charstr 81 inti for i 0 i 80 i str i getchar if str i n break str i 0 12 while str i 0 putchar 13 i 0 str i 数组习题 阅读程序并写出运行结果 1 写出下列程序的运行结果并分析之 includemain staticinta 4 5 1 2 3 4 0 2 2 0 0 0 3 4 5 0 0 6 0 0 0 0 intj k for j 0 j 4 j for k 0 k 5 k if a j k 0 break printf d a j k printf n 数组习题 阅读程序并写出运行结果 2 写出下列程序的运行结果并分析之 includemain inta 6 6 i j for i 1 i 6 i for j 1 j 6 j a i j i j for i 1 i 6 i for j 1 j 6 j printf 4d a i j printf n 数组习题 阅读程序并写出运行结果 3 写出下列程序的运行结果并分析之 includemain inta 1 2 3 4 i j s 0 j 1 for i 3 i 0 i s s a i j j j 10 printf s d n s 数组习题 阅读程序并写出运行结果 4 写出下列程序的运行结果并分析之 includemain inta 0 2 5 8 12 15 23 35 60 65 intx 15 i n 10 m i n 2 1 m n 2 while m 0 if xa i i i m 2 1 m m 2 elsebreak printf place d i 1 数组习题 阅读程序并写出运行结果 5 写出下列程序的运行结果并分析之 includemain inta 1 2 3 4 i j s 0 j 1 for i 3 i 0 i s s a i j j j 10 printf s d n s 数组习题 阅读程序并写出运行结果 6 写出下列程序的运行结果并分析之 includemain charstr 1a2b3c inti for i 0 str i 0 i if str i 0 数组习题 编程题 1 编一程序用简单选择排序方法对10个整数排序 从大到小 排序思路为 首先从n个整数中选出值最大的整数 将它交换到第一个元素位置 再从剩余的n 1个整数中选出值次大的整数 将它交换到第二个元素位置 重复上述操作n次后 排序结束 2 编写一程序 实现两个字符串的连接 不用strcat 函数 3 编写一个把字符串转换成浮点数的函数 4 若有说明 inta 3 4 1 2 3 4 5 6 7 8 9 10 11 12 现要将a的行和列的元素互换后存到另一个二维数组b中 试编程 5 n皇后问题 在n n的方阵棋盘上 试放n个皇后 每放一个皇后 必须满足该皇后与其它皇后互不攻击 即不在同一行 同一列 同一对角线上 求出所有可能解 6 背包问题 有一个背包 能装入的物品总重量为S 设有N件物品 其重量分别为W1 W2 WN 希望从N件物品中选择若干件物品 所选物品的重量之和恰能放入该背包 即所选物品的重量之和等于S 试编程求解 数组习题 编程题 参考源码 函数习题 函数习题 单项选择题 C语言中函数形参的缺省存储类型是 A 静态 static B 自动 auto C 寄存器 register D 外部 extern 函数调用语句function exp1 exp2 18 中含有的实参个数为 A 0B 1C 2D 3 B C 返回目录 函数习题 单项选择题 下面函数返回值的类型是 square floatx returnx x A 与参数x的类型相同B 是void型C 无法确定D 是int型C语言规定 程序中各函数之间 A 不允许直接递归调用 也不允许间接递归调用B 允许直接递归调用 但不允许间接递归调用C 不允许直接递归调用 但允许间接递归调用D 既允许直接递归调用 也允许间接递归调用 D D 函数习题 单项选择题 一个函数返回值的类型取决于 A return语句中表达式的类型B 调用函数时临时指定C 定义函数时指定或缺省的函数类型D 调用该函数的主调函数的类型下面叙述中 错误的是 A 函数的定义不能嵌套 但函数调用可以嵌套B 为了提高可读性 编写程序时应该适当使用注释C 变量定义时若省去了存储类型 系统将默认其为静态变量D 函数中定义的局部变量的作用域在函数内部 C C 函数习题 单项选择题 7 在一个源程序文件中定义的全局变量的有效范围为 A 一个C程序的所有源程序文件B 该源程序文件的全部范围C 从定义处开始到该源程序文件结束D 函数内全部范围某函数在定义时未指明函数返回值类型 且函数中没有return语句 现若调用该函数 则正确的说法是 A 没有返回值B 返回一个用户所希望的值C 返回一个系统默认值D 返回一个不确定的值 C D 函数习题 单项选择题 9 函数swap intx inty 可实现对x和y值的交换 在执行如下定义及调用语句后 a和b的值分别为 inta 10 b 20 swap a b A 10和10B 10和20C 20和10D 20和20下面错误的叙述是 A 在某源程序不同函数中可以使用相同名字的变量B 函数中的形式参数是局部变量C 在函数内定义的变量只在本函数范围内有效D 在函数内的复合语句中定义的变量在本函数范围内有效 B D 函数习题 程序填空题 1 求s 1 2 3 10 之和 程序如下 includelongintfactorial intn intk 1 longintp 1 for k 1 k n k returnp main intn floatsum 0 for n 1 n 10 n printf 6 3f n sum p p k sum factorial n 或sum sum factorial n 函数习题 程序填空题 2 以下函数用以求x的y次方 doublefun doublex inty inti doublem 1 for i 1 i i m returnm y 或 y 1 m x 函数习题 程序填空题 3 下面定义了一个函数pi 其功能是根据以下的近似值公式来求 值 include includedoublepi longn doubles longk for k 1 k n k s s return 0 1 k k sqrt 6 s 答案不唯一 因为若初值不同 则有不同的答案组合 函数习题 阅读程序并写出运行结果 1 下面程序运行的结果是 include defineMAX COUNT4voidfun main intn for n 1 n MAX COUNT n fun voidfun staticintk k k 2 printf d k 2 4 6 8 函数习题 阅读程序并写出运行结果 2 下面程序运行的结果是 includeintfun intx ints if x 0 x 1 return3 s x fun x 3 returns main printf d n fun 3 0 函数习题 阅读程序并写出运行结果 3 下面程序运行的结果是 includeunsignedintfun unsignednum unsignedintk 1 do k k num 10 num num 10 while num returnk main unsignedn 25 printf u n fun n 0 函数习题 阅读程序并写出运行结果 4 下面程序运行的结果是 includeintfun intx inty staticintm 0 n 2 n m 1 m n x y returnm main intj 4 m 1 k k fun j m printf d k k fun j m printf d n k 8 17 函数习题 阅读程序并写出运行结果 5 下面程序运行的结果是 includevoidt intx inty intp intq p x x y y q x x y y main inta 4 b 3 c 5 d 6 t a b c d printf d d n c d 5 6 函数习题 编程题 1 编程实现从键盘输入一整数 如果该整数为素数 则返回1 否则返回0 要求单独编写一个求素数的自定义函数 函数习题 编程题 2 编写一函数change x r 将十进制整数x转换成r 1 r 10 进制后输出 intchange intx intr inttemp result 0 count 0 do temp x r printf d n temp 结果的逆序输出 result result temp pow 10 count x x r while x returnresult 函数习题 编程题 3 求1000以内的亲密数对 亲密数对的定义为 若正整数a的所有因子 不包括a本身 之和为b b的所有因子 不包括b本身 之和为a 且a b 则称a与b为亲密数对 函数习题 编程题 4 试用递归的方法编写一个返回长整型的函数 以计算斐波纳契数列的前20项 该数列满足 F 0 1 F 1 1 F n F n 1 F n 2 n 2 函数习题 编程题 5 如果一个数等于其所有真因子 不包括其本身 之和 则该数为完数 例如6的因子有1 2 3 且6 1 2 3 故6为完数 求2 1000中的完数 指针习题 指针习题 单项选择题 1 若已定义inta 8 p 则数组第2个元素 2 不可表示为 A a 1 B p 1 C p 1D p 1 返回目录 D C C 单项选择题 4 若已定义inta p 其中的p和q分别是 10个指向整型变量的指针 指向具有10个整型变量的函数指针 一个指向具有10个元素的一维数组的指针 具有10个指针元素的一维数组A B C D C D 指针习题 单项选择题 6 若已定义inta 2 4 80 81 82 83 84 85 86 87 p 4 a 则执行p 后 p代表的元素是 A 80B 81C 84D 857 执行语句 chara 10 abcd p a 后 p 4 的值是 A abcd B 0 C d D 不能确定8 设已定义inta 3 2 10 20 30 40 50 60 和语句 p 2 a 则 p 2 1 的值为 A 60B 30C 50D 不能确定 C B A 指针习题 单项选择题 9 以下程序的运行结果是 includemain inta 4 3 1 2 3 4 5 6 7 8 9 10 11 12 int p 4 i for i 0 i 4 i p i a i printf 2d 2d 2d 2d n p 1 p 1 p 3 2 p 3 1 A 4 4 9 8B 程序出错C 4 2 12 11D 1 1 7 5 C 指针习题 单项选择题 10 以下各语句或语句组中 正确的操作是 A chars 4 abcde B char s gets s C char s s abcde D chars 5 scanf s C 指针习题 单项选择题 11 以下程序的运行结果是 includemain char s xcbc3abcd inta b c d a b c d 0 for s s switch s case c c case b b default d break case a a printf a d b d c d d d n a b c d a a 的个数 b b c 的个数 c c 的个数 d 非 a 的个数 A a 1 b 5 c 3 d 8B a 1 b 2 c 3 d 3C a 9 b 5 c 3 d 8D a 0 b 2 c 3 d 3 A 指针习题 单项选择题 12 若有以下程序 includemain intargc char argv while argc printf s argv argc printf n 该程序经编译和连接后生成可执行文件S EXE 现在如果在DOS提示符下键入SAABBCC后回车 则输出结果是 A AABBCCB AABBCCSC CCBBAAD CCBBAAS C 指针习题 单项选择题 13 若有定义char language FORTRAN BASIC PASCAL JAVA C 则language 2 的值是 A 一个字符B 一个地址C 一个字符串D 不定值14 若有以下定义和语句 则对a数组元素地址的正确引用是 inta 2 3 p 3 p a A p 2 B p 2 C p 1 1D p 1 2 B C 指针习题 单项选择题 15 若有intmax p 为使函数指针变量p指向函数max 正确的赋值语句是 A p max B p max C p max a b D p max a b 16 若有定义inta 3 5 i j 且0 i 3 0 j 5 则a i j 不正确的地址表示是 A a i j B a i jC a i jD a i j A D 指针习题 单项选择题 17 设先有定义 chars 10 char p s 则下面不正确的表达式是 A p s 5B s p sC s 2 p 4 D p s 0 18 设先有定义 char s 则下面正确的表达式是 A s computer B s computer C s computer D s c B B 指针习题 程序填空题 1 定义compare char s1 char s2 函数 实现比较两个字符串大小的功能 以下程序运行结果为 32 选择正确答案填空 includemain printf d n compare abCd abc compare char s1 char s2 while s1 s1 s2 指针习题 程序填空题 2 以下程序用来输出字符串 includemain char a for switch if while char p for p a p a 4 p printf s n 2 p 指针习题 程序填空题 3 以下程序的功能是从键盘上输入若干个字符 以回车键作为结束 组成一个字符数组 然后输出该字符数组中的字符串 请填空 includemain charstr 81 p inti for i 0 i 80 i str i getchar if str i n break str i 0 3 while p putchar p 4 p str 指针习题 程序填空题 4 下面是一个实现把t指向的字符串复制到s的函数 请完成之 strcpy char s char t while 5 0 s t 指针习题 程序填空题 5 下面count函数的功能是统计子串substr在母串str中出现的次数 count char str char substr inti j k num 0 for i 0 6 i for 7 k 0 substr k str j k j if substr 8 0 num break return num str i 0 j i k 1 指针习题 程序填空题 6 下面connect函数的功能是将两个字符串s和t连接起来 connect char s char t char p s while s 9 while t s 10 s t s 0 11 s t return p 指针习题 阅读程序并写出运行结果 1 运行如下程序并分析其结果 includemain voidfun char s staticcharstr 123 fun str voidfun char s if s fun s printf s n s 指针习题 阅读程序并写出运行结果 2 运行如下程序并分析其结果 includevoidsub int x inty intz x y z main inta b c sub 阅读程序并写出运行结果 3 下列程序的功能是保留给定字符串中小于字母 n 的字母 请写出其结果并分析 includevoidabc char p inti j for i j 0 p i 0 i if p i n p j p i j p j 0 main charstr morning abc str puts str 4 运行如下程序并分析其结果 includemain char a 4 Tokyo Osaka Sapporo Nagoya char pt pt a printf s a 2 阅读程序并写出运行结果 5 设如下程序的文件名为myprogram c 编译并连接后在DOS提示下键入命令 myprogramonetwothree 则执行结果是 includemain intargc char argv inti for i 1 i argc i printf s c argv i i argc 1 n 编程题 编一程序 求出从键盘输入的字符串的长度 编一程序 将字符串中的第m个字符开始的全部字符复制到另一个字符串 要求在主函数中输入字符串及m的值并输出复制结果 在被调用函数中完成复制 输入一个字符串 按相反次序输出其中的所有字符 输入2个字符串 将其连接后输出 编写一个密码检测程序 程序执行时 要求用户输入密码 标准密码预先设定 然后通过字符串比较函数比较输入密码和标准密码是否相等 若相等 则显示 口令正确 并转去执行后继程序 若不相等 重新输入 三次都不相等则终止程序的执行 编写一程序 求出某个二维数组中各行的最大值 并指明其位置 编写一程序 求某个字符串的子串 编程题 参考解答 结构体习题 结构体习题 单项选择题 1 下面正确的叙述的是 A 结构一经定义 系统就给它分配了所需的内存单元B 结构体变量和共用体变量所占内存长度是各成员所占内存长度之和C 可以对结构类型和结构类型变量赋值 存取和运算D 定义共用体变量后 不能引用共用体变量 只能引用共用体变量中的成员2 结构体类型变量在程序执行期间 A 所有成员驻留在内存中B 只有一个成员驻留在内存中C 部分成员驻留在内存中D 没有成员驻留在内存中 返回目录 D A 结构体习题 单项选择题 3 设有以下定义structdate intcat charc inta 4 longm mydate 则在TurboC中执行语句 printf d sizeof structdate 的结果是 A 25B 15C 18D 8 B 结构体习题 单项选择题 4 在说明一个共用体变量时系统分配给它的存储空间是 A 该共用体中第一个成员所需存储空间B 该共用体中最后一个成员所需存储空间C 该共用体中占用最大存储空间的成员所需存储空间D 该共用体中所有成员所需存储空间的总和5 共用体类型变量在程序执行期间的某一时刻 A 所有成员驻留在内存中B 只有一个成员驻留在内存中C 部分成员驻留在内存中D 没有成员驻留在内存中 C B 结构体习题 单项选择题 6 对于下面有关结构体的定义或引用 正确的是 structstudent intno intscore student1 A student score 99 B studentLiMing LiMing score 99 C stuctLiMing LiMing score 99 D stuctstudentLiMing LiMing score 99 D 结构体习题 单项选择题 7 以下说法错误的是 A 结构体变量的名称为该结构体变量的存储首地址B TurboC中 结构体变量占用空间的大小为各成员项占用空间大小之和 而共用体占用空间大小为其成员项中占用空间最大的成员项所需存储空间大小C 结构体定义时不分配存储空间 只有在结构体变量说明时 系统才分配存储空间D 结构体数组中不同元素的同名成员项具有相同的数据类型 A 结构体习题 单项选择题 8 若有以下说明和语句 structteacher intno char name xiang p 则以下引用方式不正确的是 A xiang noB p noC p noD xiang no D 结构体习题 程序填空题 1 以下程序段的作用是统计链表中结点的个数 其中first为指向第1个结点的指针 structnode chardata structnode next p first intc 0 p first while 1 2 p 3 p NULL c p next 结构体习题 程序填空题 2 以下程序中使用一个结构体变量表示一个复数 然后进行复数加法和乘法运算 includestructcomplex number floatreal virtual main structcomplex numbera b sum mul printf 输入a real a virtual b real和b virtual scanf f f f f a real b real a virtual b virtual a real b real a virtual b virtual a virtual b real a real b virtual 结构体习题 程序填空题 3 以下程序用于在结构体数组中查找分数最高和最低的同学姓名和成绩 请在程序中的空白处填入一条语句或一个表达式 includemain intmax min i j staticstruct charname 10 intscore stud 6 李明 99 张三 88 吴大 90 钟六 80 向杰 92 齐伟 78 max min 1 for i 0 istud max score 8 elseif stud i score stud min score 9 printf 最高分获得者为 s 分数为 d 10 printf 最低分获得者为 s 分数为 d 11 max i min i stud max name stud max score stud min name stud min score 结构体习题 阅读程序并写出程序运行结果 注 在不同机器上运行的结果可能不一样 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 本程序的一次运行结果如下 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 阅读程序并写出程序运行结果 结构体习题 编程题 1 编写input 和output 函数输入 输出5个学生的数据记录 每个学生的数据包括学号 num 6 姓名 name 8 和4门课的成绩 score 4 要求在main 函数中只有input 和output 两个函数调用语句即可实现 2 创建一个链表 结点数目从键盘输入 每个结点包括 学号 姓名和年龄 链表建立完毕 请将链表按记录逐行显示出来 3 假设某链表的结点结构同上面的第2题 链表头指针为head 请你设计一个显示链表的函数 4 假设某链表的结点结构同上面的第2题 链表头指针为head 请你设计一个在链表删除一个指定结点的函数 结构体习题 编程题 参考解答
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!