C语言习题2.docx
- 文档编号:23805333
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:19
- 大小:21.95KB
C语言习题2.docx
《C语言习题2.docx》由会员分享,可在线阅读,更多相关《C语言习题2.docx(19页珍藏版)》请在冰豆网上搜索。
C语言习题2
1.C源程序的基本单位是()。
A.子程序B.函数C.过程D.复合语句
2()可求得0到0.99的随机数。
P58
A.srand()*100%100B.rand()%100/100.0C.rand()%100/100D.srand()%100/100.0
3整型常量没有()形式。
P22
A.十进制B.二进制C.十六进制D.八进制
4若已定义:
inti,j,k;doublex;则下列表达式中语法正确的是()。
A.x%5B.j+2=kC.j+=(k=4)*jD.i=k+2j
5若已定义:
intn=10,i=4;则赋值运算n%=i+1执行后,n的值是()。
A.0B.2C.3D.1
6若已定义:
floatf;chars[20];下列正确的输入语句是()。
A.scanf("%s%f",&s,f);B.scanf("%c%f",s,&f);
C.scanf("%s%f",s,f);D.scanf("%s%f",s,&f);字符数组用字符串。
7能正确表示a和b同时为正或同时为负的逻辑表达式是()。
A.(a>0&&b>0)&&(a<0&&b<0)B.a*b>0
C.(a>0||b>0)&&(a<0||b<0)D.(a+b>0)&&(a+b<=0)
8若已定义intk=5;floatd=3.5;则表达式d+k%3/2的值为()。
A.3.5B.5.5C.4D.4.5
9若已定义:
inta=-1,b=-3,c=0,d=2;则表达式a
c:
(a>d?
b:
d)的值是()。
A.-1B.-3C.0D.2
10以下程序段运行后m的值为()。
inti,m=3;
for(i=1;i<=3;i++)
{m+=1;
if(m%2!
=0)
break;
m+=2;
}
A.9B.7C.8D.6
11以下程序段运行后,c的二进制值是()。
inta=2,b=5,c;
c=(a<<2)^b;
A.00001101B.00000100C.00000001D.00001100
12给数组a所有元素赋初值0的语句是()。
A.inta[9]=0;B.inta[9]={};
C.inta[9]=9*0;D.inta[9]={0};
13以下程序的运行结果是()。
voidmain()
{inta[3][3]={0},i,j;
for(i=0;i<3;i++)
a[i][i]=1;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
A.000B.100C.001D.111
000010010111
000001100111
14使字符数组str正确存放字符串"abc"的语句是()。
A.charstr[4]={'a','b','c','\0'};B.charstr[4]={'a','b','c','0'};
C.charstr[3]={'a','b','c'};D.charstr[]={'a','b','c'};
15以下程序的运行结果是()。
intfun(intk)
{switch(k)
{case2:
return0;
case3:
case4:
return1;
default:
return5;
}
return-1;
}
voidmain()
{printf("%d\n",fun(3));
}
A.-1B.5C.1D.0
16正确的宏定义命令是()。
A.#defineK9.78B.#defineK=9.78
C.#defineK9.78;D.#defineK=9.78;
17若已定义:
intb=12,*p=&b;下列描述错误的是()。
A.*(&p)等价于bB.b等价于*(&b)
C.&(*p)等价于pD.*p等价于b
18以下程序的运行结果是()。
voidmain()
{inta=5,b=6,c;
int*p1,*p2;
p1=&a;
p2=&b;
p1=p2;
c=*p2+2*(*p1);
printf("%d\n",c);
}
A.18B.17C.16D.15
19对结构类型变量定义不正确的是()。
structperson
{intnum;
charname[20];
};
structpersonperson1;
struct
{intnum;
charname[20];
}person;
structpersonperson1;
structperson
{intnum;
charname[20];
}person1;
struct
{intnum;
charname[20];
}person1;
20若已定义:
inta[2][2]={1,2,3,4},(*p)[2];p=a;对数组a元素引用错误的是()。
A.(**p)[1]B.**(p+1)
C.*(p[0]+1)D.*(p[1])
21以下程序段运行后,c的二进制值是()。
inta=2,b=5,c;
c=(a<<2)^b;
A.00001101B.00000001C.00000100D.00001100
22使用fopen()函数打开一个文件时,读写指针()。
A.一定在文件尾B.一定在文件首
C.可能在文件首,也可能在文件尾D.不确定
23()不属于结构化程序设计的三种基本控制结构。
A.顺序结构B.循环结构C.嵌套结构D.选择结构
24合法的长整型常量是()。
A.1E10浮点B.(long)6246245C.0LD.6246245
25不能完成数学式(3ad)÷(bc)的表达式是()。
A.a*d/c/b*3B.a/b/c*d*3C.3*a*d/b*cD.3*a*d/b/c
26要使用以下程序段给三个字符型变量c1,c2,c2分别赋值'a','b','c',正确的输入数据格式是()。
charc1,c2,c3;
scanf("%c%c%c",&c1,&c2,&c3);
A.'a''b''c'B.'a','b','c'C.abcD.a,b,c
27若已定义:
inta=2,b=3,c=4;则下列表达式中值为0的是()。
A.a%b&&b/cB.(b-a)==(c/b)C.a>=aD.(b-a)&&(b-c)
28下列运算符中,优先级最高的是()。
P41-42
A.+B.&&C.!
=D.++
29叙述正确的是()。
A.for循环中,不能用break语句跳出循环体
B.for循环中循环体可包含多条语句,但必须用{}括起来
C.while循环体至少无条件执行一次,而do…while循环体可能都不执行
D.while循环中,不能用break语句跳出循环体
30以下程序的执行功能是()。
voidmain()
{inta[5]={66,78,82,53,91},b[5]={70,58,81,65,90},i,n=0;
for(i=0;i<5;i++)
{if(a[i]>b[i])
n++;
}
printf("n=%d\n",n);
}n=3
A.统计数组a各元素值等于数组b对应元素值的个数
B.统计数组a各元素值大于数组b对应元素值的个数
C.统计数组a各元素值大于60的个数
D.统计数组a各元素值小于数组b对应元素值的个数
31若已定义intarr[][3]={1,2,5,6,8,9,11};则数组a第一维长度是()。
A.5B.2C.4D.3
32若已定义charb[20]="Nicetomeetyou!
";实现输出字符串"meetyou!
"的语句是()。
A.printf("%s",b+8);B.printf("%c",b[8]);C.printf("%c",b+8);D.printf("%s",b);
33函数调用中,若实参为数组名,则传递给对应形参的是()。
A.数组的首地址B.数组中每个元素的值C.数组中每个元素的地址D.数组的长度
34宏定义#definePI3.14中,用宏名PI代表一个()。
A.字符变量B.双精度数C.单精度数D.符号常量
35以下程序段的运行结果是()。
charstr[]="Computer",*p=str;
printf("%s",p);
A.rB.retupmoCC.ComputerD.C
36以下程序的运行结果是()。
voidfn(intx,inty,int*p)
{*p=x+y;
}
voidmain()
{inta,b;
fn(5,3,&a);
fn(7,a,&b);
printf("a=%d,b=%d\n",a,b);
}
A.a=8,b=15B.a=15,b=8
C.a=7,b=8D.a=8,b=7
37若有以下对结构类型和结构变量的定义:
structdate
{
intyear;
intmonth;
intday;
};
structstudent
{
charname[20];
structdatebirthday;
}stu;
以下能对结构变量stu的birthday成员进行正确赋值的是()。
A.stu.date.day=20B.birthday.day=20
C.stu.birthday.day=20D.day=20
main()
{
structdate
{
intyear;
intmonth;
intday;
};
structstudent
{
charname[20];
structdatebirthday;
}stu;
stu.date.day=20;
birthday.day=20;
stu.birthday.day=20;
day=20;
}
38以下程序段的输出结果是()。
inta[5]={2,4,6,8,10},*p;
p=a;
printf("%d",*p++);
printf("%d\n",*p);
A.22B.23C.46D.24
39若已定义:
enumweek{mon=1,tue,wed=5,thu}week_day;,则枚举常量tue和thu的值分别是()。
A.2和6B.0和6C.1和5D.2和3
40若fp是指向某个文件的指针,且已读到文件末尾,feof(fp)的返回值是()。
A.非0值B.0C.-1D.EOF
41能将C源程序转换为目标程序的软件是()。
A.解释程序B.汇编程序C.编译程序D.编辑程序
42合法的用户标识符是()。
A._structB.f0.6C.forD.5d
43若已定义:
longinti;charc;doublex;则表达式i*c+x结果的类型是()。
A.longintB.intC.doubleD.char
44若已定义:
intx=3,y=4;则表达式--x+(y++)%y的值是()。
A.5B.3C.4D.2
45以下程序段所表示的函数关系是()。
if(x<=2)
{if(x<2)
y=-1;
else
y=0;
}
else
y=1;
A.y=0(x>2)B.y=1(x>2)C.y=1(x=2)D.y=1(x<2)
y=1(x=2)y=0(x=2)y=0(x<2)y=0(x=2)
y=-1(x<2)y=-1(x<2)y=-1(x>2)y=-1(x>2)
46设有程序段
inth=8;
while(h=0)
h=h-2;
叙述正确的是()。
main(){
inth=8,a=1;
while(h=0)
{h=h-2;a=2;}
printf("%d",a);
getch();}
A.循环体语句执行4次B.循环体语句执行1次
C.循环体语句一次也不执行D.循环体语句执行3次
47以下程序的运行结果是()。
voidmain()
{ints[5]={1},i;
for(i=1;i<5;i++)
s[i]=s[i-1]+i;
for(i=0;i<5;i++)
printf("%d",s[i]);
}
A.124711B.12468
C.12345D.1261015
48以下叙述错误的是()。
A.函数内定义的变量其有效范围不超出该函数B.所有形参都是局部变量
C.函数内复合语句中定义的变量在该函数内有效
D.全局变量的作用域是从其定义处起至本程序结束处
49以下程序的运行结果是()。
#defineM5
#defineNM+1
voidmain()
{printf("%d\n",3*N);
}
A.16B.18C.6D.15
50若已定义:
inta=2,*p=&a,b=5,*q=&b;下列运算无意义的是()。
A.p=qB.b-aC.*q-*pD.q+p
51下列程序的运行结果是()。
uniondata
{
charc;
intk;
}data1;
data1.c='A';
data1.k=66;
printf("%c\n",data1.c);
A.BB.CC.不确定D.A
52若已定义:
charch;FILE*fp;,要从fp所指向文件中读入一个字符,正确的语句是()。
A.fgetc(ch,fp);B.getchar(ch);C.ch=fgetc(fp);D.fgetc(fp,ch);
53函数是C源程序的基本单位,一个函数由函数的首体和()两部分组成。
A.语句体B.函数体C.联合体D.结构体
54正确的常量是()。
A.1E6.1B.'a3'C.E-3D."\0"
55逗号表达式a=3*5,a*3,a+5的值是()。
A.49B.20C.15D.45
56若已定义:
doublex=3.5;inty=14;则表达式x+y%3/2的值是()。
A.4.5B.3.5C.5.5D.4.0
57要使下列程序段输出的内容为123-123-45,正确的输入数据格式是()。
inti,j,k;
scanf("%d%d%d",&i,&j,&k);
printf("%d-%d-%d\n",i,j,k);
A.123,123,45B.12312345C.12312345D.123,12345
58若已定义:
inta=2,b=3,c=4;则下列表达式中值为0的是()。
A.(b-a)==(c/b)B.(b-a)&&(b-c)C.a>=aD.a%b&&b/c
59若已定义:
doublea,b,c;下列表达式中与(a-b)*c/2计算结果不相符的是()。
A.(a-b)*c/2B.(1/2)*(a-b)*cC.(a-b)*c*1/2D.c/2*(a-b)
60若已定义:
intm=3,n=2,k;则下面正确的switch语句是()。
A.switch(m+n)B.switch(m)C.switch(m+n)D.switch(m+n)
case3:
{casem<0:
{caseis3:
{case3:
k=m+n;break;k=m+n;break;k=m+n;break;k=m+n;break;
case2:
casem==0:
caseis5:
case2:
k=m-n;break;k=m-n;break;k=m-n;break;k=m-n;break;
default:
default:
default:
default:
k=m*n;k=m*n;k=m*n;k=m*n;
}}}
61若已定义inta[][4]={1,2,3,4,5,6,7,8,9,10,11};则表达式sizeof(a)/(sizeof(int)*4)的值为()。
A.数组a第一维长度B.数组a第二维长度
C.数组a的元素个数D.数组a占用的字节数
62合法的字符常量是()。
A.'\\'B."x"C.'\'D.'xx'
63()运算符不能用于非整型数据运算。
A.++B.%C.*D./
64若已定义:
doublex;下列可以用于求x的绝对值的数学函数是()。
A.labs(x)B.abs(x)C.sqrt(x)D.fabs(x)
65若已定义:
intb=7;floata=2.5,c=4.0;则表达式a+(b/2*(int)(a+c))%4的值是()。
A.4.5B.3.5C.5.5D.2.5
66以下程序段的运行结果是()。
inta=-6,b;
if(a>0)
b=9;
elseif(a==0)
b=0;
elseif(a<-5)
b=-8;
else
b=-1;
printf("%d\n",b);
A.0B.-8C.-1D.9
67以下程序段运行后m的值为()。
inti,m=1;
for(i=1;i<=4;i++)
{m+=1;
if(m%2==0)
continue;
m+=2;
}
A.5B.6C.12D.9
68正确定义二维数组arr的语句是()。
A.floatarr[4,3];B.floatarr[4][3];C.floatarr(4,3);D.floatarr[4][];
69以下程序的运行结果是()。
#include
voidmain()
{char*str;
str="ThisisaBook";
str=str+8;
while(*str)
{putchar(*str);
str++;
}
}
A.ThisisB.isaBookC.aBookD.Book
若已定义:
inta[]={1,2,3},*p=&a[0];
70则执行*(p++);*p+=1;后a[0],a[1],a[2]的值依次是()。
A.2,2,3B.1,3,4C.1,2,3D.1,3,3
71以下程序向文件file1.dat写入的是()。
#include
voidmain()
{FILE*fp;inti=33,j=44;
fp=fopen("file1.dat","w");
fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("file1.dat","a+");
fprintf(fp,"%d",j);
fclose(fp);
}
A.33B.4433C.3344D.44
72下列叙述正确的是()。
A.函数是C源程序的基本单位,所有函数名都可以由用户命名
B.注释部分可在C源程序单独占一行,也可跟在一行语句后面
C.花括号"{}"只能用作函数体的定界符
D.分号是C语句之间的分隔符,并不表示一条语句的结束
73若已定义:
intx;下列与求x的绝对值等价的表达式是()。
A.x>0?
-x:
xB.x<0?
-x:
-xC.x>0?
x:
-xD.x<0?
x:
-x
74()是inta[9]={3,5,6,8,9};功能的正确描述。
A.将5个初值依次赋给a[0]至a[4]B.将5个初值依次赋给a[4]至a[8]
C.将5个初值依次赋给a[1]至a[5]D.将5个初值依次赋给a[5]至a[9]
75若已定义chars3[20],s1[10]="Howare",s[2]="you";语句strcpy(s3,strcat(s1,s2));的功能是()。
A.将字符串s2连接到s1之后,再将s3复制到s1中
B.将字符串s2复制到s1中,再将s1连接到s3之后
C.将字符串s1复制到s2中,再连接到s3之后
D.将字符串s2连接到s1之后,再将s1复制到s3中
76叙述正确的是()。
A.宏定义命令可根据需要以"#"开头或省略"#"
B.宏定义:
#defineCR15的作用是定义一个与15等价的符号常量CR
C.C源程序中加入一些宏定义是为了提高程序运行速度
D.宏定义命令也是语句,必须以分号结束
77若已定义:
inta=5,*p1=&a;floatx=11.6,*p2=&x;下列能实现正确赋值的语句是()。
A.x=p1+p2;B.p2=a+x;C.x=*p1+*p2;D.p1=x;
78若已定义:
structstudent
{intnum;
charname[10];
floatscore;
}stu,*p=&stu;
下列对结构成员的引用方式中,不正确的是()。
A.*p.numB.(*p).scoreC.stu.nameD.p->num
79若已定义:
int*p,*s[5],a[5];下列的赋值语句中,错误的是()。
A.p=s;B.s=a;C.p=a;D.p=s[0];
若有以下结构的定义:
typedefstructstudent
{
intnum;
floatscore;
}STU;
80下列错误的是()。
P280
A.typedefstructstudentS;B.students;C.structstudents;D.STUs;
81若已定义inta[3][4];无法正确引用数组a元素的是()。
A.a[1][5-2]B.a[2+1][3]C.a[0][3/2]D.a[2][1]
82下列叙述错误的是()。
A.定义函数时必须有函数体B.定义函数时函数类型可省略
C.定义函数时函数名和函数类型必须指明D.定义函数时必须指明函数参数
83以下程序段的输出结果是()。
inta[5]={2,4,6,8,10},*p;
p=a;
printf("%d",*p++);
p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题