2023级电气类程序设计试题_第1页
2023级电气类程序设计试题_第2页
2023级电气类程序设计试题_第3页
2023级电气类程序设计试题_第4页
2023级电气类程序设计试题_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.表达式:2&&-2的值是12.〔――b==d++〕?――b:++d的结果是43.假设b=6,d=5,那么表达式:〔――b==d++〕?d++:――b的结果是6表达式执行完后d的值为74.假设有定义inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};那么*a[2]之值是95.假设有宏定义#definef(x)x*x那么当b=4时,执行f(b+3)的结果是6.#include<stdio.h>main(){inta[5]={3,7,9,1,5},*p=a,*q=a;printf(“%d,%d\n〞,*p+3,*(q+2));}其运行结果为69以下各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句〔每题4分,共20分〕1.现a、b的值,求的值,并当不小于10时,将其输出。#include<stdio.h>文件开头加<math.h>floatc;写在a=2;b=3;之前main(){floata,b;a=2;b=3;floatc;c=sqrt(a+b);if(c>=10)printf(“c=%f\n〞,c);}2.从键盘输入变量a的值,已有关系式:,求出变量b的值并输出。main()scanf(“%f〞,a);改成scanf(“%f〞,&a);b=5/8*(a-12);改成b=5.0/8*(a-12);{floata,b;scanf(“%f〞,a);b=5/8*(a-12);printf(“b=%f\n〞,b);}3.用递归语句编函数计算6!longf(intm)在子函数f中:加语句if(m==0)a=1;和语句return(a){longa;if(m<0)printf(“dataerror!〞);elsea=f(m-1)*m;}main(){intn;n=6;printf(“%d!=%ld〞,n,f(n));}4.矩阵a=,求该矩阵对角线元素之和。main()变量定义中加语句intsum=0;for(i=1;i<=3;i++)改为for(i=0;i<3;i++){inti;inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};for(i=1;i<=3;i++)sum=sum+a[i][i];printf(“sum=%d〞,sum);}5.设整数x位于[1,10]区间内,依次输出2x的值〔2、4、6、8,……,20〕。main(){intx,y;for(x=1;x<=10;x++)将语句y=2x;改为y=2*x;在语句y=2x;之前加{在语句printf(“%d〞,y);之后加}y=2x;printf(“%d〞,y);}简答题〔每题6分,共18分〕对于同样的循环体和同样的循环判断条件而言,while语句和do-while语句有什么区别?while循环是首先判断循环条件是否成立,假设成立那么执行循环,假设不成立循环那么一次也不执行;do-while循环是先执行循环,再判断循环条件是否满足,假设满足那么继续执行循环,假设不满足那么终止循环的运行。在do-while循环中,循环体至少要执行一次。试说明break语句和continue语句在循环程序应用上的区别。break语句是当break语句前的判断条件成立时,立即结束循环,跳出循环体,不再进行条件判断;continue语句是当continue语句前的判断条件成立时,结束本次循环,跳过本次循环体进行下面尚未执行的语句,接着“增〞或“减〞循环控制变量,再继续判断条件是否满足。3、假设已有定义:inta[10];int*p;p=a;试说明*〔p++〕与*〔++p〕有什么区别?*〔p++〕是先取*p的值,后使p加1,对本例即先得到a[0]的值,然后p指针指向a[1];*〔++p〕使先使p加1,后取*p的值,对本例即p指针指向a[1],再得到a[1]的值。以下各程序中,有假设干条语句未被写出。试根据题意,补全程序,每条横线填一个语句。〔每题6分,共18分〕求[2,400]以内的最大的素数f(intx){inti,z;z=0;for(i=2;i++)if(x%i==0){z=1;break;}}main(){inti,max;for(i=2;i<=400;i++)ifmax=i;printf(“最大的素数=%d\n〞,max);}假设某一自然数等于其所有真因子〔因子不包括该数本身〕之和,那么称该数为完全数。例如:6的真因子有:1、2、3;且6=1+2+3;那么6为完全数。试求[5,100]之间的最大完全数和完全数的个数main(){inta,b,sum,num,max;for(a=5;a<=100;a++){sum=0;for(b=1;b<a;b++){ifsum=sum+b;}if{num=num+1;max=a;}}printf("thenumberis%d,themaxvalueis%d\n",num,max);}3.输入一个四位正整数,将其反向输出,并输出原来的数和变换后的数的乘积如:输入2104,反向输出4012,并输出二者的乘积2104×4012=8441248main(){intnum,new,a,b,c,d;longresult;printf(“请输入一个四位数\n〞);〔1〕a=num/1000;/*a为千位上的数字*/〔2〕/*b为百位上的数字*/c=num/10%10;/*c为十位上的数字*/d=num%10;/*d为个位上的数字*/〔3〕/*new为反向输出的数*/result=num*new/*result为两者的乘积*/printf(“反向的四位数为%d:两个数的乘积为:%ld〞,new,result);}阅读以下程序,写出运行结果〔每题6分,共12分〕1.#include<stdio.h>inti=0;staticintj=1;sub(){intk=0;staticintx=1;k++;x++;printf(“subi=%dj=%dk=%dx=%d〞,i,j,k,x);}main(){intk=1;i++;j++;k++;printf(“maini=%dj=%dk=%d\n〞,i,j,k);sub();sub();}运行结果是2.main(){intx[2][3]={4,7,2,5,6,1};char*str[]={"thank","right","good"};char**p;inti,j;printf("%d,%d\n",*x[0],*(x[1]+2)/3);for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d,",*(x[i]+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论