您好,欢迎访问三七文档
计算机模拟题1.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(C)。A、由实参传给形参,再由形参传回给实参B、由用户指定的传递方式C、单向值传递D、地址传递2.以下叙述中错误的是BA、可以用typedef将已存在的类型用一个新的名字来代表B、可以通过typedef增加新的类型C、用typedef可以为各种类型起别名,但不能为变量起别名D、用typedef定义新的类型名后,原有类型名仍有效3.对于定义,char*aa[2]={abcd,ABCD},选项中说法正确的是CA、aa数组元素的值分别是abcd和ABCDB、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址C、aa数组的两个元素中各自存放了字符'a'和'A'的地址D、aa是指针变量,它指向含有两个数组元素的字符型一维数组4.C语言中要求对变量作强制定义的主要理由是(B)。A、便于编辑预处理程序的处理B、便于确定类型和分配空间C、便于移植D、便于写文件5.以下叙述中正确的是AA、在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式B、a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。C、执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D、已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为36.设有以下语句,若0k4,下列选项中对字符串的非法引用是(D)。charstr[4][2]={aaa,bbb,ccc,ddd},*strp[4];intj;for(j=0;j4;j++)strp[j]=str[j];A、*strpB、strp[k]C、str[k]D、strp7.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(D)。A、7B、2C、6D、88.有以下说明和定义语句C。structstudent{intage;charnum[8];};structstudentstu[3]={{20,”20041”},{21,”20042”},{19,”20043”}};structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是A、(*p).numB、(p++)-numC、stu[3].ageD、p-numg9.以下的选择中,正确的赋值语句是(C)。A、y=int(x)B、j++C、a=b=5;D、a=1,b=210.若int类型占两个字节,则以下程序段的输出是Dinta=-1;printf(“%d,%u\n”,a,a);A、-1,-1B、-1,32767C、-1,32768D、-1,6553511.下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0A、a*28+2B、(a*2-c)||dC、a-bc*dD、a&&d12.定义结构体的关键字是AA、structB、unionC、enumD、typedef13.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为(A)。A、intB、voidC、charD、double14.int(*p)[6];它的含义为(D)。A、指向6个整数中的一个的地址B、具有6个元素的一维数组C、指向整型指针变量D、定义了一个指向具有6个元素的一维数组的指针变量.C15.若有定义语句:int(*p)[M];,其中的标识符p是A、M个指向整型变量的指针B、具有M个指针元素的一维指针数组,每个元素都只能指向整型量C、一个指向具有M个整型元素的一维数组指针D、指向M个整型变量的函数指针16.以下程序的运行结果是.Bmain(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“%d\n”,c);}A、0B、2C、1D、317.C语言中,double类型数据占(B)。A、4个字节B、8个字节C、1个字节D、2个字节18.以下程序的输出结果是Cvoidsub(floatx,float*y,float*z){*y=*y-1.0;*z=*z+x;}main(){floata=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;sub(b-a,pa,pb);printf(“%f\n”,a);}A、10.500000B、9.000000C、1.500000D、8.00000019.以下所列的C语言常量中,错误的是(D)。A、'\72'B、0xFFC、2LD、1.2e0.520.下列四个选项中,均是C语言关键字的选项是(B)。A、ifstructtypeB、switchtypedefcontinueC、signedunionscanfD、autoenuminclude21,已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf(%d,%d,c1,c2-2);后,输出结果是AA、65,66B、A,BC、65,68D、A,6822.以下函数调用语句中实参的个数是(D)。exce((v1,v2),(v3,v4,v5),v6);A、6B、5C、4D、323.如果inta=2,b=3,c=0,下列描述正确的是DA、a||(b=c)执行后b的值为0B、ab!=c和a(b!=c)的执行顺序是一样的C、a&&bc的结果为假D、!a!=(b!=c)表达式的值为124.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A)。A、自动(auto)B、外部(extern)C、静态(static)D、寄存器(register)25.下列关于C语言数据文件的叙述中正确的是(D)。A、文件由ASCII码字符序列组成,C语言只能读写文本文件B、文件由二进制数据序列组成,C语言只能读写二进制文件C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件26.在C语言中,引用数组元素时,其数组下标的数据类型允许是。DA、任何类型的表达式B、整型常量C、整型表达式D、整型常量或整型表达式27.以下程序的输出结果是Blongfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%dld”,fib(6)):}A、2B、16C、30D、828.以下程序段的输出结果是C。intn=10;while(n7){n--;Printf(“%d”,n);}A、1098B、10987C、987D、987629.以下程序的输出结果是Avoidsub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%d,%d,%d\n”,a,b,c);}A、-5,-12,-7B、-5,-12,-17C、5,-2,-7D、5,2,330.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,D下面符合此要求的函数调用是()。A、fopen(A:\user\abc.txt,rb)B、fopen(A:\user\abc.txt,r)C、fopen(A:\\user\\abc.txt,w)D、fopen(A:\\user\\abc.txt,r+)二.判断题1.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0.正确。2.若有intⅰ=10,j=0;则执行完语句if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。错误3.max(3,a+b);是正确的函数调用语句.正确4.整数-32100可以赋值给int型和longint型变量。正确5.静态存储变量不随其所在函数的调用结束而被释放,其值会保留作为下一次调用的初值.正确6.inti,*p=&i;是正确的C说明。正确7.两个字符串中的字符个数相同时才能进行字符串大小的比较错误8.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。错误9.如果想使一个数组中全部元素的值为0,可以写成inta[10]={0*10};正确10.若i=3,则printf(%d,-i++);输出的值为-4。错误三.【程序设计】--------------------------------------------------功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)例如:输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900------------------------------------------------*/#includestdio.hvoidbky();intfun(intarray[3][3]){/**********Begin**********//**********End**********/}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}fun(array);printf(Convertedarray:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}bky();}voidbky(){inti,j,array[3][3];FILE*rf,*wf;rf=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i3;i++)for(j=0;j3;j++)fscanf(rf,%d,&array[i][j]);fun(array);for(i=0;i3;i++){for(j=0;j3;j++)fprintf(wf,%7d,array[i][j]);fprintf(wf,\n);}fclose(rf);fclose(wf);}【参考代码】inti,j,t;for(i=0;i3;i++)for(j=0;ji;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}【程序设计】--------------------------------------------------功能:求一批数中最大值和最小值的积。------------------------------------------------*/#defineN30#includestdlib.h#includestdio.hvoidTestFunc();intmax_min(inta[],intn){/*********Begin**********//**********End**********/}main(){inta[N],i,k;for(i=0;iN;i++)a[i]=rand()%51+10;for(i=0;iN;i++){printf(%5d,a[i]);if((i+1)%5==0)printf(\n);}k=max_min(a,N);printf(theresultis:%d\n,k);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen(in.dat,r);if(IN==NULL){printf(ReadFILEError);}OUT=fopen(out.dat,w);if(OUT==NULL){printf(WriteFILEError);}for(n=0;n10;n++){fscanf(
本文标题:C语言上机模拟题
链接地址:https://www.777doc.com/doc-2907794 .html