您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 扬州大学C语言0606、0706期末试题
扬州大学C语言0606、0706期末试题202106一、单选题(每小题2分,共30分)1.下列表示中,不是C语言合法字符常量的是(1)。A.‘\0xff’B.‘\65’C.‘$’D.‘\x2a’2.设有如下定义:floaty=3.45678;intx;则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是(2)。A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.03.下列表示中,能在C语言中正确定义三个整型变量a、b、c,且能给它们均赋值5的是(3)。A.inta=b=c=5;B.inta,b,c=5;C.inta=5,b=5,c=5;D.a=b=c=5;4.设有数学命题“当整数a的值为奇数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是(4)。A.a%2==1B.!(a%2)C.!(a%2==0)D.a%25.执行下列程序段后,变量i的值是(5)。inti=1;switch(i){case0:i+=1;case1:i+=1;case2:i+=1;default:i+=1;}A.1B.2C.3D.46.在C语言中,break语句(6)。A.能用在C源程序中的任何位置B.只能用在循环体内C.只能用在循环体内或switch语句中D.可用作函数内的任一语句7.设有程序段:intx=10;while(x=0)x=x-1;则下列叙述中正确的是(7)。A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次8.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为(8)。A.该数组的长度B.该数组的元素个数C.该数组中元素的值D.该数组的首地址9.以下关于函数定义的叙述中,正确的是(9)。A.构成C语言源程序的基本单位之一是函数定义B.所有被调用的函数必须在调用之前定义C.main函数的定义必须放在其他函数定义之前D.定义main函数时,main函数的函数体内必须至少包含一条语句或声明10.设有下列程序段:structperson{charname[9];intage;};structpersonclass[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16};则下列选项中,能打印出字母“M”的语句是(10)。A.printf(“%c\n”,class[3].name);B.printf(“%c\n”,class[3].name[1]);C.printf(“%c\n”,class[2].name[1])D.printf(“%c\n”,class[2].name[0])11.以下能将字符串“good!”正确地存放在字符数组s中,或使指针变量s能正确地指向这个字符串的是(11)。A.chars[5]={‘g’,‘o’,‘o’,‘d’,‘!’};B.chars[5];s=“good!”;C.ints[5]=“good!”;D.char*s;s=“good!”;12.若有语句:chars1[10],s2[10]=“books”;则下列表示中,能正确地将字符串“books”赋给数组s1的是(12)。A.s1={“books”}B.strcpy(s1,s2)C.s1=s2D.strcpy(s2,s1)13.以下正确的函数说明语句是(13)。A.intfun(inta,b)B.floatfun(inta;intb)C.doublefun()D.intfun(chara[][])14.设有说明语句char*s=“abcd”;则执行s+=2后,*s的内容是(14)。A.aB.bC.cD.cd15.下列对typedef的叙述中,错误的是(15)。A.用typedef可以增加新类型B.用typedef可以定义各种类型名,但不能用来定义变量C.用typedef只是将已存在的类型用一个新的标识符来代表D.使用typedef有利于程序的通用和移植二、填空题(每空1分,共20分)1.一个C语言源程序是由若干个(1)组成的;C语句的分隔符是(2)。2.程序的三种基本控制结构分别是(3)、选择和(4)。3.数学表达式“bayx++22”所对应的C语言表达式为(5)。在C程序中要计算这样的表达式,通常必须包含头文件(6)。4.在C语言中,声明变量的格式为:存储类别类型名变量名表;其中,变量有四种存储类别,它们分别是(7)、register、extern和(8)。5.若有定义:“inta[3][4]={{1,2,3},{4,5},{6,7,8}};”,则执行该说明语句后,a[1][2]=(9),a[2][1]=(10)。6.在C程序中,若有函数定义如下:voidf(){staticinti;…}其中,void表明函数f(11);而i是一个(12)整型变量。7.在C语言程序设计中,预处理命令行必须以(13)开头,该命令是在(14)被处理的。8.若一结构的成员项是指向本结构类型的结构指针,则称该结构为(15)。定义这种结构类型的一般形式如下:structnode{intdata;(16)next;};9.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(17);定义一个函数时,若缺省该函数返回值的类型,则默认返回值为(18)型。10.设有以下说明语句:structstudent{intx;int*y;};intdt[4]={1,2,3,4};structstudenta[4]={10,&dt[3],20,&dt[2],30,&dt[1],40,&dt[0]},*p=a;则表达式++p-x的值为(19),表达式*(++p)-y的值为(20)。三、阅读程序写出结果(每小题4分,共20分)1.下列程序的运行结果是。#includemain(){ints=0,n=135;do{s+=n%10;n/=10;}while(n);printf(“%d\n”,s);getch();}2.下列程序的运行结果是。#includevoidf(intx,inty){intt;t=x;x=y;y=t;}main(){inta=1,b=100;f(a,b);printf(“%d,%d\n”,a,b);getch();}3.以下程序运行的结果是。#include#includemain(){inti;for(i=0;iprintf(%3d,f(i));getch();}f(intx){inty=0;staticintz=1;y++,z++;return(x+y+z);}4.下面程序段运行的结果是__________________。#include#includemain(){inti=1,j=0,m=1,n=1;switch(i){case1:m++;n++;case2:switch(++j){case1:m++;break;case2:n++;}case3:m++;break;case4:n++;}printf(%d,%d\n,m,n);getch();}5.下面程序段运行的结果是__________________。#include#includemain(){charch[7]=“1234”;inti,s=0;for(i=strlen(ch)-1;i=0;i--)s=s*10+ch[i]-‘0’;printf(“%d\n”,s);getch();}四、完善程序题(每空1分,共30分)1.以下程序的功能是统计正整数的各位数字中零的个数,并求出各位数字中的最大者。请填空。#includemain(){longintn,t;intcount=0,max=0;scanf(%ld,&n);while(n){t=(1);if(t==0)count++;elseif(max}printf(count=%d,max=%d\n,count,max);getch();}2.以下程序的功能是把从键盘上输入的十进制数n以八进制数的形式输出,请填空。#includemain(){intc[64],i=0,base=8;longn;printf(Enteranumber:\n);scanf(%ld,&n);do{c[i++]=(3);(4);}while(n);printf(Transmitenewbase:\n);for(--i;i=0;--i)printf(%d,(5));printf(\n);getch();}3.程序中函数doublemycos(doublex)的功能是:根据下列公式计算cos(x)的近似值,直到某一项的绝对值小于10-6为止。在主函数中输入x值,输出cos(x)的值。请填空。)!2()1(...!6!4!21)cos(2642nxxxxxnn-++-+-=#include#include#includedoublemycos(doublex){intn=1;doublesum=0,term=1.0;while((6)){sum+=term;term*=(7);n=n+2;}returnsum;}main(){doublex;scanf(%lf,&x);printf(cos(%lf)=%lf\n,x,(8));getch();}4.设有函数pow定义如下:pow(intx,inty){inti,j=1;for(i=1;ireturn(j);}下列改变后的函数欲取消上述函数中的局部变量i而使pow的功能不变。请填空。pow(intx,inty){intj;for((9);(10);(11))j=j*x;return(j);}5.设有一表头结构如下:其中,num为长整型;name为长度不超过10的字符串型;day和year为整型;month为长度不超过3的字符串型。下列程序段用于设计一结构类型描述上述结构。请填空。structdate{intday;charmonth[4];intyear;};structstu{(12);(13);(14);};6.有如下说明和变量的定义:structnode{chardata;structnode*link;}*p,*q;设p、q已分别申请到一个结点空间,现要求把结点q连接到结点p之后。写出建立如下图所示的存储结构和赋值所需的语句。datalinkdatalink↑p↑qscanf(“%c%c”,&p-data,&q-data);/*输入数据为:59(15);/*结点q连接到结点p之后*/(16)=NULL;6.以下程序中函数voidencode(char*s1,char*s2)的功能是完成一个字符串的加密,将s1字符串中的字符经过变换后保存到s2指向的字符数组中。二维数组cs用于保存了上述明码密码对照表,第一行是明码字符,第二行是对应的密码字符。加密方法:从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。#include#includecharcs[2][10]={aceghjlnp,fonptiude};voidencode(char*s1,char*s2){intn,i,j;for(n=0;s1[n]!='\0';n++){for(i=0;iif((18))s2[n]=s1[n];elses2[n]=(19);}s2[n]='\0';}main(){charts[80]=jntwrnwt,td[80];encode((20));puts(ts);puts(td);getch();}8.以下程序在b数组中查找与y值相同元素的所在位置。main(){intb[20],y,i;printf(“Enter10Integers:\n”);for(i=0;iscanf(“%d”,b+i);printf(“Entery:”);scanf(“%d”,&y)
本文标题:扬州大学C语言0606、0706期末试题
链接地址:https://www.777doc.com/doc-7855525 .html