五邑大学2015年本科插班生考试第1页共7页五邑大学2015年通信工程(计算机通信网络)专业本科插班生招生考试《C语言程序设计》试题考试形式为闭卷、笔试。考试时间为120分钟,试卷满分为100分。一判断题,正确划√,错误划×。(每题1分,共10分)1.C语言的源程序不必通过编译就可以直接运行。(×)2.在C语言中用到的任何一个变量都要规定其类型。(√)3.C语言的标识符只能使用字母、数字和下划线三类字符,且第1位不能是数字字符。(√)4.continue语句用在循环体中,可使整个循环不结束。(×)5.静态局部变量只在本函数内可用。(√)6.在do-while循环中,任何情况下都不能省略while。(√)7.char*p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。(×)8.用fopen(file,r+);打开的文件file不能修改。(×)9.一个共用体变量只能存放其中一个成员的值。(√)10.在不出现溢出的情况下,将一个数左移n位,相当于给它扩大2n倍。(√)考生注意1、姓名、准考证号填在密封线内指定位置,字体要规范工整,否则试卷无效2、用蓝色或黑色墨水笔、圆珠笔答题。3、本试卷共6页、4大题。题号一二三四五六七八总分加分人分数评卷复查加分复查所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第2页共7页二单项选择题,错选、漏选、多选不得分。(每题2分,共40分)1.下面关于A的说法正确的是(B)。A)它代表一个字符常量B)它代表一个字符串常量C)它代表一个字符D)它代表一个变量2.若以下选项中的变量已正确定义,则正确的赋值语句是(C)。A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3;3.为表示关系x≥y≥z,正确C语言表达式是(A)。A)(x=y)&&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=z)&(y=z)4.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=ab)&&(n=cd)后n的值是(B)。A)1B)2C)3D)45.设a=8、b=13,则printf(%d,(ab)?a:b);则输出结果是(C)。A)5B)8C)13D)216.在C语言中要求参加运算的数必须是整数的运算符是(C)。A)/B)!C)%D)==7.设整型变量a为5,使b不为2的表达式是(D)。A)b=a/2B)b=5-(----a)C)b=a3?2:1D)b=a%28.若x=5,y=4则y*=x+5;y的值为(A)。A)40B)20C)15D)309.关于break语句的正确说法是(B)。A)无论在任何情况下,都中断程序的执行,退出到系统下一层。B)在多重循环中,只能退出最靠近的那一层循环语句。C)跳出多重循环。D)只能修改控制变量。10.设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式1/2(a+b)^h计算结果不相符的是(D)。A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)“*”的运算优先级高于“/”的运算优先级所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第3页共7页11.有定义语句:intb;charc[10];则正确的输入语句是(B)。A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c);C)scanf(%d%s,b,c);D)scanf(%d%s,b,&c);12.设有如下定义:structsk{inta;floatb;}data;int*p;若要使指针p指向data中的a域,正确的赋值语句是(C)。A)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a13.以下对数组初始化中哪个是不正确的。(C)A)charch[]={“Cprogram!”};B)intnum[][3]={2,4,6,8,10,12,14,16,18};C)charch[5]={‘C’,’h’,’i’,’n’,’a’};D)intnum[3][]={1,3,5,7,9,11,13,15,17};14.C语言用(C)表示逻辑“真”值。A).trueB).T或YC).非零整型值D).整型值015.以下为非法操作的是(D)。A)inti;i=100;B)inti=100;C)constinti=100;D)constinti;i=100;16.根据C语言的语法规则,下列(A)是不合法标识符。A)whileB)NameC)Rern5D)_exam17.设有宏定义“#defineS(a,b)a*b”,则赋值语句“s=S(x,y)”经宏展开为(A)。A)s=x*yB)s=S(a,b)C)s=a*bD)s=S(x*y)18.设指针变量p指向数组a的首地址,则以下哪个选项不能取得数组第i个元素值。(B)A)*(p+i)B)p+iC)*(a+i)D)a[i]所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第4页共7页19.设a=15,则表达式“(a=3*5,a*4),a+5”的值是(C)。A)15B)60C)20D)7520.结构化程序设计的基本结构不包含(D)。A)顺序B)选择C)循环D)跳转三综合题。(第1-2题每题3分,第3-6题每题6分,共30分)1.阅读以下程序代码,写出程序运行结果。intmain(){inti,sum=0;for(i=1;i=20;i++){sum+=i;}printf(“%d”,sum);return0;}程序运行后输出:210。Sum=1+2+3+4+5+。。。+19+202.阅读以下程序代码,写出程序运行结果。intmain(){inti,j,x=0;for(i=0;i2;i++){for(j=0;j3;j++){if(j%2==0)continue;x=x+1;}}printf(“%d”,x);return0;}程序运行后输出:2。3.下列程序的功能是求10的阶乘,改正程序中存在的错误(错误行已标出,不可改动其他程序代码否则不能得分),使程序能正确运行并得到正确的结果。intmain(){inti=1,n=10;longt=1;do{所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第5页共7页t=t*i;i++;}while(i=n)//此行错误,正确为:while(i=n);prinft(“%d”,t);//此行错误,正确为:printf(“%ld”,t);return0;}4.下列程序的功能是采用选择法对10个整数进行排序,改正程序中存在的错误(错误行已标出,不可改动其他程序代码否则不能得分),使程序能正确运行并得到正确的结果。intmain(){inta[10]={18,6,7,35,24,69,52,21,11,41};inti,j,k,t;for(i=0;i10;i++){k=i;for(j=0;ji;j++)//此行错误,正确为:for(j=0;ji;j++){if(a[j]a[k])k=j;if(k!=i)t=a[i],a[i]=a[j],a[j]=t;//此行错误,正确为:t=a[i],a[i]=a[k],a[k]=t;}}for(i=0;i10;i++)printf(“%d”,a[i]);return0;}5.下列程序为使用指针输出数组所有元素。阅读程序,将程序中缺少的代码补充完整,使程序能正确运行并得到正确的结果。(每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)intmain(){int*p,i,num[10]={1,2,3,4,5,6,7,8,9,10};p=&num[i];i=0;while(i10){printf(“%d“,*p);p++;i++;}return0;}6.下列程序中的数组a包括10个整型元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素的形式输出数组b。阅读程序,将程序中缺少的代码补充完整,使程序能正确运行并得到正确的结果。(每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第6页共7页intmain(){inta[10],b[10],i;for(i=0;i10;i++)scanf(“%d”,&a[i]);for(i=1;i10;i++)b[i]=a[i+1]-a[i];for(i=1;i10;i++){printf(“%3d”,b[i]);if(i%3==0)printf(“\n”);}}四编程题。(第1题8分,第2题12分,共20分)1.编写函数strLen,计算并返回给定字符串的长度。intstrLen(char*p){intnumber=0;while(*p){number++;p++;}returnnumber;}intmain(){char*str=asdfg;intlen=strLen(str);printf(%d\n,len);system(pause);return0;}2.编写反转函数reverse,将输入的整数反转并返回,如:输入-1234转换成-4321,输入6853转换为3586。所在单位姓名准考证号报考学校密封线内不要答题五邑大学2015年本科插班生考试第7页共7页