《计算机语言程序设计》复习指导与练习江苏广播电视大学林小宁“计算机语言程序设计”采用C语言作为教学语言。
通过本课程的学习,使学生能够熟悉C 语言,了解它们的特点,初步掌握利用C语言编程解决各种实际应用的基本方法,为今后正确运用它打下基础。
为帮助同学们更好的学习与考试,这里对本课程的学习及考试要求作比较详细的说明。
1.基本要求:1.了解C语言的用途、特点以及上机运行C语言程序的基本步骤;2.掌握C语言各种数据类型的定义与使用方法;3.熟练掌握利用C语言的三种基本结构编制简单程序的方法;4.掌握C语言函数的定义、调用及说明的方法;5.掌握C语言指针、结构体与共用体变量的使用方法,能正确运用它们;6.掌握文件的有关操作。
2.考核说明(1)本课程实行全省统一考试,采用闭卷笔试形式,时间为120分钟;(2)考试内容不超出本复习指导要求内容,相关题型见后续综合练习(具体题目仅供参考);(3)最终成绩评定可按考试80%、上机实验与平时作业20%计算。
3.练习为使学生更好的复习考试,本练习给出了有关考试的题型及相应的比例,其中:填空题(每空2分,共30分)、单项选择题(每小题2分,共30分)、阅读程序题(20分)、改错题(10分)、编程题(10分)。
本练习只作为考试题型的参考,希望学生在复习中着重掌握对基本概念及编程方法的理解。
1)填空题1.C程序的基本单位是()。
2.一个C程序中至少应包括一个()。
3.结构化程序设计的三种基本结构是:()、()和()。
4.在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为()。
5.C语言中的标识符只能由三种字符组成,它们是(),(),()。
6.进行求余运算时,%两侧均应为()数据。
7.若有定义int k,j;运算表达式k=(j=3,j+2,++j,j++)后,变量k的值是();变量j的值是()。
8.表达式23>16&&12||2的值为(),表达式(23>16&&12)+2的值为()。
9.表达式246!=246/2*2的值为(),表达式246==247/2*2的值为()。
10.在C语言中,二维数组元素在内存中的存放顺序为()。
11.执行语句printf("\n%d\n",strlen("C语言程序设计"));后,输出结果为()12.执行语句printf("%d\n",strcmp("Windows 98","Windows 95")>0?1:-1);后,输出结果为()。
13.C语言规定,可执行程序的开始执行点是()。
14.在C语言中,一个函数一般由两部分组成,它们是()和()。
15.在C程序中,调用函数时应保证实参和形参在()和()一致。
16.C程序中定义的变量,代表内存中的一个()。
17.在C程序中,指针变量能够赋()值或()值。
18.在C程序中,文件可以用()方式存取,也可以用()方式存取。
19.在C 程序中,数据可以用()和()两种代码性形式存放。
20.内存中供用户使用的存储空间可以分为()、()及()三部分。
21.在C语言中每一个变量和函数有两个属性:()和()。
22.以下程序的功能是:从键盘上输入一行字符,存入一字符数组中,构成一个字符串。
然后输出该字符。
请填空:[1] ,[2] 。
# include ”ctype.h”# include ”stdio.h”main( ){ char str[81],*sptr; int i;for(i=0;i<80;i++){str[i]=getchar( );if(str[i]==’\n’) break;}str[i]= [1] ;sptr=str;while(*sptr) putchar(*sptr [2] );}23.语句段char s[20]=”abcd”,*sp=s; sp++;puts(strcat(sp,”ABCD”);的输出结果是(bcdABCD)。
24.以下函数求字符串长度。
请填空:[1] ,[2]int strlen(char *str){int i;for(i=0; [1];i++);return [2] ;}25.使用局部和全局变量时,全局变量和局部变量()同名;形参和局部变量()同名。
26.对数组元素的引用可以采用()和()两种形式。
27.如分别有定义int *p( )及int (*p)( ),前者中的p是(),后者中的p是()。
28.如分别有定义int *p[ ])及int (*p)[ ],前者中p是(),后者中的p是()。
29.有以下说明和定义,可用a.day引用结构体成员day,请写出引用结构体成员a.day的其他两种形式[1] 、[2] 。
struct{int day; char mouth; int year;}a,*b=&a;30.数组名可以作函数的实参或形参,而数组元素只能作函数的()。
【参考答案】1.函数2.main函数3.顺序结构选择结构循环结构4.15.字母下划线数字6.整型7.4 58.1 39.0 110.按行存放11.1312.113.main14.函数首部 函数体 15.类型 参数个数 16.存储单元 17.地址 空 18.字符 字节 19.ASCII 二进制20.程序区 静态存储区 动态存储区 21.数据类型 数据的存储类型 22.[1] ’\0’(或0) ,[2] ++ 23.bcdABCD24.[1] *(str+i) 或*(str+i)!=’\0’ ,[2] i 25.可以 不允许 26.下标法 指针法 27.函数名 指针变量 28.数组名 指针变量 29. [1] (p->day )、 [2] ((*p).day )。
30.实参2)单项选择题1.C 程序的基本单位是( )A .程序行B .语句C .函数D .字符 2.TURBO C 中int 类型变量所占字节数是( )A .1B .2C .3D .4 3.以下每个选项都代表一个常量,其中正确的整型常量是( )A .12.B .-20C .1,000D .4 5 6 4.以下符号中不能用作用户标识符的是( )A .IFB .SwitchC ._3comD .case 5.以下选拔项中不合法的用户标识符的是( )A .abc.cB .fileC .MainD .PRINTF 6.语言中运算对象必须是整型的运算符是( )A .%=B ./C .=D .* 7.不能正确表示算式dc ba ⨯⨯的C 语言表达式是( ) A .a/(c*d)*b B .a*b/c/d C .a*b/c*d D .a*b/(c*d) 8.设int a=12;则执行完语句a+=a- =a*a 后,a 的值是( )A .552B .264C .144D .-2649.执行循环语句:for (x=0,y=0;y!=250||x<4;x++)y+=50;其循环体共执行( )次。
A .5B .4C .3D .210.若有定义int x=1,y=1,z=1;执行语句c=++x&&++y||z++;后x 、y 、z 的值分别是( )A .2、2、2B .2、1、2C .2、2、1D .1、1、211.若有定义int x=1,y=1,z=1,c;执行语句c= --x&&++y&&z++;后x 、y 、z 的值分别是( )A .0、2、2B .0、2、1C .0、1、2D .0、1、1 12.break 语句( )。
A .用在能出现语句的任何地方B .只能用在循环体内C .只能用在循环体内或switch 语句中D .可用作函数体内的任一语句 13.以下由while 构成的循环执行的次数是( )。
int k=0; while(k=1) k++;A .无限次B .有语法错误,不能执行C .一次也不执行D .执行一次 14.以下由do-while 构成的循环执行的次数是( )。
int k=0; do k++; while(k=3);A .无限次B .1C .2D .3 15.与(!a= =1)等价的表达式是( )。
A .(a>0)B .(a<0)C .(a!=0)D .(!a ) 16.与(a )等价的表达式是( )。
A .(a!=0)B .(a>0)C .(a<0)D .(a<0&&a>0) 17.与(!a= =0)等价的表达式是( )。
A .(a=0)B .(a>0)C .(a<0)D .(a<0||a>0) 18.如有函数hhh(float x){printf(“%d”,x);},其类型是( )。
A .与参数x 的类型相同B .void 类型C .int 类型D .无法确定 19.能正确表示数学公式|)sin(|0x 的C 语言表达式是( )。
A .sqrt(abs(sin(x* /180)))B .sqrt(abs(sin(x*3.14/180)))C .sqrt((sin(x))D .sqrt(fabs(sin(x*3.14/180))) 20.能正确表示代数式ln(x+y)的C 语言表达式是( )。
A .log10(x+y)B .log(x+y)C .lg(x+y)D .lg10(x+y) 21.执行下面的程序段后,num 的值为( )。
int *p,num; num=100; p=# num=*p+10;A .120B .110C .100D .90 22.若有定义:int x,*pp;则正确的赋值表达式是( )。
A .pp=&xB .pp=xC .pp=&pD .*pp=*x 23.若有定义:int a[4][4],(*p)[4];则对数组元素的正确引用是( )。
A .a[4][0]B .*(p+1)[2]C .p[0]D .*(*a+3) 24.以下选项中,合法的赋值语句是( )。
A .a=b=26B .++i;C .k=int(a+b);D .a=3,b=4 25.当调用函数时,实参是一个数组名,则向函数传递的是( )。
A .数组的长度B .数组的首地址C .数组第一个元素的值D .整个数组的元素中的值 26.能正确进行字符串赋值的语句组是( )。
A .char str[3][60]; str[0]=”STRING”;B .char *s; gets(s);C .char *s[ ]={”STRING”};D .char *s; strcpy(s,”STRING!”); 27.若有定义char s[20]=”CHINA”,*pch=s ;则不能代表字符H 的表达式是( )。