大学一年级C语言程序设计复习题.docx
- 文档编号:5363911
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:28
- 大小:54.74KB
大学一年级C语言程序设计复习题.docx
《大学一年级C语言程序设计复习题.docx》由会员分享,可在线阅读,更多相关《大学一年级C语言程序设计复习题.docx(28页珍藏版)》请在冰豆网上搜索。
大学一年级C语言程序设计复习题
复习题
1.若有定义:
inta=2,b=3;则表达式(float)(a+b)/2+(float)(b/a)的值为______。
A)4.0B)3.0C)3.5D)都不是
2.若希望当A的值为奇数时,表达式的值为“真”,当A的值为偶数时,表达式的值为“假”。
则以下能满足要求的表达式是____。
A)A/2!
=1B)!
(A%2)C)A%2D)A/2==1
3.以下程序在运行时,输入变量a的值为1,变量b的值为2,其结果。
main()
{inta,b,t=0;scanf(“%d%d”,&a,&b);
if(a=2)t=a,a=b,b=t;
printf(“%d,%d\n”,a,b);
}
A)2,0B)2,2C)2,1D)1,2
4.以下程序的运行结果是_______。
main()
{inta=10,y=0;
do{a+=2;y+=a;if(y>50)break;}while(a=14);
printf(“\n%d,%d”,a,y);
}
A)16,60B)18,60C)死循环D)都不是
5.inta=5,b=4,c=3则表达式a>b>c为_______。
(真/假)
6.#definefx+y
x=5y=3
a=2*fa=?
7.假定inta=0,b=0,c=0;执行表达式a||(b=5)||(c=3)后b,c的值是。
A)5,3B)0,0C)5,0D)0,3
8.已知:
intj,a,b;执行语句“b=(a=2*3,a*5),a+6;”后,变量b的值是。
A)6B)12C)30D)36
9.for(;;)
10.inta=200,b=300;
a*b/100(long)(a*b)/100(long)a*b/100
11.虚实结合时的类型
12.两种典型的排序算法:
选择法和起泡法。
选择法基本思想:
首先选择最小的数放在0位置,再在剩下的数中选择最小的数放在下一位置,┈┈,依次类推,共进行9次选择。
每次选择都要与其后的所有数进行比较换位。
5
8
7
4
3
9
0
1
2
6
j
#definen10
main()
{inta[n],i,j,t;
for(i=0;i for(i=0;i for(j=i+1;j if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;} for(j=0;j } 5 8 7 4 3 9 0 1 2 6 也可以在每次选择中先找最小值所在的位置,最后再换位。 main() {inta[10],i,j,t,k;for(i=0;i<10;i++)scanf(“%d”,&a[i]); for(i=0;i<9;i++) {k=i; for(j=i+1;j<10;j++)if(a[j] t=a[i];a[i]=a[k];a[k]=t; } for(j=0;j<10;j++)printf(“%3d”,a[i]); } 起泡法基本思想: 首先将所有数中的最大值“冒泡”到最后位置,再将剩下的数中的最大值“冒泡”到上一位置,┈┈,依次类推,共进行9次“冒泡”。 每次“冒泡”都是一种翻滚过程,即相邻两个数进行比较换位。 5 8 7 4 3 9 0 1 2 6 假定j为“冒泡”次数,则有: main() {inta[10],i,j,t; for(i=0;i<10;i++)scanf(“%d”,&a[i]); for(j=1;j<=9;j++) for(i=0;i<10-j;i++) if(a[i] for(j=0;j<10;j++)printf(“%3d”,a[i]); } 要特别注意两个循环的范围。 13.迭代法 例: 求方程2x3+3x2-4x+1=0的根。 简单迭代法基本思想: 将原方程f(x)化为: x2=g(x1) x2=(2x13+3x12+1)/4迭代公式 迭代过程: main() {floatx1,x2;scanf(“%f”,&x1); while (1) {x2=(2*x1*x1*x1+3*x1*x1+1)/4; if(fabs(x2-x1)<1e-6)break; ? } printf(“\n%f”,x2); } 牛顿迭代法基本思想: f′(x1)=f(x1)/(x1-x2) x2=x1-f(x1)/f′(x1)牛顿迭代公式 main() {floatx1,x2,f1,f; scanf(“%f”,&x1); while (1) {f=2*x1*x1*x1+3*x1*x1-4*x1+1 f1=6*x1*x1+6*x1-4; x2=x1-f/f1; if(fabs(x2-x1)<1e-6)break; x1=x2; } printf(“\n%f”,x2); } 祝大家取得好成绩! 2006下考试题目 一、单项选择题(每题2分,共32分) 1、A是合法的用户自定义标识符。 A)file_bakB)abc(10)C)continueD)class+3 2.若有定义: inta=10;floatx=2.8,y=8.6;则表达式: x+a%3*(int)(y-x)%2/4的值是B。 A)2.500000B)2.800000C)3.050000D)0.000000 3.设intx=8,y,z;执行y=z=x++;x=y==z后,变量x的值是B。 A)0B)1C)8D)9 4.以下叙述中错误的是(4)。 A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D)可以通过赋初值的方式确定数组元素的个数 5.已有定义: chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是(5)。 A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 6、表达变量a中个位、十位、百位数字满足降序关系的正确表达式是(6)。 A)a%10>a/10%10>a/100%10 B)a%10>a/10%10&&a/10%10>a/100%10 C)a%10>a%100&&a%100>a%1000 D)a%10>a%10/10&&a%10/10>a%100/10 7、以下函数是计算多项式(7)的值。 floatf(intn) {floati,t=2,s=t; for(i=2;i<=n;i++){t=t*(2*i-1)*(2*i);s+=t;} returns; } A)1+3+5…B)2+4+6…C)1! +2! +3! …D)2! +4! +6! … 8、有以下程序 main() {inti=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d%d%d",i,j,k); } 程序运行后的输出结果是(8)。 A)123 B)234 C)223 D)233 9、以下程序中,不正确的赋值语句是(9)。 structstudent {intnum;charname[20];floatscore;}; main() {structstudentst,*p; p=&st; A)st.num=1001; B)p->num=2001; C)st.name=”Zhang”; D)p->score=80; } 10、以下求矩阵a中主对角元素之和的各程序段中,不正确的是(10)。 A)inta[3][3]={1,2,3,4,5,6,7,8,9},s=0,*p=a; for(p=a;p B)inta[3][3]={1,2,3,4,5,6,7,8,9},s=0,i; for(i=0;i<3;i++)s+=a[i][i]; C)inta[3][3]={1,2,3,4,5,6,7,8,9},s=0,*p=a,i; for(i=0;i<3;i++)s+=p[i][i]; D)inta[3][3]={1,2,3,4,5,6,7,8,9},s=0,*p=a; for(p=a;p 11、以下程序中,不合法的函数调用语句是(11)。 voidfun(floatx[]){……} main() {floata[9],b[4][5]; A)f(a+5); B)f(b); C)f(a[4]); D)f(b[2]); } 12、设有程序段 t=0;while(printf(“*”)){t++;if(t<3)break;} 下面描述正确的是(12)。 A)其中循环控制表达式与0等价B)其中循环控制表达式与‘0’等价 C)其中循环控制表达式是不合法的D)以上说法都不对 13、以下各循环语句中,不是无限循环的是(13)。 A)for(j=5;j--<5;)j=4;B)for(j=0;j>=0<10;j++); C)for(j=1,k=10;j-k;j++,k--);D)for(j=1;j=10;j++)s+=j; 14、对于以下求最大值最小值的函数,可以代替第三行的语句有(14)。 voidmax_min(int*a,intn,int*max,int*min) {int*i; *max=a[0];*min=a[0]; for(i=a;i {if(*i>*max)*max=*i; if(*i<*min)*min=*i; } } A)*max=0;*min=0; B)*max=-32768;*min=32767; C)*max=a[n];*min=a[n]; D)*max=32767;*min=-32768; 15、以下程序的功能是(15)。 main() {inta[10]={3,5,2,9,1,8,0,2,4,6},i,p=0,q=0; for(i=0;i<10;i++) {if(a[i]>p)p=a[i]; if(a[i] } printf("\n%d,%d",p,q); } A)求最大值和最小值 B)求最大值的位置和最小值的位置 C)求最大值的位置和最小值 D)求最小值的位置和最大值 16、判断字符串a和b是否相等,应当使用(16)。 A)if(a==b)B)if(a=b) C)if(strcpy(a,b))D)if(strcmp(a,b)) 二、程序阅读题(18,21,25,29每题2分,其他每题3分,共38分) 17、下面程序的运行结果是(17)。 voidf(int*x,int*y) {intt; t=*x;*x=*y;*y=t; } main() {inta[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p { f(p,q); p++; q--; } for(i=0;i<8;i++) printf("%d,",a[i]); } A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4, C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1, 18、以下程序的运行结果是(18)。 intfunc(inta,intb) {staticintm=0,i=2; i+=m+1;m=i+a+b; return(m); } main() {intk=4,m=1,p; p=func(k,m);printf(“%d,”,p); p=func(k,m);printf(“%d\n”,p);} A)8,17B)8,16C)8,20D)8,8 19、下面程序的运行结果是(19)。 main() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=20)break; if(b%3==1){b+=3;continue;} b-=5; } printf(“%d\n”,a);} A)7B)8C)9D)10 20、以下程序的运行结果是(20)。 main() {inta[10]={8,6,4,0,9,1,2,5,7,3},t,*k=a,*p,*q; for(p=a;p for(p=k,q=k;p>=a&&q for(p=a;p } A)3752190468B)7521904683C)2190468573D)8640912573 21.以下程序的运行结果是(21). voidsort(int*a,intn)main() {int*i,*j,t;{inti,a[10]={5,3,8,6,0,1,4,7,9,2} for(i=a;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 一年级 语言程序设计 复习题