




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计专升本练习(一)(总介100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、以下条件表达式中能完全等价于条件表达式x的是.A、(x==0)B,(x!=0)C、(x==DD、(x!=l)2,若有定义inta;floatb;doublec;程序运行时输入:345c回车,能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是.A,scanf("%d%f%lf",&a,&b,&c);B、scanf("%d%lf%lf",&a,&b,&c);C、scanf("%d%f%f",&a,&b,&c);D,scanf("%lf%lf%lf",&a,&b,&c);c语言的if语句嵌套时,if与else的配对关系是(,A,每个else总是与它上面的最近的并且尚未与其他else匹配的if配对B,每个else总是与最外层的if配对C、每个else与if的配对是任意的D,每个else总是与它上面的if配对4、下列while循环,将执行inti=4;while(-i)printf(fd",i);A、3次B、4次C、0次D.无限次5、对于以下递归函数f,调用f(4),其返回值为()intf(intn)if(n)returnf(n-1)+n;elsereturnn;A、10B、4C、0D、以上均不是o6、在下列的标识符中,错误的是。$_123Ixyz$l_abcabc_$1237、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#include<stdio.h>mainO{inta,b,t;scanf(w%d%dH,&a,&b);while()(if(a>b)(t=a;a=b;b=t;)printf(n%d,%d\nw,a,b);scanf,&a,&b);)}A、!a=ba!=ba==bD、a二b8、运算符的优先级最高。A.[]B、+=C、?:D、++9、设宏定义#definePI3.1415926,用宏名PI替换的是—A、算术表达式B、字符串C、单精度实型数D、双精度实型数10、执行语句for(i=l;iV4;i++);后变量i的值是。A、3B、5C、4D、不定11、有以下函数intfun(char*s){char*t=s;while(*t++);return(t-s);)该函数的功能是。A,比较两个字符串的大小B、计算S所指字符串占用内存字节的个数C、计算S所指字符串的长度D,将S所指字符串复制到字符串t中12、用高级程序设计语言编写的程序 A、计算机能直接执行B,具有良好的可读性和可移植性C、执行效率高,但可读性差D,依赖于具体机器,可移植性差13、有以下程序intfun(intx[],intn)staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;mainO(inta[]=(123,4,5},b[]=(6,7,8,9},s=O;s=fun(a,5)+fun(b,4);printf(H%d",s);}程序执行后的输出结果是OA、45B、50C、60D、5514、算法指的是oA、解决问题的方法、步骤和思路的一种描述B、计算机程序C、排序方法D、数据处理15、下列程序的输出结果,是omainO(inta=0,b=0,c=0;if(++a>0||++b>O)++c;printf(w\na=%d,b=%d,c=%dw,a,btc);)a=0,b=0,c=0a=l,b=l,c=la=l,b=0,c=lD、a=O,b=l,c=l16、对于while、do…while循环结构,正确的说法是。A、只是表达形式不同B、do…while结构中的语句至少执行一次C、while结构中的语句至少执行一次I)、条件成立时,它们有可能一次也不执行17、以下叙述正确的是°A、函数可以嵌套定义但不能嵌套调用B、函数既可以嵌套调用也可以嵌套定义C、函数既不可以嵌套定义也不可以嵌套调用D、函数可以嵌套调用但不可以嵌套定义18、下面程序的输出结果是。main()(inta[]={l,2,3,4,5,6,7,8,9,0),*t;t=a;printf(M%d\nn,*(t+3));)A、4B、5C、6D、319、若有说明语句"inta[5],*p=a;\则对数组元素的正确引用是—A、a[p]B、p[a]C、*(p+2)D>p+220、设有以下语句typedefstructs(intg;charh;则下面叙述中正确的是0A、可用S定义结构体变量B,可以用T定义结构体变量C、S是struct类型的变量D、T是struct$类型的变量21.选出下列标识符中不是合法的标识符的是。hot_docatl_priD、2ab22、在c语言中,形参的缺省存储类是.autoregisterstaticextern23、对于if(表达式)语句,以下说法正确的是。A、“表达式”的值只能是整数值B、在“表达式”中不能调用函数C、在“表达式”中不能含有浮点类型的变量或常量D、“表达式”可以是各种形式的算术表达式24、给定下面的代码:inti=l,j=10;do{if(i++>-j)continue;)while(i<5)执行完之后,i与j的值分别是多少()i=6,j=5i=5,j=5i=6,j=4i=5,j=625、chara[10];不能将字符串"abc"存储在数组中的是—A、strcpy(a,MabcH);B、a[0]=0;strcat(a,wabcw);a="abc";inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;26、X、Y、Z被定义为int型变量,若从键盘给它们输入数据,则正确的输入语句是.inputX,Y.Z;scanf(u%d%d%dw,&X,&Y,&Z);scanf("%d%d%d”,X,Y,Z);D、read('*%d%d%dM.&X.&Y.&Z);27、定义如下变量和数组:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是.for(k=0;k<3;k++)printf("%d",a[k][k]);753951C、963D,74128、条件语句.A、不可以嵌套使用B,可以嵌套使用C、在一条件下可以嵌套使用D,嵌套语句中不能使用else子句29、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个—A、单精度数B、双精度数C、常量D、字符串30、有以下的程序#include<stdio.h>voidfun(char*fname,char*st)(file*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);main()fun("test,t","newworld");fun("test.t","hello,");}程序执行后,文件test,t中的内容是ohello,newworldhello,newworldhello,rid31,以下说法错误的是.A、C语言没有输入输出语句B、运算符%的作用是求余C,printf()是输入函数D,保留字又称关键字,是指被赋予特定含义和有专门用途的标识符32、以下关于注释的叙述中错误的是.A,注释的边界符号“/”和“*”之间不允许加入空格B,C语言允许注释出现在程序中任意合适的地方C、注释的内容仅用于阅读,对程序的运行不起作用D、注释的边界符号“/*”和“*/”必须成对出现且可以嵌套33、若有以下程序tfinclude<stdio.h>voidf(intn);main(){voidf(intn);f(5);}voidf(intn)(printf("%d\n",n);}则以下叙述中不正确的是.A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC、对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型34、有如下定义:structstudent(charname[10];intage;chargender;}std[3],*p=std;则以下各输入语句中错误的是A、scanf(M%dw,&(*p).age);B、scanf(w%c",&std[0].gender);C、scanf(w%cH,&(p->gender));D、scanf(H%sw,&);35、有以下程序:main()(inta=l,b=0;if(―a)b++;elseif(a=0)b+=2;elseb+=3:printf(w%d\n",b);}程序运行后的输出结果是oA、0B、1C、2D、336、以下叙述中正确的是oA、N-S流程图只能描述简单的顺序结构的程序B、程序的算法只能使用流程图来描述C、结构化程序的三种基本结构是循环结构、选择结构、顺序结构D、计算机可以直接处理C语言程序,不必进行任何转换37、有以下程序mainOinta[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);程序运行后的输出结果是oA、16B、10C、8D、638、有以下程序mainO{chars□:{"aeiou"},*ps;ps=s;printf(*%c\nB,*ps+4);)程序运行后输出的结果是OA、aB、eC、uD、元素s[4]的地址39、以下不能正确定义二维数组的选项是A、inta[2][2]={{1},{2});B、inta[][2]={1,2,3,4};C、inta[2][2]={{1},2,3};D、inta[2][]={{1,2},{3,4});40、设有如下定义structss(charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是oA,scanf(M%dw,&(*p).age);B、scanf(w%sw,&);C、sean("%c",&std[0].sex);D,scanf("%c",&(p->sex));41、下面对的叙述中不正确的是.A、用typedef可以定义各种类型名,但不能用来定义变量B,用typedef可以增加新类型C,用typedef只是将已存在的类型用一个新的标识符来代表D,使用typedef有利于程序的通用和移植42、有以下程序:main()(intk=-3:if(k<=0)printf("****\n")elseprintf("&&&&\n");)程序的输出结果是。A,输出####B,输出&&&&C,输出####&&&&D、有语法错不能通过编译43、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是A,if(x++);B、if(x>y&&y!=0);C、if(x>0)x—D、if(y<0){;}44、下面有关for循环的正确描述是oA,for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,三个表达式都不能省略D,for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来45、若有定义语句:char*sl="ok",*s2="ok";以下选项中,能够输出"ok"的语句是一if(strcmp(sl,s2)-0)puts(si);if(strcmp(sl,s2)!=0)puts(s2);if(strcmp(sl,s2)==l)puts(sl);if(strcmp(sl,s2)==0)puts(sl);46、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是.++x,y=x一x+l=yx=x+10=x+yD、double(x)/1047、下列关于字符串的说法中错误的是.A、在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志B、'\0'作为标志占用存储空间,计入串的实际长度C、在表示字符串常量的时候不需要人为在其末尾加入''0'D、在C语言中,字符串常量隐含处理成以'\0'结尾48、以下答案中不是c语言最基本数据类型的是.A、逻辑型B,整型C、字符型D,指针型49、设有两个字符串p和q,其中q是p的子串,把q在p中首次出现的位置作为子串q在P中位置的算法称为(43).A,求子串B、匹配C、连接D、求串长50、若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是。"ab++""wb+""rb+""ab"参考答案一、单项选择题1、B2、A3、A4、D5、A6、B7、B8、A9、B10、C11、B【解析】循环语句while(*t++);执行完时,指针变量t就指向了字符串结束符'\0'之后的位置,所以语句return"-s);返回的就是字符串s所用内存的字节个数。12、B【解析】用高级程序设计语言编写的程序具有良好的可读性和可移植性。13、C【解析】此题考核的知识点是函数调用及蜉态变量的应用,静态变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。调用fun()函数执行for循环语句,fun(a,5),i=0、1、2、3、4,sum=0+a[0]+a[l]+a[2]+a[3]+a[4]=15;接下来执行fun(a,5),因为sum定义为静态变量,即再次调用时sum保留上次函数调用结束时的值,所以sum=15+a[0]+a[l]+a[2]+a[3]=45;返回sum的值,主函数s=15+45=60o14、A15、C【解析】“II”是或运算,它有个“短路”的特点需特别注意,当“,”运算符左边的表达式的值为真时,则程序就不再对“II”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。16、B【解析】注意区别while、do…while两种循环结构的异同:while循环是先判断条件是否成立,成立时才执行;而do…while先执行再判断,它至少执行一次。17、D【解析】考查函数的定义及其调用。[解题要点]在C语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。[错解分析]函数不能嵌套定义,但可以嵌套调用,故选项A)、B)和C)中的描述都错误。18、A19、C20、A21、D22、A23、D【解析】if(表达式)的“表达式”为C语言中任意合法的表达式。本题答案为D选项。24、D【解析】该题考查对自增自减运算符的理解。假如。P是操作数,自增自减运算符有下面几种形式。++op、op++,表示对操作数op加1,其中,++0P表示先对。P加1然后再取其值,而。OP++表示先取其值,然后再对op进行加1。-op.OP-,表示对操作数op进行减1操作,其中,一op表示先对op减1然后再取其值,而。P一表示先取其值,然后再对op进行减1。在本题中,当进行到i=5时退出循环,此时j为6。故本题答案是Do25、C26、B27、B【解析】本题中二维数组的每个元素就是一个由三个元素构成的一维数组,根据条件for(k=0;k<3;k++)和要求的a[k][k]可以得出本题的答案应该是951o28、B29、D【解析】宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个字符串。这样,在源程序被编译器处理之前,预处理器会将标识符替换成所定义的字符串。30、A31、C32、D【解析】在编写程序时可以在程序中加入注释,以说明变量的含义,在添加注释时,注释内容必须放在符号""和之间,和必须成对出现,“与“之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只是用于阅读,对程序运行不起作用,选项C正确;使用"/和“*1”的注释之间不可再嵌套“/”和“*”,选项D错误,本题答案为Do33、C34、D35、D36、C【解析】N-S流程图是可以描述循环结构、选择结构、顺序结构等多种结构的程序,所以A选项错误。程序的算法可以用流程图、伪代码、N-S结构图等方法表示所以B选项错误。计算机只能处理二进制表示的目标程序不能直接执行由C语言编写的源程序所以D选项错误。37、B38、B【解析】评析:此题中先定义一个指针变量PS,并将S的首地址赋给此指针变量,*ps+4相当于先从指针变量ps指向的地址中取出相应数据“a”后,对此数据加4,a的ASCH码为32,32+4=36,对应于字符e,所以答案选B。39,D40、B【解析】本题考核的知识点是结构型数组的应用。选项A中“&(*p).age”代表的是std[0]age的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的“"是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name"。所以B选项为所选。41、B42、D43、C【解析】elsey++; elsex++;本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中X一是表达式而不是语句,所以在编译时会出现错误信息。故本题答案选C。44、D45、A【解析】strcmp函数比较字符串大小,区分大小写,所以当si,s2不相等输出si就会输出“0K”,答案选择A。46、A【解析】选项A)为C语言中的逗号表达式。赋值表达式的左侧不能是表达式。在进行强制类型转换时,数据类型两边的圆括号不能省略。47、B【解析】'\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。48、A49、B【解析】本题考查对字符串进行处理的算法。求子事是在一个主字符串中按一定的规则取出任意个连续的字符得到一个新串。匹配是指求一个字符串是另一个字符串的子串,并返回子串首次出现的位置。连接是指把一个字符串的内容连接到另一个足够大的字符串的末尾。求串长就是统计字符串中有效字符的个数。50、BC语言程序设计专升本练习(二)(总分100分,专试时长60分钟)一、单项选择题(每小题2分,共100分)1,根据数制的基本概念,下列各进制的整数中,值最大的一个是一A、十六进制数10B、十进制数10C、八进制数10D,二进制数102,设有inti=8,j=10;Wlprintf("%d,%d\n,,++1,j—);的输出是.A、11,10B,9,10C、8,9D,10,93、在嵌套使用if语句时,c语言规定else总是«A、和之前与其具有相同缩进位置的if配对B,和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对4,以下程序的输出结果是main()(inta,b;for(a=l,b=l;a<=100;a++)(if(b>=10)break;if(b%5==l)(b+=5;continue;})printf("%d\n",a);A、101B、6C、4D、35、有以下程序段:intj;floaty;charname[50];scanf("%2d%f%s二&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为A、55566.0B、566.0C、7777.0D、566777.06、以下都是c语言标识符的是odsfa,df4,f$huhj,a*,k23k,h,j_9_ok,jk,k87、二维数组a[8][9]按行优先顺序存储,若数组元素a[2][3]的存储地址为1087,a[4][7]的存储地址为1153,则数组元素a[6][7]的存储地址为()12071209121112138、在结构化程序设计中,限制使用goto语句的原因是oA、提高程序的执行效率B、提高程序的清晰性和可靠性C、便于程序的合成1)、该语句对任何结构的程序都不适用9、以下能正确定义字符串的语句是oA、charstr口={r\064'};charstr=nkx43w;charstr=";D,charstr[]=>\0";10,若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值:A、0B、1C、12D、611,若调用一个函数,且此函数中没有return语句,则正确的说法是―A、该函数没有返回值B、该函数返回若干个系统默认值C,能返回一个用户所希望的函数值D,返回一个不确定的值12、算法具有五个特性,以下选项中不属于算法特性的是.A、有穷性B,简洁性C、可行性D,确定性13、以下叙述错误的是.A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名14,若有inta[10],*p=a;,且a数组已赋值,则与a[4]不等价的表达式为。A、p+4B,*(p+4)C、*(a+4)D、p[4]15、执行如下程序段,打印输出的内容是。^include<stdio.h>voidfun(intc,int*d)C++;(*d)++;intmain()(inta=5,b=9;fun(a,&b);printf(*%d,%d",a,b);return0;)A、5,9B、6,10C、5,10D、6,916、设i和x都是int类型,则for循环语句。for(i=0,x=0;iV=9&&x!=876;i++)scanf(w%d",&x);A、最多执行10次B、最多执行9次C、是无限循环D、循环体一次也不执行17、有以下程序:main()(intm=3,n=4,x;x;-m++;x=x+8/++n;printf(w%d\nw,x);)程序运行后的输出结果是oA、3B、5C、-1D、-218、有以下程序:ttincludeVstdio.h>ttdefinePT3.5;^defineS(X)PT*x*x;main()(inta=l,b=2;printf(w%4. s(a+b));}程序运行后的输出结果是°A、7.5B、31.5C、程序有错无输出结果D、14.019、若有说明语句:intitx[3][4];则不能将的值赋给变量i的语句是一A、i=*(*(x+l)+l)B.i=x[l][l]C、i=*(*(x+D)D、i=*(x[l]+l)20、下列程序的输出结果是omainO(structst{inty,x,z;union(longi;intj;chark;)un;printf(N%d,%d\n",sizeof(structst),sizeof(un)))A、6,2B、6,4C、8,4D,8,621、一个字符的ascii码占用的存储空间为.A、2个字节B,1个字节C、4个字节D.8个字节22、若w=l,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的结果为。A、4B、3C、2D、123、以下函数的返回类型是.fff(floatx)(return5.86;}A、与参数x的类型相同B、void类型C、int类型D、无法确定24、while(fabs(t)<le-5)if(!s/10)break;循环结束的条件是。A,t>=le-5&&t<=-le-5&&s>-10&&s<10B、fabs(t)<le-5&&!s/10C、fabs(t)<le-5D,s/10==025、以下关于结构化程序设计的叙述中正确的是。A、一个结构化程序必须同时由顺序、分支、循环三种结构组成B、结构化程序使用goto语句会很便捷C、在C语言中,程序的模块化是利用函数实现的D、由三种基本结构构成的程序只能解决小规模的问题26、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是—A、if((a>b)&&(b>c))k=l;B、if((a>b)||(b>c))k=l;elsek=0;elsek=0;C、if(a<=b)k=0;D、if(a>b)k=l;elseif(b<=c)k=l;elseif(b>c)k=l;elsek=0;27、有字符数组a[80]和b[80],则正确的输出语句是。puts(a,b);printf(w%s,%s",a[],b[]);putchar(a,b);D、puts(a),puts(b);28、下列是多行注释的符号是oA、//B、/C、/*/**/29、在c语言中,以作为字符串结束标志A、,\n'B、,,C、,O'D、'\0f30、在一个c语言源程序文件中所定义的全局变量,其作用域为()oA、所在文件的全部范围B、所在程序的全部范围C、所在函数的全部范围D、由具体定义位置和extern说明来决定范围31、以下对c语言函数的有关描述中,正确的是oA、在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、函数必须有返回值,返回值类型不定32、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是A、a<>0B、!aC、a=0D^a33、若有数组名作为函数调用的实参,传递给形参的是A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数34、以下对枚举类型名的定义中正确的是。enuma={sum,mon,tue};enuma{sum=9,mon=-l,tue};Lxenuma-(sum,mon,tuej;D、enuma{"sum","mon","tue"};35、下面程序的输出结果是.ml(intx)(inty;y=x*x;return(y);}m2(inta,intb)(int1;l=ml(a-b);return(1);)main()intp=2,q=4,t;t=m2(p,q);printf(w%dw,t);A、4B、6C、8D、1236、有以下程序mainO{inty=10;while(y-);printf(wy=%d\nM,y);)程序执行后的输出结果是oA、y=0B、y=-lC、y=lD、while37、c语言规定:main函数的位置. 。A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后38、设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是OA、1B、0C、4D、339、一个int型变量,在程序中多次频繁使用,最好定义它为oautoregisterstaticextern40、设structdatainta;floatb;}c,*p=&c;,引用正确的是。A、*p.aB、p.bC、p->aD、*p->b41、以下叙述中正确的是oA、局部变量说明为static存储类,其生存期将得到延长B、全局变量说明为static存储类,其作用域将被扩大C、任何存储类的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类说明符与局部变量完全相同42、表达式的值为0的是一。A、5/5%5B、5>2C、!4D、3>2&&5-6<743、if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是—A、可以是任意合法的数值B、必须是整数值C、必须是正数D、必须是逻辑值44、以下描述正确的是oA、goto语句只能用于退出多层循环。B、switch语句中不能出现continue语句。C、只能用continue语句来中止本次循环。D、在循环中break语句不能独立出现。45、若要定义一个具有5个元素的整型数组,以下错误的定义语句是 。A、inta[5]={0};B、intb[]={0,0,0,0,0}intc[2+3];inti=5,d[i];46、设有定义语句:charcl=92,c2=92;,则以下表达式中值为零的是OA、cTc2B,cl&c2C、%2D,clIc247、给出以下定义:charx[]="abcdefg";chary[]={'a','b',"c',"d',"e","f'则正确的叙述为.A,数组x和数组y等价B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度D、数组x的长度小于数组y的长度48、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是.A、大写字母B、下划线C,数字字符D,连接符49、以下选项中合法的c语言字符常量是.'\t'B、"A"C、67D,A50、如果需要打开一个已经存在的非空文件“file”并进行修改,正确的语句是—A、fp=fopen("FILE","r");fp=fopen("FILE","a+");fp=fopen("FILE","w+");fp=fopen("FILE","r+");,'g'};参考答案一、单项选择题1、A【解析】分别将四个数转换为十进制为16,10,8,2O2、B3、C4、D5、B【解析】本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为“%2d”,即只接收输入数据的前两位,从第3位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。6、D【解析】C语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。7、A8、B9、D10、A11、D12、B【解析】本题考查的是算法的特性。有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的五大特性。13、C14、A【解析】请仔细阅读交规难度:简单15、C16、A17、D【解析】主函数中首先定义了整型变量叭n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于x=-m,m++,运行后x的值为-3,第二条x=x+8/++n等价于++n,x=x+8/n,即x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。18、C【解析】宏定义不是C语句,末尾不需要有分号。所以语句printf("%4.lf\n",S(a+b));展开后为printf("%4. 3.5;*a+b*a+b;);所以程序会出现语法错误。19、C【解析】本题考查对数组元素的相关操作。题目中给出的是一个二维数组x[3][4],数组名为x,取数组第一行第一列元素的几种方法分别是*(x[l]+l)、*(*(x+l)+l)、*(x+l)⑴等。20、B21、B【解析】本题考查的知识点是ASCII码占用的存储空间。[要点透析]ASCII码是一种7位编码,但它存放时必须占全1个字节,也即占用8位,最高位为0,其余7位表示ASCH码。22、D23、C24、A25、C【解析】C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来,goto就成了有争议的语句。首先,由于goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,got。语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。Goto语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。26、A【解析】条件运算符“:”是三目运算符,运算规则为如果前面的表达式的值为真,则取:前表达式的值,否则,取:后面表达式的值。分析题目中给出的表达式可知,如果a>b成立则表达式的值为表达式b>cl:0的值,如果b>c成立,则该表达式的值为1,即a>b和b>c同时成立时,k=lo当b>c不成立时,k=0;当a>b不成立时,k=0,即a>b和b>c不能同时成立时,k=0o选项A符合题意。27、D28、D【解析】单行注释的符号为〃,多行注释的符号为/**/。29、D30、D31、A【解析】C语言中的函数可以进行递归调用,但不能在函数中定义函数,即函数不能嵌套定义。函数可以没有返回值,若有返回值,则返回值类型必须确定。32、D【解析】if判断条件的值只能是0或非0,if(a)就是if(!0)的意思。33、A34、B35、A36、B【解析】此题考核的是while条件语句及自减运算。当while的条件表达式成立时(非零),重复执行循环体,但此题的while循环无循环体,则只要while的条件表达式成立,就不断执行while条件表达式,直到其条件表达式不成立,程序就自动跳出while循环,直接执行printf语句。"丫一”表示先运用y的值,再进行y自减。本题一开始先判断y为10的值是否满足条件(同时y的值自减1),显然y=10条件满足,则再次执行while语句,判断y为9的值是否满足条件(同时y的值自减1)……直到判断y为0的值是否满足条件(同时y的值自减1,即y=-l),此时条件为假,退出循环,执行printf语句,输出y=-l„37、C38、D39、B【解析】寄存器类型变量常用于循环变量、数组下标等频繁使用的变量。将变量放入寄存器内,可以加快程序的运行速度。40,C41、A【解析】局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。42、C43、A【解析】“表达式”的值类型可以是合法的数值,但是都分为两类,0是假,非0是真。44、C45、D46、A47、C48、D49、A【解析】在C语言中,一个字符常量代表ASCII字符集中的一个小字符,在程序中用单引号把一个字符括起来作为字符常量,选项A)是一个转义字符常量,表示横向跳若干空格(代表“TAB”键);选项B)表示一个字符串;选项C)表示一个整型常量;选项D)表示一个标识符(代表一个变量),故本题答案为A)。50、D【解析】本题考查打开文件函数fopen(),打开文件函数fopen()的调用形式为:fp=fopen(文件名,文件使用方式)。“文件使用方式”说明:方式“I•”为以输入方式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原有的数据;方式“w+”为以读/写方式建立一个新的文本文件:方式“r+”为以读/写方式打开一个文本文件。C语言程序设计专升本练习(三)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、设变量P是指针变量,语句尸null;是给指针变量赋null值,它等价于()。p=MB;p=w0R;p=0;p=";2、以下程序运行后的输出结果是main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf(M%d%f\nw,n,x);)A、220.000000B、100,20.000000C、240.000000D、10040.0000003、以下叙述中正确的是oA、逻辑”或“(即运算符II)的运算级别比算术运算要高B、C语言的关系表达式:0VxV10完全等价于:(0Vx)&&(xV10)C、逻辑“非"(即运算符!)的运算级别是最低的D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象4、以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);()A、是无限循环B、循环次数不定C、4次D、3次5、下列类型的数据不可以存储在可变型变量中的是oA,整型B、字节型C、单精度型D、日期型6、设x=061,y=016,则z=xIy的值是.000011111111111100111111110000007、已知:chars[100]:inti;则引用数组元素的错误的形式是―s[i+10]B、*(s+i)C、*(i+s)D,*((s++)+i)8、以下常量中,能够代表逻辑"真”值的常量是.A、\0'0'0'NULL9、有以下程序#include<stdio.h>mainO(chars[]=w012xy\08s34f4w2w;inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=,0,&&s[i]<=,9,)n++:printf(w%d\n"tn);)程序运行后的输出结果是oA、0B、3C、7D、810、下列正确的实型常量是OA、E3.4-12345C、2.2e8D、411、请选出合法的c语言赋值语句。()A、a=b=58i++;a=58,b=58k=int(a+b);12、下列运算符中优先级最低的算符是oA、B,!=C、<-D、十13、设有以下函数:#include<stdio.h>intf(inta)(intb=0,c;c=3;b++;c++;return(a+b+c);)如果在下面的程序中调用该函数,则输出结果是.voidmain(){inti;for(i=0;i<3;i++)printf(w%d\n\f(i));)A、567B、579C、345D、33314、下面程序的运行结果是#include<stdio.h>main()(inta=28,b;chars[10],*p;p=s;do(b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p=,\0';puts(s);)A、10B、C2C、C51D、\015、有以下程序main()(inta,b,c=246;a=c/100%9;b=(-1);printf %d\n",a,b);)输出结果是oA、2,1B、3,2C、4,3D、2,-116、以下关于continue语句的描述中正确的是A、continue语句只能用于循环中B、continue语句只能用于switch语句中C、continue语句可用于循环和switch语句中D、以上说法都不正确17、若有以下程序:voidfun(float*a,float*b)(floatw;a=*a+*a;w=*a;a=*b;b=w;)main()(floatx=2,y=3,*px=&x,*py=&y;fun(px,py);printf("%2.Of,%2.Of\nM,x,y);)程序的输出结果是oA、4,3B、2,3C、3,4D、3,218、有以下程序:intf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%dknw,s);}intf(intn)staticinta=l;n+=a++;returnn;)程序运行后的输出结果是。A、7B、8C、9D、1019、inti,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是oA、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+l;B、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+l;C、for(i=0;i<6;i++)a[i/3][i%3]=i+l;D、for(i=l;i<=6;i++)a[i][i]=i;20、有以下程序#include<stdio.h>structtt(intx;structtt*y;)*P;structtta[4]={20,a+l,15*a+2,30,a+3,17,a};main()(inti;p=a;for(i=l;i<=2,i++)(printf(**%d,°,p->x);p=p->y;})程序的运行结果是o20,30,30,1715,30,20,1521、以下选项中合法的字符常量是oA、"B"B、'\010'C、68D、D22、未指定存储类别的变量,其隐含的存储类别为oautostaticexternregister23、有以下程序段若要给chc2、c3分别输入字母a,b,c,则以下对输入形式的描述正确的是。A,字母A,B,C之间可以用空格分隔B,字母A,B,C之间不能有分隔符C、字母A,B,C之间可以用回车符分隔D,字母A,B,C之间可以用Tab键分隔24、下面的程序main()(inta=2;doprintfC%d\n",a-=2);)while(!(~~a));A、输出的是0B,输出的是0和-3C,输出的是3和0D、是死循环25、一个c语言程序是由A,一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成26、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为。A、4B、16C、32D,5227、以下能对二维数组a进行正确初始化的语句是.A、inta[2][]={{(1,0,1},{5,2,3}};B、inta[][3]={{1,2,3},{4,5,6)};C,inta[2][4]={{1,2,3},{4,5},{6}};D、inta[][3]={{1,0,1},{},{111});28、下列内容是异常的含义的是 .A,程序编译或运行中发生的异常事件B、程序的语法错误C、程序编译错误D.程序预先定义好的异常事件29、如果在一个运算表达式中包含有逻辑运算、关系运算和算术运算,并且其中未用圆括号规定这些运算的先后顺序,那么这样的综合型表达式的运算顺序是.A、逻辑一算术一关系B、关系一逻辑一算术C、算术一逻辑一关系D、算术一关系一逻辑30、关于fscanf()函数,下列描述中错误的是»A、fscanfO函数是从流中格式化输入B、fscanfO函数格式化输入数据后,文件指针自动向下移到一个数据单位C、返回值为参数个数D、读取失败返回031、有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb口){inti;for(i=0;i<N;i++){b[i]=a[i] [N-l-i];voidmain(){intx[N][N]=l,2t3,4,5,6,7,8,9,10,11.12,13,14a5,16,y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,w,y[i]);printf(M\nM);)程序运行后的输出结果是o-12,-3,0,0,-3,-1,1,3,0,1,2,3,D、-3,—3,-3,-3,32、在32位的计算机中,一个char型数据所占的内存长度的字节是—A、4B、1C、2D、833、若有定义和语句;int**pp,*p,a=20,b=10;PP=8p;p二&a;p=&b;printf(,r%d,%d\n,r,*pf**pp);则输出结果是O20,1020,2010,2010,1034、递归算法的执行过程一般来说可先后分成和两个阶段。A、试探B、递推C、枚举D、分析35、运行下面程序后,输出是.^include<stdio.h>voidmain()(intk=-3;if(k<=0)printf(n****\n");elseprintf(H####\nw))####****####****D、有语法错误不能通过编译36、结构化程序设计思想的核心是要求程序只由顺序、循环和三种结构组成。A、分支B、单人C、单出D、有规则GOTO37、下列定义语句中,错误的是oA、intpx*;B、char*acp[10];C、char(*paC)[10];int(*p)();38、以下程序的输出结果是。main()(inta=5,b=4,c=6,d;printf(n%d\n,r,d=a>c?(a>c?a:c):(b));}A、5B、4C、6D、不确定39、若有说明:inta[][4]={1,1}则以下叙述正确的是0A、数据a中第一行各元素的初值均为1B,数组a中每个元素均可得到初值1C、只有元素a[0][0]和可得到初值1D、只有元素a[0][0]和可得到初值140,有以下结构体说明和变量的定义,且指针p指向变量a'指针q指向变量b,则不能把结点b连接到结点a之后的语句是ostructnode{chardata;structnode*next;}a,b,*p=&a,*q=&b;A、a.next=q;B、P.next=&b:C、p—>next=&b;D、(*p).next=q;41、以下选项中,当x为大于1的奇数时,值为0的表达式是oA、x%2==lB、x/2x%2!=0x%2==042、下列语句中,不正确的是。staticchara[2]={;staticchara[2]={'11,'2'};C、staticchara[2]={ '2*,*3*};D、staticchara[2]={T};43、在c的if语句中,可用作条件的表达式是oA、关系表达式B、逻辑表达式C^算术表达式D、任意表达式44、执行下面的程序后,a的值为o4include<stdio.h>intmain()inta,b;for(a=l,b=l;a<=100;a++){if(b>=20)break;if(b%3==l){b+=3;continue;}b-=5;}printf("%d",a);}A.7B、8C、9D,1045、程序中对fun函数有如下说明void*fun();此说明的含义是.fun函数无返回值fun函数的返回值可以是任意的数据类型C、fun函数的返回值是无值型的指针类型D、指针fun指向一个函数、该函数无返回值46、已知x=43,ch='a',y=0;则表达式x=y&&ch<'b'&&!y的值是,A、0B、语法错1D、"假"47、设有如下定义:charaa[2][20]={"abed","abed"};则以下说法中错误的是A.aa是个二维数组,可以存放2个19个字符以下的字符串B、aa是个二维数组,每行中分别存放了字符串"abed"和"ABCD"C、aa[0]可以看作是一维数组名D、aa[0][0]可以看作是一维数组名48、以下叙述正确的是.A,可以把define和if定义为用户标识符B,可以把define定义为用户标识符,但不能把if定义为用户标识符C,可以把if定义为用户标识符,但不能把define定义为用户标识符D,define和if都不能定义为用户标识符49、下列变量定义中,错误的是.intx=3;floatf;d;Strings="Hello!";booleanb=true;50、以下叙述中错误的是。A、C语言的可执行程序是由一系列机器指令构成的B、用C语言编写的源程序不能直接在计算机上运行C、通过编译得到的二进制目标程序需要连接才可以运行D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件参考答案一、单项选择题1、CA【解析】对于C语言中的赋值运算符,必须遵循以下规则:赋值运算符的优先级别只高于逗号运算符,比其他任何运算符的优先级都低,并且具有自右向左的结合性。因此先得到变量c的值为50,变量n经过计算结果为2,最后通过变量f的值10和n的值2相乘得到变量x的值,为20.000000。因此选项A)正确。D【解析】B选项中,(x>0)&&(x<10)的值是1或0,条件是x>0并且x<10但是0<x<10这种写法的结果任何时候都是1;C选项中,逻辑“非”(即运算符!)的运算级别是最高的;A选项中,算术运算符优先级较高,关系和逻辑运算符优先级较低。因此D选项正确。C5、B【解析】本题考查可变型变量。可变型变量可以存储9种类型的数据:空、NULL型、整型、长整型、单精度型、双精度型、货币型、日期型和字符串型。选项A错误,整型数据可以存储在可变型变量中;选项B正确,字节型数据不可以存储在可变型变量中;选项C错误,单精度型数据可以存储在可变型变量中;选项D错误,日期型数据可以存储在可变型变量中。答案为B。6、C【解析】本题主要考查按位或运算,x=061(二进制为00110001),y=016(二进制为00001110),进行或运算后结果为00111111。7.D8、C9、B【解析】阅读本程序可知,字符串s的前三个字符满足if语句,所以n++,当遇到''0'时,for循环终止,所以最后输出n值为3。10、B【解析】实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。IkB【解析】选项1和3缺少符号“;”,选项4中int的调用方式错误。12、A13、B14、C【解析】考查用字符指针处理字符串的方法。[解题要点]语句“p=s;”是使指针P指向字符数组s。*p则引用了p所指位置的数组元素。[考点链接]通过指针来引用一维数组元素。AA17、C18、C19、D20、D21、B22、A23、B【解析】在使用scanf函数时要注意,在用%格式输入字符时,分隔符(空格符、制表符(Tab键)、回车符)和转义字符都将作为有效字符进行输入。题目中要求以字符形式输入三个数据,空格、回车符、Tab键均会被视为有效字符赋给对应变量,所以字母A,B,C之间不能有分隔符,B选项正确。24、A25、B【解析】一个C源程序是由一个main函数和若干个其他函数组成的。函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己定义的函数。26、C27、B【解析】本题考查对二维数组初始化知识点的掌握。[解题要点]在初始化语句时,需要注意下面几点:①所赋初值个数与数组元素的个数相同;②每行所赋初值个数与数组元素的个数不同时,系统将自动给该行其余的元素补初值。;③所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值。;④赋初值时省略行花括号对。在给二维数组赋初值时可以不用行花括号对。[错解分析]选项A中省略了第二维的大小,所以是错误的;选项C超出了数组的定义范围,所以是错误的;选项D在初始化赋值的时候出现了错误。[考点链接]无论是几维的数组,下标都是从零开始的。28、A【解析】异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,它会引起程序的中断,影响程序正常运行。29、D【解析】在VisualFoxPro中,运算符类型主要有四种:算术运算符、字符串运算符、关系运算符和逻辑运算符,它们的运算优先级为:算术运算符一字符串运算符一关系运算符f逻辑运算符在进行表达式求值时,应注意按照它们的优先级进行计算。30、D【解析】fscanfO读取失败返回-131、B【解析】fun函数的功能是求出二维数组a中第i行第i个元素与第N-1-i元素的差,赋给b[i]。在主函数中,把实参二维数组x和一维数组y传递给形参a和b,最后输出一维数组y中元素的值。32、B【解析】本题考查C语言各种数据类型所占的内存大小。char型数据所占内存的大小为1个字节。注意:int型数据占内存的大小为4个,congdouble,double占内存的大小为8个字节。33、D34、B【解析】递归是设计和描述算法的一种有力的工具。能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成一些规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模稍大问题的解。特别地,当规模N=1时,能直接得到解。递推算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题的求解推到比原问题简单一些的问题的求解;在回归阶段,当获得最简单情况的解后,逐级返回,依次获得稍复杂问题的解。35、D36、A【解析】结构化设计方法的基本要求是:在详细设计阶段为了确保逻辑清晰,应该对所有的模块只使用单入口、单出口和顺序、分支及循环三种基本控制结构。37、A38、B39、C【解析】根据数组的定义语句:inta[][4]={}可知,此数组为1行4列的二维数组,a[0][O]=l,a[O] = [2]=0,a[0][3]=0本题答案为C选项。40、B41、D【解析】因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。42、C43、D44、B45、C【解析】指针函数是指其返回值的类型为地址即指针类型。本题中定义了一个指针类型的函数。46、A47、D48、B【解析】C语言中的保留字,而define不是保留字。用户标识符不允许使用保留字。49、B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。50、DC语言程序设计专升本练习(四)(总分100分.考试时长60分钟)一、单项选择题(每小题2分,共100分)1、以下叙述中错误的是OA、可以用typedef说明的新类型名来定义变量B、type加f说明的新类型名必须使用大写字母,否则会出编译错误C、用typedef可以为基本数据类型说明一个新名称D、用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名2、关于数据类型存储大小从小到大正确的是oA、sizeof(char)<sizeof(shortint)<sizeof(int)<sizeof(float)B、sizeof(char)<sizeof(shortint)<sizeof(int)<sizeof(double)C、sizeof(char)<sizeof(int)<sizeof(longint)<sizeof(float)D、sizeof(char)<sizeof(unsignedint)<sizeof(longint)<sizeof(double)3、有以下程序:#include<stdio.h>main()(intx=l,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(w%d\nh,y);)程序运行后的输出结果是oA、3B、2C、1D、04、以下程序的输出结果是o#include<stdio.h>main()inti;for(i=l;i<5;i++)if(i%2)printf(''+'');elsecontinue;printf('printf(''$\n'');}+-+-+-$-+-+-+$+-+-$-+-+$5、下面函数的功能是,a(sl,s2)charsi[],s2[];while(s2++=sl++);A、字符串比较B、字符串复制C、字符串链接D、字符串反向6、下列关于指针变量的描述,不正确的是.A,在没有对指针变量赋值时,指针变量的值是不确定的B、同类指针类型可以进行相减操作C、在使用没有赋值的指针变量时,不会出现任何问题D、可以通过指针变量来取得它指向的变量值7、以下叙述中正确的是.A、不能用字符串常量对字符数组名进行整体赋值操作B、字符串常量"Hell。”会被隐含处理成一个无名字符型数组,它有5个元素C,charstr[7]="string!";在语法上是合法的,运行也是安全的D、char*str;str="Hello";与charstr口;str="Hello";效果是一样的8、以下叙述中不正确的是.A、表达式a&=b等价于a=a&bB,表达式a|=b等价于a=aIbC、表达式a!=b等价于a=a!bD、表达式a~=b等价于a=a'b9、以下不能将s所指字符串正确复制到t所指存储空间的是oA,while(*t=*s){t++;s++;)B、for(i=0;t[i]=s[i];i++);do{*t++=*s++;)while(*s);for(i=0,j=o;t[i++]=s[j++];);10、下列程序的输出结果是main(){doubled=3.2;intx,y;x=l.2;y=(x+3.8)/5.0;printf("%d\nH,d*y);)A、3B、3.2C、0D、3.0711、请阅读程序:#include<math.h>#include<stdio.h>mainO{floata,b,c;scanf("%f%f",&a,&b);c=a/b;while(l){if(fabs(c)>1.6){a=b;b=c;c=a/b;}elsebreak;}printf(w%f\n",b);)若运行时从键盘上输入3.62.4V回车>,则输出结果是一A、1.500000B、1.600000C、2.000000D、2.40000012、各种运算符间的优先顺序从高到低是.A、比较运算符一算术运算符-•逻辑运算符B、比较运算符一逻辑运算符一算术运算符C、算术运算符一比较运算符一逻辑运算符D.算术运算符一逻辑运算符一比较运算符13、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是.floatintlongdouble14、下面程序段的运行结果是ochar*format="%s,a=%d,b=%d\n";inta=ll,b=10;a+=b;printf(format,na+=bw,a,b);for,wa+=bn,abformat,"a+=bwa+=b,a=21,b=10D、以上结果都不对15、有以下程序#definef(x)(x*x)mainO(intil,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);printf(n%d,%d\n",il,i2);程序运行后的输出结果是A、B、A、B、C、D、4,44,364,6416、设n为整型变量,则循环语句for(n=10;n>0;n—)的循环次数为A、10B、9C、11D、1217、经过下列的语句intj,a[10]t*p;定义后,下列语句中合法的是op=p+2;B、p=a[5];p=a[2]+2;D、p=&(j+2);18、有以下程序ttinclude<stdio.h>mainO(inta=2,b=3,c=4;a*=16+(b++)-(++c);printf("%d\nff,a);)程序运行后的输出结果是oA、28B、30C、15D、1419、若有说明inta[3][4];则a数组元素的非法引用是。A、123B、2.5C、-12156320、定义共用体的关键字是ounionenumstructtypedef21、若以下选项中的变量已正确定义,则正确的赋值语句是。A、xl=26.8%3;l+2=x2;x3=0x12;Dsx4=1+2=3;22、以下程序运行后的输出结果是omain()(inta,b,c;a=10;b=20;c=(a%b<l)||(a/b>l);printf(w%d%d%d\nM,a,b,c);)1020020100101002020023、程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的A、地址B、类型C、名称D、值24、以下叙述中正确的是oA、只要适当地修改代码,就可以将do-while与while相互转换B、对于for(表达式1;表达式2;表达式3)循环体首先要计算表达式2的值,以便决定是否开始循环C、对于for(表达式1;表达式2;表达式3)循环体,只在个别情况下才能转换成while语句D、如果根据算法需要使用无限循环(即通常所称的"死循环则只能使用while语句25、c语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是oA、voidB、intfloatdouble26、若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句是a=a+b;b=a-b;a=a-b;t=a;a=b;b=t;a=t;t=b;b=a;t=b;b=a;a=t;27、以下能正确定义一维数组的选项是A、intnum口;#defineN100intnum[N];C、intnmn[0..100];D、intN=100;intnum[N];28、以下说法错误的是。A、C语言中的常量是指在程序运行过程中经常被用到的变量B、C语言中的常量是指在程序运行过程中其值不能被改变的量C、C语言中的常量可以用一个符号名来代表D、C语言中的常量可以用宏来定义29、字符串"xyz"在内存占用的字节数是A、3B、4C、6D、830、关于建立函数的目的,以下正确的说法是0A、提高程序的执行效率B、提高程序的可读性C、减少程序的篇幅D、减少程序文件所占内存31、关于宏定义命令,叙述正确的是«A、在程序编译前进行宏替换B、在程序编译时进行宏替换C、在程序编译后进行宏替换D、在程序运行时进行宏替换32、算法要有确定的含义,不能出现二义性指的是算法的哪个特性?A、有穷性B、确定性C、可行性D、输入33,数组a[0…5,0…6]每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素a[5][5]的地址为。A、1175B,1180C、1205D,121034、在说明一个结构体变量时系统分配给它的存储空间是.A、该结构体中第一个成员所需存储空间B,该结构体中最后一个成员所需存储空间C、该结构体中占用最大存储空间的成员所需存储空间D、该结构体中所有成员所需存储空间的总和35、有下列程序:intfunl(doublea)(returna*二a;)intfun2(doublex,doubley)(doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main()doublew;w=fun2(l.1,2.0), )程序执行后变量w中的值是0、A、5.21B、5C、5.0D、0.036、有以下程序段intk=0;while(k=l)k++;while循环执行的次数是。A、无限次B、有语法错,不能执行C、一次也不执行D、执行一次37、设有语句:"inta=l,b=2,*pl=&a,*p2=&b;",则使指针pl指向变量b的赋值语句是pl=*p2*pl=p2pl=p2*pl=*p238、以下程序的运行结果是;#include<stdio_h>voidsub(ints[],inty){staticintt=3;y=s[t];t—;)mainO{inta口二{1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);printf(n\nr,);123443210000444439、已知shortint类型变量占用两个字节,若有定义:shortintx[10]={0,2,4);则数组x在内存中所占字节数是.A、3B、6C、10D、2040、有以下程序structs(intn;inta[20];)voidf(int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农民承包煤矿合同范例
- 农村装电梯合同范例
- 大学生心理健康教育(第三版)教案:第三章 学业发展 成长之基
- 上山步道施工合同范本
- 出售供电宿舍合同范例
- 冷冻猪蹄采购合同范例
- 个人融资顾问合同范例
- ktv加盟合同范例
- 黑土滩退化高寒草地土壤有机碳对生物炭添加的响应机制研究
- 重庆市铜梁区邮储银行支农问题研究
- 2024年度股权激励代持协议
- 北师大版(2024新版)七年级上册数学全册教案
- 食品安全、消防安全、交通安全
- 建筑施工企业新员工三级安全教育培训
- 变频器实训报告
- 无人机团体培训课件
- 汽车检测技术课件 任务二 检测汽车动力性能
- 地测防治水技能竞赛理论考试题库(含答案)
- 2024年中职高考数学计算训练 专题11 平面向量的基本计算(含答案解析)
- 智能建造施工技术 课件全套 王春林 项目1-11 智能建造施工概论- 外墙保温与建筑施工碳排放计算
- 全国职业院校技能大赛高职组(法律实务赛项)考试题及答案
评论
0/150
提交评论