郭泰杉李金勇.docx
- 文档编号:10521073
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:16
- 大小:19.07KB
郭泰杉李金勇.docx
《郭泰杉李金勇.docx》由会员分享,可在线阅读,更多相关《郭泰杉李金勇.docx(16页珍藏版)》请在冰豆网上搜索。
郭泰杉李金勇
一选择题
1以下选项中函数形参不是指针的是
A)fun(int&p){…}B)fun(inta[10]){…}
C)fun(int*a){…}D)fun(intp[]){…}
答案:
A
2以下叙述中正确的是
A)函数既可以直接调用自己,也可以间接调用自己
B)任何情况下都不能用函数名作为实参
C)函数的递归调用不需要额外开销,所以效率很高
D)简单递归不需要明确的结束递归的条件
3以下叙述中错误的是
A)使用三种基本结构构成的程序只能解决简单问题
B)结构化程序由顺序、分支、循环三种基本结构组成
C)C语言是一种结构化程序设计语言D)结构化程序设计提倡模块化的设计方法
答案:
A
4变量的指针,其含义是指该变量的
A值
B地址
C名
D一个标志
答案B
5若已有说明float*p,m=3.14;要让p指向m,则正确的赋值语句是
Ap=m
Bp=&m
C*p=m
D*p=&m
答案B
6已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是B。
A)k=*ptr1+*ptr2
B)ptr2=k
C)ptr1=ptr2
D)k=*ptr1*(*ptr2)
7若有说明:
int*p,m=5,n;以下程序段正确的是D。
A)p=&n;
B)p=&n;scanf(“%d”,&p);scanf(“%d”,*p);
C)scanf(“%d”,&n);
D)p=&n;*p=n;*p=m;
8若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是C。
A)p1=&m;p2=&p1;
B)p1=&m;p2=&n;*p1=*p2;
C)p1=&m;p2=p1;
D)p1=&m;*p1=*p2;
9若有语句:
int*p,a=4;和p=&a;下面均代表地址的一组选项是D。
A)a,p,*&a
B)&*a,&a,*p
C)*&p,*p,&a
D)&a,&*p,p
10下面判断正确的是C。
A)char*a=”china”;等价于char*a;*a=”china”;
B)charstr[10]={“china”};等价于charstr[10];str[]={“china”;}
C)char*s=”china”;等价于char*s;s=”china”;
D)charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=d[4]=”abc”;
11下面能正确进行字符串赋值操作的是C。
A)chars[5]={“ABCDE”};
B)chars[5]={‘A’,’B’,’C’,’D’,’E’};
C)char*s;s=”ABCDE”;
D)char*s;scanf(“%s”,s);
12设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是B。
A)c=*p1+*p2
B)p2=c
C)p1=p2
D)c=*p1*(*p2)
13设有程序段:
chars[]=”china”;char*p;p=s;则下面叙述正确的是D。
A)s和p完全相同
B)数组s中的内容和指针变量p中的内容相等
C)s数组长度和p所指向的字符串长度相等
D)*p与s[0]相等
14以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是D。
A)strcpy1(char*p1,char*p2){while((*p1++=*p2++)!
=’\0’);}
B)strcpy2(char*p1,char*p2){while((*p1=*p2)!
=’\0’){p1++;p2++}}
C)strcpy3(char*p1,char*p2){while(*p1++=*p2++);}
D)strcpy4(char*p1,char*p2){while(*p2)*p1++=*p2++;}
15下列关系运算符中,不属于关系运算符的是C
A<
B>=
C!
D!
=
二判断题
数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值(F)
C语言中,通过函数调用只能获得一个返回值(T)
对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义(T)
结构体变量的成员可以像普通变量一样进行各种运算(T)
在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
(正确)
结构体类型只有一种。
(错)
x*=y+8等价于x=x*(y+8)。
(对)
C语言中只能逐个引用数组元素而不能一次引用整个数组。
(对)
共同体变量所占的内存长度等于最长的成员的长度。
(对)
typedef可以定义生成新的数据类型.(错)
三填空题
C语言中的数组必须先[定义],然后使用。
如果需要从被调用函数返回一个函数值,被调用函数必须包含【return】语句。
数组在内存中占用一段连续的存储空间,它的首地址由【数组名】表示
要使指针变量与变量之间建立联系,可以用运算符[*]来定义一个指针变量
C语言中的字符数组中的一个元素存放[1]个字符。
已知:
inta[5],*p=a;则p指向数组元素a[0],那么p+1指向a[1]
已知:
inta[5],*p=a;则p指向数组元素a[0],那么p+1指向a[6]
[全局变量]可以被本文件中的其他函数所共用
用数组元素作为函数的实参时,与用变量做实参一样,是[值]传递。
按序排列的同类型变量的集合称为【结构体变量】
请定义一个指向字符类型数据的指针变量p,【char*p】
四.程序阅读题
1.写出下面程序的运行结果。
5
func(char*s,chara,intn)
{intj;
*s=a;j=n;
while(*s
returnj;
}
main()
{charc[6];
inti;
for(i=1;i<=5;i++)*(c+1)=’A’+i+1;
printf(“%d\n”,func(c,’E’,5));
}
2.写出下面程序的运行结果。
6
fun(char*s)
{char*p=s;
while(*p)p++;
return(p-s);
}
main()
{char*a=”abcdef”;
printf(“%d\n”,fun(a));
}
3以下程序段的运行结果是()
structdate
{intyear,month,day;}today;
main()
{printf("%d\n",sizeof(structdate));}
答案:
structdate有三个成员,每个成员占4个字节,所以运行结果:
3×4=12
4.以下程序段的运行结果是
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};
intt;t=s[0].a+s[1].b;
printf("%d\n",t);}
答案:
s是一个结构数组,初始化的结果:
s[0].a=1,s[0].b=2,s[0].c=3,s[0].s=0,s[1].a=4,s[1].b=5,s[1].c=6,s[1].s=0
t的值为:
s[0].a
(1)+s[1].b(5)=6
输出结果:
6
5以下程序段的运行结果是
structa
{intx;
inty;
}num[2]={{20,5},{6,7}};
main()
{printf("%d\n",num[0].x/num[0].y*num[1].y);}
答案:
num[0].x=20;num[0].y=5;num[1].x=6;num[1].y=7;
输出结果:
20/5×7=28
五程序填空
1下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。
main()
{inti,j;
for(i=0;①;i++)
{j=i*10+6;
if(②)countinue;
printf("%d",j);
}
}
答案:
①i<=9②j%3!
=0
2下面的函数是一个求阶乘的递归调用函数。
facto(intn)
{if(n==1)①;
elsereturn(②);
}
答案:
①return
(1)②n*facto(n-1)
3通过指针变量访问整型变量。
先定义2个整型变量,再定义2个指针变量,分别指向这两个整型变量,通过访问指针变量得到这些变量的值。
#include
intmain()
{inta=100,b=10;
int*pointer_1,*pointer_2;
printf(“a=%d,b=%d\n”,a,b);
printf(“*pointer_1=%d,*pointer_2=%d\n”,);
return0;
}
答案:
pointer_1=&a;
pointer_2=&b;
4输入a和b两个整数,按先大后小的顺序输出a和b。
include
intmain()
{int*p1,*p2,*p,a,b;
printf(“integernumbers:
");
scanf(“%d,%d”,&a,&b);
p1=&a;p2=&b;
if(a
{}
printf(“a=%d,b=%d\n”,a,b);
printf(“%d,%d\n”,*p1,*p2);
return0;
}
答案:
p=p1;p1=p2;p2=p;
5把一个学生的信息(包括学号、姓名、性别)放在一个结构体变量中,然后输出这个学生的信息。
#include
intmain()
{structStudent
{longintnum;charname[20];
charsex;
}a;
printf("NO.:
%ld\nname:
%s\n
sex:
%c\n",
a.num,a.name,a.sex);
return0;
}
答案:
a.num=10100;a.name=”liming”;
a.sex=’N’;
六程序修改题
1#include
intmain()
{
inta[10],i,j,t;
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
/************************************************/
printf("%d,",&a[i]);去掉&
}
printf("\n");
for(i=0;i<=9;i--)改为i++
for(j=i+1;j<=9;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 郭泰杉 李金勇