数据类型、运算符与表达式练习题课堂答案
C语言数据类型与表达式习题及答案
第一章数据类型,运算符与表达式一.选择题1.不合法的常量是 A 。
A)‘/2’B) “”C)‘’D)“483”2. B 是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char3.在以下各组标识符中,合法的标识符是(1) A ,(2) C ,(3) D 。
(1)A)B01 B)table_1 C)0_t D)k%Int t*.1 W10 point (2)A)Fast_ B)void C)pbl D)<book> Fast+Big abs fabs beep (3)A)xy_ B)longdouble C)*p D)CHAR 变量1 signed history Flaut4. 不属于合法的C语言长整型常量的是 C 。
A)5876273 B)0L C)2E10 D)(long)5876273 7.下面选项中,均是合法浮点数的是 B 。
A)+1e+1 B)-0.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-403e2 -8e5 +2e-1 5.e-0 8.在C语言中,要求参加运算的数必须是整数的运算符是 C 。
A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以 D 形式存放。
A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是 C 。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=7+b,b++,a+7;D)a=7+b = c=a+7;11. B 是非法的C语言转义字符。
A)‘\b’B)‘\0xf’C)‘\037’D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, B 是正确的。
A)语法错误B)f为5.0 C)f为0.0 D)f为2.013.与代数式x yu v⨯⨯不等价的C语言表达式是 A 。
第2章_数据类型运算符及表达式--参考答案
C) double型D)不确定
C
13. C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种
C
14.若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:
1、一个C语言的执行是从:()
A)本程序的主函数开始,到本程序的主函数结束
B)本程序的第一个函数开始,到本程序的最后一个函数结束
C)本程序的主函数开始,到本程序的最后一个函数结束
D)本程序的第一个函数开始,到本程序的主函数结束
A
2.以下叙述正确的是:
A)在C程序中,主函数必须位于程序的最前面
B)在C程序中,一行只能写一条语句
C) 3*a*e/b*c D) a*e/c/b*3
C
28.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:
A) 0 B)语法错
C) 1 D) "假"
C
29.若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是:
A) 5.5 B) 5
C) 3 D) 4.0
A
37.下面程序的输出的是
main()
{int x=10,y=3;
printf("%d\n",y=x/y);
}
A) 0 B)1 C) 3 D)不确定的值
C
38.若有说明和语句
int a=5;
a++;
C语言程序设计习题解答
《C语言程序设计》习题解答第二章数据类型、运算符和表达式一、简答题:1.常量有数值常量、字符常量、字符串常量和符号常量;字符u、l和f主要是对数值常量进行修饰。
字符u和l对整型常量进行修饰:表明常量是否是unsigned类型以及是否是long型;字符l对实型常量进行修饰:表明常量之是否是float类型。
2.字符常量用单引号‘’界定单个字符,内存空间只占一个字节;字符串常量用双引号界定零个或多个字符,字符串常量的结尾都有一个结束字符‘\0’。
3.&&、||和!是构成逻辑表达式的逻辑运算符,表达式运算结果是0(真)或1(假);&、|和~是位操作运算符中的逻辑为运算符,对整型操作数的二进制位进行运算,结果为整型值。
4.表达式在计算中根据运算符的优先级和结合型进行运算,在计算过程中要求运算符的两个操作数类型必须相同,根据数据类型之间的隐式转换规则对操作数的类型进行转换,最后运算符运算结果的类型就是表达式值的类型。
5.类型转换有隐式转换和显示转换。
隐士转换是在计算过程中根据隐士转换规则进行;显示转换利用强制转换运算符进行;在赋值运算中,表达式右边值得类型都强制转换成左边变量的类型。
二、选择题:(1)D (2)B (3)D (4)D (5)B (6)D (7)D (8)C (9)C (10)C (11)C (12)A(13)A(14)D (15)A(16)A、C (17)A(18)A(19)9 (20)A三、计算表达式的值:1.(1)24 (2)10 (3)96 (4)0 (5)0 (6)02.(1)5 (2)10 (3)403.(1)0 (2)1 (3)3 (4)16 (5)14.(1)3.500000 (2)3.0000005.(1)6 (2)6 (3)0 (4)0四、写出给出式子的C语言表示形式:1.x*x+3*x+12.(a*x+b)/(c*y+d)*(m*x*x+n*y*y)3.sqrt(4*x*x*x+5*x*x+x+3)4.sin(x+0.5)*sin(x+0.5)+3*cos(2*x+4)5.(a/x)/(a/(a+y)+b/(a+b/z))6.labs(3-exp(x)*ln(1+x))第三章简单程序设计一、简答题:(略)二、选择题:(1)C (2)D (3)C (4)B (5)B (6)D (7)D (8)C (9)A(10)A三、编程实现1.void main(){int a,b;int min;printf("please input two integer data:");scanf("%d%d",&a,&b);min=a>b?b:a;printf("the min is : %d\n",min);}2.void main(){float f;printf("please input float data:");scanf("%f",&f);printf("the data is %.2f\n",f);}3.void main(){char ch;printf("please input char:");scanf("%c",&ch);printf("the three characters are:%c,%c,%c.\n",ch-1,ch,ch+1); }4.#include<math.h>void main(){float a,b,c;float l,mid,area;printf("please input three eadge:");scanf("%f%f%f",&a,&b,&c);l=0.5*(a+b+c);mid=l*(l-a)*(l-b)*(l-c);area=sqrt(mid);printf("area is :%f\n",area);}第四章数组一、简答题:(略)二、选择题:(1)C (2)A(3)C (4)B (5)D (6)B (7)C (8)B (9)A(10)B (11)C (12)C三、编写程序:1.#include <string.h>#define LEN 128void main(){char str1[LEN],str2[LEN];int len1,len2;printf("please input first string:\n");gets(str1);printf("please input second string:\n");gets(str2);len1=strlen(str1);len2=strlen(str2);if(len1>len2)printf("the string is:%s\n",str1);if(len1<len2)printf("the string is:%s\n",str2);if(len1==len2){if(strcmp(str1,str2)>0)printf("the string is:%s\n",str1);elseprintf("the string is:%s\n",str2);}}2.#include<string.h>#define LEN 128void main(){char str1[LEN],str2[LEN];puts("please input first string:");gets(str1);puts("please input second string:");gets(str2);strcat(str1,str2);printf("the sresult is:\n%s\n",str1); }第五章基本语句各小题的参考程序如下:1.#define PI 3.14159void main(){float r,h;float s,v;printf("please input r and h:");scanf("%f%f",&r,&h);s=PI*r*r;s+=2*PI*PI*r*h;v=1.0/3*PI*r*r*h;printf("the area is %f\n",s);printf("the volume is %f\n",v); }2.void main(){float x;int y;printf("input x:");scanf("%f",&x);if(x>0)y=1;elseif(x==0)y=0;elsey=-1;printf("y is %d\n",y);}3.void main(){int flag=0;int data;printf("input data:");scanf("%d",&data);if(data%3==0)flag++;if(data%5==0)flag++;if(data%7==0)flag++;switch(flag){case 0: printf("can\'t divided by anyone!\n");break;case 1: printf("can divided by one data!\n");break;case 2: printf("can divided by two data!\n");break;case 3: printf("can divided by three data!\n");}}4.#include<math.h>void main(){float a,b,c;float l,s;printf("input a,b and c:");scanf("%f%f%f",&a,&b,&c);if(a+b>c&&fabs(a-b)<c){l=(a+b+c)/2;s=sqrt(l*(l-a)*(l-b)*(l-c));printf("the area of triangle is %f.\n",s);}elseprintf("can\'t construct triangle.\n");}5.#include<math.h>void main(){float m,n,k;float det,x1,x2;printf("input m,n,k:");scanf("%f%f%f",&m,&n,&k);det=n*n-4*m*k;if(det>=0){det=sqrt(det);x1=(-n+det)/(2*m);x2=(-n-det)/(2*m);if(det){printf("the first root is %f.\n",x1);printf("the second root is %f.\n",x2);}elseprintf("the root is %f.\n",x1);}else{det=sqrt(-det);x1=-n/(2*m);x2=det/(2*m);x2=fabs(x2);printf("the fisrt virtual root is %f+%fi.\n",x1,x2);printf("the scond virtual root is %f-%fi.\n",x1,x2);}}6.void main(){float a,b,result;char ch;printf("please input expression:");scanf("%f%c%f",&a,&ch,&b);switch(ch){case '+':result=a+b;break;case '-':result=a-b;break;case '*':result=a*b;break;case '/': if(b){ result=a/b;break;}else{ printf("Divided Zero!\n");return;}default: printf("expression Error!\n");return;}printf("%f%c%f=%f.\n",a,ch,b,result);}7.void main(){int n,num[6];int i,x;printf("please input num of data:");scanf("%d",&n);printf("input data:\n");for(i=0;i<n;i++){scanf("%d",&x);if(x>0&&x<=5)num[x]++;}printf("the result is:\n");for(i=1;i<=5;i++)printf("the num of %d is %d.\n",i,num[i]); }8.void main(){int n,i;double fac=1;printf("input n:");scanf("%d",&n);for(i=1;i<=n;i++)fac*=i;printf("%d!=%.0f\n",n,fac);}9.void main(){float a,b,temp;float s;int i;a=1,b=2;for(i=1,s=0;i<=30;i++){s+=b/a;temp=b;b=a+b;a=temp;}printf("the result is %f.\n",s);}10.void main(){float avg_age=0,avg_score=0;float age,score;int num=0;printf("input age and score:\n");scanf("%f%f",&age,&score);while(age!=-1){avg_age+=age;avg_score+=score;num++;printf("input age and score:\n");scanf("%f%f",&age,&score);}printf("the average age is %.1f.\n",avg_age/num);printf("the average score is %.1f.\n",avg_score/num); }11.void main(){int n1=0,n2=0,n3=0;int x,max,min;int i;printf("please input ten data:\n");scanf("%d",&x);max=min=x;if(x>0)n1++;elseif(x==0)n2++;elsen3++;for(i=1;i<10;i++){scanf("%d",&x);if(min>x)min=x;if(max<x)max=x;if(x>0)n1++;elseif(x==0)n2++;elsen3++;}printf("the max is %d.\n",max);printf("the min is %d.\n",min);printf("the num of positive is %d.\n",n1);printf("the num of Zero is %d.\n",n2);printf("the num of negative is %d.\n",n3);}12.void main(){int n;double num1=1,num2=1;printf("input n:");scanf("%d",&n);while(n-->0){num1*=3;num2/=3;}printf("the result1 is %f.\n",num1);printf("the result2 is %f.\n",num2);}13.#include<stdio.h>void main(){char* s[9]={"one","two","three","four","five","six","seven","eight","nine"};long d;int num[10],i=0,j;printf("input data:");scanf("%ld",&d);while(d){num[i++]=d%10;d=d/10;}for(j=i-1;j>=0;j--)printf("%s ",s[num[j]-1]);putchar('\n');}14.void main(){float pi;int n,flag;for(pi=1,n=2,flag=-1;1.0/(2*n-1)>1.0e-6;n++,flag*=-1) pi+=flag*1.0/(2*n-1);printf("pi=%f\n",4*pi);}15.void main(){int x,i;int count,sum;for(i=1,count=0,sum=0;i<=500;i++)if(i%3==2&&i%5==3&&i%7==2){count++;sum+=i;printf("%5d",i);if(count%5==0)printf("\n");}printf("the sum is %d.\n",sum);}16.#include<stdio.h>void main(){char ch;int ch_num=0,dig_num=0,other=0;printf("please input string:\n");while((ch=getchar())!='!')if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')ch_num++;elseif(ch>='0'&&ch<='9')dig_num++;elseother++;printf("the num of character is %d.\n",ch_num);printf("the num of number is %d.\n",dig_num);printf("the num of other character is %d.\n",other);}17.#define N 6void main(){int i,j;for(i=1;i<=N;i++){for(j=1;j<=N-i;j++)printf("%c",' ');for(j=1;j<=i;j++)printf("* ");printf("\n");}for(i=1;i<=N-1;i++){for(j=1;j<=i;j++)printf("%c",' ');for(j=1;j<=N-i;j++)printf("* ");printf("\n");}}18.#define N 6void main(){int i,j;for(i=1;i<=N;i++){for(j=1;j<=2*i;j++)printf(" ");for(j=1;j<=i;j++)printf("# ");printf("\n");}}19.#include<stdio.h>void main(){int flag=0,num=0;char ch;printf("input expression:");while((ch=getchar())!=';'){if(ch=='(')num++;if(ch==')'){num--;if(num<0&&!flag)flag++;}}if(num==0&&!flag)printf("it\'s OK!\n");if(num>0 && !flag)printf("the num of \'(\' more than \')\'!\n");if(flag&&num>=0)printf("the \')\'is prior of \'(\'!\n");if(flag&& num<-1)printf("the \')\'is prior of \'(\'! and the num of \')\' more than \'(\'!\n"); }20.void main(){long d;int sum=0;printf("input data:");scanf("%ld",&d);while(d){sum+=d%10;d/=10;}printf("the sum of %ld is %d.\n",d,sum);}21.#define N 4void main(){float sc[N][6];float avg[2][N],t;int i,j,no;printf("please input No. and scores:\n");printf("No. s1 s2 s3 s4 s5\n");for(i=0;i<N;i++)for(j=0;j<6;j++)scanf("%f",&sc[i][j]);for(i=0;i<N;i++){for(j=1;j<6;j++)avg[0][i]+=sc[i][j];avg[0][i]/=5;avg[1][i]=i;}for(i=0;i<N-1;i++)for(j=i+1;j<N;j++){if(avg[0][i]<avg[0][j]){t=avg[0][i];avg[0][i]=avg[0][j];avg[0][j]=t;t=avg[1][i];avg[1][i]=avg[1][j];avg[1][j]=t;}}printf("the result is :\n");printf("NO. g1 g2 g3 g4 g5 avg\n"); for(i=0;i<N;i++){no=(int)avg[1][i];printf("%3.0f",sc[no][0]);for(j=1;j<6;j++)printf("%6.1f",sc[no][j]);printf("%6.1f\n",avg[0][i]); }}22.#include<stdio.h>#define N 3void main(){int array[N][N];int max,min;int max_index[2][N*N];int min_index[2][N*N];int i,j,max_flag,min_flag; printf("input array:\n");for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&array[i][j]); max=min=array[0][0];max_flag=min_flag=0;for(i=0;i<N;i++)for(j=0;j<N;j++){if(max<=array[i][j]){if(max<array[i][j]){max_flag=0;max=array[i][j];}max_index[0][max_flag]=i;max_index[1][max_flag]=j;max_flag++;}if(min>=array[i][j]){if(min>array[i][j]){min_flag=0;min=array[i][j];}min_index[0][min_flag]=i;min_index[1][min_flag]=j;min_flag++;}}printf("the max value is %d,",max);printf("it\'s index:");for(i=0;i<max_flag;i++)printf("(%d,%d),",max_index[0][i],max_index[1][i]); putchar('\b');putchar('\n');printf("the min value is %d,",min);printf("it\'s index:");for(i=0;i<min_flag;i++)printf("(%d,%d),",min_index[0][i],min_index[1][i]); putchar('\b');putchar('\n');}23.#define N 100void main(){int data[N];int num=0,equ,i,j;int x;int chioce;printf("input chioce:");scanf("%d",&chioce);while(chioce){if(chioce==1){printf("input insert data:");scanf("%d",&x);for(i=0;i<num;i++)if(x<data[i])break;for(j=num;j>i;j--)data[j]=data[j-1];data[i]=x;num++;printf("inserted %d!\n",x);}elseif(chioce==2){printf("input deleted data:");scanf("%d",&x);for(i=0;i<num;i++)if(data[i]==x)break;for(j=i;j<num;j++)if(x<data[j])break;equ=j-i;for(j=i;j<num-equ;j++)data[j]=data[j+equ];num-=equ;printf("deleted %d,the num of %d is %d!\n",x,x,equ);}elseif(chioce==3){printf("the list of data:\n");for(i=0;i<num;i++)printf("%5d",data[i]);printf("\n");}elseprintf("input error!\n");printf("input chioce:");scanf("%d",&chioce);}}24.#include<string.h>#define N 128void main(){char str1[N],str2[N];int m,n;printf("input string:\n");gets(str1);n=strlen(str1);printf("input the begin pos of copy: ");scanf("%d",&m);if(m>n)str2[0]='\0';elsestrcpy(str2,str1+m);printf("the second string is:%s\n",str2); }第六章程序设计方法各小题参考程序如下:1.void main(){int a,b,c;int gc,md;printf("input a,b,c:");scanf("%d%d%d",&a,&b,&c);gc=a;while(1){if(a%gc==0&&b%gc==0&&c%gc==0)break;gc--;}md=a*b*c/gc;printf("the greatest command is %d.\n",gc);printf("the minest command is %d.\n",md);}2.void main(){int i,j,data,t;int num[4];for(i=10;i<100;i++){data=i*i;j=0;t=data;while(data){num[j++]=data%10;data/=10;}if((num[1]+num[3]==10)&&(num[0]*num[2]==12)) printf("%5d",t);}}3.void main(){int i,t;int s,s1;for(i=100;i<=300;i++){t=i,s=0,s1=1;while(t){s+=t%10;s1*=t%10;t/=10;}if(s==12&&s1==42)printf("%5d",i);}}4.void main(){int i,j,k;int num[3],t,c=0;for(i=1;i<1000;i++){if(i%3==0){j=0,t=i;while(t){num[j++]=t%10;t/=10;}for(k=0;k<j;k++)if(num[k]==5)break;if(k<j){printf("%5d",i);c++;if(c%5==0)printf("\n");}}}}5.void main(){int a,b,c;printf("the result is:\n"); for(a=1;a<10;a++)for(b=0;b<10;b++)for(c=1;c<10;c++)if(a*101+b*20+c*101==1333)printf("%5d",a*100+b*10+c); }6.void main(){float e,ee;int i;e=1,ee=1;for(i=1;ee>1.0e-6;i++){ee/=i;e+=ee;}printf("e=%f\n",e);}7.void main(){int i,a,t,sum;printf("the result is:");for(i=100;i<1000;i++){sum=0,t=i;while(t){a=t%10;sum+=a*a*a;t/=10;}if(sum==i)printf("%5d",i);}}8.#define N 100void main(){int i,j,k,sum;int fac[N];for(i=1;i<1000;i++){sum=0,k=0;for(j=1;j<i;j++)if(i%j==0){sum+=j;fac[k++]=j;}if(sum==i){printf("%d\'s factors are: ",i);for(j=0;j<k-1;j++)printf("%d,",fac[j]);printf("%d.\n",fac[k-1]);}}}9.void main(){int i,j;printf("the result are: ");for(i=2;i<1000;i++){ j=i%10;if(j*j==i)printf("%5d",i);else{j=i%100;if(j*j==i)printf("%5d",i);}}}10.#define N 6void main(){int i,sum;sum=1;for(i=1;i<N;i++)sum=(sum+1)*2;printf("the num of cherry: %d.\n ",sum); }第七章函数一、选择题(1)A(2)B (3)A(4)A(5)B (6)D (7)A (8)B (9)B (10)C (11)A(12)D (13)A(14)B二、填空题(1)54(2)i=3,j=2,x=6i=2,j=3,x=4(3)i<=y;z=z*x;(4) 2 4 8 16 32(5)list(a,num-1);三、编写程序:各小题的参考程序如下:1.#define N 10void inverse(int a[],int n);void main(){int data[N];int i;printf("input %d data:\n",N);for(i=0;i<N;i++)scanf("%d",data+i);inverse(data,N);printf("the result after inversed:\n");for(i=0;i<N;i++)printf("%5d",data[i]);}void inverse(int a[],int n){int i,mid;int t;mid=(n-1)/2;for(i=0;i<=mid;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}2.long inverse(long );void main(){long data,data1;printf("input data:");scanf("%ld",&data);data1=inverse(data);printf("the result of inverse is %ld.\n",data1); }long inverse(long d){long d1=0;while(d){d1*=10;d1+=d%10;d/=10;}return d1;}3.#define N 50int change(int a[],int d,int n ){int i=0;while(d){a[i++]=d%n;d/=n;}return i;}void main(){int num[N];char ch[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'};int n,data,m;int i;printf("input data:");scanf("%d",&data);printf("input change mod:");scanf("%d",&n);m=change(num,data,n);printf("the result of %d mod with %d :",n,data);for(i=m-1;i>=0;i--)printf("%c",ch[num[i]]); printf("\n");}4.long n_dou(int n);void main(){long re;int d;printf("input n:");scanf("%d",&d);re=n_dou(d);printf("the result is: %ld.\n",re); }long n_dou(int n){if(n==0)return 0;return n*n+n_dou(n-1);}5.double ee(double exp){int i=1;double re=0,part_re=1;while(part_re>exp){re+=part_re;part_re*=(double)i/(2*i+1);i++;}return re*2;}void main(){double result,exp;printf("input exp:");scanf("%lf",&exp);result=ee(exp);printf("e=%lf.\n",result);}6.int max(int a,int b){return a>b?a:b;}#define MAX(x,y) ((x)>(y)?(x):(y))void main(){int a,b,c;int m,m1;printf("input data :");scanf("%d%d%d",&a,&b,&c);m=max(a,b);m=max(m,c);printf("the value of function :%d.\n",m);m1=MAX(a,b);m1=MAX(m1,c);printf("the value of Macro: %d.\n",m1);}7.#include<stdio.h>void cla(int days,int week_no){int i;printf(" mon wed thi tue fri sta sun\n"); for(i=1;i<week_no;i++)printf("%5c",' ');for(i=1;i<=days;i++){printf("%5d",i);week_no++;if(week_no==8){week_no=1;putchar('\n');}}putchar('\n');}int is_leap(int year){return ((year%4==0&&year%100!=0)||year%400==0); }void main(){int week_no,year;int i;int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; char str[10];printf("input year:");scanf("%d",&year);printf("input the first day\'s week_no: ");scanf("%d",&week_no);gets(str);if(is_leap(year))days[1]++;printf("the calandy of %d list:\n",year);for(i=0;i<12;i++){printf("the No. %d month:\n",i+1);cla(days[i],week_no);week_no+=days[i];week_no%=7;if(!week_no)week_no=1;printf("press ENTER continue...");getchar();}}8.int gcd(int a,int b){int g=a;while(1){if(a%g==0&&b%g==0)break;g--;}return g;}void main(){int gg;int a, n,i;printf("input the num of data:");scanf("%d",&n);printf("input data:");scanf("%d",&gg);for(i=1;i<n;i++){scanf("%d",&a);gg=gcd(gg,a);}printf("the greatest commond data is:%d.\n",gg);}第八章指针一、选择题:(1)B (2)C (3)B (4)A(5)C (6)D (7)C (8)A (9)C (10)B (11)B (12)C (13)D (14)B (15)C二、分析程序运行结果:(1)5(2)1,2,3,3,5,4(3)100(4)Hello(5)k=33(6)12(7)defg,100(8)Look this!三、编写程序:各小题参考程序如下:1.#define N 10int max_value(int a[],int n,int index[],int* p ){int i;int flag=0;int max=a[0];for(i=0;i<n;i++){if(max<=a[i]){if(max<a[i])max=a[i],flag=0;index[flag++]=i;}}*p=flag;return max;}void main(){int data[N],index[N];int num,max,i;printf("input %d data:\n");for(i=0;i<N;i++)scanf("%d",data+i);max=max_value(data,N,index,&num);printf("the max data is %d,its index: ",max);for(i=0;i<num;i++)printf("%5d",index[i]);printf("\n");}2.#define N 10void print(int *a,int n){int i;int m=0;for(i=0;i<n;i++){printf("%5d",*(a+m));m+=2;if(m>=N)m=1;}}void main(){int data[N];int i;printf("input %d data:\n",N);for(i=0;i<N;i++)scanf("%d",data+i);print(data,N);}3.#include<stdio.h>#define N 128void main(){char str[N];char *p;int chap_num=0,lit_num=0,dit_num=0,bla_num=0,other=0; printf("input string:\n");gets(str);p=str;while(*p++){if(*p>='A'&&*p<='Z')chap_num++;elseif(*p>='a'&&*p<='z')lit_num++;elseif(*p>='0'&&*p<='9')dit_num++;if(*p==' '||*p=='\t'||*p=='\n')bla_num++;elseother++;}printf("the result list:\n");printf("the num of captal char: %d\n",chap_num); printf("the num of little char: %d\n",lit_num); printf("the num of digit char: %d\n",dit_num); printf("the num of blank char: %d\n",bla_num); printf("the num of other char: %d\n",other);}4.#define N 128void main(){char str[N],*p;int num=0,i;int data,d[N];printf("input string:");gets(str);p=str;while(*p){while(*p<'0'||*p>'9')p++;data=0;while(*p>='0'&&*p<='9'){data*=10;data+=*p-'0';p++;}d[num++]=data;}printf("the data num is %d,its are:\n",num);for(i=0;i<num;i++)printf("%8d",d[i]);}5.#define N 128#include<stdio.h>char* str_mcpy(char* str1,char* str2,int m){char *p,*p1;int len;p1=str2;len=strlen(str1);if(len<m)*str2='\0';else{p=str1+m;while(*p1++=*p++);}return str2;}void main(){char str[N],str1[N];int beg_pos;printf("input string:");gets(str);printf("input begin pos:");scanf("%d",&beg_pos);str_mcpy(str,str1,beg_pos);printf("str2 is:%s.\n",str1);}6.void main(){char* s[7]={"Mon","Wen","Thi","Tue","Fri","Sat","Sun"}; int no;printf("input No:");scanf("%d",&no);printf("the English name of %d :%s.\n",no,s[no-1]);}7.#define N 4#include<string.h>#include<stdio.h>void main(){char* s[N]={"Hello!","Word","Are","you"};int i,j;char* p;for(i=0;i<N-1;i++)for(j=i+1;j<N;j++){if(strcmp(s[i],s[j])<0) p=s[i],s[i]=s[j],s[j]=p;}for(i=0;i<N;i++)puts(s[i]);}第九章结构体与共用体一、选择题:(1)C (2)A(3)B (4)D (5)C (6)D (7)A(8)C 二、编写程序:各小题参考程序如下:1.#include<stdio.h>#define N 10struct book{char name[50];float price;};void main(){struct book b[N];int max,min,i;printf("input %d prices and names:\n",N);for(i=0;i<N;i++){scanf("%f",&(b[i].price));gets(b[i].name);}max=min=0;for(i=1;i<N;i++){if(b[i].price>b[max].price)max=i;if(b[i].price<b[min].price)min=i;}printf("the highest price book is:%s,%f.\n",b[max].name,b[max].price);printf("the lowest price book is:%s,%f.\n",b[min].name,b[min].price);}2.struct date{int year;int month;int day;};int is_leap(int y){return (y%4==0&&y%100!=0||y%400==0);}int change_day(struct date dd){int mons[12]={31,28,31,30,31,30,31,31,30,31,30,31};int i,days=0;if(is_leap(dd.year))mons[1]++;for(i=1;i<dd.month;i++)days+=mons[i-1];days+=dd.day;return days;}struct date change_date(int year,int days){int mons[12]={31,28,31,30,31,30,31,31,30,31,30,31};int i,d=0;struct date dd;if(is_leap(year))mons[1]++;for(i=0;d+mons[i]<days;i++)d+=mons[i];dd.year=year;dd.month=i+1;dd.day=days-d;return dd;}void main(){int y,days;struct date d;int chioce;do{printf("please input chioce(0,1,2):");scanf("%d",&chioce);switch(chioce){case 1:printf("input year, month and day:");scanf("%d%d%d",&d.year,&d.month,&d.day);printf("its days:%d\n.",change_day(d));break;case 2:printf("input year and days:");scanf("%d%d",&y,&days);d=change_date(y,days);printf("its date:%d/%d/%d.\n",d.year,d.month,d.day);}}while(chioce);}3.#define N 3#include<stdio.h>struct stu{int No;char name[20];int math,chinese,english;};void main(){struct stu s[N],t;float s_avg[3]={0};int i,j;printf("input %d datas:\n");printf("NO math chinese english name\n");for(i=0;i<N;i++){scanf("%d%d%d%d",&s[i].No,&s[i].math,&s[i].chinese,&s[i].english);gets(s[i].name);}for(i=0;i<N;i++){s_avg[0]+=s[i].math;s_avg[1]+=s[i].chinese;s_avg[2]+=s[i].english;}for(i=0;i<3;i++)s_avg[i]/=3;printf("average of each object:\n");printf("math:%.1f,chinese:%.1f,english:%.1f.\n",s_avg[0],s_avg[1],s_avg[2]); for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)if(s[i].math+s[i].chinese+s[i].english<s[j].math+s[j].chinese+s[i].english)t=s[i],s[i]=s[j],s[j]=t;printf("result list after sorted:\n");printf(" No Name math chinese english\n");for(i=0;i<N;i++)。
数据类型、运算符与表达式
一、选择题1. 本题序号:39在C语言中运算对象必须是整型的运算符是()A %B !C /D *参考答案A2. 本题序号:65下列关于C语言的叙述错误的是()A 大写字母和小写字母的意义相同B 不同类型的变量可以在一个表达式中C 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D 同一个运算符号在不同的场合可以有不同的含义参考答案A3. 本题序号:66在C语言中,错误的int类型的常数是()。
A 32768B 0C 037D 0xAF参考答案A4. 本题序号:330如果有整型变量x,浮点型变量y,双精度型变量z,则表达式y*z+x+y执行后的类型为()A 双精度B 浮点型C 整型D 逻辑型参考答案A5. 本题序号:374设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围是()A 0—255B 0—32767C 0—65535D 0--2147483647参考答案C6. 本题序号:380以下正确的叙述是()A 在C程序中,每行只能写一条语句;B 若a是实型数据,C程序中允许赋值a=10,因此实型变量中允许存放整型数;C 在C程序中,无论是整数还是实数,都能被正确无误的表示;D 在C程序中,%是只能用于整数的运算符;参考答案B7. 本题序号:406若有int q,p;以下不正确的语句是()A p*=3;B p/=q;C p+=3;D p&&=q;参考答案D8. 本题序号:429设有float x;则x是____变量。
A 整型B 实型C 字符型D 长型参考答案B9. 本题序号:460C语言中运算对象必须是整型的运算符是()A %=B /C =D <=参考答案A10. 本题序号:503不合法的十六进制数是()A oxffB 0xabcC 0x11D 0xbeef参考答案A11. 本题序号:507以下叙述中正确的是()A a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型数值;B 在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式;C 执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已经由原值改变为b的值,b的值由原值变为0;D 已有a=3,b=5;当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3;参考答案A12. 本题序号:576turbo c中int类型变量所占字节数是()A 1B 2C 3D 4参考答案B13. 本题序号:580正确的合法的定义变量的语句是A int ab_=086;B int _ab=0xE8C char a-b=…1‟;D float a3.b;参考答案B14. 本题序号:607以下选项中不属于C语言的类型的是A signed short intB unsigned long intC unsigned intD long short参考答案D15. 本题序号:690正确的字符串常量是A “ABCD”B {ABCD}C …ABCD‟D ABCD参考答案A16. 本题序号:694以下选项中属于C语言的数据类型是A 复数型B 逻辑型C 双精度型D 集合型参考答案17. 本题序号:695以下运算符中优先级最低的运算符是A &&B &C ||D =参考答案D18. 本题序号:769以下叙述中错误的是A 用户所定义的标识符允许使用关键字B 用户所定义的标识符应尽量做到“见名知意”C 用户所定义的标识符必须以字母或下划线开头D 用户定义的标识符中,大、小写字母代表不同标识参考答案A19. 本题序号:928以下不能定义为用户标识符的是A scanfB V oidC _3com_D int参考答案D20. 本题序号:945已定义c为字符型变量,则下列语句中正确的是()。
(完整版)【推荐】C语言各章节练习题(含答案)
一、C语言概述练习题选择1.一个C程序的执行是从 A 。
本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是 C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C.x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是 A 。
C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是 B 。
4.下列四组选项中,均是合法转义字符的选项是 A 。
\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是 A 。
“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是 D 。
A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是 B 。
数据类型、运算符与表达式练习题课堂答案
数据类型、运算符与表达式练习题课堂答案运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是(A)。
A.”a” B. {ABC} C. ?abc\0? D. ?a?2.下列数据中属于“字符串常量”的是(B )。
A.ABC B. “ABC” C. ?abc? D. ?a?3. 在PC机中,?\n?在内存占用的字节数是(A)。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff” 在内存占用的字节数是(C )。
A. 5B. 6C. 3D. 45.字符串”\”ABCD\””在内存占用的字节数是(C )。
A. 4B. 6C. 7D. 86. 在C语言中,合法的长整型常数是(AB )。
A. 0LB. 49627C. 0.054838743D. 2.1869e107.在C语言中,合法的短整型常数是(D )。
A. OLC. 40000D. 0x2a8.下列数据中不属于“字符常量”的是(D )。
A. …a?B. …\n?C. …\t?D. “a”9.char型常量在内存中存放的是(A)。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是(A )。
A. 1B. 0C. -1D. 出错11.在以下一组运算符中,优先级最高的运算符是(C )。
A. <=B. =C. %D. &&12.设整型变量i的值为3,则计算表达式i--表达式的值为(B )。
A. 0B. 3C. 2D. 表达式出错13.设整型变量i,j=3; 则计算表达式i=j++后i,j的值为(A )。
B. 6,6C. 4,6D. 6,415.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是(B )。
A. 3,3B. 5,4C. 4,5D. 6,616.sizeof(double)的结果值是( A )。
知识点一数据类型、运算符及表达式模拟练习(答案版)
知识点⼀数据类型、运算符及表达式模拟练习(答案版)模拟练习⼀(数据类型、运算符及表达式)※基础知识及数据类型1.⼀个C语⾔程序是由()组成。
(☆基础知识☆)A.主程序B.⼦程序C. 函数D.过程2.⼀个C程序总是从()开始执⾏。
(☆基础知识☆)A.程序的第⼀条执⾏语句B.主函数C.⼦程序D.主程序3.⼀个C语⾔程序()(☆基础知识☆)A.应当只包含⼀到多个主函数B.应当由两个主函数C.只能有⼀个主函数D.可以没有主函数4.C语⾔规定:在⼀个源程序中,main函数的位置()(☆基础知识☆)A.必须在最开始B.必须在系统调⽤的库函数的后⾯C.可以任意D.必须在最后5.C语⾔程序中,main()函数的特征是()(☆基础知识☆)A.可独⽴运⾏的程序B.必不可少的函数C.最先执⾏的函数D.具有前述三特征的函数6.以下叙述中正确的是()(☆基础知识☆)A.C语⾔的源程序不必通过编译就可以直接运⾏B.C语⾔中的每条可执⾏语句最终都将被转换成⼆进制的机器指令C.C源程序经编译形成的⼆进制代码可以直接运⾏D.C语⾔中的函数不可以单独进⾏编辑7.下⾯4组常量,合法的⼀组C语⾔常量是()(◆常量◆)A. O 0x10 2E+9 ‘a’ ‘ ’ ’B. 10 10L E1 ‘a’ ‘\0’8.下⾯不正确的字符串常量是()(◆常量◆)A. ‘abc’B. “12’ 12”C. “w”D. “ “9.以下选项中不正确的实型常量是()(◆常量◆)A. 2.6E-1B.0.8324eC.-78.8745D.456e-210.以下正确的实型常量是()(◆常量◆)A.2B.3.12e0.8C.e8D.5.6E-211.以下所列的C语⾔常量中,错误的是()(◆常量◆)A.0xFFB.1.2e0.5C.2LD.’\72’12.下列字符序列中,可⽤作C语⾔⽤户标识符的是()(◆标识符◆)A.enumB._123C.%asD.#age13.对下列标识符或表达形式,正确的是()(◆标识符◆)A.M.johnB.charC.3.2e0.8D.e814.下⾯标识符中,不合法的⽤户标识符是()(◆标识符◆)A . _charB . char C. ab D. a_b15.下⾯标识符中,合法的⽤户标识符是()(◆标识符◆)B. U-3C.2aD. static16.下⾯标识符中,合法的⽤户标识符为()(◆标识符◆)A.p#AdB.12aC.charD._int17.下列语句中正确的是()(◆数据类型◆)A.int s_1[]=”012345”;B.char s[3]={‘1’,’2’,’3’,’4’};C.char *string=”hello!”;D.ch=”how are you?”;18.设int类型的数据长度为2个字节,unsigned int类型数据的取值范围是()(◆数据类型◆)A.-32768~32767B. 0~255C.0~65535D.13019.在C语⾔中,int, char和short int三种类型变量所占⽤的内存⼤⼩是()(◆数据类型◆)A.均为2个字节B.由⽤户⾃⼰定义C.由所⽤机器的字长决定D.是任意的20.若有以下类型说明语句:(◆数据类型◆)char a; int b; float c; short int d;则表达式(c*b+a)*d的结果类型是() A.char B.int C.double D.float21.若已定义x和y为float 类型,则表达式:x=2,y=x+3/2的值是()(◆数据类型◆)A.4B. 3C.3.0D.3.522.若变量a是int类型,并执⾏了语句:a=’A’+1.6;,则正确的叙述是()(◆数据类型◆)A.a的值是字符CB.a的值是浮点型D.a的值是字符’A’的ASCII值加上123.以下选择中不属于C语⾔的类型的是()(◆数据类型◆)A.signedshortintB.unsignedlong intC.unsignedintD.longshort24.下列程序(◆转义字符◆)void main(){printf(“_ab_c\t_de\rf\tg\n”);printf(“h\ti\b\bj_k\n”);} 执⾏后的结果是()A. fab_c___gdeB. fab_c___gdeC. fa__c___gdeD. fa__c___gdeh_______jik h_______ji_ h_______jik h_______ji_25.下列字符中,不正确的转义字符是()(◆转义字符◆)A.’\2’B.’\r’C.’\\’D.’\108’26.在C语⾔中,下列选项说法错误的是()(☆基础知识☆)A.main函数是程序的⼊⼝B.严格区分⼤⼩写C.可以进⾏位运算D.⼀个字符占两个字节27.以下不是C语⾔规定的保留字的是()(◆关键字(保留字)◆)A.typedefB.enumC.FloatD.static28.以下是C语⾔规定的保留字的是()(◆关键字(保留字)◆)A.typeefB.outC.closeD.static29.下列选项中,不合法的C语⾔关键字是()(◆关键字(保留字)◆)A.voidB.char30.对于C语⾔程序中的变量,()是正确的。
C语言程序设计第2章数据类型与运算练习题及解答
C语⾔程序设计第2章数据类型与运算练习题及解答第2章数据类型和运算符习题及解答⼀.选择题。
1.下列是⽤户⾃定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语⾔规定⽤户标识符由英⽂字母、数字和下划线组成,且第⼀个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语⾔不允许⽤户将关键字作为标识符,⽽选项C)选项项中的int 是C语⾔的关键字。
语⾔中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语⾔的数据类型。
在C语⾔中,没有专门的逻辑型数据类型,可以⽤0和1来表⽰逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表⽰只给前⾯的3个成员赋值,后7个元素的值为0,所以,⼀共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表⽰时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含⼀个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第⼀个是错的,因为C语⾔规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进⽽可分解为两个表达式:b=c+2和a=b。
6.下列可⽤于C语⾔⽤户标识符的⼀组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语⾔规定标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符必须为字母或下划线,排除选项C)和D)。
(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档
一、选择题1. 可用作C语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A. 0B. ‘0’C. “0”D. 0.03. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。
A. 12B. 144C. 156D. 2885. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。
A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。
A. 15B. 26,15C. 15,26D. 267. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。
A. 1B. 0C. 与x值相同D. 与x值相反8. x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==510. 下面的哪个保留字不能作为函数的返回类型?( C ) 。
Java基础-数据类型和运算符试题及答案
02 数据类型和运算符习题一、选择题1.下列()是合法的标识符?(A)12class(B)void(C)-5(D)_blank2.下列()不是Java中的关键字?(A)if(B)sizeof(C)private(D)null3.下列()不是合法的标识符?(A)$million(B)$_million(C)2$_million(D)$2_million 4.下列选项中,()不属于Java语言的基本数据类型?(A)整数型(B)数组(C)浮点型(D)字符型5.下列关于基本数据类型的说法中,不正确的一项是()。
(A)boolean类型变量的值只能取真或假(B)float是带符号的32位浮点数(C)double是带符号的64位浮点数(D)char是8位Unicode字符6.下列关于基本数据类型的取值范围的描述中,正确的一个是()。
(A)byte类型的取值范围是-128~128 (B)boolean类型的取值范围是真或假(C)char类型的取值范围是0~65536(D)short类型的取值范围是-32767~327677.下列关于Java语言简单数据类型的说法中,正确的一项是()。
(A)以0开头的整数代表8进制整型常量(B)以0x或0X开头的整数代表8进制整型常量(C)boolean类型的数据作为类成员变量的时候,相同默认的初始值为true(D)double类型的数据占计算机存储的32位8.下列Java语句中,不正确的一项是()。
(A)int $e, a, b = 10;(B)char c, d = ‘a’;(C)float e = 0.0d;(D)double c = 0.0f;9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是()。
(A)byte的默认值是0(B)boolean的默认值是false(C)char类型的默认值是’0’(D)long类型的默认值是0.0L10.下列语句中不正确的一个是()。
C语言数据类型、运算符与表达式上机真题答案与解析
数据类型、运算符与表达式(7题)第1题:#include <stdio.h>#include <math.h>void main(){int x;/**/ float f; /**/ 定义一个变量来存放表达式的值,注意应定义成浮点型,因为结果包含小数printf("Input an integer: ");scanf("%d",&x);f = /**/ (fabs(x)-2)/(x*x+1) /**/ ; 表达式书写时注意分子分母用括号括起来printf("F(x)=%f\n",f);getch();}第2题:#include <stdio.h>main(){ int x;printf("Please input a number:\n");scanf("%d",/**/ &x /**/); 取地址符 & 不要忘了printf("%d*%d=%d\n", x,x,/**/x*x /**/);getch();}第3题:#include <math.h>#include <stdio.h>double fun1(double x){ /**/return (1+sin(x)+exp(x))/(1+x);/**/}void main(){clrscr();printf("fun1(0.76) = %8.3lf\n", fun1(0.76));printf("fun1(3.00) = %8.3lf\n", fun1(3.00));printf("fun1(3.76) = %8.3lf\n", fun1(3.76));}第4题:#include <math.h>#include <stdio.h>double fun1(double x){ /**/return (exp(x)+fabs(x-6))/(x+1.3);/**/}void main(){clrscr();printf("fun1(0.76) = %8.3lf\n", fun1(0.76));printf("fun1(3.00) = %8.3lf\n", fun1(3.00));printf("fun1(3.76) = %8.3lf\n", fun1(3.76));}第5题:#include <stdio.h>#include <math.h>/**/ double /**/ fun(float a,float b,float c)函数类型由返回值类型确定,因area 是float型所以可设为double或float型{float s,area ;s = /**/ (a+b+c)/2 /**/;根据题意可知s = s*(s-a)*(s-b)*(s-c);计算面积if( s < 0 ) 不能构成三角形的情况area = -1;elsearea = sqrt(s);return area ;}main(){float a,b,c,area;printf("Please input three numbers:\t");scanf("%f%f%f", &a,&b,&c );输入三边长,注意scanf格式,本题输入时不能用逗号隔开,应用空格或回车area = fun(a,b,c);调用fun函数,传递三边长,计算面积,并接收fun函数返回的面积存于area中printf("Area is: %.2f\n",area);getch();}第6题:19、求函数值补充程序ccon071.c,对函数f(x)=x2-2x+6,分别计算f(x+8)和f(sin x)的值。
第三章 数据类型、运算符与表达式 练习与答案
第三章数据类型、运算符与表达式[试题分类]:1.{下列程序执行后的输出结果是________________。
#define MA(x) x*(x-1)mian()\{int a=1,b=2;pirntf(“%d\n”,MA(1+a+b));\}}试题编号:E54749答案:8题型:填空题2.C语言中基本数据类型包括整型、实型、字符型。
()试题编号:E57279答案:正确题型:判断题3.{要得到下列结果:a, bA, B97,98,65,66请按要求完善程序。
main( )\{char c1,c2;c1=’a’;c2=’b’;printf(“%c,%c ”,c1,c2);printf(“%c,%c\n”, ___);printf(“%d,%d,%d,%d\n”,_c1,c2,c1-32,c2-32);\}}试题编号:E55118答案:c1-32,c2-32题型:填空题4.能表示“整型变量x的绝对值小于5”的表达式是___。
(注意本题答案中规定不得使用系统函数)。
试题编号:E55113答案:(x<5)&&(x>-5)题型:填空题5.设有定义"int a,b=10;",则执行语句"a=b<<2+1;"后a的值___。
试题编号:E55111答案:80题型:填空题6.设有定义"int x=4;",则表达式"x+=x*=x+1"的值是___。
试题编号:E55110答案:40题型:填空题7.有下列运算符:>>、&&、|、!=,优先级别最高的是___。
试题编号:E55109答案:>>题型:填空题8.用十进制来表示无符号短整型数据的数值范围是___。
试题编号:E55108答案:0~65535题型:填空题9.{设有以下变量说明语句char w='A';int x=10;float y=20;double z=30;则执行赋值语句x=w*x+z-y;之后x所得值的数据类是___。
C语言运算符与表达式的练习题答案
C语言运算符与表达式的练习题单项选择题(1)以下选项中,正确的 C 语言整型常量是(D)。
A. 32LB. 510000C. -1.00D. 567(2)以下选项中,(D)是不正确的 C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"(3)字符串的结束标志是(C)。
A. 0B. '0'C. '\0'D. "0"(4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。
A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(5)逻辑运算符中,运算优先级按从高到低依次为(D)。
A. && ! ||B. || && !C. && || !D. ! && ||(6)表达式!x||a==b 等效于(D)。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)(7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是(A)。
A. 0,0B. 0,1C. 1,0D. 1,1*(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。
A. 3B. 0C. 9D. -12(9)在以下一组运算符中,优先级最低的运算符是(D)。
A. *B. !=C. +D. =(10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。
A. 6B. 12C. 15D. 表达式出错(11)若已定义 x 和 y为double 类型,则表达式的值是(D)。
c语言第二章课后习题答案
第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。
(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。
(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。
(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。
(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。
(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。
(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。
(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。
第2章数据类型,运算符与表达式参考答案及解析
参考答案及解析一、选择题1. 答案:C【解析】C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。
2. 答案:C【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout 代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
因此,本题正确答案为C)。
3. 答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。
因为选项C)中的标识符的第一个字符为"&",所以选项C)为本题的正确答案。
4. 答案:A【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
C语言的标识符可以分为关键字、预定义标识符和用户标识符。
选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字,故本题答案为A)。
5. 答案:B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
6. 答案:C【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。
选项C)中goto和int是关键字,b-a中"-"不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。
7. 答案:B【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。
C语言(数据类型与运算符)习题与答案
一、单选题1、表达式:(int)((double)9/2)-(9)%2 的值是A.1B.0C.4D.3正确答案:D解析: D、整数除以整数,结果为整数2、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为A.0B.-10C.10D.20正确答案:B3、以下选项中,不能作为合法常量的是A.1.234e+4B.1.234e04C.1.234e0.4D.1.234e0正确答案:C解析: C、指数次数必须为整型4、下列选项中,不能用作标识符的是A.int_2_B.i_nt123C. _1234_D.2_int_正确答案:D5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是A.(1/2)*(a+b)*hB.h/2*(a+b)C.(a+b)*h/2D.(a+b)*h*1/2正确答案:A二、填空题1、若有定义语句:int a=5;,则表达式:a++ 的值是________。
正确答案:5解析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增1 2、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为 ________。
正确答案:1解析: %运算要求两数为整数,结果为整数3、设有语句char a='\072';则变量a最终获得________个字符?(仅填写具体阿拉伯数字)正确答案:1解析:这是一个转义字符4、一个float型变量占________个字节?(仅填写具体阿拉伯数字)正确答案:45、int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是________。
正确答案:0解析:关系运算只能两两判断。
C语言运算符与表达式训练附答案
逻辑表达式类型:与运算、 或运算、非运算
逻辑运算符:&&、||、!
逻辑表达式应用:条件判断、 循环控制
逻辑表达式注意事项:运算 符优先级、括号的使用
条件表达式定义
条件表达式的语法
条件表达式的应用
条件表达式的注意 事项
逗号表达式的定义 逗号表达式的语法结构 逗号表达式的执行顺序 逗号表达式的应用场景
编写一个C程序, 要求输入两个浮 点数,计算它们 的和、差、积、 商,并将结果输 出到屏幕上。
编写一个C程序, 要求输入一个字符 串和一个整数,将 字符串中的第几个 字符替换为指定的 字符,并将结果输 出到屏幕上。
编写一个C语 言程序,要求 实现两个数的 四则运算,并
输出结果。
编写一个C语言 程序,要求实 现一个简单的 计算器,可以 进行加减乘除
逻辑或(||):用于连接两个或多个条件,只要其中一个条件为真,结果就为真。
单击此处添加正文,文字是您思想的提炼,请言简意赅的阐述您的观点。单击此处添加正文, 文字是您思想的提炼,请言简意赅的阐述您的观点。
逻辑非(!):用于对一个条件取反,当条件为真时,结果为假;当条件为假时,结果为真。
单击此处添加正文,文字是您思想的提炼,请言简意赅的阐述您的观点。单击此处添加正文, 文字是您思想的提炼,请言简意赅的阐述您的观点。
条件运算符的语法:使用"?"和":"表示条件运算符的格式 条件运算符的执行顺序:先计算条件表达式,再执行相应的语句 条件运算符的应用示例:使用条件运算符进行条件判断和选择执行语句
注意事项:避免在条件表达式中过度嵌套条件运算符,以免影响代码可读性和性能
逗号运算符的定 义
逗号运算符的优 先级
1、c语言-数据类型与运算符(含答案)详解,推荐文档
1. 可用作 C 语言用户标识符的一组标识符是 (B )。
A. void defi ne +WORDB. a3. _b3 _123 YN C . for -abc Case D.2aDO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A. 0B. ‘0'C. “0”D. 0.0、选择题3. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 符。
A.空格或逗号 B.逗号或回车 C.逗号或分号4. 设” int a=12;”,则执行完语句” a+=a*a; ”后,a 的值是(C )。
A. 12 B. 144 C. 156 D. 288 (D)符号作为分隔D.空格或回车 5•假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于 1,则下列能正确表示代数 式1/abc 的表达式是( A )。
A. 1.0/a*b*c 6. 设” A. 15 7. 设x 是 A. 1 B. 1/(a*b*c ) C. 1/a/b/(float )c D. 1.0/a/b/c int a=15,b=26; ”,贝『’printf ( “ %d,%d ”,a,b );” 的输出结果是(C B. 26,15 C. 15,26 D. 26 个int 型的,y 的值为10,则表达式 x && y 的值为( B. 0 C.与x 值相同 D.与x 值相反 的相反表达式为( A B. x<=0 && x>10 D. x>0 && x>10 B )。
8. x>0 && x<=10 A. x<=0 || x>10 C. x<=0 || x<=10 9. x>0 || y==5的相反表达式为( A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5 10. 下面的哪个保留字不能作为函数的返回类型? A. void B. i nt 11. 假定a 为一个整型数组名,则元素 A. a+4 字符串” A. 6 假定下列 12. 13. B. a+8 a+b=12\n ”的长度为( B. 7 C. 8 x 和y 均为int 型变量, B.x++=y++ C. new a[4]的字节地址为C. a+16 B )。
(答案)数据类型、运算符与表达式
1 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为A) int B) float C) double D) 不确定2 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为A) D B) 68 C) 不确定的值D) C3 若有以下定义,则能使值为3的表达式是int k=7,x=12;A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)4 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为A) float B) char C) int D) double5 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为A) 0--255 B) 0--32767 C) 0--65535D) 0--21474836476 表达式18/4*sqrt(4.0)/8值的数据类型为A) int B) float C) double D) 不确定7若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A) (exp==0) B) (exp!=0)C) (exp= =1) D) (exp!=1)8 在C语言中,char型数据在内存中的存储形式是A) 补码B) 反码C) 原码D) ASCII码9 若运行时给变量x输入12,则以下程序的运行结果是void main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A) 0 B) 22 C) 12 D) 1010 sizeof(float)是A) 一个双精度型表达式B) 一个整型表达式C) 一种函数调用D) 一个不合法的表达式11 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A) 2.500000 B) 2.750000 C) 3.500000 D) 0.00000012 若有说明语句:char c='\72';则变量cA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法,c的值不确定13 在C语言中,int、char和short三种类型数据在内存中所占用的字节数A) 由用户自己定义B) 均为2个字节C) 是任意的D) 由所用机器的机器字长决定14 若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum 的值为A) 7 B) 8C) 9 D) 1015 设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -116 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.017 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10&&a<=0 D) a>=10‖a<=018 下列变量定义中合法的是A) short _a=1-.1e-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;19 下列程序执行后的输出结果是(小数点后只写一位)void main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.020 下列程序的输出结果是void main(){ double d=3.2; int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2 C) 0D) 3.0721 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 1222 有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A) true B) false C) 0 D) 123 设以下变量均为int类型,则值不等于7的表达式是A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y)D) (y=6,y+1,x=y,x+1)24 设有说明语句:char a='\72';则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法25 以下符合C语言语法的赋值表达式是//没有答案A) d=9+e+f=d+9 B) d=9+e,f=d+9C) d=9+e,e++,d+9 D) d=9+e++=d+726 有如下程序void main(){ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是A) 3 4 B) 4 2 C) 4 3 D) 3 327 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0B) 0.5 C) 1 D) 228 若变量a、i已正确定义,且i已正确赋值,合法的语句是A) a= =1 B) ++i; C) a=a++=5; D) a=int(i);29 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0D) 2.530 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b31 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型32 有如下函数调用语句//注:此题可以不做func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3B) 4 C) 5 D) 有语法错33 有以下程序void main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是A) 9,2 B) 10,2C) 9,1 D) 10,134 在C语言中,要求运算数必须是整型的运算符是A) / B) ++ C) != D) %35 下列四个选项中,均是C语言关键字的选项是A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type36 下列四组选项中,均不是C语言关键字的选项是A) define IF type B) getc char printfC) include scanf case D) while go pow37 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是A) 7 B) 8C) 6 D) 238 若x,i,j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32);A) 4 B) 16 C) 32D) 5239 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符40 有以下程序void main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";printf ("%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确B) b='\xbc';语句不正确C) d="\0127";语句不正确D) a='\';和c='\0xab';语句都不正确41 下面四个选项中,均是合法整型常量的选项是A) 160 -0xffff 011B) -0xcdf 01a 0xe C) -01 986,012 0668 D) -0x48a 2e5 0x42 有以下程序void main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是A) 1,1,2 B) 2,2,1 C) 2,2,2D) 2,2,343 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,044 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A) 0X0 B) 0x0 C) 0D) 0XABC45 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量46 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o\n",m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777 D) 32767,07777747 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现在下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头48 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<double49 下面四个选项中,均是不正确的八进制数或十六进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12350 以下正确的叙述是A) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,%是只能用于整数运算的运算符51 以下不正确的叙述是A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,APH和aph是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值52 已知各变量的类型如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3)B) a=a*3+2C) x%(-3) D) y=float(i)53 已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是A) x%(-3) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)54 下面不正确的字符串常量是A) 'abc'B) "12'12" C) "0" D) " "55 下面四个选项中,均是不合法的用户标识符的选项是A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int56 下面四个选项中,均是正确的八进制数或十六进制数的选项是A) -10 0x8f -011 B) 0abc -017 0xcC) 0010 -0x11 0xf1D) 0a12 -0x123 -0xa57 C语言中运算对象必须是整型的运算符是A) %=B) / C) = D) 〈=58 下面正确的字符常量是A) "c" B) '\\'' C) 'W' D) ''59 下面四个选项中,均是不合法的转义字符的选项是//注:此题无正确选项A) '\"' '\\' '\xf' B) '\1011' '\' '\a'C) '\011' '\f' '\}' D) '\abc' '\101' 'xlf'60 下面四个选项中,均是合法转义字符的选项是A) '\'' '\\' '\n'B) '\' '\017' '\"'C) '\018' '\f' 'xab' D) '\\0' '\101' 'xlf'61 下面四个选项中,均是合法的浮点数的选项是A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-062 下面四个选项中,均是不合法的浮点数的选项是A) 160. 0.12 e3 B) 123 2e4.2 .e5C) -.18 123e4 0.0 D) -e3 .234 1e363 下面四个选项中,均是不合法的整型常量的选项是A) -0f1 -0xffff 0011 B) -0xcdf 017 12,456C) -018 999 5e2 D) -0x48eg -068 03f64 下面四个选项中,均是正确的数值常量或字符常量的选项是A) 0.0 0f 8.9e '&' B) "a" 3.9e-2.5 1e1 '\"'C) '3' 011 0xff00 0a D) +001 0xabcd 2e2 50.65 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序运行后,m的值是A) 4 B) 3 C) 2 D) 166 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define67 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;68 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);69 以下选项中不属于C语言的类型的是A) signed short imt B) unsigned long intC) unsigned int D) long short70 以下程序段的输出结果是int a=1234;printf("%2d\n",a);A) 12 B) 34 C) 1234 D) 提示出错、无结果71 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是A) a的值是字符C B) a的值是浮点型C) 不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。
C语言练习-运算符和表达式
数据类型,运算符与表达式1. 单项选择题(1)以下字符串为标识符的是。
A. _MYB. 2_2222C. shortD. LINE 5【答】A(2)下列符号可以作为变量名的是。
A. +aB. *pC. _DAYD. next day【答】C(3)设c是字符变量,则以下表达式正确的是。
A. c=666B. c='c'C. c="c"D. c="abcd"【答】B(4)23+'m'+3.6-123.45/'b'的结果是型数据。
A. charB. doubleC. intD. long int【答】3.6和123.45均为double型,运算结果也是double型。
本题答案为B。
(5)若变量已正确赋值,以下符合C语言语法的表达式是。
A. a=a+7;B. a=7+b+c,a++C. int(12.3%4)D. a=a+7=c+b【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。
本题答案为B。
(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。
A. x=(x=1+2,x*2)B. x=y>2?6:5C. x=9-(--y)-(--y)D. x=y*(int)(4.8/2)【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。
本题答案为C。
(7)若定义int m=7,n=12;则能得到值为3的表达式是。
A. n%=(m%=5)B. n%=(m-m%5)C. n%=m-m%5D. (n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是(A)。
A.”a” B. {ABC} C. ‟abc\0‟ D. ‟a‟2.下列数据中属于“字符串常量”的是(B )。
A.ABC B. “ABC” C. ‟abc‟ D. ‟a‟3. 在PC机中,‟\n‟在内存占用的字节数是(A)。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff” 在内存占用的字节数是(C )。
A. 5B. 6C. 3D. 45.字符串”\”ABCD\””在内存占用的字节数是(C )。
A. 4B. 6C. 7D. 86. 在C语言中,合法的长整型常数是(AB )。
A. 0LB. 49627C. 0.054838743D. 2.1869e107.在C语言中,合法的短整型常数是(D )。
A. OLB. 0821C. 40000D. 0x2a8.下列数据中不属于“字符常量”的是(D )。
A. …a‟B. …\n‟C. …\t‟D. “a”9.char型常量在内存中存放的是(A)。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是(A )。
A. 1B. 0C. -1D. 出错11.在以下一组运算符中,优先级最高的运算符是(C )。
A. <=B. =C. %D. &&12.设整型变量i的值为3,则计算表达式i--表达式的值为(B )。
A. 0B. 3C. 2D. 表达式出错13.设整型变量i,j=3; 则计算表达式i=j++后i,j的值为(A )。
A. 3,4B. 6,6C. 4,6D. 6,415.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是(B )。
A. 3,3B. 5,4C. 4,5D. 6,616.sizeof(double)的结果值是( A )。
A.8 B. 4 C. 2 D. 出错17. 表达式“1?(0?3:2):(10?1:0)”的值是(B )。
A. 3B. 2C. 1D. 018.int a=0; if(a=1) a+=10; 结果a的值是(B )。
A. 0B. 11C. 10D. 出错21.int n; float f=13.8; 执行“n=((int)f)%3”后,n的值是(A )。
A. 1B. 4C. 4.333333D. 4.622.用十进制数表示表达式“12||012”的运算结果是(A)。
A. 1B. 0C. 14D. 1223.设有整型变量x=35,表达式“(x&&15)&&(x||15)”的值是(B )。
A. 0B. 1C. 15D. 3524.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是(D )。
A. ‟a‟&&‟b‟B. a<=bC. a||b+c&&b-cD. !((a<b)&&!c||1)28.以下选项中, D 是不正确的C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"29. 字符串的结束标志是 C 。
A. 0B. '0'C. '\0'D. "0"30. 逻辑运算符中,运算优先级按从高到低依次为 D 。
A. &&,!,||B. ||,&&,!C. &&,||,!D. !,&&,||31.表达式!x||a==b 等效于 D 。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)32. int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为 A 。
A. 2,3B. 2,0C. 3,0D. 3,233.设ch是char型变量,其值为'A',则下面表达式的值是 Bch=(ch>='A'&& ch<='Z')? (ch+32):chA. AB. aC. ZD. Z34.字符串"ABC"在内存占用的字节数是 BA. 3B. 4C. 6D. 836.下列不正确的转义字符是 CA. \\B. \'C. 074D. \043.下面正确的字符常量是( C )A.…c"B.'\\"C.'w'D."45.下面不正确的字符串常量是( A )A.'abc'B."12'12"C."0"D." "46.已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42;则以下不符合C语言语法的表达式是( A)A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=a*=3 A=A+(A=A-(A=A*3))48.以下不正确的叙述是( D )A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值49.以下正确的叙述是( D )A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C语程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符51.表达式18/4*sqrt(4.0)/8值的数据类型为(C )A.float B char C.double D.不确定53.设以下变量均为int类型,则值不等于7的表达式是( C)A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)54.C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是( A )。
A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义55.在C语言中,int、char和short三种类型数据所占的内存(C )。
A)均为2个字节B)由用户自己定义C)由所用机器的字长决定D)是任意的57.设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是(B )。
A)0至255 B)0至65535 C)-256至255 D)-32768至3276758.在C语言中,数字029是一个(A )。
A)八进制数B)十六进制数C)十进制D)非法数59.下列可以正确表示字符型常数的是(B )。
A)”a”B)'\t’C)”\n”D)29762.已知int i; float f; 正确的语句是(D )。
A)(int f)%i B)int(f)%i C)int(f%i) D)(int)f%i63.已知:char a; int b;float c; double d; 执行语句c=a+b+c+d; 后,变量c的数据类型是(C )。
A)int B)char C)float D)double64.已知:int i,a;执行语句“i=(a=2*3,a*5),a+6;后,变量i的值是(C )。
A)6 B)12 C)30 D)3665.已知:int i=5;执行语句i+= ++i;i的值是(C )。
A)10 B)11 C)12 D)A,B,C答案都不对67.已知:char c='A';int i=1,j;执行语句j=!c&&i++;则i和j的值是(D )。
A)1,1 B)1,0 C)2,1 D)2,068.已知:int x=1,y=2,z;则执行z=x>y?++x:++y;则z的值为(C )。
A)1 B)2 C)3 D)470.已知:int x=1,y;则y=++x* ++x的结果为(A )。
A)y=9 B)y=6 C)y=1 D)表达式是错误的71.已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为(A )。
A)0 B)1 C)4 D)572.选出使变量i的运行结果为4的表达式(D )。
A) int i=0,j=0;B) int i=1,j=0;(i=3,(j++)+i) j=i=((i=3)*2);C) int i=0,j=1;D) int i=1,j=1;(j==1)?(i=1):(i=3);i+=j+=2;73.已知:int x;则使用逗号运算的表达式“(x=4*5,x*5),x+25”的结果为(D),变量x的值为(A)。
(1)A)20 B)100 C)表达式不合法D)45(2)A)20 B)100 C)125 D)4574.执行下面的语句后x的值为(D )。
int a=14,b=15,x;char c='A';x=((a&&b)&&(c<'a'));A)TRUE B)FLASE C)0 D)175.若定义了int x ;则将x 强制转化为双精度类型应该写成(C )。
A)(double)x B)x(double) C)double(x) D)(x)double76.要判断char 型变量m 是否是数字字符,可以使用下列表达式( B )。
A)0<=m&&m<=9 B)'0'<=m&&m<='9'C)“0”<=m&&m<=“9” D)前3个答案都是错误的77.以下可用作用户标识符的是:( D )A) 12_a B) signed C) t-o D) _if78.以下不是关键字的标识符是:( C )A) continue B) char C) If D) default79.C 语言提供的合法的关键字是:( CD )A) swicth B) cher C) case D) void87.若变量已正确定义,以下不合法的赋值表达式是(B )A) a=1/b=2 B) ++(a+b)C) a=a/(b=5) D) y=int(a)+b88.若变量已正确定义,以下非法的表达式是( B )A) a/=b+c B) a%(4.0)C) a=1/2*(x=y=20,x*3) D) a=b=c89.设x 为int 类型,其值为11,则表达式(x++*1/3)的值是:AA) 3 B) 4 C) 11 D) 1290. 设a,b 均为double 型,且a=5.5;b=2.5;则表达式(int)a+b/b 的值是( D )A) 6.500000 B) 6 C) 5.500000 D) 6.00000091.若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( B )A) 1/(float)a*b*c B) 1/(a*b*c) C) 1.0/a/b/c D) 1/a/b/(float)c92. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是(A )A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z94. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( B )A) 7 B) 7.0 C) 2.0 D) 1.095.下面四个选项中,均是不合法的用户标识符的选项的是:(C )A. A p_o doB. float lao _AC. b-a goto intD._123 temp INT二、填空题1.符号常量的定义方法是 #define 符号常量名 符号常量的值 。