江南大学现代远程教育上半年全阶段计算机语言C.docx
- 文档编号:7805844
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:89.75KB
江南大学现代远程教育上半年全阶段计算机语言C.docx
《江南大学现代远程教育上半年全阶段计算机语言C.docx》由会员分享,可在线阅读,更多相关《江南大学现代远程教育上半年全阶段计算机语言C.docx(18页珍藏版)》请在冰豆网上搜索。
江南大学现代远程教育上半年全阶段计算机语言C
江南大学现代远程教育2013年上半年第一阶段测试卷
一、选择题(每题2分,共30分)
1.C语言程序由()组成。
A.子程序B.过程C.函数D.主程序与子程序
2.当a的值为5,b的值为4时,逻辑表达式a<=6&&a+b>8的值为()。
A.trueB.falseC.非0整数值D.整数值0
3.下面四个选项中,均是不合法的用户标识符的选项是()。
A._AB.HARC.b_aD.1_23
P1c3INTdo
C_2a2er1int
4.在c语言中,错误的语句是()。
A.a=b=c;B.;C.breakD.b=3*5,a*=4;
5.设a、b和c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的是()。
A.a&&bB.a<=bC.a||b+c&&b-cD.!
((a
c||1)
6.若int类型数据占两个字节,则执行以下语句的输出为()。
intx=-1;
printf(“%d,%u\n”,x,x);
A.1,1B.–1,32767C.–1,32768D.–1,65535
7.以下程序的运行结果是()。
main()
{intm=5;
if(m++>5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);}
A.4B.5C.6D.7
8.设a为整型变量,初值为12,执行完语句a+=a-=a*=a后,a的值是()。
A.-552B.-120C.-264D.0
9.以下所列字符常量中,不合法的是()。
A.'/Oxff'B.'\65'C.'$'D.'\xla'
10.以下不致造成死循环的语句是()。
A.for(y=0,x=1;x>++y;x=i++)i=x;
B.for(;;x+=i);
C.while(x=8)x--;
D.for(i=10,sum=0;sum<=i;)sum=--i;
11.执行以下程序段后,变量a,b,c的值为()。
intx=11,y=10,a,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;c=y;
A.a=10,b=10,c=9B.a=9,b=9,c=12
C.a=9,b=9,c=11D.a=1,b=9,c=11
12.执行下列程序段后,变量i的值是()。
inti=10;
switch(i){
case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}
A.13B.12C.11D.14
13.根据定义和数据的输入方式,输入语句的正确形式为()。
已有定义:
floatf1,f2;
数据的输入方式:
4.52
3.5
A.scanf(“%f,%f”,&f1,&f2);B.scanf(“%f%f”,&f1,&f2);
C.scanf(“%3.2f%2.1f”,&f1,&f2);D.scanf(“%3.2f,%2.1f”,&f1,&f2);
14.以下程序的输出是()。
main()
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
}
A.a=2,b=5B.a=%2,b=%5
C.a=%%d,b=%%dD.a=%d,b=%d
15.设a和b为整型变量,执行以下语句:
b=(a=2+3,a*4),a+5;后a和b的值分别为()。
A.5,10B.20,25C.5,25D.5,20
二、填空题(每空3分,共45分)
1.break语句的功能结束循环,contitue语句的功能结束本次循环。
2.字符串”\\\’abcd\123\xAB\t”的长度为9。
3.设x=2,y=3,表达式x=y==3运算后,其值是1。
4.设有如下的说明:
intI=3,j=5,m;
问:
执行语句m=(I++)-(--j);后,m的值为-1,j的值为4。
5.设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为double型。
6.下述程序段的循环次数是1次,输出结果是y=1,x=0。
intx=0,y=0;
do
{y++;
x*=x;
}while(x>0&&y>5)
printf(“y=%d,x=%d”,y,x);
7.下程序的功能是用二分法求方程2x3-4x2+3x+6=0的根,并要求绝对值误差不超过0.001。
#include”math.h”
main()
{floatab,a=10.0,b=10.0,fab,fa,fb;
fa=2*a*a*a+4*a*a+3*a+6;
fb=2*b*b*b+4*b*b+3*b+6;
do{ab=(a+b)/2;
fab=ab*((2*ab+4)*ab+3)+6;
if((fa*fab)>0)
{a=ab;fa=fab;}
else
{b=ab;fb=fab;}
}while(fabs(fab)>=1e-3);
printf(“%d\n”,ab);
}
8.以下程序打印所有符合下列条件的3位正整数:
是某一个数的平方数,其中有两位数字相同。
如100、121等。
main()
{inta,b,c,n,k;
for(k=10;;k++)
{n=k*k;
if(n>999)break;
a=n/l00;
b=n%100/10;
c=n%10;
if(!
((a-b)*(b-c)*(c-a)))printf("\n%d,%d",n,k);
}
}
9.以下程序的功能是输出1000以内被17整除的数,每行输出4个数
#include
main()
{intI,j=0;
for(I=16;I<=1000;I++)
{if(I%17!
=0)continue;
j++;
printf((j==4)?
j=0,"%d\n":
"%d\t",I);
}
}
10.#include“stdio.h”
main()
{charc;scanf(“%c”,&c);
switch(c-‘2’)
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;}
printf(“\n”);}
当分别输入1,2,3,4,5时,输出为36677887。
三、编程题(共25分)
1.编程,打印以下图形(10分)
A
B*B
C***C
D*****D
E*******E
D*****D
C***C
B*B
A
Main()
{intI,j,m=65;或intI,J;charm=’A’;
for(I=1;I<=5;I++)
{for(j=1;j<=5-I;j++)
Printf(“”);
for(j=1;j<=2*I-1;j++)
if(j=1//j==2*I-1)
printf(“%c”,m+I-1);
elseprintf(“*”);
printf(”\n”);
}
for(I=1;I<=4;I++);
{for(j=1;j<=I;j++);
Printf(“”);
for(j=1;j<=9-2*I;j++);
if(j=1//j==9-2*I);
printf(“%c”,m+4-I);
elseprintf(“*”);
2.根据下列公式,求sinx的近似值,直到最后一项的绝对值小于10-6为止。
(15分)
Main()
{floatsinx=0,x,t,f=1.0;
jnti=1;
printf(“pleaseinputx\n”)
scanf(“%f,&x”);
t=x;
do{
sinx=sinx+f*t;
f=-f;
t=t*x*x/(2*i*(2*i+1));
i++;}while(fabs(t)>=le-4);
printf(“sinx=%f\n”;sinx);
}
江南大学现代远程教育2013年上半年第二阶段测试卷
一、选择题(每题2分,共30分)
1.变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
2.C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是()。
A.将串STR1复制到串STR2中后再连接至串STR3之后
B.将串STR1连接至STR2之后再复制至串STR3之后
C.将串STR2复制到串STR1串后再将串STR3连接到串STR1之后
D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串
3.以下正确的说法是()。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值类型不一致,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
4.以下函数调用中有()个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)
A.4个B.3个C.8个D.5个
5.对于C语言的函数,下列叙述中正确的是()。
A.函数的定义不能嵌套,但函数调用可以嵌套
B.函数的定义可以嵌套,但函数调用不能嵌套
C.函数的定义和调用都不能嵌套
D.函数的定义和调用都可以嵌套
6.编译预处理包括()。
A.文件包含、宏定义和条件编译
B.构造工程文件
C.语句注释
D.编辑源程序
7.以下叙述中不正确的是()。
A.一个变量的作用域完全取决于变量说明语句的位置
B.外部变量可以在函数以外的任何位置定义
C.内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数下一次调用
D.用static说明—个外部变量是为了限制其它编译单位的引用
8.以下有关宏替换的叙述不正确的是()。
A.宏替换不占用运行时间B.宏名无类型
C.宏替换只是字符替换D.宏名必须用大写字母表示
9.假设有宏定义:
#defineNUM15
#defineDNUMNUM+NUM
则表达式DNUM/2+NUM*2的值为()。
A.45B.67C.52D.90
10.若有宏定义与变量说明如下:
#defineX5
#defineYX+1
#defineZY*X/2
inta;a=y;
则执行以下printf语句后输出的结果是()。
Printf("%d%d\n",Z,--a);
A.75B.126C.125D.76
11.若有变量说明:
chars,s1[20];执行语句:
s="student";s1=s;正确的叙述是:
()。
A.二个语句都不正确
B.s所指向的字符串和s1的值都是"student"
C.第一个语句正确,而第二个语句不正确
D.第二个语句正确,而第一个语句不正确
12.C程序中若函数类型未加显式说明,则函数的隐含类型为()类型。
A.voidB.intC.charD.double
13.以下程序的运行结果是()。
main()
{inta=2,i;
for(i=0;i<3;i++)printf("%d",f(a));}
f(inta)
{intb=0;
staticintc=3;
b++;c++;
return(a+b+c);
}
A.777B.7□7□7C.789D.7□8□9
14.执行以下程序:
main()
{charstr[13];scanf(“%s”,str);printf(“%s\n”,str);}
若输入数据为:
abcd1234efgh
则程序的输出结果是()。
A.abcdB.abcd1234efgh
C.abcd1234D.abcd1234efgh
15.对于extern型变量和static型变量的初始化()。
A.在编译时进行
B.在程序开始运行时进行
C.在程序运行过程中使用到它们时进行
D.不能确定在何时进行
二、填空题(每空3分,共45分)
1.有说明语句inta[10]包括了10个数组元素。
2.在C语言中,二维数组元素在内存中的存放顺序是按行存放。
3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是单向值传递。
4.一个函数包含函数的首部和函数体两大部分,在函数名后面,语句括号之前说明的变量名称为形式参考;以"extern"开头进行的变量说明称为外部变量说明。
5.下面程序实现用折半查找法找出所给的字符c是否在已知字符串str中。
#include“stdio.h”
main()
{intbot=0,top=9,mid,flag=0;
charstr[11]=”achklnprtx”,c;
c=getchar();
while((top-bot)>=0)
{_mid=(top+bot)/2;
if(b[mid]==c)
{flag=1;break;}
elseif(b[mid] _bot=mid+1; else _top=mid-1;} if(_flag)printf(“%c字符在已知字符串中\n”,c); elseprintf(“%c字符不在已知字符串中\n”,c);} 6.下面程序的功能是求1至1000之间满足“除3余0,且有一位是5”的数,例如15,45,51…且一行输出5个数,变量a,b,c分别存储百位,十位和个位。 #include main() {intI=1,j=0,a,b,c; do{a=I/100; b=I%100/10; c=I%10; if(I%3==0&&(a==5||b==5||c==5)) {printf(“%4d”,I); j=j+1; if(j%5==0)printf(“\n”); I++;}while(I<1000);} 7.执行以下程序后,输出的是22(所有编译系统传递函数参数的顺序为自右向左)。 [程序] func(inta,intb) {returna+b;} main() {intx=6,y=7,z; z=func(func(x++,y++),func(--x,--y)); printf("%d",z); } 三、编程题(25分) 1.以下程序实现从键盘上输入年、月、日,计算该日是该年的第几天。 (15分) 2.画出排序算法的N-S结构流程图。 (10分) 江南大学现代远程教育2013年上半年第三阶段测试卷 一、选择题(每题2分,共30分) 1.对于基类型相同的指针变量,不能进行()运算。 A.+B.-C.=D.== 2.C语言中文件的存取方式是()。 A.顺序存取B.随机存取 C.a与b均可D.a与b均不可 3.函数AAA(s,t) char*s,*t; {while(*t++); t--; while(*t++=*s++); } 的功能是()。 A.求串的长度 B.比较两个串的大小 C.将串s复制到串t中 D.将串s连接到串t中 4.在16位IBM-PC机上使用C语言,如定义下列联合类型变量: uniondata { inti; charch; floatf; }a,b,c; 则联合变量,a,b,c名占用内存的字节数为()。 A.1B.2C.4D.7 5.以下执行后显示的结果是()。 #include FILE*fp; main() {ints=0,i,a[4]={15,25,33,58}; fp=fopen("data.txt","wb"); for(i=0;i<4;i++) putw(a[i],fp); fclose(fp); fp=fopen("data.txt","rb"); for(i=1;i<4;i++) s+=getw(fp); printf("%d\n",s); } A.73B.131C.116D.106 6.下列有关C语言文件的说法正确的是()。 A.C语言文件是由记录组成 B.C语言文件被看作是一个字符(字节)的序列,称为流式文件 C.C语言有专门的文件操作命令 D.以上说法都不正确 7.若有“inta[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);”,则值为9的表达式是()。 A.p+=3,*p++B.p+=4,*(p++) C.p+=4,*++pD.p+=4,++*p 8.下列程序执行结果 main() { chars1[4]="12";char*p; p=s1;printf("%c\n",*(p+1)); } A.3B.1C.2D.4 9.设有数组说明“inta[4][4];”,则不能等价表示的数组元素a[3][3]是()。 A.*(a[3]+3)B.*(*(a+3)+3) C.*&a[3][3]D.(*(*(a+3))+3) 10.若有以下说明,则对结构体变量exp10中成员std的引用不正确的是()。 structexample { intstd; floatstd1; }exp10,*p; A.exp10.stdB.example.stdC.p->stdD..(*p).std 11.设有“chars[]=”Program“,*p=s;”,则以下叙述中正确的是()。 A.数组s的内容与指针变量p中内容相同 B.数组s的长度与strlen(p)的值相等 C.p[5]的值等于s[5]的值 D.sizeof(s)等于sizefof(*p) 12.设有说明: uniondata{ inti;floatf; struct{ intx;chary; }s; doubled; }a; 在16位微机环境下,int类型的整数占用两个字节,则变量a在内存中所占字节数为()。 A.8B.17C.9D.15 13.C语言联合类型在任何给定时刻()。 A.所有成员一直驻留在结构中 B.只能有一个成员驻留在结构中 C.部分成员驻留在结构中 D.没有成员驻留在结构中 14.以下枚举类型的定义中正确的是()。 A.enuma={one,two,three};B.enuma{one=9,two=-1,three}; C.enuma={“one”,“two”,“three”};D.enuma{“one”,“two”,“three”}; 15.现有C语言程序 main() {staticinta[]={1,2,3,4,5,6} int*p;inti; p=a; *(p+3)+=2; printf("n1=%d,n2=%d\n: ",*p,*(p+3)); } 其输出是________。 A.n1=1;n2=5B.n1=2,n2=6 C.n1=1,n2=7D.n1=1,n2=6 二、填空题(每空3分,共45分) 1.输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如: “abcba”和“abddba”是回文,而字符串“abcAa”不是回文。 #include”stdio.h” intf(char*p) {char*p1,*p2;p1=p2=p; while(*p2++); p2=P2-2; while(P1! =\0) {if(*P1! =*P2)return(0); p1++;p2--;} return1;} main() {chars[200];printf(“输入一个字符串: ”); scanf“%S”,S); if(f(s))printf(“字符串: %s是回文! \n”,s); elseprintf(“字符串: %s不是回文! \n”,s);} 2.下面函数swap_p的功能是完成交换两个数的操作。 请按指定的顺序在题后的相应序号后填上适当的内容,使之成为完整正确的函数。 swap_p(s,t) int*s,*t; {intterm; term=*s;*s=*t;*t=term; } 3.程序输出的结果是n1=tn2=ua=tesustring,b=tesusfg。 #include main() {staticchara[50]="test"; charb[40],*p; p=a; *(p+3)+=1; strcpy(b,"abcdefg"); strcat(a,"string"); strncpy(b,a,5); printf("n1=%c,n2=%c\t",*p,*(p+3)); printf("a=%s,b=%s\n",a,b); } 4.[程序]: main() {unionEXAMPLE{ struct{intx,y;}in; inta,b; }e; e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b; printf(“%d□%d\n”,e.in.x,e.in.y); } 该程序输出的结果是4□8。 5.以下程序的运行结果是baCBAcd #include voidbubble(char*str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江南 大学 现代远程教育 上半年 阶段 计算机语言