文档库 最新最全的文档下载
当前位置:文档库 › 专升本C语言程序设计模拟试卷C3

专升本C语言程序设计模拟试卷C3

专升本C语言程序设计模拟试卷C3
专升本C语言程序设计模拟试卷C3

计算机科学与技术专业《基础知识》模拟试卷三

(考试时间150分钟,满分300分,共三部分)

第一部分 C语言程序设计(共100分)

一、单项选择题(本大题共30小题,每小题2分,共60分)

1. 下列各选项中,均是合法有效的标识符的是【】A. 3dayB.lower C.day_3

D.ab

Sum_days abcde student_name_oflotus_1_2_3 defaultM.D.john

2. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是

A.A%2==1

B.!(A%2==0)

C.!(A%2)

D.A%2

3. 下列程序的输出结果是【】

#include

void main()

{

int x=1,y=0,a=0,b=0;

switch(x)

{

case 1:

switch(y)

{

case 0: a++; break;

case 1: b++; break;

}

case 2: a++;b++; break;

case 3: a++;b++; break;

}

printf(“%d,%d\n”,a,b);

}

A.1,1

B.2,1

C.1,0

D.2,2

4. 以下关于switch语句和break语句的描述中,只有正确的是【】

A.在switch语句中必须使用break语句

B.在switch语句中,可以根据需要使用或不使用break语句

C.break语句只能用于switch语句中

D.break语句是switch语句的一部分

5. 下面程序的输出是【】。

main()

{

int x=0x23;

printf(“%d\n”,- -x);

}

A.18

B.19

C.34

D.35

6. 下列函数的输出结果是【】

#include

int f1(int xb)

{

extern int xa;

return (xa * xb);

}

void main(void)

{

extern int xb;

int xa=5;

printf(“xa=%d,xb=%d,result=%d”,xa,xb,f1(xa));

return 0;

}

int xa=3,xb=4;

A. 3,4,12

B. 5,4,20

C. 5,4,15

D. 3,4,15

7. c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

A. 地址传递

B. 由实参传给形参,再由形参传回给实参

C. 单向值传递

D. 由用户指定传递方式

8. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其原因是【】void main()

{

int *p,a;

p=&a;

scanf(“%d”,*p);

……

}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

9. 下列程序段的输出结果是【】。 int x=3; do

{

printf(“%2d\n”,x-=2);

}while (!(――x))

A. 1

B. 1 -2

C. 3 0

D. 是死循环

10. 若有语句:int a=4, *p=&a;下面均代表地址的一组选项是【】。

A. a,p,&*a

B. *&a,&a,*p

C. &a,p,&*p

D. *&p,*p,&a

11. 下面程序输出的结果是

main()

{ int i;

int a[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

printf("%d ",a[2-i][i]);

}

A)1 5 9

B)7 5 3

C)3 5 7

D)5 9 1

12.下面函数的功能是

char *fun(char *str1,char*str2)

{while((*str1)&&(*str2++=*str1++));

return str2;

}

A)求字符串的长度

B)比较两个字符串的大小

C)将字符串str1复制到字符串str2中

D)将字符串str1接续到字符串str2中

13. 下面函数调用语句含有实参的个数为

func((exp1,exp2),(exp3,exp4,exp5));

A)1 B)2 C)4 D)5

13. 下面程序段的运行结果是

char *s="abcde";

s+=2;printf("%d",s);

A)cde

B)字符′c′

C)字符′c′的地址

D)无确定的输出结果

14. 已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是

void print_value(int *x)

{printf("%d\n",++*x);}

A)23

B)24

C)25

D)26

15. 当顺利执行了文件关闭操作时,fclose函数的返回值是

A)-1

B)TRUE

C)0

D)1

16. 设有如下定义

char *s[2]={ "abcd","ABCD"};

则下列说法错误的是

A)s数组元素的值分别是"abcd"和"ABCD"两个字符串的首地址

B)s是指针数组名,它含有两个元素分别指向字符型一维数组

C)s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素

D)s数组的两个元素中分别存放了字符′a′和′A′的地址

17. 以下不能对二维数组a进行正确初始化的语句是

A)int a[2][3]={0};

B)int a[][3]={{1,2},{0}};

C)int a[2][3]={{1,2},{3,4},{5,6}};

D)int a[][3]={1,2,3,4,5,6};

18. 有以下程序

struct STU

{ char num[10]; float score[3]; };

main()

{struct STU s[3]={{"20021",90,95,85},

{"20022",95,80,75},

{ "20023",100,95,90},

},*p=s;

int i; float sum=0;

for(i=0;i<3;i++)

sum=sum+p->score[i];

printf("%6.2f\n",sum);

}

程序运行后的输出结果是

A)260.00

B)270.00

C)280.00

D)285.00

19. 若有说明:int a[10];则对a数组元素的正确引用是

A)a[10]

B)a[3,5]

C)a(5)

D)a[10-10]

20. 下面程序段中,输出*的个数是

char *s="\ta\018bc";

for(;*s!=′\0′;s++)printf("*");

A)9

B)5

C)6

D)7

21.设有如下函数

fun (float x)

{

printf("\n%d",x*x);}

则函数的类型是

A)与参数x的类型相同

B)是void

C)是int型

D)无法确定

22. 有如下定义

#define D 2

int x=5;float y=3.83;

char c=′D′;

则下面选项中错误的是

A)x++;

B)y++;

C)c++;

D)D++;

23. 以下程序段的执行结果为

#define PLUS(X,Y)X+Y

main()

{ int x=1,y=2,z=3,sum;

sum=PLUS(x+y,z)*PLUS(y,z);

printf("SUM=%d",sum);

}

A)SUM=9

B)SUM=12

C)SUM=18

D)SUM=28

24. C语言规定,函数返回值的类型是由

A)return语句中的表达式类型所决定

B)调用该函数时的主调函数类型所决定

C)调用该函数时系统临时决定

D)在定义该函数时所指定的函数类型所决定25. 下列程序的运行结果是

void fun(int *a,int *b)

{ int *k;

k=a;a=b;b=k;

}

main()

{ int a=2004, b=9,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}

A)2004 9

B)9 2004

C)0 0

D)编译时出错

26. 下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:

876 675 896 101 301 401 980 431 451 777

#include

#include

int fun(int *s, int t, int *k)

{ int i;

*k=0;

for(i=0;i if(s[*k]return s[*k];

}

main()

{

int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;

clrscr();

fun(a, 10, &k);

printf("%d, %d\n ", k, a[k]);

}

则输出结果为

A)7,431

B)6

C)980

D)6,980

27.下面程序应能对两个整型变量的值进行交换。以下正确的说法是

main()

{int a=10,b=20;

printf("(1)a=%d,b=%d\n",a,b);

swap(&a,&b);

printf("(2)a=%d,b=%d\n",a,b);

}

swap(int p,int q)

{int t;

t=p;p=q;q=t;

}

A)该程序完全正确

B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可

D)以上说法都不对

28. 有以下程序

#include

main()

{ char *p,*q;

p=(char *)malloc(sizeof(char)*20); q=p;

scanf("%s %s",p,q); printf("%s %s\n",p,q);

}

若从键盘输入:abc def<回车>,则输出结果是

A)def def

B)abc def

C)abc d

D)d d

29.以下程序的输出结果是

int f()

{ static int i=0;

int s=1;

s+=i; i++;

return s;

}

main()

{ int i,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);

}

A)20

B)24

C)25

D)15

30.有以下程序

#include

struct NODE

{ int num; struct NODE *next; };

main()

{ struct NODE *p,*q,*r;

p=(struct NODE*)malloc(sizeof(struct NODE));

q=(struct NODE*)malloc(sizeof(struct NODE));

r=(struct NODE*)malloc(sizeof(struct NODE));

p->num=10; q->num=20; r->num=30;

p->next=q;q->next=r;

printf("%d\n ",p->num+q->next->num);

}

程序运行后的输出结果是

A)10

B)20

C)30

D)40

二、程序阅读题(本大题共4小题,每小题5分,共20分)

阅读下列程序,将输出结果写到答题纸的相应位置。31.下列程序的输出结果为。

main ()

{int x=3,y=5;

printf ("%d",x=(x--)*(--y));

}32.以下程序的输出结果是。

fun (int x,int y,int z)

{ z =x*x+y*y;}

main ()

{int a=31;

fun (6,3,a)

printf ("%d", a)

}

33.执行下面程序段后,k值是。k=1;

n=1234;

do

{

k+=n%10;

n/=10 ;

} while(n);

34.下列程序的输出的结果是,,。

main()

{int i,j row,colum,m;

static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};

m=array[0][0];for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(array[i][j]<m)

{m=array[i][j];colum=j;row=i;}

printf("%d,%d,%d\n",m,row,colum);三、完善下列程序(本大题共3小题,每空2分,共20分)请在答题纸相应的位置填上正确答案。

35.打印所有的“水仙花数”。所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。比如153=1*1*1+5*5*5+3*3*3。(注:变量i,j,k分别代表三位数的各个位数。)main( )

{ int i,j,k,n;

printf(“水仙花数是:”);

for(n=100;n<1000;n++)

{ i=n/100;

【1 】;

k=n%10;

if(【2 】)/*如果是水仙花数,则输出*/

printf(“%4d”,n);

}

printf(“\n”);

}

36. 以下程序段的功能:从键盘输入的字符,用变量n来统计数字字符的个数,用换行符(‘\n’)

作为循环结束的条件。

#include

main()

{int n=0,c;

c=getchar( );

while(【1 】)

{ if (【2 】)

【3 】;

c=getchar( );

}

}

37. 以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include

#include

void fun (int x, int pp[], int *n)

{ int i,j=0;

【1】

if(x%i==0)pp【2】=i;

【3】;

}

main ()

{ int x,aa[1000], n, i ;

clrscr();

printf("\nPlease enter an integer number : \n "); scanf ("%d ", &x);

fun (x, 【4】, &n);

for (i=0 ; 【5】)printf ("%d ", aa [i]);

printf ("\n ");

}

第二部分数据结构(共100分)

一、单项选择题(本大题共12小题,每小题2分,共24分)

1、向顺序栈中压入新元素时,应当()。

A.先移动栈顶指针,再存入元素B.先存入元素,再移动栈顶指针

C.先后次序无关紧要D.同时进行

2、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:

20,15,21,25,47,27,68,35,84

15,20,21,25,35,27,47,68,84

15,20,21,25,27,35,47,68,84

则所采用的排序方法是()

A.选择排序 B.希尔排序C.归并排序 D.快速排序3、在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()

A.O (n) B.O (1) C.O (n2 ) D.O (log2 n)

4、设单链表中结点的结构为(data , link)。已知指针q所指结点是指针p所指结事业的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?()A.s ->link= p->link ; p->link=s B.q->link=s ;s->link=p

C。p->link=s->link;s->link=p D.p->link=s ;s->link=q

5、若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。

A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,2 6、一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()

A.较快B.较慢C.相同

7、树中所有结点的度等于所有结点数加()

A.0 B.1 C.-1 D.2

8、在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()

A.n B.n-1 C.n+1 D.2*n

9、对长度为n的有序单链表,若搜索每个元素的概率相等,则顺序搜索到表中任一元素的平均搜索长度为()

A.n/2 B.(n+1)/2 C.(n –1)/2 D.n/4

10、在无向图中定义顶点V i与V j之间的路径为从V i到达V j的一个()

A.顶点序列B.边序列C.权值总和D.边的条数11、如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。

A.起泡排序B.快速排序C.堆排序D.直接选择排序12、设有一个含200个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过1.5,则散列表项应能够至少容纳()个表项。(设搜索成功的平均搜索长度为S nl={1+1/(1-α)}/2其中α为装填因子)A.400 B.526 C.624 D.676

二、填空题(每空2分,共22分,其中第17,19,20每空1分)

13.数据的逻辑结构是从逻辑关系上描述数据,它与数据的无关,是独立于计算机的。

14.在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head= 。

15.栈顶的位置是随着操作而变化的。

16.已知一棵完全二叉树中共有768结点,则该树中共有个叶子结点。

17.在单链表上难以实现的排序方法有和。

18.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数为。

19.在用于表示有向图的邻接矩阵中, 对第i行的元素进行累加,可得到第i个顶点的度, 而对第j列的元素进行累加, 可得到第j个顶点的度。

20.一个连通图的生成树是该图的连通子图。若这个连通图有n个顶点, 则它的生成树有条边。

21. 在进行直接插入排序时, 其数据比较次数与数据的初始排列关;而在进行直接选择排序时,其数据比较次数与数据的初始排列关。

22.利用关键码分别为10, 20, 30, 40的四个结点,能构造出种不同的二叉搜索树。

三、应用题(每小题8分,共32分)

23、以知一组元素为(46,25,78,62,12,37,70,29),试画出按元素排列次序插入生成的一棵二叉搜索树。

24、已知一棵树二叉如下,请分别写出按箭序、中序、后序和层次遍历时得到的结点序列。

A

B C

D E F

G H

前序:

中序:

后序:

层次:

25、设散列表的长度为13,散列函数为H(k)=k%13,给定的关键码序列为19,14,23,01,68,20,84,27。试画出用线性探查法解决冲突时所构成的散列表。

26、已知一个有序表( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一

维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。

元素值

比较次数

四、算法设计题

26、说明下面递归过程的功能(10分)

int unknown(BinTreNode * t){

//指针T是二叉树的根指针。

if(t==NULL)return-1;

elseif(unknown(t—leftChild)>=unknown(t—rightChild))

return 1+unknown(t—leftChild));

elsereturn 1+unkuown(t—rightChild);

}

27、本题给出一个施加于链表的选择排序的算法。算法中用到一个临时的表头结点head,作为结果链表的表头结点,每次从first链上摘下的值最大的结点current

链入head之后。算法结束前,将head删除。

Template void List::ListSelectSort( ) {

ListNode * head = new ListNode *current , * pre , p , q ;

Int I=0 ;

While( 1 ){

P=current=first ; q=NULL ;

While ( p!=NULL){

If (p→data→ 2 )

{pre=q ; current=p;}

q=p ; p=p→link ;

}

if (current==first) 3 ;

else pre→link=current→link;

if (! I ) last=current ; I++;

current→link=head→link; 4 ;

}

first=head→link ; delete head;

}

(1)请将缺失语句部分补上:(8分)

1、

2、

3、

4、

(2)设待排序的记录数n=7,当前各记录关键码的初始顺序为40,20,60,30,70,50,80,试根据上述算法,画出每一趟排序时各结点指针的变化。(4分)

十你若真见过那些强者打拼的样子,就一定会明白,那些人之所以能达到别人到不了的高度,全是因为他们吃过许多别人吃不了的苦。这世上从来就没有横空出世的运气,只有不为人知的努力。

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计复习题(专升本)

《C语言程序设计》复习题(专升本) 一、填空题 1、关系操作的特点是操作。 2、按照软件测试的一般步骤,集成测试应在测试之后进行。 3、软件工程三要素包括方法、工具和过程,其中,支持软件开发的各个环节的控制和管理。 4、E-mail地址由用户和域名两部分组成,这两部分的分隔符为。 5、在二维表中,元组的不能再分成更小的数据项。 6、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式。 7、在DOS环境下,表示打印机的设备文件名为。 8、数据的逻辑结构有线性结构和两大类。 9、顺序存储方法是把逻辑上相邻的结点存储在物理位置的存储单元中。 10、一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的。 11.是C程序的基本单位,一个C程序总是从开始执行。 12.C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或。 13.著名计算机科学家沃思提出的一个公式:数据结构+=程序 14.表达式 !!5的值是______。 15.下列程序段的输出结果是______。 printf("%xn", (0x19 <<1) & 0x17); 16.下列程序段的输出结果是_____。 int k, s; for(k=0, s=0; k<10; k++) if (s>k) break ; else s += k; printf("k=%d s=%d", k, s); 17.下列程序段的输出结果是_____。 #define MIN(x,y) (x)<(y)?(x) : (y)

printf("%d",10*MIN(10,15)); 18.下列程序在运行时可能会出错,原因是______。 # include void main( ) { char *s; gets(s); puts(s); } 19. 表达式1<0<5的值是。 20. 表达式 ~(10>>1^~5) 的值是。 二、选择题 1、以下叙述中正确的是 A. C语言比其他语言高级 B. C语言可以不用编译就能被计算机识别执行 C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D. C语言出现的最晚,具有其他语言的一切优点 2、C语言中用于结构化程序设计的三种基本结构是 A.顺序结构、选择结构、循环结构 B. if、switch、break C. for、while、do-while D. if、for、continue 3、在一个C程序中 A.main函数必须出现在所有函数之前 B. main函数可以在任何地方出现 C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置 4、下列叙述中正确的是 A.C语言中既有逻辑类型也有集合类型 B. C语言中没有逻辑类型但有集合类型 C. C语言中有逻辑类型但没有集合类型 D. C语言中既没有逻辑类型也没有集合类型 5、下列关于C语言用户标识符的叙述中正确的是 A.用户标识符中可以出现在下划线和中划线(减号) B.用户标识符中不可以出现中划线,但可以出现下划线

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

c语言程序设计第五版习题答案()

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

专升本C语言历年考试题及答案2

专升本C语言历年考试题及答案一、单项选择题 1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。 A、”.c” B、“.obj” C、“.exe” D、“.bas” 2. 以下选项中不正确的整型常量是_C____。 A、 12L B、 -10 C、 1,900 D、 123U 3. 表达式___C___的值是0。 A、3%5 B、3/ C、3/5 D、3<5 4. 表达式 !(x>0||y>0) 等价于__D___。 A、!x>0||!y>0 B、!(x>0)||!(y>0) C、!x>0&&!y>0 D、!(x>0)&&!(y>0) 5. 若变量已正确定义并赋值,表达式__D____不符合C语言语法。 A、4&&3 B、+a C、a=b=5 D、int 6. 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3);时,___B___是正确的输入。 A、2030,40 B、20 30 40 C、20, 30 40 D、20, 30,40 7. 执行语句printf(” __D____”, 2); 将得到出错信息。 A、%d B、%o C、%x D、%f 8. 设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有__B____个元素。 A、12 B、13 C、14 D、15 9. 设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是___B__。 A、2 B、3 C、4 D、&a[0]+1 10. 若变量已正确定义并赋值,表达式 -k++ 等价于__A____。 A、-(k++) B、(-k)++ C、-(k+1) D、-(++k) 11. 在C 语言程序中,在函数内部定义的变量称为__D____。

标准C语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

湖北师范学院2010年专升本《C语言程序设计》试卷

湖北师范学院2010年“专升本”招生考试 《C语言程序设计》试题 一、选择题(本题共20小题,每题2分,共40分) 1.以下不合法的用户标识符是()。A)S2_KEY B)Int C) 4s D)_char 2.设有 int x=11; 则表达式 (++x)%3 的值是()。A)0 B)1 C)2 D)3 3.C语言源程序名的后缀是()。 A).exe B).cp C).obj D).c 4.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。 A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c); C)scanf("%d",p); D)scanf("%d",&p); 5.C语言中运算对象必须是整型的运算符是()。 A) %= B)/C) =D) 〈= 6.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是()。A)a[0][4] B)a[0][3] C)a[1][4] D)a[1][3] 7.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是 A)#define N 10 Int a[N]B)#define n 5 Int a[2*n]C)int a[5+5]D)int n=10,a[n] 8.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()。(说明:'\b'是退格符) A)re'hi'you B)abre'hi'y\bou C)a\bre\'hi\'y\bou D)a\bre\'hi\'y\\\bou 9.下列程序执行后的输出结果是()。 A)A B) B C) F D) G void main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); } 10.若变量已正确定义,有以下程序段

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

最新专升本c语言程序设计模拟试卷资料

计算机科学与技术专业《基础知识》模拟试卷(考试时间150分钟,满 分300分,共三部分) 第一部分 C语言程序设计(共100分) 一、单项选择题(本大题共30小题,每小题2分,共60分) 1. 下列各选项中,均是合法有效的标识符的是【】 A. 3day B.lower C.day_3 D.ab Sum _days abcde student_name _of lotus_1_2_3 default M.D.john 2. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是 A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 3. 下列程序的输出结果是【】 #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++;b++; break; case 3: a++;b++; break; } printf(“%d,%d\n”,a,b); } A.1,1 B.2,1 C.1,0 D.2,2 4. 以下关于switch语句和break语句的描述中,只有正确的是【】 A.在switch语句中必须使用break语句 B.在switch语句中,可以根据需要使用或不使用break语句

D.break语句是switch语句的一部分 5. 下面程序的输出是【】。 main() { int x=0x23; printf(“%d\n”,- -x); } A.18 B.19 C.34 D.35 6. 下列函数的输出结果是【】 #include int f1(int xb) { extern int xa; return (xa * xb); } void main(void) { extern int xb; int xa=5; printf(“xa=%d,xb=%d,result=%d”,xa,xb,f1(xa)); return 0; } int xa=3,xb=4; A. 3,4,12 B. 5,4,20 C. 5,4,15 D. 3,4,15 7. c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A. 地址传递 B. 由实参传给形参,再由形参传回给实参 C. 单向值传递 D. 由用户指定传递方式 8. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其原因是【】void main() { int *p,a; p=&a; scanf(“%d”,*p);

2020年普通专升本《C语言程序设计》考试大纲

2020 年普通专升本《C 语言程序设计》考试大纲 本考试的目的是选拔部分高职高专毕业生进入本校计算机科学与技术专业本科阶段学习,考查考生是否具有综合运用 C 语言编程解决实际问题的能力以及学生对算法和编程基础知识的掌握程度,既测试学生的综合能力,也测试学生的基础知识。 一、考试科目名称:《C 语言程序设计》 二、考试方式:笔试、闭卷 三、考试时间:90 分钟 四、试卷结构:总分100 分 (一)单项选择题:15 题(每题 2 分,共30 分) (二)判断题:15 题(每题 2 分,共30 分) (三)简答题:4 题(每题 5 分,共20 分) (四)程序设计题:3 题(第一、二小题每题6 分,第三小题 8 分,共20 分) 五、考试的基本要求 了解高级程序设计语言的特点,熟练掌握结构化程序设计的方法,了解常用C 语言输入/输出语句、一维数组等各项语法的正确使用方法,并能进行程序的调试和纠错。 六、考试范围 第一章为什么要学C语言 了解C 语言的发展及其特点;掌握C 语言程序的结构;了 解 C 语言的特点。 第二章 C 数据类型 掌握 C 语言数据类型分类,掌握如何定义各种数据类型的

变量,以及他们的赋值方法;掌握常量与变量区别;掌握赋值运算符的使用方法。 第三章简单的算数运算和表达式 掌握算术运算符和运算表达式,以及符合赋值运算符的计算表;重点掌握是自增(+ +)和自减(--)运算符的使用。 第四章键盘输入和屏幕输出 掌握单个字符的输入输出;掌握数据的格式化屏幕输出;掌握数据的格式化键盘输入。 第五章选择结构程序设计 了解基本的算法概念及描述方法;掌握关系运算符和关系表达式;掌握单分支控制的条件语句、双分支控制的条件语句以及多分支选择的控制语句的使用。 第六章循环控制结构 掌握循环结构与循环语句的基本组成;掌握计数控制的循环结构;掌握条件控制的循环结构;掌握循环的嵌套使用方法。 第七章函数 掌握函数的分类和定义;掌握向函数传递值和从函数返回值的方法;了解模块化程序设计的基本原则。 第八章数组 掌握数组的概念及分类;掌握一维数组的定义和初始化。 七、参考教材 《C 语言程序设计》(第3 版),苏小红、王宇颖、孙志岗等编著,高等教育出版社。

《C语言程序设计》考试大纲(专升本).doc

《C语言程序设计》考试大纲(专升本) 基本要求 1.熟练掌握C语言的基本知识; 2.具备基本的C语言程序设计能力,能熟练地阅读、理解和编制简短的C语言程序; 3.掌握C语言的编译和调试。 考试范围和要求 一、源程序结构 1.理解C程序的组成; 2.熟练掌握主函数main。 二、数据定义 1.基本类型:整型、实型、字符型。 (1)熟练掌握基本数据类型的常量表示,包括:整数的十进制、八进制、十六进制;实数的十进制小数形式和指数形式;字符常量和字符串常量; (2)熟练掌握变量的命名规则; (3)熟练掌握整型、实型、字符型变量定义、赋值和使用。 2.构造类型:数组、结构体。 (1)熟练掌握一维数组的定义、初始化及一维数组元素的引用; (2)掌握二维数组的定义、初始化及二维数组元素的引用; (3)熟练掌握字符数组的定义和初始化方法; (4)熟练掌握字符串的存储,字符串的处理; (5)能应用一维数组解决简单的应用问题,如遍历、检索、排序等; (6)能应用二维数组处理矩阵运算; (7)掌握结构体类型定义、结构体变量的定义和初始化,正确引用结构体变量成员,掌握结构体的简单应用编程。 3.指针 (1)正确理解指针的概念;

(2)熟练掌握指向各种类型的指针变量的定义和初始化,指针变量的一般使用; (3)理解指针与一维数组的关系; (4)熟练掌握指针在字符串处理中的应用; (5)了解指向指针的指针(二级指针)。 4.变量的存储类别、作用域和生存期 (1)了解变量的存储类别,包括auto 自动型、static 静态型、extern 外部参照型; (2)能正确运用全局变量和局部变量。 三、运算符与表达式 1.熟练掌握运算符的功能、目数、优先级和结合性。包括:算术运算符、自增(++)和自减(--)运算符、关系运算符、逻辑运算符、赋值运算符、复合赋值运算符、逗号运算符、条件运算符、位操作运算符。 2.熟练掌握隐式类型转换和强制类型转换; 3.熟练掌握各类表达式的计算规则及应用。 四、预处理命令 1.理解编译预处理; 2.正确定义和使用宏,包括不带参数的宏、带参数的宏; 3.正确使用文件包含命令; 4.了解条件编译。 五、流程控制 1.熟练掌握表达式语句、空语句、复合语句; 2.熟练掌握选择控制语句及应用(if…else…, switch…); 3.熟练掌握循环控制语句及应用(while, do while, for) 4.正确理解break,continue语句的含义,并能熟练运用。 六、函数 1.自定义函数 (1)正确定义函数; (2)正确理解函数形参与实参的关系,能熟练运用函数参数传递,包括指

c语言程序设计(科学出版社)课后习题解答

第3章习题解答 第1章 1.C 语言程序主要由预处理命令、函数、注释等组成。 2.填空 (1)分号 (2)main (3)stdio.h 3. 源程序: #include main( ) { printf(“*************************\n”); printf(“Hello World!\n”); printf(“*************************”); } 4. 源程序: #include main( ) { int a, b, c; /* 定义变量*/ scanf(“%d”, &a); /* 输入第一个整数*/ scanf(“%d”, &b); /* 输入第二个整数*/ c=a-b; /* 计算差*/ printf(“%d-%d=%d”,a,b,c); /* 输出结果*/ } 5. (1) (2)x=10; (3)printf(“s=%d\n”,s); 第2章 1. (1) c (2) a (3) b g (4) a d e (5) d 2. a. 5 b. 295 c. 4 d. 29 e. 9 3. a.x=4,y=6

b. x=4,y=3 f.x=3,y=6 4. 16 5. #include main() { int a,b,c; scanf("%d%d",&a,&b); c=a*b; printf("%d*%d=%d",a,b,c); } 第3章 1. (1) b (2) b (3) d (4) a (5) b 2. (1)&a,&b (2)l,s 3. printf(“x=%.2f,y=%.2f\n”,x,y); 4. #include main() { int num1,num2,num3,sum; float average; scanf("%d%d%d",&num1,&num2,&num3); sum=num1+num2+num3; average=sum/3.0; printf("sum=%d,average=%.2f\n",sum,average); } 5. #include main() { int hour,minute,second,total; /* 定义变量代表时、分、秒和总秒数*/ scanf("%d",&total); hour=total/3600; minute=total%3600/60; second=total%3600%60;

C语言程序设计1(专升本) 期末考试试题及参考答案

C语言程序设计复习题1(专升本) 一、选择题 1.用C语言编写的代码程序()。 A)可立即执行B)是一个源程序 C)经过编译即可执行D)经过编译解释才能执行 2.在C语言中,下列属于构造类型的是() A)整型B)字符型C)实型D)数组类型 3.C语言中,运算对象必须是整型数的运算符是()。 A)% B)\ C)% 和\ D)** 4.下列常数中,合法的C 常量是()。 A)-0. B) '105' C)'AB' D)"35" 5.设整型变量a值为9,则下列表达式中使b的值不为4的表达式()。 A)b=a/2 B)b=a%2 C)b=8-(3,a-5) D)b=a>5?4:2 6.下列符号中,可以作为变量名的是()。 A)+c B)*X C)_DAY D)next day 7.有以下程序 main() { char a,b,c,d; scanf("%c,%c,%d,%d",&a, &b, &c, &d); printf("%c,%c,%c,%c\n",a, b, c, d); } 若运行时从键盘上输入:6,5,65,66。则输出结果是()。 A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 8.以下叙述中错误的是()。 A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 9. 以下叙述中正确的是()。 A)调用printf函数时,必须要有输出项 B)使用putchar函数时,必须在之前包含头文件stdio.h C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10能正确表示逻辑关系“a≥=10或a≤0”的C语言表达式是()。 A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 && a<=0 D)a>=10‖a<=0 11 逻辑运算符的运算对象的数据类型()。 A)只能是0或1 B)只能是T或F C)只能是整型或字符型D)任何类型的数据 12以下程序的运行结果是()。 main( ) { int c, x, y; x=1; y=1; c=0; c=x++||y++;

《C语言程序设计》专升本考试大纲.

《C语言程序设计》专升本考试大纲 一、总要求 本课程地位:本课程是计算机专业的核心课程之一。 本课程性质:本课程是计算机专业的专业基础课程 本课程了解、熟悉、掌握的主要内容:了解C语言的主要特征、常用算法描述以及其它相关基础知识;掌握C语言中顺序程序设计、选择程序设计、循环程序设计、指针、结构体共用、函数、文件操作等。 二、内容 第一章 C语言概论 ?了解C语言的主要特征,掌握C语言程序的基本结构 ?掌握高级语言程序的上机实现过程 第二章数据类型、运算符与表达式 ?掌握C语言中的数据类型及其常量的表示方法; ?理解各类数值型数据间的混合运算规则 ?掌握基本运算符的功能,表达式的概念 第三章顺序程序设计 ?掌握用传统流程图进行算法描述; ?掌握结构化程序设计的三种基本结构 ?掌握getchar()、putchar()、printf()、 scanf()函数的使用 ?掌握顺序结构程序的设计方法 第四章选择结构程序设计 ?掌握关系运算符和逻辑运算符的功能及用法 ?掌握基本条件和复合条件语句的使用 ?掌握switch语句的使用 ?掌握选择结构程序的设计方法 第五章循环结构程序设计 ?掌握循环概念及循环的构成要素 ?掌握while语句用法 ?掌握do-while语句的用法 ?掌握for语句的用法 ?掌握break、continue语句 ?掌握多重循环的概念及其程序描述方法 ?掌握循环结构程序设计的基本方法 第六章数组

?掌握数组的基本概念。 ?掌握一维、二维数组的定义和使用。 ?掌握字符数组的使用,了解基本的字符和字符串处理库函数的功能和使用 ?能利用数组进行程序设计 第七章函数 ?掌握函数定义的一般形式 ?理解形参和实参的概念 ?掌握函数的调用方法 ?了解函数的嵌套调用和递归调用。 ?了解数组作函数参数的使用 ?了解局部变量和全局变量的概念 ?了解变量的存储类别和作用域,库函数的分类和调用 ?了解内部函数和外部函数的概念 第八章编译预处理 ?掌握宏定义的概念和使用 ?了解文件包含处理 ?了解条件编译 第九章指针 ?掌握指针的基本概念及其使用规则 ?掌握用指针实现对数组和函数的访问方法 ?掌握指针的运算 ?了解多级指针的概念及带参数命令行源程序的编制方法 ?掌握指针与数组、指针与函数的关系 第十章结构体和共用体 ?掌握结构体类型的定义方法 ?了解枚举类型的定义和使用 ?掌握结构体类型变量的定义初始化和引用 ?了解指向结构体类型数据的指针的使用 ?掌握结构体数据类型的使用(以链表为例) ?掌握共同体的概念 ?掌握位运算符的功能及使用方法 第十一章文件 ?了解文件的基本概念 ?掌握文件打开和关闭的方法 ?了解文件读写和定位函数的功能 三、试卷结构 1、试卷内容比例 第一章 C语言概论5% 第二章数据类型、运算符与表达式5% 第三章顺序程序设计5% 第四章选择结构程序设计10%

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

专升本C语言程序设计试卷

专升本C语言程序设计试卷(二) 一、单项选择题(1~30题每小题1分,31~45题每小题2分,共60分) 1. 以下合法的用户自定义标识符是(D)。 A、b-b B、float C、<fr> D、_isw 2. 若变量已正确定义并赋值,以下不符合C语言语法的表达式是(B)。 A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. 下列不正确的字符常量是(C) A、'n' B、'1' C、"a" D、'101' 4. 在C 语言中,表示逻辑值“真”用(B) A、1 B、非0 的数 C、非1 的数 D、大于0 的数 5. 把x、y定义成float类型变量,并赋同一初值3.14是(C) A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14; 6. 若变量已正确定义,值不为2的表达式是(C) A、2&3 B、1<<1 C、a==2 D、1^3 7. 若变量已正确定义,和语句“if(a>b) k=0; else k=1;”等价的是(C) A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8. 设变量定义为“int a, b;”,执行下列语句时,若a和b的值都是10,则应输入(D) scanf("a=%d, b=%d",&a, &b); A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10 9. 下列程序的输出结果是(D) fun(int a, int b, int c) { c =a*b; } void main( ) { int c; fun(2,3,c); p rintf(”%dn”,c); } A、0 B、1 C、6 D、无法确定

相关文档
相关文档 最新文档