11-12(1)《高级程序语言》考试
- 格式:xls
- 大小:216.00 KB
- 文档页数:2
《高级语言程序设计》期末考试试卷附答案一、选择题(共20题,每题3分,共60分)1. 下列四个选项中,均是合法的整型常量的选项是()A.160 –0XFFFF 011 B. -0XCDF 01A 0XE C. -01 986,012 0688 D. -0X48a 2e5 0x2. 下列四个选项中,均是不合法的浮点数的选项是()A.160.0.12 e3 B. 123 2e4.2 .e5C.18 0.0 123e4 D. e3. 234 1e33. 合法的C语言字符常数是()A.'\t' B. "A"C.54 D. A4. 在C语言中,要求运算数一定是整型的运算符是()A./ B. ++C.!= D. %5. 字符串常量”mine”的字符个数是()A.4 B. 5C.6 D. 76. 以下属于非法的C语言转义字符的是()A.'\b' B. '0xf'C.'\037' D. '\'7. 若x、y、z均为int型变量,则执行以下语句后的输出是()x=(y=(z=10)+5)-5;printf("x=%d, y=%d, z=%d\n",x,y,z);y=(z=x=0,x+10);printf("x=%d, y=%d, z=%d\n",x,y,z);A. x=10, y=15, z=10B.x=10, y=10, z=10x=0, y=10, z=0x=0, y=10, z=0C.x=10, y=15, z=10D. x=10, y=10, z=10x=10, y=10, z=0 x=10, y=10, z=08. 在以下一组运算符中,优先级最高的运算符是()A.<= B. =C.% D. &&9. 已知:int x; float y; 所用的scanf调用语句格式为:scanf( “x=%d, y=%f”, &x, &y );为了将数据10和66.6分别赋给x和y,正确的输入应当是()A.x=10, y=66.6<回车> B. 10, 66.6<回车>C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车>10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()(注:□表示空格,<CR>表示回车)int a1, a2,;char c1, c2;scanf( “%d%c%d%c”, &a1, &c1, &a2, &c2 );A.10□A□20B<CR> B. 10□A□20□B<CR>C.10A20B<CR> D.10A20□B<CR>11. 能正确表达:“当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)12. 假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0; x=35;if(!a) x--;else if (b);if(c) x=3;else x=4;A.34 B. 4C.35 D. 313. 若变量c为char类型,能正确判断出c为大写字母的表达式是()A.'A'<=c<= 'Z' B. (c>= 'A')||(c<= 'Z')C.('A'<=c)and ('Z'>=c) D. (c>= 'A')&&(c<= 'Z')14. 若给定条件表达式:(!n) ? (c++) : (c--),则与表达式n等价的表达式是()A.n==0 B. n==1C.n!=0 D. n!=115. 已知:int a=4, b=5, c; 则执行表达式c=a=a>b后变量a的值为()A.0 B. 1C.4 D. 516. 定义int i=1; 执行语句while(i++<5); 后,i的值是()A.3 B. 4C.5 D. 617. 合法的数组说明是()A.int a[] = “string”; B.int a[] = { 0, 1, 2, 3, 4, 5 }; C.char a = “string”; D.char a[] = { 0, 1, 2, 3, 4, 5 };18. 当调用函数时,实参是一个数组名,则向函数传送的是()A.数组的长度 B. 数组的首地址C.数组每一个元素的地址 D. 数组每个元素中的值19. 函数调用:strcat(strcpy(str1,str2),str3)的功能是()A.将串str1复制到串str2中后再连接到串str3之后B. 将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D. 将串str2连接到串str1之后再将串str1复制到串str3中20. 已知:int a[]={1,2,3,4,5,6,7,8,9,10.11.12}, *p=a; 则(*p) 的值是()A.1 B. 2C.3 D. a二、判断题:(共10题,每题2分,共20分)()1.C语言中能使用关键字作为标识符。
一、选择题:(1) 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define(2) 以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D(3) 假定x和y为double型,则表达式x=2,y=x+3/2的值是A) 3.500000 B) 3 C) 2.000000 D) 3.000000(4) 以下合法的赋值语句是A) x=y=100 B) d--; C) x+y; D) c=int(a+b);(5) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A) 10,3 B) 9.3 C) 9.2 D)10.2(6) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);(7) 以下程序的输出结果是main(){ int a=3;printf("%d\n",(a+(a-=a*a)) );}A) -6 B)12 C) 0 D) -12(8) 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为A) 0 B) 1 C)2 D) 3(9) 阅读以下程序:main(){ int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输人5,则输出结果是A)3 B) 4 C) 5 D) 6(10) 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序运行后,m的值是A) 4 B) 3 C) 2 D) 2(11) t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对(12) 以下程序的输出结果是main(){ int num= 0;while(num<=2){ num++; printf("%d\n",num);}}A) 1 B) 1 C)1 D) l2 2 23 34(13) 以下各选项企图说明一种新的类型名,其中正确的是A) typedef v1 int; B) typedef v2=int;C) typedef int v3; D) typedef v4: int;(14) 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定(15) 以下函数值的类型是fun ( float x ){ float y;y= 3*x-4;return y;}A) int B) 不确定C) void D) float(16 ) 设有以下函数:f ( int a){ int b=0;static int c = 3;b++; c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是main(){ int a = 2, i;for(i=0;i<3;i++) printf("%d\n",f(a));}A) 7 B) 7 C) 7 D) 78 9 10 79 11 13 7(17) 以下程序的输出结果是main(){ char c='z';printf("%c",c-25);}A) a B) Z C) z-25 D) y(18) 以下选项中,非法的字符常量是A) '\t' B) '\17' C)"n" D) '\xaa'(19) 若有说明:int i, j=2, *p=&i;,则能完成i=j赋值功能的语句是A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;(20) 以下定义语句中,错误的是A) int a[]={1,2}; B) char *a[3];C) char s[10]="test"; D) int n=5,a[n];(21) 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A) 3 B) 6 C) 10 D) 20(22) 以下程序的输出结果是main(){ int i, a[10];for(i=9;i>=0;i--) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 369(23) 以下数组定义中不正确的是A) int a[2][3];B) int b[][3]={0,1,2,3};C) int c[100][100]={0};D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};(24) 以下程序的输出结果是main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]; }A) 0650 B) 1470 C) 5430 D) 输出值不定(25) 以下程序的输出结果是main(){ char st[20]= "hello\0\t\\\";printf(%d %d \n",strlen(st),sizeof(st));}A) 9 9 B) 5 20 C) 13 20 D) 20 20(26) 以下选项中,不能正确赋值的是A) char s1[10];s1="Ctest";B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest";D) char *s4="Ctest\n"(27) 以下程序的输出结果是amovep(int* p, int (*a)[3],int n){ int i,j;for( i=0;i<n;i++)for(j=0;j<n;j++){ *p=a[i][j];p++; }}main(){ int *p,a[3][3]={{1,3,5},{2,4,6}};p=(int *)malloc(100);amovep(p,a,3);printf("%d%d \n",p[2],p[5]);free(p);}A) 56 B) 25 C) 34 D) 程序错误(28) 以下程序的输出结果是struct HAR{ int x, y; struct HAR *p;} h[2];main(){ h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=h[1].p=h;printf("%d%d \n",(h[0].p)->x,(h[1].p)->y); }A) 12 B) 23 C) 14 D) 32(29) 以下程序的输出结果是main(){ int a, b;for(a=1, b=1; a<=100; a++){ if(b>=10) break;if (b%3= =1){ b+=3; continue; }}printf("%d\n",a);}A) 101 B) 6 C) 5 D) 4(30) 以下程序的输出结果是union myun{ struct{ int x, y, z; } u;int k;} a;main(){ a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A) 4 B) 5 C) 6 D) 0(31) 以下程序的输出结果是int a, b;void fun(){ a=100; b=200; }main(){ int a=5, b=7;fun();printf("%d%d\n", a,b);}A) 100200 B) 57 C) 200100 D) 75(32) 以下程序的输出结果是#define M(x,y,z) x*y+zmain(){ int a=1,b=2, c=3;printf("%d\n", M(a+b,b+c, c+a));}A) 19 B) 17 C) 15 D) 12(33) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是A) x || y B) x | y C) x & y D) x ^ y(34) 下面的程序执行后,文件test中的内容是#include <stdio.h>void fun(char *fname,char *st){FILE *myf; int i;myf=fopen(fname,"w" );for(i=0;i<strlen(st); i++)fputc(st[i],myf);fclose(myf);}main(){ fun("test","new world"); fun("test","hello");}A) hello B) new worldhello C) new world D) hello,world(35) 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(36) C语言中运算对象必须是整型的运算符是A) %= B) / C) = D)〈=(37) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(38) 若变量a、i已正确定义,且i已正确赋值,合法的语句是A) a==1 B) ++i; C) a=a++=5; D) a=int(i);(39) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(40) 有如下程序main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是A) 3 4 B) 4 2 C) 4 3 D) 3 3(41) 能正确表示逻辑关系:“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(42) 有如下程序main(){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(43) 有如下程序main(){float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf(“%f\n”,y);}该程序的输出结果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000(44) 有如下程序main(){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf(“%d\n”,c);}该程序的输出结果是A) 0 B) 1 C) 2 D) 3(45) 有如下程序main(){ int i,sum;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是A) 6 B) 3 C) 死循环D) 0(46) 有如下程序main(){ int x=23;do{ printf(“%d”,x--);}while(!x);}该程序的执行结果是A) 321 B) 23 C) 不输出任何内容D) 陷入死循环(47) 有如下程序main(){ int n=9;while(n>6) {n--;printf(“%d”,n);}}该程序段的输出结果是A) 987 B) 876 C) 8765 D) 9876(48) 设有说明语句:char a='\72'; 则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法(49) 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3 B) 4 C) 5 D) 有语法错(50) 有如下程序int func(int a,int b){ return(a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是A) 12 B) 13 C) 14 D) 15(51) 有如下程序段int *p,a=10,b=1p=&a; a=*p+b;执行该程序段后,a的值为A) 12 B) 11 C) 10 D) 编译出错(52) 对于基类型相同的两个指针变量之间,不能进行的运算是A) < B) = C) + D) -(53) 以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){ int i,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]) ;return(p);}在下划线处应填入的是A) i=p B) a[p]=a[i] C) p=j D) p=i*(54) 有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main(){ printf(“%d\n”,fib(3)); }该程序的输出结果是A) 2 B) 4 C) 6 D) 8(55) 在C语言中,函数的隐含存储类别是A) auto B) static C) extern D) 无存储类别(56) 有如下程序#define N 2#define M N+1#define NUM 2*M+1main(){ int i;for(i=1;i<=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是A) 5 B) 6 C) 7 D) 8(57) 有以下函数char *fun(char *p){ return p; }该函数的返回值是A) 无确切的值B) 形参p中存放的地址值C) 一个临时存储单元的地址D) 形参p自身的地址值(58) 有如下程序段int a=14,b=15,x;char c=‟A‟;x=(a&&b)&&(c<‟B‟);执行该程序段后,x的值为A) true B) false C) 0 D) 1(59) 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是A) EOF B) 0 C) 非零值D) NULL(60) 若有以下说明和定义int fun(int *c){return 0;}main(){ int (*a)(int*)=fun,*b(),w[10],c;┆}在必要的赋值之后,对fun函数的正确调用语句是A) a=a(w); B) (*a)(&c); C) b=*b(w); D) fun (b);(61) 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是A) *p+9 B) *(p+8) C) *p+=9 D) p+8(62) 有如下程序main(){ int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf("%d\n",n[k]);}该程序的输出结果是A) 不确定的值B) 2 C) 1 D) 0(63) 若有以下的定义:int t[3][2]; 能正确表示t数组元素地址的表达式是A) &t[3][2] B) t[3] C) t[1] D) t[2](64) 有如下程序main(){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j] ;printf(“%d\n”,s);}该程序的输出结果是A) 18 B) 19 C) 20 D) 21(65) 有如下定义struct person{char name[9]; int age;};strict person cla[10]={“Joh n”, 17,“Paul”, 19“Mary”, 18,“Adam”, 16};根据上述定义,能输出字母M的语句是A) printf(“%c\n”,cla[3].name);B) pr intf(“%c\n”,cla[3].name[1]);C) printf(“%c\n”,cla[2].name[1]);D) printf(“%c\n”,cla[2].name[0]);(66) 以下对结构体类型变量的定义中,不正确的是A) typedef struct aa B) #define AA struct aa{ int n; AA {int n;float m; float m;}AA; }td1;AA td1;C) struct D) struct{ int n; { int n;float m; float m;}aa; }td1;stuct aa td1;(67) 有如下程序main(){ char s[]=”ABCD”, *p;for(p=s+l; p<s+4;p++)printf(“%s\n”,p);}该程序的输出结果是A) ABCD B) A C) B D) BCDBCD B C CDCD C D DD D(68) 有如下程序main(){char ch[2][5]={“6937”,”8254”},*p[2];int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>‟\0‟;j+=2)s=10*s+p[i][j]-…0‟;printf(“%d\n”,s);}该程序的输出结果是A) 69825 B) 63825 C) 6385 D) 693825(1)C(2)B(3)D(4)B(5)D(6)B(7)D(8)C(9)B(10)D (11)B(12)B(13)C(14)B(15)A(16)A(17)A(18)C(19)B(20)D (21)D(22)C(23)D(24)A(25)B(26)A(27)A(28)A(29)D(30)D (31)B(32)D(33)D(34)A(35)B(36)A(37)C(38)B(39)A(40)D (41)D(42)A(43)C(44)C(45)C(46)B(47)B(48)A(49)A(50)D (51)B(52)C(53)D(54)B(55)C(56)B(57)B(58)D(59)C(60)B (61)B(62)D(63)C(64)A(65)D(66)C(67)D(68)C二、填空题:(1) 以下程序运行后的输出结果是【1】。
《高级语言程序设计(C)》期末考试试题一、选择题(本题共20道小题,共40分。
)1. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是A)把x和y按从大到小排列 B)把x和y按从小到大排列C)无确定结果 D)交换x和y中的值2. 下面程序的输出是void prtv(int *x){ printf("%d\n", ++(*x));}main(){ int a=25;prtv(&a);}A) 23 B) 24C) 25 D) 263. int x=10, y=20, z=30;if(x>y) z=x; x=y; y=z;以上语句执行后x, y, z的值是A) x=10,y=20,z=30B) x=20,y=30,z=30C) x=20,y=30,z=10D) x=20,y=30,z=204. 设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行语句:z=2 *(N+Y(5+1))后,z的值为A)出错 B)42 C)48 D)545. 逻辑运算符两侧运算对象的数据类型是()。
A) 只能是0或1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据6. 当执行以下程序段时x=-1;do { x=x*x;}while(!x);A)循环体将执行一次 B)循环体将执行两次C)循环体将执行无限次 D)系统将提示有语法错误7. int x=3;do{ printf("%3d",x-=2);}while(!(--x));以上程序段的输出结果是A) 1 B) 3 0 C) 1-2 D) 死循环8. main(){int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); }以上程序段的输出结果是A)k=11,k=12,k=11 B)k=11,k=13,k=13C)k=11,k=013,k=0xb D)k=11,k=13,k=b9.以下程序的输出结果是()。
1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。
#include<stdio.h>int main(){int i,j,t;int max(int,int);int min(int,int);scanf("%d%d",&i,&j);if(i<j){t=i;i=j;j=t;}printf("%d %d\n",max(i,j),min(i*j,max(i,j)));return 0;}int max(int i,int j){int t;while(j){t=i%j;i=j;j=t;}return i;}int min(int p,int q){return p/q;}2. 输入4个整数,找出其中最大的数。
用函数的嵌套调用来处理。
#include<stdio.h>int main(){int max4(int,int,int,int); //对max4的函数声明int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者return 0;}int max4(int a,int b,int c,int d) //定义max4函数{int max2(int,int); //对max2的函数声明return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数}int max2(int a,int b){return(a>b?a:b); //返回条件表达式的值,即a和b中的大者}3. 用递归调用的方法求5!。
#include<stdio.h>int main(){int fac(int);int n;scanf("%d",&n);printf("%d!=%d\n",n,fac(n));return 0;}int fac(int n){if(n==0||n==1)return 1;elsereturn fac(n-1)*n;}4. 按以下递归公式求函数的值。
一、单选题1、计算机为什么采用二进制,而非十进制作为数制的基础?A.因为二进制比十进制计算速度快B.因为二进制比十进制表示能力更强C.因为二进制数精度更高D.因为二进制数更容易被硬件存储和计算正确答案:D2、Python语言为什么被称为高级程序设计语言?A.因为它是编译型语言B.因为它是解释型语言C.因为它比低级语言更复杂D.因为它比低级语言更抽象正确答案:D3、关于Python语言的执行过程,描述正确的是?A.可以同时执行多条语句B.由解释器一条语句一条语句地执行C.执行过的语句将不会再被执行D.由编译器将源程序转化为机器语言,然后执行正确答案:B4、下列Python程序,没有错误的是?A.print 'Hello, ' print 'World!'B.print 'Hello, I\'m Tom.'C.print 'Hello, this's Tom.'D.Print 'Hello, World!'正确答案:B5、在Spyder IDE中编写Python程序,输出“Hello World”,要求将这两个单词分两行输出,以下哪个程序不正确?A.print 'HelloWorld'B.print 'Hello\nWorld'C.print 'Hello'print 'World'D.print "Hello\nWorld"正确答案:A6、执行下列语句,输出的结果是?x = 7.0y = 5print x % yA.1B.2C.1.0D.2.0正确答案:D7、能实现下面功能的程序是?接收用户输入的一个整数。
如果输入的是偶数,则输出“True”,否则输出“False”。
A.print not bool(raw_input() % 2)B.print int(raw_input()) % 2 == 0C.print int(raw_input()) % 2 == 1D.print bool(int(raw_input()) % 2)正确答案:B8、以下程序的输出结果是?y = 0for i in range(0, 10, 2):y += iprint yA.30B.20C.9D.10正确答案:B9、以下程序的输出结果是?number = 30if number % 2 == 0:print number, 'is even'elif number % 3 == 0:print number, 'is multiple of 3'A.30 is evenB.30 is multiple of 3C.程序出错D.30 is even30 is multiple of 3正确答案:A10、以下程序的输出结果是?x = 1y = -1z = 1if x > 0:if y > 0: print 'AAA'elif z > 0: print 'BBB'A.语法错误B.BBBC.AAAD.无输出正确答案:D11、下列程序的输出结果是:def foo():m = 1def bar():n = 2return m + nm = bar()print mfoo()A.1B.3C.程序出错D.2正确答案:B12、字符串s长度为奇数,则显示中间字符的表达式为?A.s[len(s)/2 - 1]B.s[len(s)/2 + 1]C.s[len(s)/2]D.s[(len(s) + 1)/2]正确答案:C13、关于元组数据结构,下面描述正确的是:A.元组不支持切片操作B.所有元素数据类型必须相同C.支持 in 运算符D.插入的新元素放在最后正确答案:C14、一个学生的信息包括:学号、姓名、年龄、性别、电话。
2017年秋季《高级语言程序设计》期末试卷1. ( 单选题 ) 能将高级语言编写的源程序转换为目标程序的是_____________ 。
(本题2.0分)A、链接程序B、解释程序C、编译程序D、编辑程序学生答案:B标准答案:C解析:得分:02. ( 单选题 ) C语言程序编译时,程序中的注释部分()。
(本题2.0分)A、参加编译,并会出现在目标程序中B、参加编译,但不会出现在目标程序中C、不参加编译,但会出现在目标程序中D、不参加编译,也不会出现在目标程序中学生答案:D标准答案:D解析:得分:23. ( 单选题 ) C 语言中的标识符只能由字母、数字和下划线三种字符组成 , 且第一个字符( )(本题2.0分)A、必须为下划线B、可以是字母、数字和下划线中的任意一种C、必须为字母或下划线D、必须为字母学生答案:C标准答案:C解析:得分:24. ( 单选题 ) 一个 C 程序的执行是从( )(本题2.0分)A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束学生答案:C标准答案:C解析:得分:25. ( 单选题 ) C 语言提供的合法关键字是( ) (本题2.0分)A、swicthB、chanC、caseD、default学生答案:D标准答案:D解析:得分:26. ( 单选题 ) C语言程序的基本单位是()(本题2.0分)A、程序行B、语句C、函数D、字符学生答案:C标准答案:C解析:得分:27. ( 单选题 ) 组成C语言程序的是( )。
(本题2.0分)A、过程B、函数C、子程序D、主程序和子程序学生答案:B标准答案:B解析:得分:28. ( 单选题 )有以下程序,输出结果是()float fun(int x,int y){ return(x+y); }main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); }(本题2.0分)A、9B、21C、9.0D、编译出错学生答案:A标准答案:A解析:得分:29. ( 单选题 )有以下程序,输出结果是()float fun(int x,int y){ return(x+y); }main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); }(本题2.0分)A、9B、21C、9.0D、编译出错学生答案:A标准答案:A解析:得分:210. ( 单选题 ) 在下列叙述中,正确的是()(本题2.0分)A、下面的程序有一个整型输出值:main(){int a;a=pp();printf(“%d”,a);}void pp(){ … }B、以下程序的运行结果为1,3,5,7main(){static int a[4]={1,3,5,7};printf(“%d,%d,%d,%d\n”,a);}C、以下程序中的PRINT()是一个函数#define PRINT(V) printf(“V=%d\t”, V)main(){int a,b;a=1;b=2;PRINT(a);PRINT(b);}D、以下两个语句是等价的for(;(c=getchar())!=‘\n’;printf(“%c\n”, c));for(;(c=getchar())!=‘\n’;) printf(“%c\n”, c);学生答案:D标准答案:D 解析:得分:211. ( 单选题 )以下程序的输出结果是()。
一、选择题:(共20题,每题1.5分,共30分)1 A2 A3 A4 B5 B6 A7 B8 C9 C 10 D11 C 12 C 13 B 14 D 15 C16 D 17 D 18 A 19 D 20 A1. C语言属于( A )A.高级语言 B. 低级语言C.中级语言 D. 机器语言2. 下列全部属于合法的用户标识符的是( A )A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main3. C语言中运算对象必须是整型的运算符为( A )A.% B. / C.= D. <=4. 设有int i; char c; float f; 以下结果为整数的表达式是( B )A.i+f B. i/c C.c+f D. i+c+f5. 逗号表达式(a=5*3, a+20),a+15的值是( B )A.35 B. 30 C.40 D. 206. 设有语句char a = '\72'; 则变量a( A )A.包含一个字符 B. 包含两个字符C.包含3个字符 D. 说明不合法7. 若有以下定义和语句,则输出结果是( B )char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A.2,M B. 3,E C.2,E D. 不确定8. 设有如下程序段,则下面说法中正确的是( C )int k=10;while(k=0)k=k-1;A.while循环执行10次 B. 循环是无限循环C.循环体语句一次也不执行 D. 循环体语句执行一次9. 当pi=3.1415926时,printf(" %-7.2f",pi);的输出结果是( C )(注:□代表空格)A.3.14159 B. 3.14 C.3.14□□□ D. □□□3.1410. 下列运算符中,优先级最高的是( D )A.! B. + C.|| D. ( )11. 表达式a==b&&b==c计算的优先级别是( C )A.((a==b)&&b)==c) B. (a==(b&&b))==c C.(a==b)&&(b==c) D. a==((b&&b)==c12. 已知x=45, ch=‟B‟,y=0;则表达式(x>=y && ch<‟b‟ && ! y)的值是( C )A.0 B. 语法错C.1 D. “假”13. 下列关于switch语句和break语句的结论中,正确的是( B )A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14. 若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A.'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z')15. 执行语句for ( i=0; i++<3; ); 后,变量i的值为( C )A.2 B. 3 C.4 D. 516. 已知:int a[10]; 则对a数组元素的正确引用是( D )A.a[10] B. a[3.5] C.a(5) D. a[9-9]17. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )A.char str[]="shanghai"; B. char str[]={"shanghai"};C.char str[9]={'s','h','a','n','g','h','a','i'}; D. char str[8]={ 's','h','a','n','g','h','a','i'};18. 以下对C语言函数的有关描述中,正确的是( A )A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。
2001年10月自考高级语言程序设计(一)试题第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
1.C语言程序编译时,程序中的注释部分A.参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.不参加编译,也不会出现在目标程序中2.下列表达式的值为0的是()A.3%5B.3/5.0C.3/5D.3<53.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%24.设int a=3;则表达式a<1&&--a>1的运算结果和a的值分别是()A.0和2B.0和3C.1和2D.1和35.下列叙述中,正确的是()A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义6.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default7.与语句if(a>b)if(c>d)x=1;else x=2;等价的是()A.if(a>b){if(c>d)x=1;else x=2;}B.if(a>b){if(c>d)x=1;}else x=2;C.if((a>b)&&(c>d))x=1;else x=2;D.if(a<=b)x=2;else if(c>d) x=1;8.设char x='a';则printf("x=%c,y=%c\n",x,97);的输出是A.x=a,y=97B.x=97,y=aC.x=97,y=97D.x=a,y=a9.设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是()A.2B.3C.4D.无确定值10.执行下列程序int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};main(){printf("%d\n”,a[1][0]+b[0][0]);}后输出的结果是A.0B.1C.2D.311.设char str[100];int i=5;则引用数组元素的错误形式是()A.str[i+10]B.*(str+i)C.*(str+i-1)D.*((str++)+i)12.设int x[]={1,2,3,4,5,6},*p=x;则值为3的表达式是()A.p+=2,*++pB.p+=2,*p++C.p+=3,*pD.p+=2,++*pA.autoB.staticC.externD.register14.执行下列程序()int a=3,b=4;void fun(int x1,int x2){printf("%d,%d\n",x1+x2,b);}main(){int a=5,b=6;fun(a,b);}后输出的结果是A.3,4B.11,1C.11,4D.11,615.设有定义语句struct{int a;float b;} d[3]={{1,4},{2,5},{6,7}};则printf("%3.1f\n",d[2].a*d[2].b/d[1].b);的输出是()A.2.5B.2.0C.8.0D.8.416.设有定义语句:enum t1 {a1,a2=7,a3,a4=15}time; ( )则枚举常量a2和a3的值分别为A.1和2B.2和3C.7和2D.7和817.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是()A.2和2B.2和5C.5和2D.5和518.在文件使用方式中,字符串"rb"表示()A.打开一个已存在的二进制文件,只能读取数据B.打开一个文本文件,只能写入数据C.打开一个已存在的文本文件,只能读取数据D.打开一个二进制文件,只能写入数据19.执行下列程序()# define F(y) 15>>y#define PRINT(a) printf("%d",a)main(){PRINT(F(2));}后输出的结果是A.3B.3.5C.14D.7.520.main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为()A.int argvB.char * argv[];C.char argv[];D.char **argv[];第二部分非选择题二、填空题(本大题共10小题,每小题2分,共20分)21.初始化值是0.618的双精度变量a的定义形式为____________。
全国2012年10月高等教育自学考试高级语言程序设计(一)试题请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号.不能答在试题卷上。
一、单项选择题(本大题共1 5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸” 的相应代码涂黑。
错涂、多涂或未涂均无分.1.下列为C语言保留字的是A.auto B.ElseC.FILE D.define2.正确的C语言常数是A.e0 B.1eC.1E0 D.1 E0。
03.设int n;,执行表达式(n=0)||(n=1)||(n=2)||(n=3)后,n的值是A.0 B.1C.2 D.34.值为0的表达式是A.0= =0 B.2&&5C.!5<2 D.2&55.先执行循环体后判断循环条件的语句是A.for B.whileC.do-while D.for,while和do—while6.设char str[20];,从键盘输入中间含有空格的字符串的正确语句是A.gets(str); B.gets(str[20]);C.scanf("%s",str);D.scanf("%c”,str);7.定义函数时若函数名前冠有“*”(如float*fun(){……}),则该函数被称为A.int型函数B.float型函数C.void型函数D.指针(型)函数8.设int a[]={1,2,3,4},b,*p=a;,与b=*p++;等价的语句是A.b=p++;B.b=*(p++);C.b=*(++p);D.b=*++p;9.C语言中的sizeof是A.类型名B.运算符C.变量名D.函数名10.设int a[10],*p=a;,与数组元素a[5]等价的是A.*(a+5)B.p[′5 ′]C.p+5 D.a+511.设typedef char *PT;,若有引用PT q[5];,则q是A.字符型数组B.字符型变量C.字符型指针变量D.字符型指针数组12.正确定义二维数组并初始化的是A.int a[3][ ]={{1,2,3},{4,5}};B.int a[3][3]={a,b,c,d,e};C.int a[][3]={1,2,3,4,5,6};D.int a[3][3]=(1,2,3,4,5,6);13.函数的递归调用是指A.函数的自我调用B.函数的嵌套调用C.主函数调用系统函数D.系统函数调用主函数14.设struct data{int a;float b;}c,*p=&c;,引用正确的是A.*p.a B.p.bC.p—>a D.*p->b15.文件操作”rb+”的含义是A.只读文本文件B.只读二进制文件C.读写文本文件D.读写二进制文件非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
1.1 单项选择题1.二进制语言是属于()①面向机器语言②面向问题语言③面向过程语言④面向汇编语言【解】人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
面向过程语言是一种能方便描述算法过程的计算机程序设计语言。
有汇编语言,但没有面向汇编语言。
汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。
所以解答是①。
2.下列语言中不属于面向过程的语言是()①高级语言②低级语言③C语言④PASCAL语言【解】C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。
低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。
所以解答是②。
3.下列字符中属于键盘符号的是()①②n ③t ④b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如"n"、"t" 、"b"都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成""。
4.下列字符列中,不是用来表达转义字符是()①②" ③074 ④【解】转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。
后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。
高级语言程序设计习题版带答案第1章C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. AB. BC. DD. 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 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在C 语言程序中允许出现的字符集是ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
《高级语言程序设计》一、判断题(错误的在后面写“F”,正确的写“T”,每题1分)1. 程序是描述算法的编程工具。
2. 化将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化。
3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数。
4. 逐条翻译并执行的翻译程序称为编译程序5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树。
类群是由一些彼此密切相关的类和类族组成的。
6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承。
7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性。
8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参。
9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字。
这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载。
9.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字。
这是由作用域分辨操作符实现的,这一过程叫做作用域分辨。
11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。
12.所有的表达式都有值。
13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。
14.类的静态数据成员需要在定义每个类的对象时进行初始化。
15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。
16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。
17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址。
高级语言程序设计(C语言)选择题1.组成C程序的基本单位是()。
A、表达式与语句B、若干文件C、函数D、main函数7.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。
A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以字母、数字和下划线的任一种字符8.判断char型变量ch是否为大写字母的正确表达式是()。
A、’A’<= ch <=’Z’B、(ch>=’A’) & (ch<=’Z’)C、(ch>=’A’)&&(ch<=’Z’)D、(’A’<=ch)&(‘Z’>=ch)11.如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include 命令是()。
A、#include <sring.h>B、#include <math.h>C、#include <st dio.h>D、#include <ctype.h>14.若有以下程序段:int x1=1, x2=2, x3=3;x3=x1/x2;printf(“%d\n”,x3);执行后输出的结果是()。
A、0.5B、1/2C、0D、316.若有定义 int a[10]; 则下面有问题的赋值语句是()。
A、a[0]=0;B、a[2*3]=2*3C、a[9]=2.5D、a[10]=10;17.以下程序的运行结果是()。
#include <stdio.h>void swap(int a, int b){ int t;t=a; a=b; b=t;}void main( ){int i=3, j=5;printf(“%d,%d,”,i,j);swap(i,j);printf(“%d,%d\n”,i,j);}A、3,5,3,5B、3,5,5,3C、3,3,5,5D、5,5,3,320.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据型为()。
00342《高级语言程序设计(一)》真题及(2022.04)00342《高级语言程序设计(一)》真题解析(2022.04)1.[单选题] 当文件不能正常打开时,库函数fopen( )的返回值是A.1B.-1C.非0D.NULL2.[单选题] 设int u=1,*p1; float m=0,*p2;,下列语句正确的是A.p1=m;B.pl=u;C.p1=u;D.p1=*p2;3.[单选题] 下列一维数组定义错误的是A.int s[10];B.int s[ ]={1,2,3,4};C.D.4.[单选题] 字符'A'的ASCⅡ值是65,设int ch=65;,执行语句printf("%c,%d",ch+1,ch+1);后的输出结果是A.B,66B.A,65C.66,BD.65,A5.[单选题] 设int x=1,y=1,z=1;,下列语句执行后变量y和z值均为0的是A.B.C.D.6.[单选题] 若实参值为1,调用下列函数返回值为1的是A.B.C.D.7.[单选题] 设char s[20]="this is a book";,值为'h'的数组元素是A.s[0]B.s[1]C.s[2]D.s[3]8.[单选题] 下列说法不正确的是A.函数可以没有参数B.函数可以有多个参数C.函数参数可以是指针型变量D.函数形参和实参个数可以不同9.[单选题] 下列说法不正确的是A.局部和全局变量可以同名B.局部变量可以是静态型变量C.全局变量不能为静态型变量D.全局变量不能为自动型变量10.[单选题] 设int a=1,b=2;,能将a+b的值赋给变量b的语句是A.a=b;B.a+=b;C.b+=a;D.a(b=a);11.[单选题] 运算符是A.位运算符B.关系运算符C.逻辑运算符D.取地址运算符12.[单选题] 设int a=0;, 循环次数为0的语句是A.while(a);B.for(a=0;a=0;a++);C.for( ;a=1;a++);D.do {a++;} while(--a);13.[单选题] 设int a=2,b=5;, 表达式a++%b的值是A.0B.2C.3D.514.[单选题] 不正确的字符型常量是A."n"B.'n'C.'\0'D.'\n'15.[单选题] C语言的关键字是A.mainB.putsC.mathD.for16.[填空题] C语言中优先级最低的运算符是____。
湖北工程学院2021年普通专升本:《高级语言程序设计(C语言)》考试大纲一、基本要求:考生应按本大纲的要求,正确理解C语言的结构、语法与环境;C语言的基本概念、函数及其调用;各类语句的语法,语义和各种数据类型的使用特点;问题的分析、设计及C语言实现及调试方法,并得到充分的程序设计训练。
本大纲对内容的要求由低到高,对概念和理论分为“了解”和“理解”两个层次;对运算和程序分为“掌握”和“应用”两个层次。
二、考试方法和时间:考试方法为闭卷考试,考试时间为120分钟。
三、考试题型大致比例:选择题:30分,填空题:20分,程序阅读:40分,程序填空:24分,程序设计:36分满分:150分。
四、考试内容和要求:第1章程序设计和C语言考试内容:(1)什么是计算机程序;(2)什么是计算机语言;(3)C语言的发展及其特点;(4)C语言程序的结构;(5)运行C程序的步骤与方法;(6)程序设计的任务。
考试要求:(1)了解:C语言的发展历史及其特点;(2)掌握:运行C程序的步骤和方法;(3)应用:用C语言编写简单的屏幕输出程序第2章算法----程序的灵魂考试内容:(1)算法的概念;(2)算法的特性;(3)算法的几种表示方法;(4)结构化程序设计方法;考试要求:(1)了解:最基本的算法;(2)理解:结构化程序设计方法第3章最简单的C程序设计----顺序程序设计考试内容:(1)数据的表现形式及其运算;(2)运算符和表达式;(3)C语句;(4)数据的输入输出;考试要求:(1)掌握:几种基本数据类型的表示形式,以及定义于基本数据类型之上的各种运算(算术、赋值、关系、逻辑、条件、逗号等);(2)掌握:常量的意义及几种基本数据类型的常量的表示形式,符合常量的定义与使用,变量的定义及自定义标识符的规范;(3)掌握:混合运算的表达式中各种运算符的优先级及结合方向;(4)掌握:输入、输出函数的使用规范第4章选择结构程序设计考试内容:(1)选择结构和条件判断;(2)关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算符和条件表达式;(3)if选择控制语句;(4)switch选择控制语句。
习题一1-1 Pascal语言的程序结构由哪几部分组成?试述各部分的构成形式和作用。
1-2 Pascal基本字符集有哪些成分构成?Pascal的保留字是什么?1-3 Pascal语言中标识符是怎样构成的?下列字符串哪些是正确的Pascal标识符?哪些是错误的?为什么?A5B,5H4,PEL,1,A31,x﹡y,AB,A + B,$500,G1(x),xyz,E-10,V AR1-4 下列数据哪些是整数?哪些是实数?哪些是非法的(假设计算机字长为32位)?256 2.54 25E+6 3.75E6 0.15E-61.2E70 1E-15 -673 E8 4,7345.7E-6.6 0 58989 -73451 E-31-5 下列哪些常量定义是正确的?CONSThvalue=200;lvalue=0 OR 1 OR 2;firstchar=’a’;t=true;b=true OR false;1-6 假定已作了下述说明:CONSTgap=’’;V ARm,n:integer;a,b:real;p,q:boolean;c1,c2:char;指出下列每一语句是否有效,并说明理由:⑴m:=trunk(b)+a⑵p:=m+n⑶read(c1,c2,’’)⑷c1:=gap⑸p:=q AND (ord(c1)<>’a’)⑹m:=n MOD a⑺‘c1’ :=’c2’⑻c2:=chr(‘a’)⑼m:=m-ord(‘0’)⑽writeln(a,p,m,n,q,q,b)⑾ n:=a-trunc(a)⑿b:=2.99*109⒀a:=m/n⒁b:ord(c1)+ord (c2)1-7 已知变量有下面指定的值:a=7,b=-6,c=30,d=10.8600,e=1E3,f=’*’,g=true求下面表达式的值:a+b DIV trunc(d)+3①d-0.75/(e+140.0)*70.0②sqrt(abs(b-a)+succ(ord(f))③chr(10* a MOD sqr(b))④NOT ((a>=b) AND g)⑤(ord(b) OR (sqr(b)>e)) AND (g AND NOT(abs(b)<>6))1-8 已知有如下说明VARp,q,r,s:Boolean;k:integer;试写出下列每一表达式的类型,如能确定,请写出它们的值。