第一章作业11111.docx
《第一章作业11111.docx》由会员分享,可在线阅读,更多相关《第一章作业11111.docx(17页珍藏版)》请在冰豆网上搜索。
第一章作业11111
第一二章作业
1.C语言程序的基本结构是。
A)函数B)语句C)字符D)程序行
2.一个C程序由若干个C函数组成,各个函数在文件中的书写位置为。
A)任意B)第一个函数必须是主函数,其它函数任意
C)必须完全按调用的顺序排列D)其它函数必须在前,主函数必须在最后
3.下列四个叙述中,正确的是。
A)C程序中的所有字母都必须小写B)C程序中的关键字必须小写,其它标识符不区分大小写
C)C程序中的所有字母都不区分大小写D)C语言中的所有关键字必须小写
4.C语言规定,在一个C程序中,main()函数的位置。
A)必须在开始B)必须在最后C)可以任意D)必须在系统调用的库函数之后
5.组成C语言源程序的基本结构称为。
A)过程B)程序段C)模块D)函数
6.下列四个叙述中,错误的是。
A)一个C源程序必须有且只能有一个主函数B)一个C源程序可以含一个或多个子函数
C)在C源程序中注释说明必须位于语句之后D)C源程序的基本结构是函数
7.下列四组C语言标识符中,正确的一组是。
A)nameChar_abcA23B)abC?
c5bytes-USA_54321
C)printconsttypedefineD)includestaticDoubleshort
8.下面不属于C语言保留字的是。
A)shortB)ELSEC)externD)for
9.下列四个叙述中,正确的是。
A)C语言程序总是从第一个定义的函数开始执行B)C语言程序总是从main()函数开始执行
C)C语言程序中的main()函数必须放在程序的开始部分D)一个C函数中只允许一对花括号
10.下列四个叙述中,错误的是。
A)C语言中的关键字必须小写B)变量的存储类型决定了变量的存储位置及其生存期
C)宏定义必须以#define开头,行末必须加分号D)C语言中的注释行可以出现在程序的任何位置
第三章
1.经inta=7;floatx=2.5,y=4.7;说明后,表达式
x+a%3*(int)(x+y)%2/4的值是()。
A)2.500000B)2.750000C)3.500000D)0.000000
2.若在一个表达式中含有int、longint、unsignedint和
char类型的常量和变量,则该表达式的类型是()。
A)int型B)char型C)unsignedint型D)longint型
3.执行printf("%x,%o,%d\n",-1,-1,-1);后的输出结果是()。
A)-1,-1,-1B)ffff,-01,-1C)ffff,32767,-1
D)ffff,177777,-1
4.若有定义:
intx=3,y=2;floata=2.5,b=3.5;
则表达式(x+y)%2+(int)a/(int)b的值是(【4】)。
A)0B)2C)1.5D)1
5.设有以下语句:
intx=10;x+=3+x%(-3);则x的值是()。
A)14B)15C)11D)12
第四章
1下列属于C语句的是()。
A)scanf("%d",&)B)#defineM3+f
C)a=b,b=c,c=aD)constintA=3;
2下列语句中,错误的是()。
A)++t++;B)n1=(n2,n3=0);
C)k==i==j;D)a+=b+=1;
3已知ch是字符型变量,则下列赋值语句中,正确的是()。
A)ch=‘123’;B)ch=‘\xff’;C)ch="\0";D)ch=“\\”;
4定义inta;后,语句printf("%d\n",(a=3*5,a*4,a+5));的输出是()。
A)65B)20C)15D)10
5putchar()函数的自变量可以是()。
A)任何数值型表达式B)实型变量
C)字符串常量D)字符型常量或字符型变量
6若定义intx;floaty;且执行scanf("%3d,%f",&x,&y);语句时,从第一列开始输入数据12345,678<回车>,则x的值为()。
A)12345B)123C)45D)345
7设有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则从键盘输入数据的正确形式是()。
A)132<回车>B)1,3,2<回车>
C)a=1b=3c=2<回车>D)a=1,b=3,c=2<回车>
8设有说明:
doubley=0.5,z=1.5;intx=10;则能正确使用C语言库函数的赋值语句是()。
A)z=exp(y)+fabs(x);B)y=log10(y)+pow(y);
C)z=sqrt(x);D)x=(int)(atan2((double)x,y)+exp(y-0.2));
9若有定义inta,b=0;floatx;则下面正确的赋值语句是()。
A)a=1,b=2B)b++;C)a=b=5D)b=int(x):
10若有条件表达式x?
a++:
b++则以下表达式中能完全等价于表达式x的是()。
A)(x==0)B)(x!
=0)C)(x==1)D)(x!
=1)
第六章2009年3月30日星期一作业
1、下列各程序段中,不能实现计算1+2+3+...+10的是()。
A)inti=0,s=0;
while(i<=10){s+=i;i++;}
B)inti,s;
for(s=0,i=1;i<11;i++)s+=i;
C)inti=0,s=0;
do{s+=i;++i;}
while(i<=10);
D)inti,s;
for(s=0,i=1;i<=10;)
s+=i;
2、运行下面程序段的输出结果是()。
intn,a,s=0,p=1,i;
n=2;a=2;
for(i=1;i<=n;++i)
{p=p*a;s+=p;}
printf("\ns(%d,%d)=%d",a,i,s);
A)s(2,2)=6B)s(2,3)=6C)s(1,2)=6D)s(2,2)=5
3、运行下面程序段的输出结果是()。
intn=10;
while(n>7)
{n--;printf("%d",n);}
A)876B)987C)789D)78
4、运行下面程序段的输出结果是()。
intx=23;
do
{printf("%2d",x--);}
while(!
x);
A)321B)23C)不打印任何信息D)陷入死循环
5、下列程序段的执行结果是()。
c='\141';
while(c)printf("%c",++c);
A)\141B)AC)aD)B
6、下列程序段执行的结果,得到s的值为()。
intk,s=1;
for(k=1;k<5;++k);
s=s*k;
A)1*2*3*4*5B)0C)1D)5
7、下列程序段执行的结果,得到s的值为()。
intk,s=0;
for(k=1;k<=5;++k);
s=s*k;
A)1*2*3*4*5B)0C)1D)5
8、下列程序段执行的结果,得到s的值为()。
intk,s;
for(k=1;k<=5;++k);
s=s+k;
A)1+2+3+4+5B)5C)不确定的值D)0
第七章
12-1下列一维数组说明中,正确的是()。
A)#defineSIZE8+2
floatb[SIZE];
B)intn;scanf("%d",&n);floatb[n];
C)constintm=7;
floata[m];
D)inta(10);
12-2下列一维数组说明中,不正确的是()。
A)floata[5+6];
B)constintn=10;
chara[n];
C)#defineLONG10
inta[LONG+5];
D)floata[10],b[9];
12-3下列二维数组说明中,正确的是()。
A)intn=9;floata[n][5];
B)inta[][9];
C)#defineL12
floata[][L1]={0,0,1,1,2,2,3,3};
D)intn,m;scanf("%d%d",&n,&m);floata[m][n];
12-4下列二维数组说明中,不正确的是()。
A)floata[3*8][7-3];
B)floata[][3]={{0,1,8},{5,9}};
C)#defineL13
floata[L1][4];
D)inta[6],[7];
12-5下列一维数组初始化语句中,正确的是()。
A)inta[5]={,2,,3,5};B)inta[5]={};
C)inta[5]={5*2};D)inta[]=(0,2,0,3,7);
12-6下列一维数组初始化语句中,不正确的是()。
A)floatb[5]={0,3.2,4.3};B)floatb[5]={0,3.2,4,5,6,2};
C)intb[]={0,1,2,3};D)staticintb[3]={1,,5};
12-7下列二维数组初始化语句中,正确的是()。
A)staticinta[][]={{0,1,5},{2,4,7},{1,6,8}};
B)staticfloata[3][]={{0,1,5},{2,4,7},{1,6,8}};
C)staticinta[][3]={0,1,5,2,4,7,1,6};
D)staticfloata[3][3]={(0,1,5),(2,4,7),(1,6)};
12-8下列二维数组初始化语句中,不正确的是()。
A)intb[][3]={{5,1},{8}};B)intb[2][3]={5,1,6,2,4};
C)intb[2][3]={5};D)intb[2][3]={{5,1},{6,2},{4,3}};
12-9下列字符数组初始化语句中,正确的是()。
A)charc[]="newspaper";B)charc[8]={"newspaper"};
C)charc[10]={'newspaper'};D)charc[12]='newspaper';
12-10下列字符数组初始化语句中,不正确的是()。
A)charc[12]="aluckyday";B)charc[]='aluckyday';
C)charc[]={"aluckyday"};D)charc[6]={'l','u','c','k','y','\0'};
12-11如果有初始化语句charc[]="aboy";则数组的长度自动定义为()。
A)4B)5C)6D)7
12-12现要定义一个二维字符型数组c[M][N]来存放字符串"China","Tianjin"和"Education",则常量M和N的合理取值应为()。
A)3和9B)2和10C)4和9D)3和10
12-13下列各选项中,正确的是()。
A)intm=7,a[8];B)intn=5;floatb[n];
C)#defineLONG10;D)inti=5,floata[3];
inta[LONG];
12-14下列各选项中,不正确的是()。
A)floata[3*4];B)intn=15,floata[10];
C)#defineLONG10D)floata[10],b[9];
inta[LONG+5];
12-15若已有一维数组初始化语句inta[]={9,2,8,3,7};则数组元素a[5]的值是()。
A)7B)0C)不确知数D)‘\0’
12-16若有一维数组初始化语句floatb[20]={1.8,3.2,4.3,5.7,8.2,9.5};且数组的起始地址为8050H,则8058H是数组元素()的起始地址。
A)3.2B)8.2C)0D)4.3
13-1若有说明inta[5][4];则对其数组元素的正确引用是()。
A)a[3+1][2]B)a(2,3)C)a(0)
(2)D)a[5][4]
13-2若有说明doubleb[7][6];则对其元素的非法引用是()。
A)b[6][9-4]B)b[7][5]C)b[2*3][5]D)b[2*3][9-4]
13-3若staticshortintdata[5][6];所说明的数组在静态存储区中分配的起始地址为100H(十六进制),则数组元素data[3][2]在静态存储区中的地址为()。
A)128HB)130HC)140HD)126H
13-4设staticcharstr[4][5];所说明的数组在静态存储区的起始地址为50(十进制),则数组元素str[3][3]在静态存储区中的地址为()。
A)62B)86C)63D)68
13-5要将20,30,40,50存入数组b中,下列正确的程序段是()。
A)inti,b[4];for(i=0;i<4;i++)b[i]=(i+2)*10;
B)intb[4];b={20,30,40,50};
C)intb[4];b[1]=20,b[2]=30,b[3]=40,b[4]=50;
D)intb[4];b[4]={20,30,40,50};
13-6要将0,10,20,30存入数组a中,下列不正确的程序段是()。
A)inta[4];a[0]=0;a[1]=10;a[2]=20;a[3]=30;
B)inta[4];a={0,10,20,30};
C)inti,a[4];for(i=0;i<4;i++)a[i]=i*10;
D)inta[4]={0,10,20,30};
13-7若有说明charc[]="China";则对该数组元素的正确引用是()。
A)c[3+4]B)c
(2)C)c[2*2]D)c{5}
13-8若有说明charc[]={'N','a','n','K','a','i'};则对其元素的
非法引用是()。
A)c[0]B)c[9-6]C)c[2*2]D)c[7]
13-9设已包含标题文件,以下程序段的输出结果是()。
chars[]="agirl";
printf("%d\n",strlen(s));
A)6B)5C)8D)7
13-10若有说明chars1[]="Theboy",s2[]="ishandsome";
使用函数strcpy(s1,s2)后,()。
A)s1的内容不变
B)有可能导致数据错误
C)s1的内容更新为Theboyishandsome
D)s1的内容更新为ishand\0
13-11已知"J"的ASCII码为74,设已包含标题文件,则运行以下程序的输出结果是()。
chars1[]="Tian",s2[]="TianJin";
printf("%d\n",strcmp(s1,s2);
A)74B)3C)-3D)-74
13-12判断字符串s1是否小于字符串s2,应该使用()。
A)if(strcmp(s1,s2)>0)B)if(s1C)if(strcmp(s2,s1))D)if(strcmp(s2,s1)>0)
13-13一维数组定义的一般形式是()。
A)[<存储类型>]<数据类型><数组名>[<常量表达式>]
B)<数据类型>[<存储类型>]<数组名>[<常量表达式>]
C)[<存储类型>]<数据类型><数组名>[<变量表达式>]
D)<数据类型>[<存储类型>]<数组名>[<变量表达式>]
13-14在存储器中,二维数组的元素是()。
A)按列序顺序存放的,同一列中元素则按行序顺序存放
B)按行序顺序存放的,同一行中元素则按列序顺序存放
C)按行列下标之和的顺序存放的,下标之和小的在前,大的在后
D)无序存放的,用指针指向下一个元素
13-15在数组说明时对数组初始化,不能()。
A)对非静态数组进行B)只对部分元素进行
C)对数组整体赋初值D)省略数组的长度
13-16若有说明floata[5][4]={{2,3,4},{5,6,7},{8,9,1}};
则下述各关系式中()为真。
A)a[0]==2B)a[1][1]==3
C)a[2]=={8,9,1}D)a[4]=={0,0,0,0}
14-1运行下面程序段的输出结果是()。
autointa[7]={1,3,5};
printf("%d\n",a[3]);
A)0B)5C)3D)不确定数
14-2运行下面程序段的输出结果是()。
chars1[6]={'d','o','\0','i','t','\0'};
printf("%6s",s1);
A)'d''o'B)doC)doitD)doit
14-3若有说明chars1[5],s2[7];要给s1和s2赋值,下列语句中正确的是()。
A)scanf("%s%s",&s1,&s2);B)gets(s1),gets(s2);
C)scanf("%c%c",s1,s2);D)s1=getchar();s2=getchar();
14-4若有说明chars1[]="key",s2[]="pass";则下列输出语句中正确的是()。
A)printf("%s%s",&s1,&s2);B)printf("%s%s",s1[],s2[]);
C)puts(s1,s2);D)puts(s1);puts(s2);
14-5若已有定义chars1[9];inti;下列输入函数调用中含有错误的是()。
A)for(i=0;i<9;i++)scanf("%c",s1[i]);
B)for(i=0;i<9;++i)s1[i]=getchar();
C)scanf("%s",s1);D)gets(s1);
14-6若已有定义chars1[6]="class";inti;下列输出函数调用中
含有错误的是()。
A)for(i=0;i<6;i++)putchar(s1[i]);
B)for(i=0;i<6;i++)puts(s1[i]);
C)printf("%s",s1);D)puts(s1);
14-7若已有定义staticchars1[9];inti;下列输入函数调用中正确的是()。
A)for(i=0;i<9;i++)scanf("%c",s1[i]);B)scanf("%s",&s1);
C)for(i=0;i<9;++i)s1[i]=getchar();D)gets(&s1);
14-8若已有定义chars1[6]="apple";inti;下列输出函数调用中正确的是()。
A)for(i=0;i<6;i++)putchar(s1);B)puts(&s1);
C)puts(s1[6]);D)printf("%s",s1);
14-9若已有定义staticcharstr[7];要将键盘输入的字符串"apear"赋给str,应使用()。
A)gets(str);B)scanf("%s",str);
C)str="apear";D)getchar(str);
14-10若已有定义charstr[6]={'a','\0','c','u','p','\0'};inti;
现要输出"acup",应使用()。
A)printf("%s",str);B)for(i=0;i<5;++i)putchar(str[i]);
C)puts(str);D)for(i=0;i<5;i++)printf("%c\n",str[i]);
14-11设已包含标题文件,下面程序段的运行结果是()。
chars1[10]="ChangChun";
chars2[6]="JiNan";
strcpy(s1,s2);
printf("%c",s1[6]);
A)\0B)C)hD)C
14-12下面的程序段,()。
chars1[6],s2[]="foxbase";
s1=s2;
printf("%s",s1);
A)运行后输出foxbaB)运行后输出foxbas
C)运行后输出foxbaseD)编译出错
14-13下述各选项中正确的是()。
A)C语言中使用字符数组来处理字符串
B)C语言中用专门的字符串变量来处理字符串
C)C语言中用字符变量来处理字符串
D)C语言中必须使用字符数组来处理字符
14-14若字符数组a[20]中存放着一个字符串,且a[10]=‘\0’,则该字符串的长度是()。
A)9B)10C)11D)20
14-15要将字符串str2连接到字符串str1后,应使用的函数是()。
A)strcpy(str1,str2);B)strcat(str2,str1);
C)strcat(