C语言练习题精选

C语言练习题精选
C语言练习题精选

-- C语言练习题精选

1. 从键盘上输入两个整数,求出它们的和

#include "stdio.h"

void main()

{int x,y,s;

scanf("%d",&x);

scanf("%d",&y);

s=x+y;

printf("\\n s=%d",s); }

2. 已知三角形的底和高,求出三角形的面积。

#include "stdio.h"

void main()

{ int x,y;

float s;

x=4;

y=5;

s=x*y/2.0;

printf("\\n s=%f",s);

}

3. 从键盘上输入三角形的底和高,求出三角形的面积。

#include "stdio.h"

void main()

{ int x,y;

float s;

scanf("%d",&x);

scanf("%d",&y);

s=x*y/2.0;

printf("\\n s=%f",s);

}

4. 已知三角形的三边长,求出三角形的面积。

#include "stdio.h"

#include "math.h"

void main()

{

int a,b,c;

float p,s;

a=3;

b=4;

c=5;

p=(a+b+c)/2.0;

s=sqrt(p*(p-a) *(p-b) *(p-c));

printf("\\n s=%f",s);

}

5. 已知二元一次方程的三个系数,求方程的一个根。

#include "stdio.h"

#include "math.h"

void main()

{int a,b,c;

float root;

a=3;

b=4;

c=5;

root=(-b-sqrt(pow(b,2)-4*a*c))/(2.0*a);

printf("\\n root=%f",root);}

6. 编程实现符号函数。当x <0 ,则sgn(x)=-1, 当x >0 ,则sgn(x)=+1, 当x =0 ,则sgn(x)=0

#include "stdio.h"

void main()

{float x;

int y;

scanf("%f",&x);

if (x>0);

y=1;

if (x==0);

y=0;

if (x<0);

y=-1;

printf("\\n x=%f ,sgn(x)=%d",x,y);}

或者:

#include "stdio.h"

void main()

{float x;

int y;

scanf("%f",&x);

if (x>0);

y=1;

else if (x==0);

y=0;

else;

y=-1;

printf("\\n x=%f ,sgn(x)=%d",x,y);

}

或者:

#include "stdio.h"

void main()

{

float x;

int y;

scanf("%f",&x);

y=(x>0) ? 1: (x==0) ? 0 : -1;

printf("\\n x=%f ,sgn(x)=%d",x,y);

}

7. 从键盘上输入数字星期,在屏幕上显示英文星期。

#include "stdio.h"

void main()

{

float x;

scanf("%f",&x);

switch( x )

{

case0:printf("Sunday.\\n");break;

case1:printf("Monday.\\n");break;

case2:printf("Tuesday.\\n");break;

case3:printf("Wednesday.\\n");break;

case4:printf("Thursday.\\n");break;

case5:printf("Friday.\\n");break;

case6:printf("Saturday.\\n");break;

default:printf("不存在这个星期!\\n");

}

}

8. 从键盘输入三角形的三边长,判断出这三边能否构成三角形#include "stdio.h"

void main()

{

int a,b,c;

scanf("%d",&a);

scanf("%d",&b);

scanf("%d",&c);

if ((a+b>c) && (a+c)>b) && (b+c)>a }

printf("这三边能构成三角形!");

else

printf("这三边不能构成三角形!"); }

9. 从键盘输入三个整数,将这三个数按从大到小的顺序排列起来#include "stdio.h"

void main()

{

int a,b,c,temp;

scanf("%d",&a);

scanf("%d",&b);

scanf("%d",&c);

if ((a>b) && (a>c) && (b>c))

printf("这三数从大到小的顺序为:%d,%d,%d",a,b,c);

if ((a>b) && (a>c) && (b

printf("这三数从大到小的顺序为:%d,%d,%d",a,c,b);

if ((b>a) && (b>c) && (a>c))

printf("这三数从大到小的顺序为:%d,%d,%d",b,a,c);

if ((b>a) && (b>c) && (c>a))

printf("这三数从大到小的顺序为:%d,%d,%d",b,c,a);

if ((c>b) && (c>a) && (a>b))

printf("这三数从大到小的顺序为:%d,%d,%d",c,a,b);

if ((c>b) && (c>a) && (b>a))

printf("这三数从大到小的顺序为:%d,%d,%d",c,b,a); }

或者这样写:

#include "stdio.h"

void main()

{int a,b,c,temp;

scanf("%d",&a);

scanf("%d",&b);

scanf("%d",&c);

if (a

{temp=a;

a=b;

b=temp;

}

if (a

{temp=a;

a=c;

c=temp;

}

if (b

{temp=b;

b=c;

c=temp;

}

printf("这三数从大到小的顺序为:%d,%d,%d",a,b,c);

}

10. 从键盘输入二个整数,求出最大值。

#include "stdio.h"

void main()

{

int a,b,temp;

scanf("%d",&a);

scanf("%d",&b);

if (a>b)

temp=a;

else

temp=b;

printf("这二个整数最大值为%d",temp);

}

11. 从键盘输入三个实数,求出最大值。

#include "stdio.h"

void main()

{

float a,b,c,temp;

scanf("%f",&a);

scanf("%f",&b);

scanf("%f",&c);

if (a>b)

temp=a;

else

temp=b;

if (temp

temp=c;

printf("这三数最大值为%f",temp);

}

12. 从键盘输入三个整数,在一个程序中既要求出最大值,还要求出最大值。#include "stdio.h"

void main()

{

int a,b,c,max,min;

scanf("%d",&a);

scanf("%d",&b);

scanf("%d",&c);

if (a>b)

{max=a; min=b;}

else

{max=b;min=a;}

if (max

max=c;

if (min>c)

min=c;

printf("这三个整数最大值为:%d,最小值为:%d.",max,min);

}

13. 使用for循环编程求出1到100的和

#include "stdio.h"

void main()

{

int i,s=0;

for (i=1;i<=100;i++)

s=s+i;

printf("\\ns= %d",s);

}

14. 使用当循环编程求出1到100的和

#include "stdio.h"

void main()

{

int i=1,s=0;

while (i<=100)

{

s=s+i;

i++;

}

printf("\\ns= %d",s);

}

15. 使用当循环编程求出1到100的和

#include "stdio.h"

void main()

{

int i=1,s=0;

do

{

s=s+i;

i++;

}

while (i<=100);

printf("\\ns= %d",s);

}

16. 从键盘输入10个实数,求出最大值

#include "stdio.h"

void main()

{

int i;

float x,max;

scanf("%f",&x);

max=x;

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

{

scanf("%f",&x);

if (max

max=x;

}

printf("这十数中的最大值为:%f",max); }

15. 从键盘输入10个整数,求出最小值

#include "stdio.h"

void main()

{

int i x,min;

scanf("%d",&x);

min=x;

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

{

scanf("%d",&x);

if (min>x)

min=x;

}

printf("这十整数中的最小值为:%d",min); }

16. 从键盘输入10个整数,求出它们的平均值#include "stdio.h"

void main()

{

int i a[10],s=0;

float aver=0.0;

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

{

scanf("%d",&a[i]);

s=s+i;

}

aver=s/10.0;

printf("这十整数中的平均值为:%f",aver); }

17. 编程在屏幕上输出具有7行的正三角形

***

*****

*******

*********

***********

*************

#include "stdio.h"

void main()

{

int i ,j;

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

{

for (j=0; j<6-i; j++)

printf(" ");

for (j=0; j<=2*i+1; j++)

printf("*");

printf("\\n");

}

}

18. 求出8的阶乘。#include "stdio.h"

void main()

{

int i ;

long p=1;

for (i=1;i<9;i++)

p=p*i;

printf("\\n8的阶乘值为:%ld",p);

}

19、从键盘输入20个整数,求出不大于90所有数的和

#include "stdio.h"

void main()

{

int i ,s=0,x;

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

{

scanf("%d",&x);

if (x<=90)

s=s+x;

}

printf("\\n不大于90所有数的和:%d",s);

}

20、从键盘输入一个整数,判断这个数是否为素数

#include "stdio.h"

void main()

{

int i ,x,flag=1;

scanf("%d",&x);

for (i=2;i

{

if ( x % i ==0)

{

flag=0;

break;

}

}

if (flag==1)

printf("\\n该数是素数");

else

printf("\\n该数不是素数");

}

21、从键盘输入20个整数,求出它们的和

#include "stdio.h"

void main()

{

int i ,s=0,x[20];

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

{

scanf("%d",&x[i]);

s=s+x[i];

}

printf("\\n所有数的和:%d",s);

}

22、从键盘输入20个整数,求出它们的平均值及比平均值大的数#include "stdio.h"

void main()

{

int i ,s=0,x[20];

float aver=0.0;

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

{

scanf("%d",&x[i]);

s=s+x[i];

}

aver=s/20.0;

printf("平均为:%f\\n",aver);

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

{

if (x[i]>aver)

printf("比平均大的数为:[%d]=%d\\n",i,x[i]);

}

}

23、已知五个整数3,-5,8,2,9,求出最大值

#include "stdio.h"

void main()

{

int i ,x[5]={ 3,-5,8,2,9},max;

max=x[0];

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

if (x[i]>max)

max=x[i];

printf("最大值为:%d\\n",max);

}

24、从键盘输入20个整数,求出它们的最小值,并求最小值所在位置#include "stdio.h"

void main()

{

int i ,min,x[20],pos=0;

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

scanf("%d",&x[i]);

min=x[0];

pos=0;

for (i=1;i<20;i++)

if (x[i]>min)

{

min=x[i];

pos=i;

}

printf("最小值为:%d,最小值位置为:%d\\n",min,pos);

}

25、已知五个整数3,-5,8,2,9,按从大到小的顺序排列起来

#include "stdio.h"

void main()

{

int j ,k, t , b[5]={ 3,-5,8,2,9};

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

for (k=j-1; k<5; k++)

if (b[j]

{

t= b[j];

b[j]= b[k];

b[k]=t;

}

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

printf("\\n %d,",b[j]);

}

26、从键盘输入10个实数,按从大到小的顺序排列起来

#include "stdio.h"

void main()

{

int i, j ,k;

float b[10],t;

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

scanf("%d",&b[i]);

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

for (k=j-1; k<10; k++)

if (b[j]

{

t= b[j];

b[j]= b[k];

b[k]=t;

}

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

printf("\\n %f,",b[j]);

}

某班有43名学生,某门考试结束后,请按10段统计出各分数段的人数

#include "stdio.h"

void main()

{

int j , x[43],fragment[12];

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

scanf("%d",&x[j]);

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

fragment[x[j]/10]= fragment[x[j]/10]+1;

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

printf("\\n各分数段人数为%d", fragment[j]);

}

或者写成:

#include "stdio.h"

void main()

{

int j , x[43],t ,fragment[12];

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

scanf("%d",&x[j]);

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

t= x[j]/10;

fragment[t]= fragment[t]+1;

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

printf("\\n各分数段人数为%d", fragment[j]);

}

从键盘上输入两个字符串,并将它们交换后输出

#include "stdio.h"

#include "string.h"

void main()

{

int j ,k;

char ch1[81],ch2[81],t[81];

scanf("%s",ch1);

scanf("%s",ch2);

strcpy(t , ch1);

strcpy(ch1 , ch2);

strcpy( ch2 ,t);

printf("\\n %s,%s\\n,",ch1,ch2);

}

26、已知五个字符串"China","American","Japan","France","Australia",编程将它们按从小到大的顺序排列起来

#include "stdio.h"

#include "string.h"

void main()

{

int j ,k;

char t[81], b[5][81]= {"China","American","Japan","France","Australia"};

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

for (k=j-1; k<5; k++)

if ( strcmp(b[j]>b[k]) )

{

strcpy(t , b[j]);

strcpy(b[j] , b[k]);

strcpy( b[k] ,t);

}

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

printf("\\n %s,",b[j]);

}

27、使用指针将x数组中的五个数依次输出

#include "stdio.h"

void main()

{

int i ,x[5];

int *p=x;

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

{

scanf("%d",p);

p++;

}

p=x;

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

{

printf("\\n%d",*p);

p++;

}

}

或者(全指针型):

#include "stdio.h"

void main()

{

int x[5];

int *p=x;

for (p=x;p

scanf("%d",p);

for (p=x;p

printf("\\n%d",*p);

}

28、已知一维x数组中有10个数,将每个元素加1后输出

//全指针型

#include "stdio.h" void main()

{

int x[10];

int *p=x;

for (p=x;p

scanf("%d",p);

for (p=x;p

printf("\\n%d",*p+1);

}

或者(部分指针型)

#include "stdio.h"

void main()

{

int i ,x[10];

int *p=x;

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

{

scanf("%d",p);

p++;

}

p=x;

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

{

printf("\\n%d",*p+1);

p++;

}

}

29、在屏幕上显示文件a:\\abc\\abc.txt内容

#include

void main( )

{

FILE *fp;

if((fp=fopen("a:\\\\abc\\\\abc.txt","r+"))==NULL)

{

printf("Cannot open file!\\n");

exit(1);

}

while (!feof(fp) )

printf("%c\\n",fgetc(fp) );

fclose(fp);

}

30、将五个整数3,-5,8,2,9写到C盘mydocument子目录下的aaa.txt文件中

#include

void main( )

{

FILE *fp;

int x[5]={ 3,-5,8,2,9},j;

if((fp=fopen("c:\\\\ mydocument\\\\aaa.txt","w+"))==NULL)

{

printf("Cannot open file!\\n");

exit(1);

}

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

fputc(x[j], fp);

fclose(fp);

}

31、从键盘上输入10个数,将它们按从大到小的顺序排列起来,主函数中使用input(a,10),sort(a,10),output(a,10)三个函数,编程实现

#include "stdio.h"

void input(int a[] , int n);

void sort(int a[] , int n );

void output(int *, int n );

void main()

{

int a[10];

input(a,10);

sort(a,10);

output(a,10);

}

void input(int b[] , int n)

{

int i;

for (i=0 ; i

scanf("%d",&b[i]);或scanf ("%d",(b+i)) return;

}

void sort(int b[] , int n )

{

int j ,k, t;

for (j=0; j

for (k=j-1; k

if (b[j]

{

t= b[j];

b[j]= b[k];

b[k]=t;

}

return;

}

void output(int b[], int n );

{

int i;

for (i=0 ; i

printf("%d",b[i]);或printf("%d",*(b+i));

return;

}

或者这样写:

#include "stdio.h"

void input(int a[]);

void sort(int a[]);

void output(int * );

void main()

{

int a[10];

input(a);

sort(a);

output(a);

}

void input(int b[10])

{

int i;

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

scanf("%d",&b[i]);或scanf ("%d",(b+i)) return;

}

void sort(int b[10] )

{

int j ,k, t;

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

for (k=j-1; k<10; k++)

if (b[j]

{

t= b[j];

b[j]= b[k];

b[k]=t;

}

return;

}

void output(int b[10]);

{

int i;

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

printf("%d",b[i]);或printf("%d",*(b+i));

return;

}

33、指出下列程序输出功能

#include "stdio.h"

void swap1(int ,int );

void swap2(int * ,int *);

void main()

{

int x , y;

int *p1=&x;

int *p2=&y;

scanf("%d%d",p1,p2);

printf("\\nx=%d,y=%d",*p1,*p2);

swap1(*p1,*p2);

printf("\\nx=%d,y=%d",*p1,*p2);

swap2(p1,p2);

printf("\\nx=%d,y=%d",*p1,*p2);

}

void swap1(int x1 ,int y1 )

{

int t;

t=x1;

x1=y1;

y1=t;

printf("\\nx=%d,y=%d",x1,y2);

return;

}

void swap2(int *p3 ,int *p4)

{

int t;

t=*p3;

*p3=*p4;

*p4=t;

printf("\\nx=%d,y=%d",*p3,*p4);

return;

}

34、从键盘上输入三个数,编写函数int max2(int,int)及int max3(int , int , int)求出最大值

#include "stdio.h"

int max2(int,int);

int max3(int , int , int);

void main()

{

int x , y, z , t;

scanf("%d%d%d",&x,&y,&z);

t=max3(x , y , z);

printf("\\n max=%d",t);

}

int max2(int x1 ,int y1 )

{

if (x1>y1)

return x1;

else

return y1;

}

int max3(int x1 ,int y1, int z1)

{

int t;

t=max2(x1,y1);

t=max2(t,z1);

return t;

}

35、使用指针求出3~100闭区间内所有素数

使用指针求出3~100闭区间内所有素数。(下标法)

#include "stdio.h"

void main()

{

int a[101], i , j, *p;

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

a[i]=i;

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

{

for ( j=2 ; j

if (a[i] % j == 0)

{

a[i]=0;

break;

}

}

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

if (a[i]>0)

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

}

36、使用指针求出3~100闭区间内所有素数。(相对地址) #include "stdio.h"

void main()

{

int a[102], i , j, *p;

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

a[i]=i;

p=a ;

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

{

for ( j=2 ; j

if (*(p+i) % j == 0)

{

*(p+i)=0;

break;

}

}

p=&a[0];

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

if (*(p+i)>0)

printf("%d\\n", *(p+i));

}

使用指针求出3~100闭区间内所有素数。(绝对地址)

#include "stdio.h"

void main()

{

int a[102], i , j, *p;

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

a[i]=i;

for (p=a +3; p

{

for ( j=2 ; j <*p ; j++)

if (*p % j == 0)

{

*p=0;

break;

}

}

for (p=a +3; p

if (*p>0)

printf("%d\\n",*p);

}

36、下面的程序中有一函数求两个整数之和,并通过形参传回结果#include "stdio.h"

void add(int x,int y, ___①___z) //int *z

{

____②____=x+y; //*z

return;

}

void main( )

{

int i,j,k;

printf("Input two integers:");

scanf("%d %d",&i,&j);

add(i,j,&k);

printf("The sum of two integers is: %d\\n",k);

}

37、下面的程序实现从10个整数中找出最大值和最小值

#include "stdio.h"

int max,min;

void find(int *p,int n)

{

int *q;

max=min=*p;

for(q=p;____①____;q++) //① q

if(*q>max)

max=*q;

else if(____②_____) //② *q

min=*q;

}

main( )

{

int i,num[10];

printf("Input 10 numbers:\\n");

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

scanf("%d",&num[i]);

find(num,10);

printf("max=%d,min=%d\\n",max,min);

}

38、下面的程序输入学生的姓名和成绩,然后输出,请填空

#include "stdio.h"

struct student

{

char name[20];

float score;

}stu,*p;

main( )

{

p=&stu;

printf("Enter name:");

gets(____①_____); // p->name

printf("Enter score:");

scanf("%f",______②_____); // &p->score

printf("Output:%s, %f\\n",p->name,p->score);

}

39、下面的函数将3个学生的数据存入名为"student.dat"的文件中

#include

#include

struct student

{

long num;

char name[10];

int age;

}stu[3];

void fsave( )

{

FILE *fp;

int i; //① "student.dat"

if((fp=fopen(_____①_____,"wb"))==NULL)

{

printf("Cannot open file!\\n");

exit(1);

}

for(i=0;i<3;i++) //② sizeof(struct student)

if(fwrite(&stu[i],______ ②________,1,fp)!=1) printf("File write error!\\n");

fclose(fp);

}

C语言练习试题和答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 [i] t 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# 语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

《语言学纲要》指导书习题答案(4-6章)

第四章语法 一、举例解释下列名词(20分,每词4分) 1、内部屈折:指的是依靠词根中元音或辅音的变化来表达不同的语法意义的手段。如,英语foot(脚,单数)-feet(脚,复数),goose(鹅,单数)-geese(鹅,复数),build(建设,现在时)-built(建设,过去时)等。 2、后缀:词缀的一种,粘附在词根语素的后面构成新词。如,汉语的“者”放在动词形容词(或语素)后面表示跟这个动作形状有关的人——长者、作者、编者、工作者、劳动者,等等;又如英语的-er/-or接在表动作的词(或语素)后面表示跟该动作有关的人——worker(工作者),teacher(教师),publisher (出版者),translasor(译者)等等。 3、词尾:是变词语素,它附着在词干后面,表示某种语法意义,例如英语动词doing,其中的ing就是词尾,表示动作行为的方式。 4、复合词:是由两个以上的词根语素构成的词,例如汉语“白菜”“电脑”“支持”,英语“themselves”,“waterfall”,都是复合词。 5、语法范畴:是指通过词形变化表现出来的语法意义的归类,例如“he”的语法意义是主格,“him”的语法意义是宾格,它们都属于格的语法范畴。 二、填空题(20分,每空1分) 1、语法是大家说话的时候必须遵守的习惯,不是语言学家规定的。 2、语法的组合规则和聚合规则构成一种语言的语法规则。 3、从形式上看,句子的最大特点是具有完整的语调。 4、句子里根据表达的需要临时作出组合的词组叫自由词组。 5、从意义和作用看,词可以分为实词和虚词两大类。 6、语法研究通常以词为界,词以上的规则叫句法,词以下的规则叫词法。 7、我们可以根据语素在词中的不同作用把它分成三类,例如happinesses中,es是词尾,ness是词缀,happy是词根。 8、根据语素在词中的不同作用,一般把词根和词缀叫作构词语素,把词尾叫作变词语素。 9、词的组合有五种基本类型,例如“研究问题”是述宾结构,“跑得很快”是述补结构,“火速准备”是偏正结构,“我们努力”是主谓结构。 10、孤立语的主要特点是缺乏词形变化;屈折语的主要特点是有丰富的词形变化。 三、单项选择(20分,每空2分) 1、下列各组词中全都属于复合词的一组是D 。 A.大学、人民、(英)reader B.劳动、阿姨、(英)railway C.瓶子、老虎、(英)unhappy D.道路、材料、(英)classroom 2、下列句子符合英语语法规则的是D 。 A.He am a studentes.B.She is a students. C.I were a student.D.You are a student. 3、英语名词后面加上词尾s或es,这种变化属于语法范畴中的B 变化。

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

c语言编程例题与答案解析

实验报告三 (四学时) 2.1 实验目的 (1)掌握函数的定义和调用; (2)了解函数间的参数传送; 2.2 基础实验 【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。 算法分析: 1、输入:通过键盘接收一个字符; 2、条件判断:调用判别函数 3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母” 4、程序结束。 【实验3-1】代码及运行结果:

【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。 函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。 算法分析: 1、输入:通过键盘接收同学个数; 2、调用求平均分函数 3、输出平均成绩 4、程序结束。

【实验3-2】代码及运行结果:

【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。 算法分析: 1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0 2、编写主函数,用一重循环遍历100以内所有数据 2.1、通过素数判别函数对循环的数据进行是否为素数的判别 2.2、返回判别为真的整数,并输出 3、程序结束。 【实验3-3】代码及运行结果: #include #include int Prime(int x) { int i ; if(x<=1) return 0; for(i=2;i<=x-1;i++) { if(x%i==0) { return 0;

语言学纲要最佳笔记及思考题

语言学纲要 最佳笔记及思考题 导言 1. 语言学的研究对象和任务是什么? 语言学的研究对象是语言,因此,语言学是专门以语言为研究对象的社会科学。学习语言学使我们能对语言的本质和结构有个理性的认识,对我们从事语言文学工作都有很大的帮助。语言学的基本任务是研究语言的规律和特点。具体任务是:a. 描写语言在某一发展阶段的面貌;b. 推溯语言的演变过程,揭示其发展规律;c. 对不同语言进行各种比较,找出它们的异同或对应关系。这种比较包括共时比较和历时比较两种。 2. 语言学与其他学科的关系怎样? 现代语言学的发展不仅同哲学、历史学等社会科学和文学有着十分密切的关系,而且和自然科学发生愈来愈密切的关系。围绕着语言学,正在兴起许多有广阔前途的边缘科学。例如:a. 社会语言学,把语言结构运用的各个方面跟社会环境结合起来研究,它涉及到语言和方言、语言和民族、语言和文化、语言和政治等一系列问题;b. 心理语言学,着重研究人类大脑的语言机制,如人是怎样学会说话的等等;c. 数理语言学,主要是运用数学中的一些理论和方法来分析和描写语言的结构,目前比较多的是用在人工语言中;d. 计算语言学,它主要利用电子计算机进行语言研究;e. 应用语言学,有广义和狭义的两种理解,广义的泛指语言学的各种运用,甚至包括计算语言学和数理语言学在内,狭义的专指把语言理论应用于语言教学(包括本族语教学和外语教学);f. 病理语言学,通过言语现象来判断和治疗言语障碍等疾病;g. 神经语言学,通过神经控制系统来研究雁产生的过程和言语的生理系统。近年来,由于电子计算机的发展和广泛应用,语言学家和科学家们正在研究人工语言(为计算机设计的语言)同自然语言之间的关系。 3. 语言学的主要功用是什么? 语言学在我国社会主义建设中的功用,表现在以下几个方面: A. 为贯彻党的语文政策服务,促进祖国语言的纯洁和健康; B. 为现代科学技术服务,推动社会生产力的发展; C. 为语文教学和语文工作服务,提高全民族的文化水平; D. 为贯彻执行我国的民族政策服务,发展少数民族科学文化事业; E. 为建设社会主义精神文明服务,促进现代化建设。 4. 古代的语言研究和今天的语言研究有哪些不同? 语言研究具有悠久的历史,是一门古老的学科,人们一般称为语文学。但是语文学还不能完全等同于今天的语言学。一方面,古代研究语言,多以经典著作,也即古代的书面语雁作为研究对象;另一方面,古代的学者研究语言的目的是为了阐释经典,让人们更好地理解经典著作的内容。比如,中国传统的语文学——小学,是围绕阐释和解读先秦典籍来展开研究的,从而诞生了分析字形的文字学、研究字音的音韵学、解释字义的训诂学,所以中国的“小学”被人们称之为经学的附庸。因此语言学的历史虽悠久,但由于其研究的局限性,在古代语言学并没有称为一门独立的学科。 语言学成为一门独立的学科是19世纪的事情。历史比较语言学是语言学走上独立发展道路的标志,是语言学史上的一个里程碑。 5. 语言交际过程分为哪几个阶段?请举例具体说明。 运用语言进行交际的过程大体上可以分为“编码——发送——传递——接收——解码”五个阶段。

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言练习题附解析

C语言练习题 例1.已知圆柱体的底半径为radius ,高为high ,求其体积。 #include main() { float radius,high,vol,pi=3.1415926; printf("Please input radius & high: "); scanf("%f%f",&radius,&high); /* 从键盘输入两个实数赋给变量r,h*/ vol=pi*radius*radius*high; printf("radius=%7.2f, high=%7.2f, vol=%7.2f\n",radius,high,vol); } 程序运行结果如下: Please input radius & high: 2.5 □ 2.0 8 radius= □□□ 2.50,high= □□□ 2.00,vol= □□ 39.27 /* 例2 试编写求梯形面积的程序,数据由键盘输入。 分析:设梯形上底为A,下底为B,高为H面职为S,则S=(A+B)*H÷2 */ #include void main() { float a,b,h,s; printf("please input a,b,h:"); scanf("%f%f%f",&a,&b,&h); s=0.5*(a+b)*h; printf("a=%6.3f b=%6.3f h=%6.3f\n",a,b,h); printf("s=%8.4f\n",s); } /*例3-1 输入一组学生成绩,评定其等级。方法是:90~100分为"A",80~89分为"B",70~79分为"C",60~69分为"D",60分以下为"E"。 使用if语句实现的程序段如下:*/ #include void main() { int x; scanf("%d",&x); if (x>=90) printf("A"); else if (x>=80) printf("B"); else if (x>=70) printf("C"); else if (x>=60) printf("D"); else printf("E");

语言学纲要修订版练习题及答案

第一章 一、填空 语言的功能 1、语言的功能包括(社会)功能和(思维)功能。 2、语言的社会功能包括(信息传递)功能和(人际互动)功能。 3、在各种信息传递形式中,语言)是第一性的、最基本的手段。( 4、人的大脑分左右两个半球,语言功能及计数、推理能力等由(左)半球掌管,音乐感知、立体图形识别等能力由(右)半球制约。 5、儿童语言习得一般经过(独词句)阶段和(双词句)阶段,这是儿童学话的关键两步。二、判断正误(对)1、文字是建立在语言基础之上的再编码形式。(错)2、当说话者陈述一个客观事实时,话语中不具有主观性。(错)3、书刊上的话语不具有人际互动功能。(对)4、抽象思维要以语言为形式依托。(错)5、布洛卡区在大脑的右半球前部。(错) 6、聋哑人不会说话,所以不具有抽象思维的能力。(对) 7、不同语言结构的差异体现出思维方式的不同。(错) 8、汉语名词没有数的变化,所以汉语没有区别单数和多数的概念。三.思考题1、为什么说语言是人类最重要的信息传递的手段?除了语言之外,人们还使用其他的信息传递工具:(1)文字、旗语、红绿灯、电报代码、数学符号、化学公式等辅助性的交际工具(2)体态语等伴随性的副语言交际工具,(3)盲文、手语等类语言交际工具。但这些交际工具或者使用范围的有限,或者运用效率低下,或者使用频率不高,很难与语言这种交际工具相提并论。文字记录语言,打破了语言交际中时间和空间的限制,在社会生活中起着重大的作用,中小学语文教学主要就是教学生识字、阅读、写作。但是,文字在交际中的重要性远不能和语言相比。一个社会可以没有文字,但是不能没有语言;没有语言,社会就不能生存和发展。文字是在语言的基础上产生的,只有几千年的历史。在文字产生以前,语言早已存在,估计有几十万年。今天世界上没有文字的语言比有文字的语言多得多。文字产生以后要随着语言的发展而演变,它始终从属于语言,是一种辅助的交际工具。总之,在上述的种种信息传递工具当中,身势等伴随动作是非语言的交际工具;旗语之类是建立在语言,文字基础之上的辅助性交际工具;文字是建立在语言基础之上的一种最重要的辅助交际工具;语言是人类最重要的信息传递工具。 2、语言的人际互动功能表现在哪些方面?说话者在传递客观经验信息的同时,也在表达着主观的情感、态度和意图,寻求听话者的反馈。而受话者在接收说话者传递的客观经验信息的同时,也了解了说话者的主观情感态度,从而做出回应。这样语言就成为说话者和听话者间交际互动的工具。例如:张三和李四同时在教室看书,张三坐在窗子边的位置,李四坐在中间位置。 A.李四说:“今天气温很低。” B.张三说:“我马上关上。” A、B 的对话表达了一种委婉的请求。李四说“今天气温很低”的目的并不是反映今天的天气,而是向坐在窗户边的张三请求将窗户关上。 3、为什么说思维离不开语言?思维需要语言(1)语言是人类思维的工具,思维活动必须用语言作手段(2)语言是保存思维成果的媒介。思维成果必须依靠语言的巩固才能得以保持。(3)语言可帮助思维逐步深化(4)语言可帮助思维条理化(5)语言可帮助传递思维成果。思维的成果靠语言才能表达出来,使听读者了解。 4、语言思维功能的生理基础是什么,有哪些表现?人类的大脑的左右半球的分工是人类所特有的。人类以外的动物,没有这样的分 2 工,没有专门管语言的“左半球” ,因此它们没有逻辑思维的能力,也掌握不了语言。大脑中人类特有的语言功能区(1)说话中枢,也称布洛卡区,在大脑左半球前部,是19 世纪60 年代,法国神经解剖学家保罗·布洛卡(Paul Broca)发现的。这一区域受到损伤就会得失语症,丧失说话能力,但基本能听懂别人的话。(2)书写中枢,也在大脑左半球前部,靠近布洛卡

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言思考题

1、机器语言:机器语言及其指令是计算机能够直接识别的执行的一组二进制代码。一条机器指令通常由操作码和操作数两部分构成。 2、汇编指令:是机器语言的符号化表示MOV 3、汇编语言:由汇编指令、汇编伪指令及汇编语言的语法规则组成。 4、汇编语言源程序:用汇编语言编写的程序 5、汇编程序:把汇编语言源程序翻译成目标程序的加工程序MASM 6、二、十、十六进制转换(掌握<256)练习1:117=(1110101)B练习2:1000 1011 B=(139)D练习3:1011 1000 0000 0101 B=(B805)H 7、机器数:是指计算机中的数据,可以分为无符号数和有符号数字长为N位时无符号数表示范围0≤N≤2N-1 当N=8时0≤N≤255 8、原码(8位):最高位为符号位(正数用0表示,负数用1表示),其他位为数值位 如X=+45=+0010 1101B [X]原=0010 1101B 如X=-45=-0010 1101B [X]原=1010 1101B 9、补码(8位):正数的补码与原码相同,负数的补码是将符号位取1,数值位逐位取反,未位加1。如X=+45=+0010 1101B [X]补=0010 1101B 如X=-45=-0010 1101B [X]补=1101 0011B 10、补码运算:是指对一个补码表示的数按位求反后再在末尾加1,可以得到与此数相应的符号相反的数的补码。例、已知[117]补=0111 0101B,[-117]补=1000 1011B,对[117]补作补码运算。解:因为[117]补=0111 0101B,按位求反后得1000 1010B,末尾加1得1000 1011B=[-117]补。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补 12、BCD码:BCD码用4位二进制数表示1位十进制数。常用8421BCD码例:写出十进制314所对应的BCD码 13、8086/8088CPU:16位微处理器和16位数据总线,20位地址总线(寻址空间为1MB)。8088微处理器内部16位数据,外部8位数据,也称准16位机。8086/8088CPU的组成(功能方面):运算器、控制器、寄存器组 14、寄存器是CPU内部临时存放数据的部件,速度比内存快。(1)数据寄存器4个16位寄存器AX,BX,CX,DX,每个寄存器还可以拆成2个8位寄存器使用。 AX累加器:算术运算寄存器,用于存放操作数或运算结果。I/O指令中通过AX与外部交换数据。在乘除运算中指定存放被乘数与被除数,系统功能调用号。AX累加器可以分为AH、AL分别使用。 BX基址寄存器:可作为通用寄存器使用。在计算内存地址是,常作基址寄存器,作为通用寄存器还可以分为BH、BL分别使用。 CX数据寄存器:可作为通用寄存器使用。在循环和串操作指令中作隐含计数器。作为通用寄存器还可以分为CH、CL分别使用。 DX数据寄存器:可作为通用寄存器使用。在I/O操作中,DX用来存放I/O端品地址。在乘除法运算中与AX组合一起存放双字型数据。作为通用寄存器还可以分为DH、DL 分别使用。 (2)变址寄存器(2 个16位):SI 源变址寄存器.DI 目的变址寄存器 BP基址寄存器:用于存放栈中的操作数的偏移地址。SP堆栈指针寄存器:用来指示栈顶的当前位置(偏移地址)。 IP 指令指针寄存器(程序计数器):用于存放下一条指令所在偏移地址。与CS配合,用来确定程序中下一条指令的物理地址。 15、PSW程序状态字寄存器(标志寄存器):8088微处理器使用16位中的9位设置了9个标志。标志位SF、OF、CF、ZF的含义0010 1001B+1110 1000B=1 0001 0001B CF=1 OF=0 SF=0 ZF=0 16、段地址寄存器:段表示一块内存空间(大小可变),最大为64K字节,最小为16字

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元

语言学纲要思考题(第三章)

第三章语音 1.什么是语音?怎样认识语音?语音是语言的物质材料,是人的发音器官发出的代表一定意义的声音。 语言实际上是一种符号,而符号的构成包括形式和内容两个方面,是形式和内容的统一体,二者之间是互相依存的关系,谁也离不开谁。语言就是一种符号,语音就是语言符号得以存在的形式,它是通过人的发音器官发出来的,通过人的发音体―声带的振动,使周围空气振动,产生音波,再扩散开来,传到别人的耳朵中,再还原成语音,并与社会成员共同约定的一定的意义结合起来,就理解了对方所说的话语的意义。这就是交际表达与接受的一个完整的过程。(人类的交际过程分为“编码-发送-传递-接收-解码”这样五个阶段,详见导言部分)所以,语音又是由人体发音器官发出来的代表一定意义的声音。它不但是由人体发音器官发出,而且必须代表意义,否则,也不是语音。 2.语音可以分哪些单位? 要进一步认识人类语音的特点,我们进一步把人类语言的语音系统切分为大小不同的单位进行研究。一般把语音单位分成音节和音素来研究。 1)音节是音位和音位组合起来构成的最小的语音结构单位。 它是听觉上感受到的最自然的单位。音素是从音质角度划分出来的最小的语音单位。音节往下切分,就是音素。一个音素只有一个发音动作,发音动作改变了,发音器官的形状改变了,就发出了不同的音素。 3.为什么说音素是语音的最小单位?

人们说话,要发出一连串的音,这些是人的发音器官连续活动产生出来的,像一股水流,我们把这一连串音称之为语流。把语流中的音按音质(音色)来切分,分到不能再分的时候,这个最小单位的音就是音素。因此,音素是人类语音从音质角度划分出来的最小单位。 音素的划分是分辨语音和分析语音的基本步骤,也是字母拼音的基础。 4.音素和字母有什么区别? 音素不同于字是很明显的,要注意的是音素也不同于字母。两者的区别如下: 1)字母是书写的最小单位,而音素是语音的最小单位。 2)通常用一个字母表示一个音素,如汉语中:(d)-[t], (t)-[t?], (n)-[n], (l)-[l]等。但如果字母不够用的话,就以两个字母表示一个音素。 3)可以用同一个字母表示几个不同的音素。 附:普通话音素表 5.什么是音标?汉语拼音是不是音标,为什么?

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

语言学纲要思考题

第五章词义 1.词和词汇的区别何在词汇包括哪两个部分 1)词:语言中能够独立运用的最小的符号,用它可以对现 实现象进行分类、定名,因此研究语言符号的意义一般都以词作为基本单位。 2)词汇:一种语言中所有的词和成语等固定短语的总汇就 是该语言的词汇。 3)词汇主要包括基本词汇和一般词汇两个部分。 2.什么是基本词基本词包括哪些类型 1)基本词汇同一般词汇相对而言,就是一种词汇系统中居 于核心地位的部分,相当稳固,很少发生变化,可以说是一种语言在长期(数十万年甚至上百万年)使用过程中的积淀。 2)基本词包括以下类型: 表示自然现象和常见事物的词; 表示生产和生活资料的词; 表示亲属关系的词; 表示人体器官的词; 表示方位和时令的词; 表示数目的词; 表示常见动作行为的词; 表示常见性状的词; 3.基本词有哪些特点怎样认识这些特点的相互关系 1)基本词的特点为:全民性、稳定性和能产性(即构词能 力强)。 全民性:指基本词汇在使用上具有普遍性,这种普

遍性体现在不分阶级、阶层、行业、地域、年龄、 性别,各行各业的人都懂得其含义,都要使用,而 且经常使用。 稳定性:是指基本词汇很少发生变化,长期地为使 用这种语言的民族服务。稳固性是语言作为交际工 具对词汇提出的基本要求。 有构词能力:是指基本词汇是构成新词的基础。2)基本词汇的三个特点是互相联系、互相影响、互为因果 的。由于基本词汇具有全民常用性特点,在使用上涉及 到方方面面,具有普遍性,涉及到不同阶层、不同的地 域的人们运用语言,所以客观上就要求基本词汇保持相 对稳定性,不能经常变动,以利于运用;当新的事物现 象出现,需要新词记录时,人们又首选现成的基本词汇 作为构词材料,选择那些使用面广的词,具有运用上的 普遍性的词作为构词要素,使得基本词汇又具有了很强 的构词能力;基本词作为很多词语的构词要素,涉及面 很广,这又反过来强化了基本词汇的全民常用性特点和 稳固性特点。 4.什么是一般词汇一般词汇包括哪些类型 1)一般词汇:词汇里基本词汇以外的词语构成一般词汇。 2)一般词汇包括以下类型:新词、古语词、外来词、行业 用词、科技术语、方言俚语词以及除以上六种词以外的 非常用词。 5.一般词汇和基本词汇的关系如何 1)一般词汇对于社会的发展变化非常敏感。以基本词为基 础构造出来的新词,大部分首先成为一般通用的词。

相关文档
最新文档