版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、C语言概述练习题
选择
I.一个c程序的执行是从。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序文件的第一个函数开始,到本程序main函数结束
D)本程序的main函数开始,到本程序文件的最后一个函数结束
2.以下叙述不正确的是o
A)一个C源程序必须包含一个main函数B)一个C源程序可由一个
或多个函数组成
0C程序的基本组成单位是函数D)在C程序中,注释说明只能位于
一条语句的后面
3.以下叙述正确的是o
A)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B)在C程序中,main函数必须位于程序的最前面
0C语言本身没有输入输出语句D)C程序的每行中只能写
一条语句
4.一个C语言程序是由。
A)一个主程序和若干个子程序组成B)函数组成C)若干过程组
成D)若干子程序组成
5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述
中正确的是0
A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对
6.以下叙述中错误的是o
A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的
源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe
文件
7.以下叙述正确的是o
A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例
如:fun(fun(x))
0C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可
作为单独文件形式存在
二、数据类型、运算符与表达式
选择.
1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为
x=(i=4,j=16,k=32)A)4B)16C)32D)
52
2.下列四组选项中,均不是C语言关键字的选项是
A)defineIFtypeB)getccharprintfC)includecase
scanfD)whilegopow
3.下列四组选项中,均是不合法的用户标识符的选项是。
A)WP0doB)b-agotointC)floatlaO_AD)
-123abcTEMP
4.下列四组选项中,均是合法转义字符的选项是
A)'<\\,MB)、<\017,,\”'
C)''018''\f',xab'D),\\0',xlf'
5.下面不正确的字符常量是
A)"c"B)'C)''D)K
6.以下叙述不正确的是o
A)在C程序中,逗号运算符的优先级最低B)在C程序中,
MAX和max是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,
而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量
只能输入实型数值
7.以下叙述正确的是o
A)在C程序中,每行只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整
型数
0在C程序中,%是只能用于整数运算的运算符(字符型也可以)
D)在C程序中,无论是整数还是实数,都能被准确无误地表示
8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2
='A'+'6'-'3'后,c2中的值为o
A)DB)68C)不确定的值D)C
9.sizeof(float)是。
A)一个双精度型表达式B)一个整型表达式C)一种函数表达式
D)一个不合法的表达式
10.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型
数据的取值范围为o
A)0~255B)0-32767C)0-65535D)0〜
2147483647
11.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值
的数据类型为。
A)floatB)charC)intD)double
12.设以下变量均为int类型,则值不等于7的表达式是o
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)
D)(y=6,y+1,x=y,x+1)
13.下列变量定义中合法的是。
A)short_a=015;B)doubleb=e2.5;C)longdo=0xfdaL;D)float
2_and=le-3;
14.有以下程序
ftinclude<stdio.h>
main()
{intx=011;
printf("%d\n”,++x);
}程序运行后的输出结果是O
A)12B)llC)10D)9
填空
1.若有以下定义,intm=5,y=2;则计算表达式y+=y-=m*=y后的y值是【1】。
-16
2.在C语言中,一个int型数据在内存中占2个字节,则int型数据的取
值范围为[2]0-32768〜32767
3.若s是int型变量,且s=6,则下面表达式s%2+(s+l)%2的值为【3】。
1
4.若a是int型变量,则下面表达式(a=4*5,a*2),a+6的值为【4】。26
5.若x和a均是int型变量,则计算表达式(1)后的x值为【5],计算
表达式(2)后的x值为【6】。4
12
(1)x=(a=4,6*2)(2)x=a=4,6*2
6.若a是int型变量,则计算下面表达式a=25/3%3后a的值为【7】。2
7.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x
的值为[8],n的值为[9]o106
x+=n++〃若改为x+=++n则计算后X为,n为116
8.若有定义:charc=、01(T;则变量c中包含的字符个数为[10]01
9.若有定义:intx=3,y=2;floata=2.5,b=3.5;则下面表达式
(x+y)%2+(int)a/(int)b的值为[11]01
10.已知字母a的ASCH码为十进制数97,且设ch为字符型变量,则表达
式ch='a'+'8'-'3'的值为【12】。f
三、简单的C程序设计
选择
1.putchar函数可以向终端输出一个。
A)整型变量表达式B)实型变量值C)字符串D)字符
或字符型变量值
2.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5歹I」。
如果字符串长度大于5,则输出按方式B;如果字符串长度小
于5,则输出按方式C。
A)从左起输出该字符串,右补空格B)按原字符长从左向右全部输出
C)右对齐输出该字符串,左补空格D)输出错误信息
3.阅读以下程序,当输入数据的形式为:25,13,10<CR>(注:<CR>表示
回车),则正确的输出结果为。
main()
{intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n”,x+y+z);
}A)x+y+z=48B)x+y+z=35C)x+z=35D)不
确定值
4.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式
应该为。
main()
{charchi,ch2,ch3;
输入语句
printf("%c%%c”,chi,ch2,ch3);
}输出形式:ABC输入形
式:ABC
A)scanf(“%c%c%c",&chl,&ch2,&ch3);B)
scanf("%c,%c,%c”,&chl,&ch2,&ch3);
C)scanf(“祝%c%cw,&chl,&ch2,&ch3);D)
scanf(<<%c%cn,&chl,&ch2,&ch3);
5.已知ch是字符型变量,下面不正确的赋值语句是o
A)ch='a'+'b';B)ch='\0';C)ch=7+9;D)
ch=5+9;
6.以下关于结构化程序设计的叙述中正确的是o
A)一个结构化程序必须同时由顺序、分支、循环三种结构组成
B)结构化程序使用goto语句会很便捷
C)在C语言中,程序的模块化是利用函数实现的
D)由三种基本结构构成的程序只能解决小规模的问题
7.有以下程序
ttinclude<stdio.h>
main()
{intal,a2;charcl,c2;
scanf("%d%c%d%c",&al,&cl,&a2,&c2);
printf(u%d,%c,%d,%cv,al,cl,a2,c2);
}若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,
c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是(以
下_代表空格,<CR>代表回车)
A)12a34b<CR>B)12_a_34_b<CR>C)12,a,34,b<CR>
D)12_a34_b〈CR>
填空
1.以下的输出结果是[1]oc:decn20,oct=170,hex=78,ASCII=x
main()
{charc=,x';
printf(<<c:dec=%d,oct=%o,hex=%x,ASCH=%c\n”,c,c,c,c);
}
2.以下的输出结果是[2】o
main()
{intx=l,y=2;
printf("x=%dy=%d*sum*=%d\n”,x,y,x+y);
printf('TOSquaredis:%d\n”,10*10);}
x=ly=2*sum*=3
10Squaredis:100
3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的
值进行交换。请填空。
a+=[3];b=a-[4];a~=[5];bbb
4.若x为int型变量,则执行以下语句x=7;x+=x-=x+x;后的x值为【6】。
-14
5.有一输入语句scanf("%d”,k);则不能使float类型变量k得到正确
数值的原因是[7]和【8】o格式控制符应为%£,;变量k前缺少&
四、逻辑运算与判断选取控制
选择
1.逻辑运算符两侧运算对象的数据类型0
A)只能是0和1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
2.判断char型变量ch是否为大写字母的正确表达式是。
A)'A'<=ch<='Z'B)(ch>='A')&(ch<='Z')
C)(ch>=,A')&&(ch<=<Z,)D)('A'<=ch)AND(<Z,>=ch)
3.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表
达式的值为“假”。则以下不能满足要求的表达式是0
A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2
4.设有:inta=l,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c〉d)后n的值
为o
A)1B)2C)3D)4
5.以下程序的运行结果是o
main()
{inta,b,d=241;
a=d/100%9;
b=(-l)&&(-l);
printf("%d,%d”,a,b);
}A)6,1B)2,1C)6,0D)
2,0
6.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是。
if(x>y)z=x;x=y;y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10
D)x=20,y=30,z=20
7.以下程序的运行结果是o
main()
{intm=5;
if(m++>5)
printf("%d\n",m);
else;
printf("%d\n”,m-);
}A)4B)5C)6
D)7
8.若运行时给变量x输入12,则以下程序的运行结果是。
main()
{intx,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
A)4B)3C)2D)
0
9.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述
中正确的是0
A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的
数值
10.有以下程序
ttinclude<stdio.h>
main()
{inta=l,b=0;
if(!a)b++;
elseif(a==0)if(a)b+=2;
elseb+=3;
printf("%d\n",b);
}程序运行后的输出结果是oA)0B)1C)2
D)3
11.有以下程序
ttinclude<stdio.h>
main()
{intc=0,k;
for(k=l;k<3;k++)
switch(k)
{default:c+=k;
case2:c++;break;
case4:c+=2;break;
)
printf("%d\n",c);
}程序运行后的输出结果是oA)3B)5
C)7D)9
五、循环控制
选择1.设有程序段intk=10;while(k=0)k=k-l;这下面描述中正
确的是•
a)while循环执行10次b)循环是无限循环
c)循环体语句一次也不执行d)循环体语句执行一次
2.语句while(!E);中的表达式!E等价于.a)E==0b)E!=l
c)E!=0d)E==l
3.下面程序段的运行结果是c.循环次数为b.
intn=0;while(n++<=2);printf("%d",n);a)2
b)3c)4d)有语法错
//若改为while(++n<=2);printf("%d",n);结果又如何?
4.下面程序的运行结果是.
#include<stdio.h>
main()
{intnum=0;
while(num<=2)
{num++;
printf(,/%d\n,/,num);
)
)
a)1b)1c)1d)1
222
33
4
5.以下程序段.
x=-l;do{x=x*x;}while(!x);
a)是死循环b)循环执行二次c)循环执行一次d)有语法
错误
6.若有如下语句
intx=3;
do{printf("%d\n",x~=2);}while(!(一x));
则上面程序段.a)输出的是1b)输出的是1和-2c)输
出的是3和0d)是死循环
7.下面程序的运行结果是.
#include<stdio.h>
main()
{inty=10;
do{y一;}while(一y);
printf("%d\n”,y-);
}a)-lb)lc)8d)0
8.若i为整型变量,则以下循环执行次数是.
for(i=2;i==0;)printfi-);
a)无限次b)0次c)l次d)2次
9.执行语句for(i=l;i++<4;);后变量i的值是.
a)3b)4c)5d)不定
10.以下正确的描述是.
a)continue语句的作用是结束整个循环的执行
b)只能在循环体内和switch语句体内使用break语句
c)在循环体内使用break语句或continue语句的作用相同
d)从多层循环嵌套中退出时,只能使用goto语句
11.有以下程序
main()
{charb,c;inti;
b=,a;c=,A';
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputchar(i+c);
}
printf('\n");
}程序运行后的输出结果是.
A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef
(二)、填空题
1.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循
环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
(
if(c>='O'&&c<='9')n++;
c=getchar();
}
2.下面程序的功能是用〃辗转相除法〃求两个正整数的最大公约数。请填空。
ftinclude<stdio.h>
main()
(intr,m,n;
scanf("%d%d”,&m,&n);
if(m<n){r=m;m=n;n=r;}
r=m%n;
while(r){m=n;n=r;r=m%n;}
printf("%d\n〃,n);
)
3.下面程序的运行结果是s=254.
#include<stdio.h>
main()
{inta,s,n,count;
a=2;s=0;n=l;count=l;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
)
4.下面程序段的运行结果是一a=-5.
i=l;a=0;s=l;
do{a=a+s*i;s=-s;i++;}while(i<=10);
printf("a=%d",a);
5.下面程序段的运行结果是8
i=l;s=3;
do{s+=i++;
if(s%7-0)continue;
else++i;
}while(s<15);
printf("%d”,i);
六、数组
1.以下为一维整型数组a的正确说明是.
a)inta(10);b)intn=10,a[n];
c)intn;d)#defineSIZE10
scanf&n);inta[SIZE];
inta[n];
2.以下对二维数组a的正确说明是.
a)inta[3][];b)floata(3,4);c)doublea[l][4]
d)floata(3)(4);
3.若二维数组a有m列,则计算任一元素在数组中位置的公式为
.(假设a[0][0]位于数组的第一个位置上。)
a)i*m+jb)j*m+ic)i*m+jTd)i*m+j+]
4.若二维数组a有m歹则在前的元素个数为.
a)j*m+ib)i*m+jc)d)i*m+j+l
5.若有以下程序段:
inta[]={4,0,2,3,1},i,j,t;
for(i=l;i<5;i++)
{t=a[i];j=i-l;
while(j>=0&&t>a[j])
{a[j+l]=a[j];j—;}
a[j+l]=t;}
则该程序段的功能是.
a)对数组a进行插入排序(升序)b)对数组a进行插入排序(降序)
c)对数组a进行选择排序(升序)d)对数组a进行选择排序(降序)
6.有两个字符数组a、b,则以下正确的输入语句是.
a)gets(a,b);b)scanf("%s%s”,a,b);c)scanf&a,&b);
d)gets("a"),gets(〃b〃);
7.下面程序段的运行结果是.
chara[7]="abcdef”;
charb[4]="ABC";
strcpy(a,b);
printfa[5]);a)空格b)\0c)ed)f
8.判断字符串si是否大于字符串s2,应当使用.
a)if(sl>s2)b)if(strcmp(si,s2))c)if(strcmp(s2,si)>0)
d)if(strcmp(sl,s2)>0)
9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词
之间用空格分隔,请选择填空。
ttinclude<stdio.h>
main()
(
chars[80],cl,c2=,;
inti=0,num=0;
gets(s);
while(s[i]!='\0')
{cl=s[i];
if(i==0)c2=>';
elsec2=s[i-1];
if(__)num++;
i++;
)
printf("Thereare%dwords.\n",num);
}
a)cl==,'&&c2==''b)cl!=''&&c2==''c)cl==''&&c2!='
d)cl!=''&&c2!=''
10.下面程序的运行结果是.
ttinclude<stdio.h>
main()
{charstr[]="SSSWLIA”,c;
intk;
for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case'r:++k;break;
case'L':continue;
default:putchar(c);continue;
)
putchar('*,);
}
}
a)SSW*b)SW*c)SW*Ad)SW
填空1.若有定义:doublex[3][5];则x数组中行下标的下限为
0,列下标的上限为4
2.下面程序以每行4个数据的形式输出a数组,请填空。
ttdefineN20
main()
{inta[N],i;
for(i=0;i<N;i++)
scanf("%d”,&a[i]);
for(i=0;i<N;i++)
{if(i%4==0)printf("\n");
printf("%3d”,a[i]);
)
printf('\n");
)
3.下面程序可求出矩阵a的主对角线上的元素之和,请填空。
main()
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j_)sum=sum+a[i][i];
printf("sum=%d\n”,sum);
)
4.当从键盘输入18并回车后,下面程序的运行结果是_10010
main()
{intx,y,i,a[8],j,u,v;
scanf("%d",&x);
y=x;i=0;
do
{u=y/2;
a[i]=y%2;
i++;y=u;
}while(y>=l);
for(j=i-l;j>=0;j—)
printfa[j]);
)
5.下面程序用插入法对数组a进行降序排序。请填空。
main()
{inta[5]={4,7,2,5,1);
inti,j,m;
for(i=l;i<5;i++)
{m=a[i];
.1=i-1;
while(j>=0&&m>a[j])
{a[j+l]=a[j];
J-;
)
a[j+l]=m;
for(i=0;i<5;i++)
printf("%d",a[i]);
printf(〃\n〃);
6.下面程序的功能是在三个字符串中找出最小的,请填空。
#include<stdio.h>
#include<string.h>
main()
{chars[20],str[3][20];
inti;
for(i=0;i<3;i++)gets(str[i]);
strcpy(s,str[0]);
if(strcmp(s,str[1])<0)strcpy(s,str[1]);
if(strcmp(str[2],s)<0)strcpy(s,str[2]);
printf("%s\n",s);
7.下面程序的运行结果是#&*&%.
#include<stdio.h>
main()
{chars[]="ABCCDA”;
intk;
charc;
for(k=l;(c=s[k])!='\0';k++)
{switch(c)
{case'A':putchar('%');continue;
case'B':++k;break;
default:putchar('*');
case'C':putchar('&');continue;
putchar('#');
七、函数
选择
1.以下正确的说法是.建立函数的目的之一是
a)提高程序的执行效率b)提高程序的可读性c)减少程序的篇幅d)
减少程序文件所占内存
2.以下正确的函数定义形式是.
a)doublefun(intx,inty)b)doublefun(intx;inty)c)double
fun(intx,inty);d)doublefun(intx,y);
3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为
A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参
D)由用户指定传递方式
4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是.
a)floatb)intc)longd)double
5.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数
组array的错误定义方式为.
inta[3][4];f(a);
a)f(intarray[][6])b)f(intarray[3][])c)f(intarray[][4])
d)f(intarray[2][5])
6.以下程序的正确运行结果是.
#include<stdio.h>
voidnum()
{externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
main()
{inta=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n”,x,y);
}
a)12,2b)不确定c)5,25d)1,12
有以下程序:
ttinclude<stdio.h>
intf()
{staticintx=l;
x+=l;returnx;
)
main()
{inti,s=l;
for(i=l;i<=5;i++)s+=fun();
printf("%d\n",s);
}程序运行后的输出结果是A)llB)21C)6
D)120
填空1.以下程序的运行结果是maxis2
#include<stdio.h>
intmax(int,int);
main()
{inta=l,b=2,c;
c=max(a,b);
printf(z,maxis%d'n”,c);
)
intmax(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);
}
2.函数gongyu的作用是求整数numl和num2的最大公约数,并返回该值。
请填空。
gongyu(intnuml,intnum2)
{inttemp,a,b;
if(numl(1)num2)
{temp=numl;numl=num2;num2=temp;}
a=numl;b=num2;
while(!b)
{temp=a%b;a=b;b=temp;}
return(a);
3.以下程序的运行结果是—A+B=9.
#include<stdio.h>
inta=5;intb=7;
intplus(int,int);
voidmain()
{inta=4,b=5,c;
c=plus(a,b);
printf("A+B=%d\n”,c);
)
intplus(intx,inty)
{intz;
z=x+y;
return(z);
)
4.以下程序的运行结果是.
main()X=1
y=l
{inexO;incy();incx();incy();incx()X=1incy();
y=2
}X=1
y=3
incx()
{intx=0;
printf(/,x=%d\t,z,++x);
)
incy()
{staticinty=0;
printf(〃\ny=%d\n〃,++y);
八、编译预处理
选择
1.以下叙述中正确的是.
a)在程序的一行上可以出现多个有效的预处理命令行
b)使用带参的宏时,参数的类型应与宏定义时的一致
c)宏替换不占用运行时间,只占用编译时间
d)在以下定义中CR是称为“宏名”的标识符
ttdefineCR045
2.以下程序的运行结果是.
#defineMIN(x,y)(x)<(y)?(x):(y)
main()
{inti=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n”,k);
}a)10b)15c)100d)150
3.若有宏定义如下:
ttdefineX5
#defineYX+l
#defineZY*X/2
则执行以下printf语句后,输出结果是.
inta;a=Y;
printf("%d\n",Z);
printf("%d\n",—a);
a)7b)12c)12d)7
6655
4.请读程序:
#include<stdio.h>
ttdefineMUL(x,y)(x)*y
main()
{
inta=3,b=4,c;
c=MUL(a++,b++);
printf(z,%d\n/z,c);
)
上面程序的输出结果是.
a)12b)15c)20d)16
5.有以下程序
ttinclude<stdio.h>
#definef(x)x*x*x
main()
{inta=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n”,s,t);
}程序运行后的输出结果是.
A)10,64B)10,10C)64,10D)64,64
九、指针
一、选择题
1.变量的指针,其含义是指该变量的.a)值b)地址c)
名d)一个标志
2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是—
a)a,point,*&ab)&*a,&a,*point
c)*&point,*point,&ad)&a,&*point,point
3.若有说明;int*p,m=5,n;以下正确的程序段的是.
a)p=&n;b)p=&n;c)scanf&n);
d)p=&n;
scanf("%d",&p);scanf("%d",*p);*p=n;
*p=m;
4.下面程序段的运行结果是.
char*s=〃abcde”;s+=2;printfs);
a)cdeb)字符'c'c)字符'c'的地址d)无确定的输出结果
5.设pl和p2是指向同一个字符串的指针变量,c为字符变量,则以下不
能正确执行的赋值语句是.
a)c=*pl+*p2;b)p2=cc)pl=p2d)c=*pl*(*p2);
6.以下正确的程序段是.
a)charstr[20];b)char*p;c)charstr[20];
d)charstr[20],*p=str;
scanf("%s”,&str);scanfp);scanf&str[2]);
scanfp[2]);
7.若有说明语句chara[]=,,Itismine";char*p="Itismine";则
以下不正确的叙述是
a)a+l表示的是字符t的地址b)p指向另外的字符串时,
字符串的长度不受限制
c)p变量中存放的地址值可以改变d)a中只能存放10个字符
8.下面程序的运行结果是.
#include<stdio.h>
#include<string.h>
main()
(
char*sl="AbDeG”;
char*s2="AbdEg”;
sl+=2;s2+=2;
printf(绘d\n”,strcmp(sl,s2));
}a)正数b)负数c)零d)不确定的值
9.下面程序的运行结果是.
ttinclude<stdio.h>
#include<string.h>
fun(char*w,intn)
{chart,*sl,*s2;
sl=w;s2=w+n-l;
while(sl<s2){t=*sl++;*sl=*s2一;*s2=t;}
}
main()
{char*p;
p=〃1234567〃;
fun(p,strlen(p));
puts(p);
a)7654321b)1714171c)1711717d)7177171
10.若有以下定义,则对a数组元素的正确引用是.
inta[5],*p=a;a)*&a[5]b)a+2c)*(p+5)
d)*(a+2)
11.若有定义:inta[2][3],则对a数组的第i行j列元素地址的正确引用
为.
a)*(a[i]+j)b)(a+i)c)*(a+j)d)a[i]+j
12.若有以下定义,则p+5表示.
inta[10],*p=a;a)元素a[5]的地址b)元素a[5]的值c)
元素a[6]的地址d)元素a[6]的值
二、填空题
1.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。
请填空。
#include"stdio.h"
main()
{int*a,*b,*c,num,x,y,z;
a=&x;b=&y;c=&z;
printf("输入3个整数:");
scanfa,b,c);
printf("%d,%d,%d\n”,*a,*b,*c);
num=*a;
if(*a〉*b)___num=*b;
if(num>*c)num=*c;
printf(“输出最小整数:%d\n”,num);
2.下面程序段的运行结果是hELLO—.
chars[80],*sp="HELL0!”;
sp=strcpy(s,sp);
s[0]-h';
puts(sp);
3.下面程序段的运行结果是ef.
charstr[]="abc\0def\0ghi",*p=str;
printfp+5);
4.下面程序的功能是将两个字符串si和s2连接起来。请填空。
#include<stdio.h>
main()
{charsi[80],s2[80];
gets(sl);gets(s2);
conj(si,s2);
puts(si);
)
conj(char*pl,char*p2)
{char*p=pl;
while(*pl)pl++;
while(*p2){*p1=*p2;pl++;p2++;}
*pl='\0';
)
5.若有定义:inta[]={2,4,6,8,10,12},*p=a;则*(p+l)的值是,
*(a+5)的值是12.
6.若有以下定义:inta[2][3]={2,4,6,8,10,12};则a[l][0]的值是」—.
*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国培计划小学英语培训工作计划
- Unit 3 Where did you go?PartB (说课稿)-2023-2024学年人教PEP版英语六年级下册
- 2025年春季幼儿园中班班务计划
- Unit 8 Lesson 44 说课稿 2024-2025学年冀教版英语八年级下册
- Unit6 Review(说课稿)-2024-2025学年北师大版(一起)英语四年级上册
- 2025年幼儿园食堂工作计划
- 风电场知识培训课件
- 2025年小学教研工作计划
- 2025年质检部工作计划
- 2025幼儿园大班段教研计划
- 皮下注射抗凝剂相关知识试题
- 沛县生活垃圾焚烧发电项目二期工程 环境影响报告书 报批稿
- DB44∕T 2149-2018 森林资源规划设计调查技术规程
- 肝移植的历史、现状与展望
- 商业定价表(含各商铺价格测算销售回款)
- 【化学】重庆市2021-2022学年高一上学期期末联合检测试题
- 单位工程质量控制程序流程图
- 部编版小学语文三年级(下册)学期课程纲要
- 化学工业有毒有害作业工种范围表
- 洼田饮水试验
- 定置定位管理一
评论
0/150
提交评论