孚尹旁达 朝乾夕惕 认真严谨有耐心,深入浅出有条理,谈吐清晰逻辑强,重点突出内容丰, 讲解顺畅和自然,通俗易懂不罗嗦,知识全面有方法,能力突出特点明。 目的是使学生了解程序设计的基本概念与方法,掌握一门高级程序设计语言,为进而学习后续的专业课程(数据结构、C++、操作系统等)奠定程序设计基础。
学堂在线北京师范大学程序设计基础(C语言)(2022春)习题答案
第1章 引言
第9章 指针
- 若定义了以下函数: void f(…)() { … *p=(double *)malloc(10*sizeof(double)); …
- 若有定义:int *p[4]; 则标识符p A是一个指向整型变量的指针 B是一个指针数组名 C是一个指针,它指…
- 以下与int *p[5]等价的是 Aint p[5]; Bint *p; Cint *(p[5]); Dint (*p)[5];
- 若有定义语句int (*p)[4]; 则下列说法正确的是 A定义语句非法 Bp是一个指针数组,每个元素是一个…
- 下列程序段的输出结果是 int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf(“%d,%dn”,*p,*…
- main函数的正确说明形式是 Aint main(int argc,char *argv) Bint main(int abc,char **arg…
- 若有以下说明和语句: char *language[ ]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C’}; …
- 设有以下程序段: char str[4][10]={"firs","second","third","fourth"},…
- 设有以下定义 char *cc[2]={"1234","5678"}; 则正确的叙述是 Acc数组的两个元素中各自存放了字…
- 若有说明 char *language[ ]={"FORTRAN","BASIC","PASCAL","JAVA",&q…
- 函数char *fun(char *p){return p;} 的返回值是 A无确切的值 B形参p中存放的地址值 C一个临时…
- 若有定义int (*p)(); 标识符p可以 A表示函数的返回值 B指向函数的入口地址 C表示函数的返回类型…
- 若有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是 Ap=max; Bp=max(a,b); C*p=m…
- 设有以下定义 struct student { int age; int num; }stu[5],*p=stu; int i; stu[0].nu…
- 设有以下定义及语句 struct student {1int age; char sex; char name[10]; }stu[5],*p; p=st…
- 设有以下语句 struct st { int n; struct st *next; } static struct st a[3]=…
第8章 复杂数据类型
- 下列结构体中定义正确的是
- 设有结构体说明 struct ex{ int x; float y; char z;}example; 已下叙述中错误的是: struct是…
- 在说明一个结构体变量时,系统分配给它的存储空间是 A1该结构体中的第一个成员所需的存储空间 B1…
- 若有定义struct num{int a;int b;}d[3]={{1,4},{2,5},{6,7}}; 计算d[2].a*d[2].b/d[1].b的结…
- 下面程序执行后的输出结果是 void main() { struct complex{ int x;int y;}cnum[2]={1…
- 当说明一个共用体变量时,系统分配给它的内存是 A各成员所需内存量的总和 B结构中第一个成员所需内…
- 以下对C语言中共用体类型数据的叙述正确的是 A可以对共用体变量名直接赋值 B一个共用体变量中可…
- 下面对枚举类型的描述正确的是 A枚举类型的定义为enum{Monday,Tuesday,Wednesday,Thursday,Frida…
- 若有定义enum color{red,yellow=2,blue,white,black}r=white; 输出r的结果是 A0 B1 C3 D4…
第7章 数组
- 在C语言中对一维整型数组的正确定义为 () 。 Aint a(10); Bint n=10,a[n]; Cint n;a[n]; D#def…
- 以下对一维数组a进行初始化语句中错误的是()。 Aint a[10]={0,0,0,0,0} B int a{5}={5*1} Cint a[…
- 以下程序段的输出结果为()。 #include <stdio.h> main() { int i, a[10]; for(i=9;i>=0;i-…
- 以下程序段的功能是使用选择排序算法对输入的n个数字进行从小到大排序,横线中应填入的正确答案是()…
- 以下程序段,当i=4时,程序的输出结果为()。 #include <stdio.h> int main(){ int i,j,k,p; in…
- 以下程序段的功能是使用冒泡排序对输入的10个数字进行从大到小排序,横线中应填入的正确答案是()。 #…
- 以下程序段,当i=3时,程序的输出结果为()。 #include <stdio.h> int main() { int a[] = {85,…
- 以下能对二维数组a进行正确初始化的语句是 ()。 Aint a[2][ ]={{1,0,1},{5,2,3}}; Bint a[ ][3]={{1…
- 二维数组表现形式错误的是()。 Aa[2][3] Ba[2-1][2*2-1] Ca[2,3] Da[1][2]=a[2][3]/2…
- 以下程序段的输出结果为()。 #include <stdio.h> int m[3][3]={{1},{2},{3}}; int n[3][3]={…
- 求矩阵的马鞍点。马鞍点即它的值在行中最大,在它所在的列中最小。横线部分应填入的正确内容是()。 …
- 下列字符数组长度为5的是()。 Achar a[]={‘h’, ‘a’, ‘b’, ‘c’, ‘d’}; Bchar b[]={‘h’,…
- 下面一维字符数组初始化错误的是()。 Achar c[]={“I am happy”}; Bchar c[]={‘I’, ‘ ’, ‘a…
- 己定义两个字符数组a,b,则以下正确的输入格式是( )。 Ascanf(“%s%s”,a,b); Bget(a,b); Cscanf(…
- 以下程序的输出结果是()。 char str[10]= “China”; printf(“%d”,strlen(str)); A11 B10 C6 D5…
- 以下程序的输出结果是()。 char str1[30]={“People's Republic of ”}; char str2[]={“China”…
第6章 函数
- 以下对C语言函数的描述中,正确的是()。 AC程序必须由一个或一个以上的函数组成 BC函数既可以嵌套定…
- 以下正确的函数形式是 ()。 Adouble fun(int x,int y) {z=x+y; return z;} Bfun(int x,y) {int z;…
- 用户定义的函数不可以调用的函数是()。 A非整型返回值的 B本文件外的 Cmain函数 D本函数下面定义…
- 以下程序段的输出结果为()。 #include <stdio.h> int min( int x, int y ) { int m; if…
- C语言中不可以嵌套的是()。 A函数调用 B函数定义 C循环语句 D选择语句…
- 用递归方法求N阶勒让德多项式的值,公式如下,横线处应填入的正确语句是()。 # include<stdio.h> m…
- 在宏定义define Pl 3.14159中,用宏名PI代替一个()。 A常量 B单精度数 C双精度数 D字符串…
- 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是(…
第5章 循环结构
- 下面有关for循环描述正确的是()。 Afor循环只能用于循环次数己经确定的情况 Bfor循环是先执行循…
- 设j和k都是int类型,则下面的for循环语句()。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A最多执…
- 以下程序段的输出结果为()。 for(int i=4;i>1;i--) for(int j=1;j<i;j++) put…
- 下面程序的运行结果为()。 #include <stdio.h> int main() { int a=0,b=0; while(a<…
- 以下不是无限循环的语句为()。 Afor(y=0,x=1;x>++y;x=i++) i=x; Bfor(;;x++=i); Cwhile(1){x++;}…
- 以下程序段的输出结果为()。 #include <stdio.h> main( ) { int sum=10,n=1; while(n<3) {su…
- C语言中while和do-while循环的主要区别是()。 Ado-while的循环体至少无条件执行一次 Bwhile的循…
- 以下程序段的输出结果为()。 #include <stdio.h> main() { int i,sum=0; i=1; do{ sum=sum+i; …
- 以下程序段的输出结果为()。 int main() { int i = 0,j = 0; for(i = 0…
- 以下程序段执行后k的值为()。 #include <stdio.h> main() { int k=0,i,j; for(i=11;i<=30;…
第4章 分支结构
- 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与()相配对。 A缩排位罝相同的…
- 以下不正确的if语句形式是() Aif(x>y&&x!=y); Bif(x==y) x+=y; Cif(x!=y) scanf("%d",&x) else s…
- 以下程序的运行结果是 ( )。 main() { int m=5; if(m++>5) printf("%dn",m); else printf("%…
- 下面说法正确的是()。 Aswitch语句中必须要有default标号 Bswitch语句中case常量可以相同 Cswitch…
- 以下程序输出的结果是()。 main() {int x=1,a=0,b=0; switch (x) {case 0: b++; case 1: a++…
第3章 顺序结构
- 下列语句的结果是 ( )。 #include <stdio.h> int main() { int j; j=3; printf("%d,",++j); print…
- 以下程序的功能是:给r输入数据后计算半径为r的圆面积s,程序编译出错,出错原因是()。 main() /*beginni…
第2章 数据类型与表达式
- 下面()表达式的值为4。 A11/3 B11.0/3 C(float)11/3 D(int)(11.0/3+0.5)
- 若有代数式3ae/bc,则正确的C语言表达式是()。 Aa/b/c*e*3 B3*a*e/bc C3*a*e/b*c Da*e/c/b*3…
- 若a是float型变量,b是unsigned 型变量,以下输入语句中合法的是()。 Ascanf("%6.2f%d",&a,&b); Bsca…
- C语言中,double类型数据占()。 A1个字节 B2个字节 C4个字节 D8个字节…
- 下列运算符中,不属于关系运算符的是()。 A< B> C>= D!
- 己知year为整型变量,不能使表达式(year%4=0&&year%100!=0) ||yeart%400=0的值为“真”的数据是()。 …
- a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 Aa*b/a*b==1 Ba/b*b/a==1 Ca/b*b+a%b==a…