北京化工大学c语言程序设计考试题,北京化工大学C语言复习题.doc

62e50291a81fc54b507f33cb80033297.gif 北京化工大学C语言复习题.doc

(16页)

720f3a054bf1d316d2646d0f4b64e7af.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

C语言期末总复习 参考试卷一、选择题(共22分)1.下列变量名中合法的是____ 。A)  B.C.Tom             B)3a6b             C)_6a7b          D)  $ABC2.C程序的执行是从____开始执行A)第一条语句            B)主函数            C)命令行        D)第一个出现的函数3.已知ch是字符型变量,下面不正确的赋值语句是____。A)ch=‘a+b’;          B)  ch=‘\0’;      C)ch=‘7’+‘9’;     D)ch=5+9;4. 与语句 while(x);等价的语句是______。A) while(x==0);    B) while(x!=0);    C) while(x!=1);  D) while(~x);5. 已知 int i;float f;下列语句正确的是______。A)(int f)%i         B) int(f)%i         C) int(f%i)         D) (int)f%i6.若int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为6的表达式为_____ 。A) *(p+6)           B)*p+6          C)*p+=5             D)p+67.以下为一维整型数组a的正确说明是_________.  A)int a(10);                 B)int n=10,a[n];  C)int n;                      D)#define SIZE 10    scanf("%d",&n);               int a[SIZE];    int a[n];8.温度华氏和摄氏的关系是: C=5/9(F-32)。已知:float C,F;由华氏求摄氏的正确的赋值表达式是____。A)C=5/9(F-32)       B)C=5*(F-32)/9  C)C=5/9*(F-32)  D)三个表达式都正确9.若有以下说明和语句:struct worker{   int no;char *name; }work, *p=&work; 则以下引用方法不正确的是____。A) work.no             B)(*p).no          C)p->no            D)work->no10.为了判断两个字符串s1和s2是否相等,应当使用____。A)if(s1==s2)      B)if(s1=s2)     C)if(strcpy(s1,s2))  D)if (strcmp(s1,s2))11.下述程序的输出是______。main( ){ char c='A';  if('0'<= c <='9') printf("YES");  else printf("NO");}A) YES              B) NO               C) YESNO                D) 语句错误二、读程序写结果(共18分)1.下面程序段的运行结果是__________.   int n=0;   while(n++<=2);        printf("%d",n);2.下面程序的运行结果是__________.#includevoid main(){   int a=15,b=21,m=0;switch(a%3){    case 0:m++;break;case 1:m++;switch(b%2){    default:m++;case 0:m++;break;}}printf("%d\n",m);}3.下面程序的运行结果是______。#include void main(){    int x=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(“%d,%d \n”,x,y);}4.下面程序的运行结果是______。#includevoid main() {int i,j,p,s;s=0;for(i=1;i<=4;i++){              p=1;for(j=1;j<=i;j++)p=p*j;s=s+p;}printf(“s=%d\n”,s);}5.下面程序的运行结果是______。#include #includevoid main(){    char *p=“abcdefg\0hjik\0”;printf(“%d\n”,strlen(p));}6.下面程序的运行结果是______。#includeint Fun(int x){            static int y = 0;y += x;return y;}    void main(){            int  x = 10, y = 0, k;for(k=0; k<2; k++){     y = Fun(x);printf("y = %d\n", y);         }} 三、程序填空(共14分)1.下面程序可求出矩阵a的主对角线上的元素之和。#includevoid main()  {int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;  for(i=0;i<3;i++)   for(j=0;j<3;j++)     if(i==j)sum=sum+   A     ;    printf("sum=%d\n",sum);}2. 下面程序用于求含有50个元素的一维数组中的最小值及负数的个数;其中一维数组中的每个元素是由公式y[j]=600*sin(j*0.16)得到的。#include void main( ){  float y[50],min;    int j,num=0;    void fun(float y[50],float *min,int *num);for(j=0;j<50;j++)          y[j]=600*sin(j*0.16);       A        ;    printf(“min=%f, The number of negative is=%d”,min,num);}void fun(float y[50],float *min,i。省略部分。eak语句;根据个人经验,此switch语句中执行到break语句后只跳出switch语句,当switch语句嵌套在循环内时,循环仍旧依循环条件执行而不退出;*/循环结构程序设计while语句的一般形式:while(表达式) 循环体语句;do-while语句一般形式:do{ 循环体语句;}while(表达式);for语句一般形式:for(表达式1;表达式2;表达式3) 循环体语句;break语句一般形式:break;continue语句一般形式:continue;goto语句一般格式:语句标号:可执行语句;……goto 语句标号;/*while语句与do-while语句括号内表达式为循环条件表达式,非0时执行循环体语句,否则退出循环,执行下面的语句;for语句中表达式1用于循环变量赋初值,表达式2用于循环条件判断,表达式3用于改变循环变量的值;break语句用于跳出循环体,执行循环后面的语句;continue语句用于结束本次循环,直接执行下一次的循环条件判断;goto语句用于自动跳转到指定语句,有时会破坏程序结构,不倡导使用,但在特定情况下能带来方便;注意防止死循环,嵌套注意层次,循环不能交叉*/数组一维数组:一维数组的定义:类型名 数组名[常量表达式];,一维数组的引用:数组名[下标],一维数组的初始化:类型说明符 数组名[整型常量表达式]={初始化列表};二维数组:二维数组的定义:类型名 数组名[常量表达式1][常量表达式2];,二维数组的引用:数组名[行下标][列下标],二维数组的初始化:分行初始化:类型名 数组名[常量表达式1][ 常量表达式2]={{第0行元素初值表},{第1元素初值表}……};,按序初始化:类型名 数组名[常量表达式1][ 常量表达式2]={初值表};字符数组:一维字符数组的定义:char 数组名[常量表达式];,字符数组的初始化:char 数组名[数组长度]={字符初值表};,一维字符数组的引用:数组名[下标]。用字符串初始化字符数组:char 数组名[数组长度]={字符串常量};字符串处理函数:字符串输入函数:gets(字符数组名);,字符串输出函数:puts(字符数组名);,字符串连接函数:strcat(字符数组1,字符数组2);,字符串复制函数:strcpy(字符数组1,字符串2);,字符串比较函数:strcmp(字符串1,字符串2);,检测字符串长度函数:strlen(字符串);,字符串小写函数:strlwr(字符串);,字符串大写函数:strupr(字符串);。/*数组可视为类型相同的一串变量,方便循环求算,循环赋值;字符串数组结束标志是‘\0’;特别的,使用scanf函数以%s格式输入字符串给字符数组时,字符数组名前无取地址符号&;字符串处理函数作用详见P84-P87*/函数函数的定义:返回类型名 函数名(行参表) {语句……},函数声明:返回类型名 函数名(行参表);,函数的调用:函数名(实参表);,return语句:return 表达式;或return (表达式);。函数如果直接或间接地调用自身则构成了递归函数,构成递归程序重点要做好确定问题的形式、找到递归规则以及确定问题结束条件三个要素。值传递:函数行参的数据类型为简单数据类型,在调用函数时,会将实参的具体数值传递给被调函数,被调函数利用行参接收这些数据的副本,进行使用。值传递的特点是,被调函数中对行参的任何操作都是对主调函数中的对应实参数据副本的操作,对原数据不造成任何影响。地址传递:函数行参的数据类型为地址类型,如数组类型,在调用此类函数时,行参变量接收到的是主调函数中某变量的地址,从而使得行参变量拥有了对主调函数中该变量的访问权,既包含读也包含写的权利,从而可以在自定义函数中通过行参变量对主调函数相应的变量进行访问和修改。变量同名使用规则:如果一个作用域与其所包含的子作用域内都定义了相同的变量,则在子作用域中定义的变量将屏蔽子作用域外部的同名变量;相互独立的两个作用域中的同名变量互不干扰。变量含存储类型的定义:[存储类型] 数据类型 标识符;。变量的存储类型包括:(默认)自动型(auto),寄存器型(register),外部型(extern),静态型(static)。函数的存储类型包括:外部型(extern),静态型(static)。/*函数的定义不能嵌套;调用函数时,主调函数的实参将值传递给被调函数的形参,运算完毕由return语句为有返回值函数返回一个值给主调函数;函数的调用可以嵌套;自定义函数定义在主函数后时,需要在使用该自定义函数前声明;以数组作为函数参数时为地址传递,调用函数时行参表只填写数组名而无需中括号及下标,以数组元素为函数参数时为值传递,需将数组元素名完整填入行参表中;程序的多文件组织中,调用自定义文件函数时,编译预处理命令为#include“文件名”,祥见P109;定义在函数外的变量具有全局作用域,拥有从定义处起到程序结束的生存期,定义在函数内的变量具有局部作用域,拥有从定义处起到与其前一最近左花括号对应的右花括号处的生存期,遇同名变量遵循变量同名使用规则;静态型变量拥有全局生存期,每次修改都被保留直至程序结束;*/指针指针变量的定义:类型说明符 *指针变量名;指针变量的初始化:类型说明符 *指针变量名=&普通变量名;指针变量的赋值:指针变量名=&普通变量名;或*指针变量名=普通变量名;指向数组元素的指针:指针变量名=&数组名[0];或指针变量名=数组名;,此时m[i]等价于p[i]等价于*(m+i)等价于*(p+i)。指向字符串的指针:char *指针变量名;指针变量名=“字符串”;行指针定义:类型说明符 (*指针名)[M];,若有赋值语句:指针名=二维数组名;,此时二维数组名[i][j]等价于*(*(指针名+i)+j)。返回值为指针的函数定义:类型说明符 *函数名(形参表){函数体}函数指针的定义:类型说明符(*指针变量名)(形参表){函数体}指针数组的定义:类型说明符 *指针变量名[数组元素个数];指向指针的指针变量的定义:类型说明符 **指针变量名;带有参数的主函数的定义:类型说明符 main(int argc,char *argv[]){函数体}/*没有赋予合法地址值的指针称为悬空指针,对系统潜在威胁巨大,最好定义在时初始化,无明确目标可用NULL值初始化;指针运算(*)与取址运算(&)是一个互逆过程,取址运算用于取变量的地址(指针),指针运算用于取指针所对应的目标变量;[]称为变址运算符;可以把字符串赋值给指针,指针只是获取了字符串的首地址,不可以将字符串赋给已经定义好的字符数组,但可以在定义字符数组的同时,用一个字符串对其进行初始化操作,已指向字符串的指针一旦被赋予新的字符串首地址,原字符串的地址就“丢失”了;如同指针变量的赋值语句一样,指针变量存放的是被指向的变量的地址,&取普通变量或数组元素的地址,*取指针(指向变量)、数组(指定元素)和函数(返回)的值,可见前两者是一种值变量,后三者是一种地址变量;*/ 关 键 词: 大学 c语言 化工 复习 北京

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值