C语言试题训练.docx

上传人:太** 文档编号:96808930 上传时间:2024-03-22 格式:DOCX 页数:24 大小:20.80KB
返回 下载 相关 举报
C语言试题训练.docx_第1页
第1页 / 共24页
C语言试题训练.docx_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《C语言试题训练.docx》由会员分享,可在线阅读,更多相关《C语言试题训练.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言试题训练c语言试题训练引导语:现如今,c语言的应用已经越来越广泛,学习的人也越 来越多,以下是我整理的C语言试题训练,欢迎参考阅读!C语言试题训练篇1一、单项选择题:(1。分,每题2分)1 .设有以下定义:int a3 3 = 1, 2, 3, 4, 5, 6, 7, 8, 9;int (*ptr) 3 = a, *p = a0;则以下能够正确表示数组元素2的表达式是。A) *(*ptr + 1) 2)B) *(*(p + 5)C) (*ptr + 1)D) *(*(a +1)+2)2 .有如下程序片段:printf (%d , deb. limbs);printf (%s , pb-t

2、y);printf (%s , pb-ty + 2);运行结果是:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句, 使程序完整并符合题目要求。(8分,每空1分)1.下面这个程序的功能是对含有n个元素(最多10个)的一维数 组按升序进行排序。#include#define ARRAY SIZE 10void Sort (int a, int n);void InputArray(int a, int n);void PrintArray(int a, int n);main () int aARRAY_SIZE, n;printf(Input array lenth n=10:);sc

3、anf (%d, n);printf (输入数组a:);InputArray(a, n);Sort (a, n);printf (打印排序后的数组a:);PrintArray (a, n);void Sort (int a, int n)(int i, j, p, temp;for (i = 0; i ; i+)(P = i; for(j = ; j n; j+)if( ) P = j; if() temp = ap;ap = ai;ai = temp;void InputArray(int a, int n) int i;for (i = 0; i n; i+)void PrintArray

4、(int a, int n) int i;for (i = 0; i n; i+) printf(%d , ai);printf();2.下面程序的功能是从键盘输入一行字符,统计其中有多少单 词。假设单词之间以空格分开。提示:推断是否有新单词消失的方 法是当前被检验的字符不是空格,而前一被检验字符是空格, 则表示有新单词消失。includemain()(char str80;int i, num;gets(str);if (str 0 !二)(num = 1;)else(num = 0;for(i = 1 ; stri ; i+)if(str i stri-l) num+;)printf(nu

5、m=%d , num);四、在下面给出的4个程序中,共有16处错误(包括语法错误 和规律错误),请找出其中的错误,并改正之。(30分,每找对1个 错误,加1分,每修改正确1个错误,再加1分。只要找对15个即 可,多找不加分。)1 .在给定的一组书名中,从键盘任意输入一个书名(书名可以 有空格)。若找到,则打印该书名,否则打印“没找到”。#include#includemain () int i, findFlag=0;char x;char str 13 = Pascal, Basic, Fortran, Java,Visual C, Visual Basic ;printf (请输入一个字符

6、串:);gets(x);while (i6 !findFlag)if (x = stri)(findFlag = 1;)i+;if (findFlag)else(printf (没找到!);)2 .打印100200之间的全部素数。#include#includemain()int m, i ;for(m = 100; m = 200; m+) for(i = 2; i sqrt(m) flag; i+)if(m%i = 0)flag = 0;)if (flag)printf(%d , m);3 .从键盘输入任意一个同学的学号,在班级同学表中(同学表的 学号是按升序排序的,且班级最多30人)查找

7、该学号是否存在,存 在打印其考试成果,否则打印“Not find!”。#includedefine ARR_SIZE 30;int Search ( long *p, int n, long x );main() long numARR_SIZE, x;float scoreARRSIZE;int i, n, pos;printf (输入班级实际人数:);scanf (%d, n);printf (输入同学学号和成果);for(i=0; in; i+)(scanf(%ld %f , numi, scorei);)printf (输入待查找学号:);scanf (%d, x);pos=Searc

8、h (num, n, x);if ( pos + 1 )while(i+ = 2);printf (%d, i);则正确的执行结果是:A) 2 B) 3C) 4 D)无结果3 .合法的数组定义是。A) int a=language;B) int a5 = 0, 1,2, 3,4,5);C) char a =string;D) char a = 0, 1, 2, 3, 4, 5);4 .设有如下定义:struct st(int a;float b;printf (score=%f , score pos);else printf( Not find!);int Search( long *p,

9、int n, long x );int i, flag;for ( i=0 ; i n; i+ ) if ( *( p+i ) = x ) flag = i;break;elseflag = -1;return flag)4.该程序的作用是将一个字符串中的元音字母复制到另一个字 符串,然后输出。#includemain ()char strl 80, str2 80;printf(输入一个字符串:);gets(strl);Cpy(strl, str2);printf (输出一个字符串);puts(str2);)void Cpy (char s , char c )(int i, j;for(i

10、=0; si != ; i+)if (si= a| | si= A| | si= e| | si= E si= i | | si= 11 | si= o| | si= 01 si= u| | si= U)si=cj;j+;五、编程(42分)1 .编程计算:1!+3!+5!+(2n-l)!的值。其中,n值由键盘输 入。(14分)2 .不用标准库函数strlen,自己编写一个函数MyStrlen,实现 计算字符串长度的功能。要求在主函数中输入一个字符串(可以读入 空格),并在主函数中打印字符串的长度。(14分)请按以下给定的函数原型编写程序:int MyStrlen(char str);或int

11、MyStrlen(char *p);注:不按给定的函数原型或使用全局变量编写程序不给分。3 .编写一个函数,求最大值及最大值所在元素的下标。要求在主 函数中通过键盘任意输入一组数(最多10个),且在主函数中打印最 大数及最大数元素的下标。(14分)请按以下给定的函数原型编写程序:void Findmax (int num, int n, int *pMaxNum, int *pMaxPos);或void Findmax(int *p, int n, int *pMaxNum, int *pMaxPos);注:不按给定的函数原型或使用全局变量编写程序不给分。C语言试题训练篇21、在C语言中,下列

12、标识符中合法的是()A). -intB). inl_3 C). A_B!D D). const2、不属于C语言基本数据类型的是()A). int B). union C). char D). unsigned3、下面是对宏定义的描述。不正确的是()A).宏不存在类型问题,宏名无类型,它的参数也无类型B).宏 替换不占用运行时间0.宏替换只是字符串的简洁替代D).宏替换时先检查类型,类型全都时才可以替换4、C语言中, xfds在内存中占用的、字节数是()A). 3 B).4 C).5 D). 65、设 int x;则执行 printf ( x , x%);的结果是()A), ffffffff B

13、). ff C). 0 D). 16、对于 while ()A).用条件掌握循环体的执行次数B).循环体至少要执行一次C).循环体有可能一次也不执行D).循环体中可以包含若干条语 句7、执行下列语句后输出的结果是()int a=8, b=7, c=6;if(ac) a=c;c=b;)if (bprintf (%d, %d, %d , a, b, c);A). 6, 7, 7 B). 6, 7, 8 0.8, 7, 6 D),8, 7, 88、设 int a=9, b=20;则 printf ( %d, %d , a-, -b);的输出 结果是()A). 9, 19 B).9, 20 C).10

14、, 19 D). 10, 209、设 static charx二 12345,y = , 2, 3,, 4 , 5 , 那 么()A). x数组的长度等于y数组的长度B). x数组的长度大于y数组 的长度0. x数组的长度少于y数组的长度D). x数组与y数组的存储区 域相同10、设 int 二*33 = 1,2,3,4,5,6,7,8,9;则下面语句的输 出结果是()for (i=0;i3;i+)printf%d ,xi2-i);A). 147 B). 159 C).357 D). 36911、执行完下列语句后,n的值是()int n;for (n=0 ; nlOO ; n=2*n+l);A

15、). 125 B). 126 C). 127 D). 12812、有以下语句:int a=6;a+二a-=a*a;printf ( %d”,a);输出 结果()A). - 132 B). -60 C). -24 D). 013、为了连接两个字符串si与s2,应当使用()A). strcat ( si, s2 ) B). strcpy ( si, s2 ) C). strlen ( si, s2 ) D). strcmp( si, s2 )14、设int a, *p;则语句p二a;中的运算符的含义是()A).位与运算B).规律与运算C).取指针内容D).取变量地址15、下面输出的结果为()int

16、 a=13, b=64;printf ( “d ,!a | (b3) ); A).13 B).64 C). 1 D). 016、下列定义正确的是()A). enum a, b x; B). enum t 1, 2 x; C). enum + , x; D). enum ta, bx;17、设有定义:struct uint a4 ;float b3 ; char c16 ;aa;则 printf(%d , sizeof (aa);的输出是()A). 32 B). 36 C). 12 D).818、数据-54. 78在文本文件中占用的字节个数是()A).4 B). 5 0.6 D). 819、在宏

17、定义#16口优p(r) 3. 14*r中,请问宏名是()A). p B). p (r) C). 3. 14*r D). p (r) 3. 14*r 20、要打开一 个已存在的用于修改的非空二进制文件“hello.txt”,正确语句是 ()A). fp=fopen( hello, txt , r ) B). fp=fopen( hello, txt , ab+ ) C). fp=fopen( hello, txt , w ) D). fp=fopen( hello, txt ,r+ )文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。stl, *pst;若有pst二stl;则下

18、面引用正确的是 oA) (*pst.stl.b) B) (*pst).bC) pst-stl. b D) pst. stl. b5.假如int i=3,则printf(%d, -i+ )的输出结果是,i 的值是。A) -3 4 B) -4 4C) -4 3 D) -3 3二、写出下列程序的运行结果。(10分,每题2分)includemain ()int x, y;scanf(%2d%*2s%ld, x, y);printf (%d, x/y);程序运行时输入:2345678/则程序运行结果是:ttincludemain()(int i=0;while (i 3)(switch (i+)(cas

19、e 0:printf(fat);break;printf(hat);printf(cat);default:printf(Oh no!);put );)运行结果是:ttincludeint Square(int i);main()int i=0;i = Square(i);for( ; i5; i+=2 )(static int i = 1;i += Square(i);printf (%d , i);)printf(%d , i);)int Square(int i)return i*i;程序运行结果是:4.#include void inv(int *p, int n);main ()(i

20、nt i;int a10 = 13, 7, 9, 11,0, 6, 7, 5, 4, 2;for(i=0; ilO; i+)(printf(%d,ai);printf();inv (a, 10);for(i=0; ilO; i+) printf (%d, ai);void inv(int *p, int n)(int *i, *j, m = (n - 1) / 2, t;j = p + n - 1;for(i = p; i = p + m; i+, j-)(t =*i; *i =*j; *j = t;)程序运行结果:5.includestruct namechar first20_ char last20;);struct beamint limbs;struct name title;char ty 30;);main()struct beam *pb;struct beam deb = 6, Berbnazel, Gwolkapwolk), Arcturan);pb=deb;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁