数据类型、运算符与表达式练习题课堂答案
- 格式:doc
- 大小:62.00 KB
- 文档页数:5
第一章数据类型,运算符与表达式一.选择题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 。
《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语言概述练习题选择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章数据类型与运算练习题及解答第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)。
一、选择题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 ) 。
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.下列语句中不正确的一个是()。
运算符与表达式练习题一、单项选择题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 符号常量名 符号常量的值 。