您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 大连理工大学C语言题库(12套)
【第一套】一、单项选择1.下列数据中,为字符串常量的是(D)。A、'A'B、Howdoyoudo.C、$abcD、house2.以下所列的C语言常量中,错误的是(b)。A、0xFFB、1.2e0.5C、2LD、'\72'3.以下程序的输出结果是(D)。main(){floatx=3.6;inti;i=(int)x;printf(x=%f,i=%d\n,x,i);}A、x=3.600000,i=4B、x=3i=3.600000C、x=3,i=3D、x=3.600000,i=34.若k是整型,则以下程序段的执行结果是:(B)k=-3;if(k=0)printf(####);elseprintf(&&&&);A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是(C)。A、3B、0C、1D、26.针对下列程序段回答问题(B).for(t=1;t=100;t++){scanf(%d,&x);if(x0)continue;printf(%3d,t);}A、x=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x0时整个循环结束7.以下程序的执行结果是(B)。main(){intnum=0;while(num=2){num++;printf(%d,,num);}}A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句(d)。:(其中:charstring[20];)使得string的内容为Iamstudent.A、scanf(%s,string);B、scanf(%c,&string);C、scanf(%s,&string);D、gets(string);9.对以下说明语句inta[10]={6,7,8,9,10};的正确理解是(B)。A、将5个初值依次赋给a[6]至a[10]B、将5个初值依次赋给a[0]至a[4]C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a[1]至a[5]10.以下标识符中可以作为用户函数名的是(d).A、structB、intC、unionD、go_to11.以下叙述错误的是(b).A、函数调用可以出现在一个表达式中B、函数调用可以作为一个函数的形参C、函数调用可以作为一个函数的实参D、函数允许递归调用12.若用数组名作为函数的实参,传递给形参的是(B)。A、数组第一个元素的值B、数组的首地址C、数组元素的个数D、数组中全部元素的值13.在C语言程序中(b)。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数调用不可以嵌套D、函数的定义和函数调用均可以嵌套14.下列说法中正确的是(B).A、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.15.若有说明:int*p,m=5,n;以下正确的程序段是(d)。A、scanf(%d,&n);*p=n;B、p=&n;scanf(%d,*p)C、p=&n;scanf(%d,&p);D、p=&n;scanf(%d,p);16.对于下述定义,不正确的叙述是(B).uniondata{inti;charc;floatf;}a,b;A、变量a的地址和它的各成员地址都是相同的B、可以在定义类型的同时定义变量a,并对a的任意成员初始化C、变量a所占内存的长度等于成员f的长度D、如果有定义语句uniondataa={6};则对变量a的初始化是正确的17.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是(B).A、fscanf(dog,2,1,fp);B、fscanf(fp,%d%d,&dog,&cat);C、fscanf(dog,cat,2,1,fp);D、fscanf(fp,%d,&dog,&cat);DBDBCBBDBDBBBBDBB二、判断1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变y2.charc[6]=abcde;printf(%3s,c)表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出.Y3.条件表达式x?'a':'b'中,若x=0时,表达式的值为'a'.N4.在逻辑运算符中的运算级别由高向低依次为&&-||-!N5.do-while循环由do开始,while结束,循环体可能一次也不做。N6.continue语句用于终止循环体的本次执行.Y7.若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i3;i++)sum+=a[i][2-i];则sum=21.Y8.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。Y9.定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.Y10.在C语言中,函数名代表函数的入口地址.y11.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.N12.数组名可以作为函数的实参和形参.Y13.一个include命令只能指定1个被包含的文件。y14.若p为指针变量,a为数组名,则a-p是合法的表达式.y15.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。Y16.C语言中,关闭一个文件就删除了这个文件.N对对错错错对对对对对错对对对对错三、填空1.已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是__5.6___.2.设有intx=11,则表达式(x++*1/3)的值是_4____。3.若intx=6;则x+=x-=x*x表达式最后x的值是_-60____.4.设x=2&&2||51,x的值为_1____.5.连接字符串的函数是_strcat____,只写函数名即可.6.函数不可以进行嵌套定义,但可以进行嵌套__调用___.7.设有以下结构类型说明和变量定义,则变量b在内存所占字节数是_____。structstud{shortintage;charnum[3];floats[2];doubleave;}b,*p;8.若有fp=fopen(a1.dat,r+)打开文件语句,这个文件的数据是以_____的形式存放在内存中,该文件的使用方式为读/_____。5.63-601strcat调用21ASCII码或ASCII文本四、程序设计1./*------------------------------------------------【程序设计】--------------------------------------------------功能:输入n个数,并求出小于平均值的数的个数。------------------------------------------------*/#includestdio.hintaverage_num(inta[],intn){/*********Begin**********//**********End**********/}main(){intn,a[100],i,num;voidTestFunc();scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);num=average_num(a,n);printf(thenumis:%d\n,num);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;n5;n++){fscanf(IN,%d,&i[n]);}o=average_num(i,5);fprintf(OUT,%d\n,o);fclose(IN);fclose(OUT);}【参考代码】inti,sum=0,k=0;doubleaverage;for(i=0;in;i++)sum=sum+a[i];average=sum*1.0/n;for(i=0;in;i++)if(averagea[i])k++;return(k);===============2./*------------------------------------------------【程序设计】--------------------------------------------------功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符:n,则输出后变为:turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。------------------------------------------------*/#includestdio.hvoidfun(chars[],charc){/*********Begin**********//**********End**********/}voidTestFunc(){FILE*IN,*OUT;chari[200];/*charo[200];*/IN=fopen(in.dat,r);if(IN==NULL){printf(ReadFileError);}OUT=fopen(out.dat,w);if(OUT==NULL){printf(WriteFileError);}fscanf(IN,%s,i);fun(i,'n');fprintf(OUT,%s,i);fclose(IN);fclose(OUT);}main(){staticcharstr[]=turbocandborlandc++;charch;printf(原始字符串:%s\n,str);printf(输入一个字符:);scanf(%c,&ch);fun(str,ch);printf(str[]=%s\n,str);TestFunc();}【参考代码】char*q=s;for(;*q;q++)if(*q!=c)*(s++)=*q;*s=0;===============五、程序改错1./*--------------------------------------------------------【程序改错】--------------------------------------------------------功能:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。例如:输入ab12c3d,则输出123。注意:不得增行或删行,也不得更改程序的结构!------------------------------------------------------*/#includestdio.h/**********ERROR**********/voidfun(chars【】){inti,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]='0'&&s[i]='9')/**********ERROR**********/s[j]=s[i];/**********ERROR**********/s[j]=\0;}main(){charitem[80];printf(\nEnterastring:);gets(item);printf(\n\nThestringis:\%s\\n,item);fun(item);printf(\
本文标题:大连理工大学C语言题库(12套)
链接地址:https://www.777doc.com/doc-1364331 .html