欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言学校题库专项练习1.pdf

    • 资源ID:88916120       资源大小:9.70MB        全文页数:125页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言学校题库专项练习1.pdf

    C 语言学校题库专项练习1专 项 1 选择题500道1.设有如下函数fac(int x)(float y=1.0;return(x*y);则函数的类型为().AJnt 型B、float 型C、无法确定Devoid 型注:不定义时默认是int2.以下程序输出的是:()(答案中用大写字母U 代表空格)main()int a=-l,b=4,k;k=(a+=0)&(!(b-=0);printf(%d%d%dn,k,a,b);)A.0U1U2B.0U0U3C、1U0U3D.1U1U2注:k=(a+=0)&(!(b-=0);a=a+=a+1=0b=b=b-l=3a+=0为真(b-)=0 为假,则!(b-)=0 为真所 以 k=l答 案 是 1 0 33.执行下列程序段后,m 的值是().int w=2,x=3,y=4,z=5,m;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A、5B、3C、2D、44.设有以下定义:int a43=l,2z3z4,5,6,7,8,9,10,llz12);int(*prt)3=a,*p=a0;则 能 够 正 确 表 示 数 组 元 素 的 表 达 式 是().A、*(*(p+5)B、*(*(a+l)+2)C、*(*prt+1)D、(*prt+l)+2注:参考二维数组指针如下1.通过地址来引用二维数组元素若有以下定义:int 且当04i3、04j4,则 a 数组元素可用以 F 五种表达式来引用:(l)aij(2)*(ai+j)(3)*(*(a+i)+j)(4)(*(a+i)j(5)*(&a00+4*i+j)2.当p 数组的每个元素指向a 数组每行的开头时,则 a 数 组 元 素 的 引 用 形 式*(ai+j)和*(pi+j)是完全等价的。由此可见,这时可以通过指针数组p来引用a 数组元素,它们的等价形式如下:(l)*(pi+j)(2)*(*(p+i)+j)(3)(*(p+i)j(4)pij不同的是:pi中的值是可变的,而 ai中的值是不可变的。3.通过建立一个行指针来引用二维数组元素若有以下定义:int a32,(*prt)2;在这里,说明符(*prt)2中,由于一对圆括号的存在,所以*号首先与prt结合,说明prt是一个指针变量,然后再与说明符2结合,说明指针变量prt的基类型是一个包含有两个int元素的数组。在这里,prt的基类型与a 的相同,因此p代=a;是合法的赋值语句。prt+1等价于a+1、等价于al当 prt指向a 数组的开头时,可 以 通 过 以 下 形 式 来 引 用*(prti+j)(2)*(*(prt+i)+j)(3)(*(prt+i)j(4)prtiU在这里,prt是个指针变量,它的值可变,而 a 是一个常量。5.下列字符序列中,可用作C 标识符的一组字符序列是()。A,D56,r_l_2,name,_st_lB,S.b,sum,average,_aboveC、#md,&12x,month,student_n!D,class,day,lotus_l,2day6.设j 和 k 都是int类型,则下面的for循环语句0。for(j=0,k=0;jageD.p.age9.以下程序的输出结果是().#include stdio.hf(char*s)char*p=s;while(*p!=0,)p+;return(p-s);m ain()printf(,%dn,f(,ABCDEF);)A、0B、6C、3D、810.执行下面程序中的输出语句后,输出的值是:(),main()int a=5;printf(%dnHz(a=3*5za*4,a+5);A、20B、65C、10D、15I L 下列程序段的输出结果是:().void fun(int*x,int*y)printf(%d%d,*x,*y);*x=3;*y=4;main()int x=l,y=2;fun(&y,&x);printf(%d%d,x,y);)A、2 1 1 2B、1 2 3 4C、2 1 4 3D、1 2 1 212.若fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()A.-1B、1C、一个非。值D、0注:未遇到文件结束返回为0,读取错误为-1,正常结尾为113.有两个整型变量dog和 cat,若要从磁盘文件把数据读到其中,正确的形式是().AJscanf(dog,2,1,fp);B,fscanf(fp,%d%d,&dog,&cat);C、fscanf(dog,cat,2,l,fp);D,fscanf(fp,%d,&dog,&cat);14.逻辑表达式33-!0的值为:()A、1B、3c、oD、215.以下程序段中,能够正确地执行循环的是0。AJnt s=6;m:if(s10;i+)D,static int a;while(a)16.char a=This is a program.;输出前 5 个字符的语句是0。A、puts(a);B,printf(%5s,a);C,printf(%s,a);D,a5*2=0;puts(a);注:A puts(a);输出a 的整个字符串C printf(%s,a);输出a 的整个字符串D a5*2=0;puts(a);将 a10赋值为0 后,输 出 a 的前十个字符即This is a;只有B 是输出前5 个字的语句。17.已知下面的程序段,若使得i=10,j=15,x=9.6,y=81.73正确的输入语句是().main()int i,j;float x,y;A.scanf(%d,%d,&i,&j);scanf(%f,%5.2f,&x,&y);B,scanf(%d,%d,&i,&j);scanf(%e,%5.2f,&x,&y);Cscanf(%d,%d,i,j);scanf(%f,%f,&x,&y);D,scanf(%d,%d,&i,&j);scanf(%f,%f,&x,&y);18.下述程序的输出结果是().void prt(int*x)printf(%d,+*x);main()int y=30;Prt(&y);)A、32B、30C、29D、3119.表达式18/4*sqrt(4.0)/8值的数据类型为()A,doubleB,floatCJntD、不确定20.若k 是整型,则以下程序段的执行结果是:()k=-3;if(k0C、num=0DJnum!=027.假定有以下变量定义:int k=7,x=12;则能使值为3 的表达式是:()A、(x%=k)-(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、x%=(k%=5)28.char*sl=hello,*s2;s2=sl;则()A、puts(sl);与 puts(s2);结果相同B、不能访问helloC、s2指向不确定的内存单元D、s l 不能再指向其它单元29.下面选择中正确的赋值语句是(设char a5,*p=a;)().A、p=abcd;B,a=abcd;C,*a=abcd;D、*p=abcd;3O.static struct int al;float a2;char a3;a10=l,3.5,A);说明数组a 是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()A、aB,a10C、alD.a-131.以下正确的说法是0。A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调B、用户若需调用标准库函数,调用前必须重新定义C、系统根本不允许用户重新定义标准库函数D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义32.以下正确的函数定义是().A,double fun(int x,int y)z=x+y;return z;B、fun(x,y)int x,y;double z;z=x/y;return z;C,float f(int x,int y)float z;z=x/y;retrun z;D Jun(int x,y)int z;return z;33.int 按照数组a 的元素在内存的排列次序,希望将1,2,3,4,5,6存入a 数组中,以下语句无法实现的是()。A Jor(i=l;i=6;i+)aii=i;BJor(i=0;i6;i+)ai/3i%3=i+l;C Jor(i=0;i2;i+)for(j=0;j3;j+)aij=i*3+j+l;D,for(i=0;i3;i+)for(j=0;j1)D,while(M1)38.定义int a=0,123,4,5,6,7,8,9,*p=a,i;,其中 0Si49,则对a 数组元素的引用不正确的是().A.ap-aB、piC、*(*(a+i)D、*(&ai)39.在执行 文件包含 命令时,下列说法正确的是().A、作为一个源程序编译,得到一个目标文件.B、一 个 include命令可指定多个被包含文件.C、在编译时作为两个文件联结.D、被包含的文件可以是源文件或目标文件.40.已定义 float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().y+x=4.62,y-x=2.12A.printf(y+x=%6.2f,y-x=%6,2fn,y+x,y-x);B.printf(y+x=%f,y-x=%fn,y+x,y-x);C,printf(y+x=%.2f,y-x=%.2fn,y+x,y-x);D,printf(y+x=%5.2f,y=%5.2fn,y+x,y-x);41.在执行fopen函数时,ferror函数的初值是(),A、-lB、0C、TRUED、142.若以a+方式打开一个已存在的文件,则以卜叙述正确的是0,A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作B、以上各种说法皆不正确C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作D、文件打开时,原有文件内容被删除,只可作写操作43.对for(表达式1;表达式3)可以理解为().A、for(表达式1;表达式3;表达式3)B、for(表达式1;表达式1;表达式3)C、for(表达式1;1;表达式3)D、for(表达式1;0;表达式3)44.下述错误的C 语言常量是:().A、OxfB、5.C090D、.25注:0 开头的话,说明是八进制数,八进制数里只会出现字符0 7,不可能有9 的45.如果在一个函数中的复合语句中定义了个变量,以下正确的说法是().A、该变量在本程序范围内均有效B、该变量在主函数中有效C、该变量只在该复合语句中有效D、该变量在该函数中有效46.对于如下的结构体定义,若对变量person的出生年份进行赋值,正确的赋值语句是().struct dateint year,mouth,day;);struct worklistchar name20;char sex;struct date birthday;person;A、year=1976;B,person.birthday.year=1976;C、birthday.year=1976;D,person.year=1976;4 7.卜述函数的功能是().int fun(char*x)char*y=x;while(*y+);return y-x-1;)A、比较两个字符串的大小B、求字符串存放位置C、求字符串的长度D、将字符串x 连接到字符串y 后面48.下面程序的输出结果应该是().void prtv(int*x)printf(%dn,+*x);main()int a=25;Prtv(&a);)A,24B、26C、23D、2549.若fp 是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是0。A.NULLB、非零值C、0D、EOF50.若定义 int a12=l,2z3,4,5,6,7,8,9z10,U,12;char c=a,d,g;则数值为4 的表达式是().A、a4B、ag-cC.afd-cD,ad-c51.设有以下语句,若 0k4,下列选项中对字符串的非法引用是()char str42=aaa,bbb,ccc,ddd),*strp4;int j;for0=O;jb)c=l;else if(a=b)c=0;else c=-l;return c;)A、0B、-lC、2D、156.以下程序的输出结果是().m ain()char str=ABCD,*p=str;printf(%dn,*(p+4);A,68B、字符D 的地址C、不确定的值D、057.函数fun用于将一字符串按相反次序显示,则横线上的表达式为().void fun(char*s)if(!*s)return;printf(%c,*s);)A.printf(%s,s+1);B、fun(*(s+1);C,printf(%s,s+strlen(s)-l);D Jun(s+1);注:运行第一次的时候,s 为首地址的对吧,我们假设为sO,在调用fun(s+l州 寸,进入一个递归,此时,还未调用到打印的地方,那么此时s 为第二个字符,此时s 为 si,依次类推,当运行到最后一位是打印的数据为s(end),此时s(end)为空字符,return 了对吧,那么返回上一个,也就是字符串最后一个不为空的字符,并打印结束后再返回,然后再逐个打印,就将字符串逆向打印出来了58.filel.c中有命令,#include,若 file2.c中有全局静态变量a,则().A、a 在 filel.c中应用extern说明.B、a 在 filel.c中有效,不必用extern说明.C a 在 filel.c中不生效D、a 在 filel.c和 file2.c中均不生效.59.设有宏定义#define PI 3.14 和#define S(r)PI*r*r,则 S(2)的值为().A、6.28B.12.56C、3.14D、9.4260.所谓文本文件又叫()文件.A、图象B、保存C.ASCIID、可执行61.在函数调用语句中,fopen(my.dat,ab+);的含义是().A、为读/写打开一个二进制文件B、读一个二进制文件C、为读/写打开一个文本文件D、为写打开一个二进制文件62.以下可作为函数fopen中第 个参数的正确格式是()A,c:usertext.txtB、c:usertext.txtC.c:usertext.txtD,c:usertext.txt注:字符串中的 必须用转义字符 63.假定所有变量均已正确定义,下列程序段运行后x 的值是0kl=l;k2=2;k3=3;x=15;if(!kl)x-;else if(k2)x=4;else x=3;A、4B、15C、3D、1464.以下程序段给数组所有的元素输入数据,请选择正确答案填入(),#include main()int a10,i=0;while(i0|E0)B、(E=O)C、(!E=O)D、(日=0)66.在Turbo C 运行环境下,下列说法中正确的是().A、双引号中字符串的字符,如果与宏名相同,就要替换.B、用宏定义不可以得到多个返回值.C、双引号中字符串的字符,即使与宏名相同,也不替换.D、调用函数可以得到多个返回值.67.以下能计算1+2+3+10的程序段是().A、do i=l;s=0;s=s+i;i+;while(i=10);BJ=l;s=0;while(i=10);D,i=l;s=0;while(i=10)s=s+i;i+;68.在所有函数之前,定义个外部变量的形式为static int x;那么错误的叙述是().A、x 的值不可以永久保留B、将变量存放在静态存储区C、使变量x 可以山系统自动初始化为0D、使 x 只能被本文件中的函数引用69.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是().w=65535,t=7654321endA.printf(w=%5d,t=%7dn,w,t);printf(%s,end);B,printf(w=%5ld,t=%7ld,w,t);printf(%c,end);C,printf(w=%5ld,t=%7ldn,w,t);printf(%s,end);D,printf(w=%5uzt=%7un,w,t);printf(end);70.函数调用:strcat(strcpy(strl,str2),str3)的功能是()A、将串s trl复制到串str2中后再连接到串str3之后B、将串str2连接到串s trl之后再将串s trl复制到串str3中C、将串s trl连接到串str2之后再复制到串str3之后D、将串str2复制到串s trl中后再将串str3连接到串s trl之后71.若 int类型数据占两个字节,则下列语句的输出为(),int k=l;printf(%d,%un,k,k);A,-1,-1B,-1,32767C-1,32768D、-1,65535注:u 为以无符号十进制输出。无符号整数能表示的数范围是0-65535,即对应的二进制数 0-1111111111111111(16 个 1)oint b=-l;b 为有符号的整型,以 1111111111111111(16个 1)的二进制数存储。(-1-进制表示为10000000000000001,负数在计算机中用反码表示,即 1111111111111111)1,如果用d 输出b,则为-1,但是转换成无符号整数u 输出,1111111111111111(原来的有符号整数-1)被解释成1111111111111111(无符号整数6 5 5 3 5),输出结果为6553572.设a=12,且 a 定义为整型变量。执行语句a+=a-=a*=a;后 a 的值为()A、0B、144C、132D、1273.执行语句for(i=l;i+4;);后 变 量 i 的值是()。A、3B、5C、4D、不定74.设有宏定义#define MA(x)x*(x-l),且 a=l,b=2,则 MA(l+a+b)的值为().A、10B、12C、8D、6注:l+a+b*(l+a+b-l)=l+l+2*3=875.在 文件包含 的预处理中,被包含的文件应是().A、源文件B、可执行文件C、目标文件D、批处理文件76.int a10=l,2,3,4,5,6,7,8;int*p;p=&a5;p-3的值是(),A、4B、2C、不一定D、377.以下 for 循环的执行次数是 for(x=0,y=0;(y=123)&(x4);x+);()A、3 次B、循环次数不定C、4 次D、是无限循环注:循环中止条件语句为:(y!=123)|(x4),当它的值为 真 时,会继续执行循环.也就是说只要(y!=123)或(x4)其中之为 真 时,会继续执行循环.循环执行的前4 次,因(x4)为 真,所以循环会执行;之后(x4)为 假,只要循环体内有语句对 y 变量值进行修改,并且在某次修改中令y=123,也就是(y!=123)为 假,循环即被中止;否则肯定是死循环了!78.执行下列程序后,其输出结果是。main()int a=9;a+=a-=a+a;printf(%dn,a);A,18B、-9C、9D、-1879.对于下述定义,不正确的叙述是().union dataint i;char c;float f;a,b;A、变量a 的地址和它的各成员地址都是相同的B、可以在定义时对a 初始化C、变量a 所占内存的长度等于成员f 的长度D、不能对变量a 赋值,故 a=b非法注:共用体所占内存大小就是其中占内存最大的变量所占内存的大小80.下面函数的功能是:().sss(s,t)char*s,*t;while(*s)&(*t)&(*t+=*s+);return(*s-*t);)A、将字符串s 续接到字符串t 中B、求字符串的长度C、比较两个字符串的大小D、将字符串s 复制到字符串t 中81.若a 为 int类型,且其值为3,则执行完表达式a+=a-=a*a后,a 的值是0。A、6B、-12C、9D、-382.执行下面程序段后,i 的值是().int i=10;switch(i)case 9:i+=l;case 10:i-;case 11:i*=3;case 12:+i;)A,28B,10C、9D、2783.若有以下结构体定义:struct example int x;int y;vl;则()是正确的引用或定义.A,example.x=10;Bs struct v2;v2.x=10;C.example v2;v2.x=10;D.struct example v2=10;84.关于带参数的宏,下列说法正确的是().A、宏展开只能得到个结果.B、宏展开时要进行内存单元的分配.C、宏展开时,不求参数的值,而只进行字符替换.D、宏名无类型,但是它的参数是有类型的.注:1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有 返回值 的概念。3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换:而宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表,展开时带入指定的字符即可。宏定义时,字符串可以是任何类型的数据。4.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。5.使用宏次数多时,宏展开后源程序长,因为每展开一次都使程序增长,而函数调用不使源程序变长。6.宏替换不占运行时间。而函数调用则占运行时间(分配单元、保留现场、值传递、返 回)。一般来说,用宏来代表简短的表达式比较合适。85.若有double*p,x10;int i=5液指针变量p 指向元素x5的语句为()。A、p=ξB、p=xi;C、p=x;D、p=&(x+i)86.下列变量定义中合法的是0。A,double b=l+5e2.5;B,unsigned u=10;C,float 2_and=l-e-3;DJong do=OxfdaL;87.定义my_file为文件型指针变量,使用fopen打开 个能读能写的新的文本文件,正确的调用形式为().A、my_file=fopen(my.dat,wb+);B、my_file=fopen(my.dat,ab+);C、my_file=fopen(my.dat,r+);D、my_file=fopen(my.dat,w+);88.若有 int a10=0,l,2,3,4,5,6,7,8,9,*p=a;则输出结果不为 5的语句为()A.printf(%d,*p5);B,printf(%d,p5);Cprintf(%d,*(a+5);D.printf(%d,*(p+5);89.以下正确的说法是().A、函数的类型决定返回值的类型B、定义函数时,形参的类型说明可以放在函数体内C,return后面不能为表达式D、如果形参与实参的类型不致,以实参类型为准90.以下程序的输出结果是().main()char*alpha6=ABCD,EFGH,DKL,MNOP,QRST,UVWX;char*p;int i;p=alpha;for(i=0;ic)b=a;a=c;c=b;则 c 的值为()。A、1B、3C、2D、不一定92.对于下列的语句,对数组a 的元素的不正确引用是().其中0=i=10);B、do i=l;s=l;s=s*i;i+;while(i=10);C、i=l;s=l;do s=s*i;i+;while(i=10);97.设p l和 p2是已经赋值的字符指针,则下述有关运算中,非法的语句是().A,*(pl-2+p2)=getchar();BJf(pl=p2)printf(equal.);C、*(pl+=2)=*p2;D,pl=pl-(pl-p2)+30;98.以IBM PC 计算机为例,-个实型变量以二进制形式保存到文件后,该变量需占()字节空间.A、2B、1C、4D、399.以下程序的输出结果是:().fun(int x,int y,int z)z=x*x+y*y;m ain()int a=31;fun(5,2,a);printf(%d,a);A、无定值B、29C、31D、0100.若有#define S(r)PI*r*r,则 S(a+b)展开后的形式为(),A、PI*a*a+PI*b*bB、PI*a+b*a+bC、PI*(a+b)*(a+b)D、Pi*r*r*(a+b)101.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是0A,0.000000B、2.750000C,3.500000D,2.500000102.下面程序的输出结果应该是().char s=ABCD;main()char*p;for(p=s;ps+4;p+)printf(%s,p);)A、DCBAB.ABCDBCDCDDC.ABCDABCABAD.ABCD103.程序运行结束后,屏幕上输出值为().static int x=10;m ain()int x=3;f();X-;printf(%d,x);)f()x+;)A、10B、2C.llD、3104.在函数调用语句中,fopen(my.dat,rb);的含义是().A、为写打开一个二进制文件B、读一个二进制文件C、为读/写打开一个二进制文件D、为输入打开一个二进制文件105.若以卜变量均是整型,且 num=sum=7;则计算表达式sum=num+,sum+,+num 后 sum 的值为()。A、7B、8C、9D,IO106.下列程序段的输出结果为O float k=0.8567;printf(%4.1f%,k*100);A、85.6%B、85.6%C、85.7%D、.857107.以下程序的输出结果是()。main()char s=123,*p;P=s;printf(%c%c%cn,*p+,*p+,*p+);)A、321B,123C、312D、213注:此程序在vc下结果为1 1 1,在 codeblocks下结果为321;因为函数参数入栈时是从右到左,所用最右边一个先入栈,再将p 加 1,再执行第2 个,再P+L 因此printf参数入栈时,第 1 个参数指向(p+2),最后一个指向(p)因为函数传参,参数是通过堆栈传入函数内,在函数内使用前再从堆栈中取出,入栈是从最后一个参数开始的,出来时从第一个开始,相当于:调用时:push(*p);p+;push(*p);p+;push(*p);p+;,但是第一个 push 是最右边的参数出来时:v l=pop(),v2=pop(),v3=pop().108.ggg(x)float x;printf(n%f,x*x);)则函数的类型为().A、是 intB、无法确定C、与参数x 的类型相同D、是 void注:不定义时默认是int109.下列程序的输出结果为0,main()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+l/2;printf(%fn,x);)A,27.000000B,28.000000C,27.500000D,28.500000110.在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是().A、用尖括号时,直接按系统标准方式检索文件目录.B、用双引号时,直接按系统标准方式检索文件目录.C、用双括号和尖括号时,都不检查源文件所在的文件目录.D、以上说法都不对.111.打印语句printf(sTUDENDbTrS);在屏幕上正确的输出形式是().A、sTUDENDSB.TUDENTSC.STUDENTD,STUDENTS112.本程序的输出结果是().m ain()int a 3=l,2,3,4,5,7;printf(%dn,*al);A、4B、2C、1D、5113.用户定义的函数不可以调用的函数是()A、本文件外的B、本函数下面定义的C、非整型返回值的Domain函数114.有以下程序段int n=O,p;doscanf(%d,&p);n+;while(p!=12345&nc的结果为假B、!a!=(b!=c)表达式的值为1Ca|(b=c)执行后b 的值为0D、ab!=c和 a(b!=c)的执行顺序是一样的116.若 x 是整型,且有程序段 for(x=3;x0)puts(s2);B、if(strcm p(s2,t)0)puts(s2);Cs if(strcmp(slzt)0)puts(s2);D.if(strcmp(sl,sl)0)puts(s2);121,从键盘输入的整数中找出最小值min,输入0 时结束.请在A 处填写正确语句()#include stdio.hmain()int min=0,a;doscanf(”cT,&a);if(mina)min=a;while(_A_);printf(n%dzmin);)A、a=0B、a=0C.a0&a(y)?(x):(y),则 F=4*MAX(2,3)的值为().A、3B、2C、12D、8128.以下程序的输出结果是().main()char str=ABCD,*p=str;printf(%dn,*(p+3);A、68B、不确定的值C、字符D 的地址D、0129.下面程序的输出结果应该是().main()int a5=2,4,6,8,10),*p,*k;P=a;k=&p;printf(%d,*(p+);printf(%dn,*k);)A、2 2B、2 4C、4 6D.4 4130.若给定条件表达式(m)?(a+):(a-),则其中表达式m(),A、和(m=0)等价B、和(m!=0)等价C、和(m=l)等价D、和(m!=l)等价131.逻辑表达式53&2|8l;i-)for(j=l;ji;j+)putchar(#);A、无B、#C、#D、#134.下列程序的输出为。main()int y=10;while(y-);printf(y=%dn,y);)A、y=-1B、y=OC、y=lD、while构成无限循环135.设p l和 p2是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是(),A、c=*pl*(*p2);B、pl=p2;C、p2=c;D、c=*pl+*p2;注:p l 和 p 2 定义的是指针变量c 为字符变量A 项是取其内容运算不是指针运算,是对的B 项 指针就是地址p l 和 p2是可以相互赋值的。C 项 c 是字符变量p2是指针变量,指针变量只能付地址改为p2=&c是可以的。D 项*(取内容符)将pl p2指向的变量的值的和赋给c 是可以的。136.char h,*s=&h;可将字符H 通过指针存入变量h 中的语句是()A、*s=H;B、s=HC、*S=H;D、s=H;137.以IBM PC计算机为例,一个长整型变量以二进制形式保存到文件后,该变量需占()字节空间.A、2B、3C、1D、4注:在 IBM PC机上,普通整型占16位(bit),短整型也占16位(bit),而长整型占32(bit),4字节138.main()int x=l,a=O,b=O;switch(x)case 0:b+;case 1:a+;case 2:a+;b+;)printf(a=%d,b=%d,a,b);该程序的输出结果是()A、a=l,b=lB、a=l,b=0C、a=2,b=2D、a=2,b=l139.调用函数时,基本类型变量做函数参数,实参和对应的形参().A、不占用存储单元B、各自占用独立的存储单元C、同名时才能共用存储单元D、共占用一个存储单元140.下面程序的输出结果应该是().#include#include main()char*pl=abc,*p2=ABC,str50=xyz;strcpy(str+2,strcat(pl,p2);printf(%sn,str);A.yzabcABCB、xyabcABCC.zabcABCD.xyzabcABC注:此程序在vc和 codeblocks下编译链接正确,运行时出错141.有一个已有值的实型变量voltage,若要把它们保存到一个磁盘文件fp 中,正确的形式是().A Jprintf(fp,voltage,1);Bxfprintf(fp,%f,voltage);C、fprintf(%f,voltage,fp);D,fprintf(voltage,fp);142.以下不是无限循环的语句为()A、while(l)x+;B、for(;x+=i);CJor(i=10;i-)sum+=i;DJor(y=0,x=l;x+y;x=i+)i=x;143.若有如下说明,则下列叙述中正确的是(已知int类型占两个字节)().struct stint a;int b2;)a;A、类型名struct s t 可以通过extern关键字提前引用B、程序运行时为结构体st分配6 字节存储单元C、程序只在执行到该定义时才为结构体st分配存储单元D、结构变量a 与结构体成员a 同名,定义是非法的144.以下程序的输出结果是:()main()int m=5;if(m+5)printf(%dnn,m);else pnntf(%dnH,m-);)A、6B、5C、7D、4145.在C 程序中,可把整型数以二进制形式存放到文件中的函数是0。A.fprintf 函数BJread函数C.fwrite 函数D.fputc 函数146.执行下面程序段后,f 的值是:()int f=5;switch(f)case 5:f+=l;case 6:f-;case 7:f*=3;break;case 8:+f;)A、15B、10C、28D、9147.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().A、实参与形参是双向传递B、形参可以是表达式C、形参和实参可以同名D、实参类型一定要在调用时指定148.以下叙述错误的是().A、函数调用可以出现在一个表达式中B、函数调用可以作为个函数的形参C、函数调用可以作为一个函数的实参D、函数允许递归调用149.已知有宏定义#define SQR(a)2*a*a,贝 U SQR(3+4)的值为().A、22B、32C、98D、18注:2*3+4*3+4=22150.对于定义,char*aa2=abcdJABCD,选项中说法正确的是().A、aa是指针变量,它指向含有两个数组元素的字符型-维数组B、aa数组的两个元素中各自存放了上述两个字符数组的首地址C a a 数组元素的值分别是abed和ABCDD、aa数组的两个元素中分别存放的是上述两个字符串的首地址151.若定义:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是:().A,2.750000B,0.000000C,3.500000D,2.500000152.若要打开A 盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()AJopen(A:userabc.txt,rb)BJopen(A:userabc.txt,r+)C Jopen(A:userabc.txt,w)DJopen(A:userabc.txt,r)153.设函数的调用形式如下:f(xl,x2),(yl,y2,y3),则函数有()个形参.A、2B、4C、3D、5154.以下不正确的叙述是()A、在 C 程序中所用的变量必须先定义后使用B、当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值C、程序中,APH和 aph是两个不同的变量D、若 a 和 b 类型相同,在执行了赋值语句a=b;后 b 中的值将放入a 中,b 中的值不变155.下列程序的运行结果是:().void fun(int*a,int*b)int*k;k=a;a=b;b=k;)m ain()int a=3,b=6,*x=&a,*y=&b;f

    注意事项

    本文(C语言学校题库专项练习1.pdf)为本站会员(文***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开