C语言试卷10
- 格式:doc
- 大小:64.50 KB
- 文档页数:5
淮海工学院–学年第学期C语言程序设计试卷一、选择题(本大题共10小题,每题3分,共30分)1.以下选项中属于C语言的数据类型是()A.复数型 B .逻辑型 C .双精度型 D. 集合型2.要判断char型变量m是否是数字,可以使用下列表达式()A.0<=m && m<=9 B. …0‟<=m && m<=‟9‟C. “0”<=m && m<=”9”D. 前面三个答案均是错误的3.为了判断两个字符串s1和s2是否相等,应当使用()A.if (s1= =s2) B. if (s1=s2)C. if ( strcpy (s1,s2) )D. if ( strcmp( s1,s2)= =0 )4.以下说法正确的是( )A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分5.以下错误的描述是()A.不同函数中可以使用相同的变量名B.形式参数是局部变量C.一个函数内部定义的变量只能在本函数范围内有效D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效6.要说明一个有10个int 元素的数组,应当选择语句()A.int a[ 10 ]; B. int a[ 2, 5 ] C. int a[ ]; D. int *a[ 10 ];7.说明语句”int ( * p ) ( ) ;”的含义是()A.p是一个指向一维数组的指针变量B.p是指针变量,指向一个整型数据C.p是一个指向函数的指针,该函数的返回值是一个整型D.以上都不对8.已知:char b[ 5 ] , *p=b; 则正确的赋值语句是()A.b=”abcd”; B. *b=”abcd”; C. p=”abcd” ; D. *p=”abcd”;9.下面的四个运算符中,优先级最低的是()A.( ) B. . C. —> D. + + 10.C语言中标准输入文件stdin 是指()A.键盘 B. 显示器 C. 鼠标 D. 硬盘二、写出运行结果(本大题共4小题,每题5分,共20分)1.# include <stdio.h>main ( ){ char ch;ch=getchar( );switch( ch ){ case 65:printf(“%c”, …A‟);case 66:printf(“%c”,‟B‟);default:printf(“%s\n”,”other”);}}如程序可以正常运行,当从键盘输入字母A时,输出结果为()2.# include <stdio.h>int d=1l;fun( int p ){ int d=5;d+=p++;printf(“%d”,d);}main( ){ int a=3l;fun(a);d+=a++;printf(“%d”,d);1}运行结果是3.# include <stdio.h>main( ){ int i=0 , j=0;while(i<10)i++;While( j++<10) ;Printf(“i=%d, j=%d\n”, i,j);}运行结果是4.# include <stdio.n>main( ){ static char a[ ]=”Program”, *ptr;for( ptr=a;ptr<a+7;ptr+=2)putchar ( *ptr );}三、阅读程序、填空(每空2分,共18分)1、下面程序输出3到100之间的所有素数。
# include <stdio.h>main( ){ int i,j;for ( i=3; i<=100; i++){ for(j=2;j<=i-1; j++)if ( ) break;if ( )printf(“%4d”,i);}}2、下面的函数sum(int n )计算1~n的累加和sum(int n){ if (n<=0)printf(“data error!\n”);if (n= =1) ;else ;}3、下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序。
# include <stdio.n>main( ){ float a[ 10 ],x;int i,j;pr intf(“input 10 numbers please\n”);for( i=0; ; i++)scanf(“%f”,&a[i]);printf(“\n”);for( i=1; ; i++)for (j=0; ;j++)if ( ){ x=a[j];;a[j+1]=x;}四、设计题(本题共3小题,1、2每题10分,3题12分,共32分)1、写一函数,求方程aX2+bX+c=0的根。
从主函数输入a、b、c的值2、写一函数,输入一个二进制数,输出相应的十进制数2float x1,x2,disc,p,q;greater_than_zero(float a, float b) { x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);}equal_to_zero(float a,float b) { x1=x2=(-b)/(2*a);}smaller_than_zero(float a,float b){ p= -b/(2*a);q=sqrt(disc)/(2*a);}main( ){ float a,b,c;scanf(“%f,%f,%f”,&a,&b,&c);disc=b*b-4*a*c;if ( disc>0){ greater_than_zero(a,b);printf(“x1=%5.2f\tx2=%5.2f\n\n”,x1,x2);else if(disc = =0){ equal_to_zero( a,b);printf(“x1=%5.2f\tx2=%5.2f\n\n”,x1,x2);}else{smaller_than_zero( a,b);printf(“x1=%5.2f\tx2=%5.2f\n\n”,x1,x2);}}a)#include <stdio.h># define MAX 100main( ){ char t[MAX];i=0;flag=0;flag1=1;while((c=getchar())!=‟\0‟ && I<MAX && flag1){ if(c= = …0‟|| c= = …1‟){ flag=1;t[I++]=c;}else if( flag){ t[I]=‟\0‟;c=getchar();if (c= =‟N‟||c= = …n‟)3flag1=0;else{ flag=0;I=o;Pri ntf(“ input a hex number:”,htoi(t));}}}}htoi( char s[ ]){ int I, n;n=0;for(I=0;s[I]!=‟\0‟;I++)n=n*2+s[I]-…0‟;return(n);}3 #define NULL 0#define LEN sizeof( struct student)struct student{ char num[6];char name[8];char sex[2];int age;struct student * next;} stu[10];main( ){ struct stuent * p; *pt, * head;int I,length,iage,flag=1;int find=0;while(flag= =1){ scanf(“%d”,&length);if (length<10)flag=0;}for( I=0;I<length;I++){ p=(struct student *)malloc(LEN);if(I= =0)head=pt=p;elsept->next=p;pt=p;scanf(“%s”,p->num);scanf(“%s”,p->name);scanf(“%s”,p->sex);scanf(“%d”,&p->age);}p->next=NULL;printf(“input age:”);scanf(“%d”,&iage);pt=head;p=pt;if( pt->age= =iage){ p=pt->next;head=pt=p;find=1;}elsept=pt->next;while (pt!=NULL){ if(pt->age= = iage){ p->next=pt->next;find=I;}elsep=pt;pt=pt->next;}if(!find)printf(“not found\n”);4p=head;while(p!=NULL){ printf(“%4s%8s”,p->num,p->name);printf(“%6s%6d\n,p->sex,p->age);p=p->next;}3.建立一个链表,每个结点包括:学号、姓名、性别、年龄。
输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,将此结点删去5。