吉林大学C语言习题
- 格式:doc
- 大小:87.50 KB
- 文档页数:24
吉林大学C语言试题及答案吉林大学农学部2008-2009学年第一学期《C 语言程序设计》考试试卷(A 卷)(考试时间:120分钟,本卷共4页,共印820份一、选择题(本题共有15道小题,每道小题2分,满分30分)1.C 语言中,int 类型数据占2个字节,则long 类型数据占()A 、1个字节B 、2 个字节C 、3个字节D 、4个字节2.以下说法中正确的是()A 、C 语言程序总是从第一个定义的函数开始执行B 、在C 语言程序中,要调用的函数必须在main( )函数中定义 C 、C 语言程序总是从main( )函数开始执行D 、C 语言程序中的main( )函数必须放在程序的开始部分3.下面的程序会()main( ){ int x=3,y=0,z=0;if(x=y+z) printf(“****”); else printf(“####”);}A 、有语法错误不能通过编译 B 、输出****C 、可以通过编译,但不能通过连接,因而不能运行 D 、输出####4.以下程序的输出结果是() void func (int *a,int b []){ b [0]=*a+6; }main (){int a,b [5]; a=0; b [0]=3;func (&a,b ); printf ("%d \n",b [0]); } A )6 B )7 C )8D )95.以下程序的输出结果是()main( ){ int x=10,y=10,i; for(i=0;x>8;y=++i)printf(“%d %d ”,x--,y); }A 、 10 1 9 2B 、 9 8 7 6C 、10 9 9 0D 、10 10 9 16.有如下程序main( ){static int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)for(j=0;j<=i;j++) s+=a[i][j]; printf(“%d”,s); }该程序的输出结果是()A 、18B 、19C 、20D 、217.执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是( )。
《C语言程序设计》在线作业一满分标准答案《C语言程序设计》在线作业一1:下列关于指针定义的描述中错误的是()。
A:指针是一种变量,用于存放变量的地址。
B:指针变量的类型与它所指向的变量类型一致。
C:指针变量的命名规则与标识符相同。
D:定义指针时,标识符前的“*”号表示指针所指向的内容。
正确答案:D2:合法的字符型常数是()。
A:A'B:"A"C:65D:A正确答案:A3:设x,y,z,k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为()。
A:4B:16C:32D:52正确答案:C4:正确的用户标识符是()。
A:voidB:c5_b8C:forD:3a正确答案:B5:c语言中int型数-8在内存中的存储形式为()。
A:1111111111111000B:1000000000001000C:0000000000001000D:1111111111110111正确答案:A6:设int a [9], *p=a;则不能表示a [1]地址的表达式为()。
A:p+1B:a+1C:a++D:++p正确答案:C7:设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是()。
A:0B:4C:-4D:2正确答案:C8:对于struct ex{int x;float y;charz;}example;则下面的叙述中不正确的是()。
A:struct是结构体类型的关键字B:example是结构体类型名C:x,y,z都是结构体成员名D:struct ex是结构体类型正确答案:B9:设int x=3,y=4,z=5;则值为0的表达式是()。
A:x>y++B:x<=++yC:x!=y+z>y-zD:y%z>=y-z正确答案:A10:一个C语言程序是由()构成。
A:语句B:行号C:数据D:函数正确答案:D11:定义结构体的关键字是()。
第一章1.选择题(1)B(2)C(3)C(4)D(5)B(6)D(7)D(8)C2.填空题(1)函数一个主函数函数(2)/**/(3)连接3.程序设计题(1)#include<stdio.h>main(){printf(" *\n");printf("* S *\n");printf(" *\n");}(2)#include<stdio.h>main(){printf("******************\n");printf("Your are welcome!\n");printf("------------------\n");}第二章1.选择题(1)D(2)D(3)B(4)C(5)B(6)C(7)C(8)C(9)D(10)C(11)A(12)B (13)A(14)C(15)A (16)B(17)A(18)B(19)C(20)A(21)C(22)C2.填空题(1)①9②- 2③62④44.8(2)①10.5②73.1③7④7.2(3)"%6x""%o""%3c""%10.3f""%8s"(4)int a,b,c;&a,&b,&ctemp=a;c=temp;(5)49613112.程序设计题(1)#include<stdio.h>main(){double a,b,c,d;double aver=0.0;printf("\nPlease input four double number:");scanf("%lf%lf%lf%lf",&a,&b,&c,&d);aver=(a+b+c+d)/4;printf("\nThe average of the four double number is %lf",aver);}(2)#include<stdio.h>#define PI 3.14159main(){double r;double area=0,len=0;printf("\nPlease input r:");scanf("%lf",&r);area=PI*r*r;len=2*PI*r;printf("\n area=%lf,length=%lf",area,len);...}(3)#include<stdio.h>main(){float i,s;printf("\nPlease input data:");scanf("%f%f",&i,&s);s=s*(1+i);printf("\nI have %.2f yuan after one year.",s);}第三章1、选择题(1)C(2)C(3)A(4)C(5)D(6)A(7)C(8)A(9)B(10)D2、填空题(1)&m,&nm=n;n=temp;m,n(2)① 5 5 4②5 5 4③ 3 3 4(3)9i+1"%d",iprintf("\n");(4)73- 543932013、程序设计题(1)#include<stdio.h>#include<math.h>main()double a,b,c,d,det,a_2,real,imag,x1,x2;printf("Please enter a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);if(a==0&&b==0)printf("No root!\n");else if(a==0)printf("Line equation root is %.2lf\n",-c/b);else{d=b*b-4*a*c;det=sqrt(fabs(d));a_2=2*a;if(d<0){real=-b/a_2;imag=det/a_2;printf("The two root are:\n%.2lf+%.2lfi\n",real,imag);printf("and\n%.2lf-%.2lfi\n",real,imag);}else if(d==0)printf("Single real root is %.2lf:\n",-b/a_2);else{x1=-b/(a_2)+det/a_2;x2=-b/(a_2)+det/a_2;printf("The two real roots are :\n%.2lf\nand\n %.2lf\n",x1,x2);}}}(2)#include<stdio.h>main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}(3)#include<stdio.h>main(){float sum,product;int i,n,j;printf("\nEnter n\(4<=n<=20):");scanf("%d",&n);while(n>20||n<4){printf("\nEnter n again:");scanf("%d",&n);}sum=0;product=1;for(i=1;i<=n;i++){product=1;for(j=1;j<=i;j++)product=product*j;sum=sum+product;}printf("1!+2!+...+%d!=%.0f\n",n,sum);}第四章1、选择题(1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B 2、填空题(1)①int men[10] ;②float step[4]={1.9,-2.33,0,20.6};③_int grid[4][10] ;(2)①int m[10]={9,4,7,49,32,-5};②0 9③scanf("%d",m[1]);④m[0] =39;⑤m[0] =a[3]+a[5];(3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9(4)①int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8 (5)103、程序填空题(1)array[20]20&array[i ]20max=array[i];min=array[i];sum+array[i];sum/20(2)-5.77000021(3)ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI4、程序设计题(1)#define SIZE 100#include<stdio.h>void main(){int a[SIZE+1],i,j;for(i=2;i<=100;i++)a[i]=i;for(i=2;i<=100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%-4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}(2)#define S 14#include"stdio.h"void main(){int a[S][S],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=1;i<=n;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<=n;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=i;j++)printf(" %3d",a[i][j]);printf("\n");}}(3)#define SIZE 80#include<stdio.h>void main(){char str1[SIZE+SIZE],str2[SIZE];int i,j;puts("Please enter 2 string:");scanf("%s",str1);scanf("%s",str2);i=0;while(str1[i]!='\0')i++;j=0;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}(4)#define SIZE 80#include<stdio.h>#include<string.h>void main(){char string[SIZE];int len,i,j,flag;long number;puts("Please enter a digital string:");scanf("%s",string);len=strlen(string);if(string[0]=='-'){flag=-1;i=1;}else{flag=1;i=0;}number=string[i]-'0';for(i++;i<len;i++)number=number*10+(string[i]-'0');number=flag*number;printf("%d\n",number);}(5)#define SIZE 40#include<stdio.h>void main(){int m,n,i,j;float price[SIZE],sum;printf("\nPlease input M and N:");scanf("%d%d",&m,&n);m=m-n;printf("Please input %d price :",n);sum=0;for(i=0;i<n;i++){scanf("%f",&price[i]);sum=sum+price[i];}printf("Aver are %10.2f.",sum/n);while(m>0){for(i=0;i<n-1;i++)price[i]=price[i+1];printf("\nPlease input one price:");...scanf("%f",&price[n-1]);m--;sum=0;for(i=0;i<n;i++){sum=sum+price[i];}printf("Aber are %10.2f",sum/n);}}第五章3.选择题(1)C(2)D(3)C(4)B(5)A(6)A(7)A (8)B(9)A(10)B(11)A(12)A 4.填空题(1)整型(2)值传递地址传递(3)全局变量局部变量(4)自动变量静态变量寄存器变量外部变量(5)自动变量(6)15300(7)8121(8)x=3,y=4,n=7(9)5 65.程序设计题(1)#include<stdio.h>int gcd_recursion(int a,int b);void main(){int i,j;puts("\nPlease enter 2 integer");scanf("%d,%d",&i,&j);if(i<0||j<0){puts("\nData Error!Please enter 2 integer"); scanf("%d, %d",&i,&j);}elseprintf("gcd(%d,%d)=%d",i,j,gcd_recursion(i,j)); }int gcd_recursion(int a,int b){ int c,d;if(a<b){c=a;a=b;b=c;if(a%b==0)return b;elsed=gcd_recursion(b,a%b);}else if(a%b==0)return b;elsed=gcd_recursion(b,a%b);return d;}(2)#include<stdio.h>int delete_char(char c,char str[]);void main(){char str[10],c,i;puts("\nPlease enter a string:");gets(str);puts("Please enter a char you want to delete:");c=getchar();puts("Before deleted:");puts(str);puts("After deleted:");i=delete_char(c,str);puts(str);printf("There are %d characters deleted.",i);}int delete_char(char c,char str[]){ int i,j,total,k,sum;i=0;total=0;while(str[i]!='\0'){k=i;sum=0;while(str[k]==c){ k++;sum++;}total=total+sum;if(str[i]==c){ for(j=i;str[j+sum]!='\0';j++)str[j]=str[j+sum];str[j]='\0';}i++;}return total;}(3)#include<stdio.h>int max(int a,int b);void main(){int i,j,k;puts("\nPlease enter 3 integer:");scanf("%d,%d,%d",&i,&j,&k);printf("max is %d.",max(max(i,j),k));}int max(int a,int b){ if(a>b)return a;elsereturn b;}(4)#include<stdio.h>void int_string(long a,char str[]);void reverse(char c[],int size);void insert_space(char c[],int size);void main(){long i;char str1[10];puts("\nPlease enter 1 long interger:");scanf("%d",&i);int_string(i,str1);printf("digital string is %s",str1);}void int_string(long a,char str[]){int i=0;while(a!=0){str[i]=a%10+'0';a=a/10;i++;}str[i]='\0';insert_space(str,i);}void insert_space(char c[],int size){int i;c[2*size-1]='\0';for(i=2*(size-1);i>=2;i-=2){c[i]=c[i/2];c[i-1]=' ';}}(5)#include<stdio.h>long facto(long x);main(){int a;long factorial;printf("\nPlease enter a integer:");scanf("%d",&a);factorial=facto(a);printf("\nThe %d's jieceng is :%ld\n",a,factorial);}long facto(long x){if(x==1)return 1;elsereturn(x*facto(x-1));}(6)#include<stdio.h>float average(float math,float chinese,float english);main(){float score[3];float aver;printf("Please enter your score:math,chinese,english\n");scanf("%f,%f,%f",&score[0],&score[1],&score[2]);aver=average(score[0],score[1],score[2]);printf("Your average is %.2f\n",aver);}float average(float math,float chinese,float english){return(math+chinese+english)/3;}(7)#include<stdio.h>float max=0,min=0;float average(float arr[],int n){int i;float aver,sum=arr[0];max=min=arr[0];for(i=1;i<n;i++){if(arr[i]>max)max=arr[i];else if (arr[i<min])min=arr[i];sum=sum+arr[i];}aver=sum/n;return(aver);}main(){float score[10], aver;int i;printf("Please enter ten score:");for(i=0;i<10;i++)scanf("%f",&score[i]);aver=average(score,10);printf("max=%.2f\nmin=%.2f\naverage=%.2f\n",max,min,aver);}(8)#include<stdio.h>int fib(int n){if((n==1||n==2))return 1;elsereturn(fib(n-1)+fib(n-2));}void main(){int i;printf("\n");for(i=1;i<20;i++){printf("%-12d",fib(i));if(i%5==0)printf("\n");}}第六章1、选择题(1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B 2、填空题(1)a=10,b=20a=20,b=10(2)**pp=603、程序设计题(1 )#include<stdio.h>char *month_name(int n);void main(){int n;printf("\nPlease enter 1 integer:");scanf("%d",&n);printf("%d month :%s\n",n,month_name(n));}char *month_name(int n){static char*name[]={"illegal month","Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"};return ((n<1||n>12)?name[0]:name[n]);}(2)#include<stdio.h>#define N 10sort(int data[]){int i,j,min_a,temp;for(i=0;i<N;i++){min_a=i;for(j=i+1;j<N;j++)if(*(data+j)<*(data+min_a))min_a=j;if(min_a!=i){temp=*(data+min_a);*(data+min_a)=*(data+i);*(data+i)=temp;}}}main(){int i,j,data[N],temp;int min_a;printf("\nPlease input %d int:\n",N);for(i=0;i<N;i++)scanf("%d",&data[i]);sort(data);printf("After sorted:\n");for(i=0;i<N;i++)printf(" %d",data[i]);}(3)#include <stdlib.h>void reverse(char *c);void main(){char str[80];puts("Please enter 1 string\n");gets(str);reverse(str) ;puts("After reversed\n");puts(str);}void reverse(char *c){char *p,*q,temp;int size=0;for(p=c;*p!='\0';p++)size++;size=size/2;for(q=c,p--;q<c+size;q++,p--){temp=*q;*q=*p;*p=temp;}}(4)#include<stdio.h>#include<string.h>void sort(char *keyword[],int size);void print(char *keyword[],int size)void main(){char *keyword[]={"if","else","case","switch","do","whlie","for","break","continue"};sort(keyword,9);print(keyword,9);}void sort(char *keyword[],int size){int i,j,min_location;char *temp;for(i=0;i<size-1;i++){min_location=i;for(j=i+1;j<size;j++)if(strcmp(keyword[min_location],keyword[j])>0) min_location=j;if(min_location!=i){temp=keyword[i];keyword[i]=keyword[min_location];keyword[min_location]=temp;}}}void print(char *keyword[],int size){int i;for(i=0;i<size;i++)printf("\n%s",*(keyword+i));}(5)#include<stdio.h>void fun_char(char str1[],char str2[],char str3[]);void main(){char str1[80],str2[80],str3[80],c,i;printf("\nPlease enter 2 string:");scanf("%s%s",str1,str2);fun_char(str1,str2,str3);printf("Third string is %s.",str3);}void fun_char(char *str1,char *str2,char *str3){int i,j,k,flag;i=0,k=0;while(*(str1+i)!='\0'){j=0;flag=1;while(*(str2+j)!='\0'&&flag==1){if(*(str2+j)==*(str1+i)) flag=0;j++;}if(flag){*(str3+k)=*(str1+i); k++;}i++;}*(str3+k)='\0';}(6)#include<stdio.h>int count_word(char *str);void main(){char str1[80],c,res;puts("\nPlease enter a string:");gets(str1);printf("There are %d words in this sentence",count_word(str1)); }int count_word(char *str){int count ,flag;char *p;count=0;flag=0;p=str;while(*p!='\0'){if(*p==' ')flag=0;else if(flag==0){flag=1;count++;}p++;return count;}(7)#include<stdio.h>#include<string.h>char *encrypt(char *string);char *decrypt(char *string);main(){char item[80];char *point;char *pEncrypted;char *pDecrype;printf("Please enter the string need to encrypt:\n");gets(item);point=item;pEncrypted=encrypt(point);printf("\nThe string after encrypted is:\n%s\n",pEncrypted); pDecrype=decrypt(pEncrypted);printf("\nThe string after decrypted is:\n%s\n",pDecrype); free(pEncrypted);free(pDecrype);}char *encrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string-2;string++;q++;}*q='\0';return t;}char *decrypt(char *string)char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string+2;string++;q++;}*q='\0';return t;}第七章1、选择题(1)D(2)D(3)D(4)C(5)D(6)C(7)C(8)B(9)C(10)C(11)B(12)C (13)B(14)A(15)A (16)C2、程序分析题(1)Ling ning:19Langping:21Zhu jian hua:20(2 )2,65,A(3)1,2(4 )3.11000050(5 )audition time is 08:30:00(6 )99Xiaowang90873、程序设计题(1)#include<stdio.h>struct date{int day;int month;int year;}main(){int i,flag,dayth,day71;struct date d1;int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};day71=1;for(i=1;i<7;i++)day71=day71+month_day[i];puts("\nPlease enter year/month/day:");scanf("%d/%d/%d",&d1.year,&d1.month,&d1.day);dayth=d1.day;for(i=1;i<d1.month;i++)dayth=dayth+month_day[i];printf("%d days\n",day71-dayth);}(2)#include<stdio.h>main(){enum color{red,yellow,blue,white,black};enum color i,j,k,pri;int n,loop;n=0;for(i=red;i<=black;i++)for(j=red;j<=black;j++)if(i!=j){for(k=red;k<=black;k++)if((k!=i)&&(k!=j)){n=n+1;printf("%-4d",n);for(loop=1;loop<=3;loop++){switch(loop){case 1:pri=i;break;case 2:pri=j;break;case 3:pri=k;break;default: break;}switch(pri){case red:printf("%-10s","red");break;case yellow:printf("%-10s","yellow");break;case blue:printf("%-10s","blue");break;case white:printf("%-10s","white");break;case black:printf("%-10s","black");break;default: break;}}printf("\n");}}printf("\ntotal:%5d\n",n);}(3)#include<stdio.h>#define SIZE 5main(){struct staff{char name[20];int salary;int age;}attend[SIZE];struct staff *ap;putchar('\n');for(ap=attend;ap<attend+SIZE;ap++){printf("Please enter name salary and age:\n");scanf("%s%d%d",ap->name,&(ap->salary),&(ap->age));}for(ap=attend;ap<attend+SIZE;ap++){ap->age++;ap->salary*=(1+0.3);}for(ap=attend;ap<attend+SIZE;ap++)printf("\n%-10s %6d %3d",(ap->name),(ap->salary),(ap->age));}第八章1、选择题(1)A(2)D(3)B(4)A (5)D(6)B(7)B(8)C(9)B(10)B(11)C 2、填空题(1)#include(2)#define(3)3 5 5(4)a=4,b=13a=13,b=4(5)10(6)16(7)1000 10(8)10(9)the max value is 2(10)23、程序设计题(1)#define LETTER 1main(){ int i;char c;char str[80];printf("Please enter a string:");scanf("%s",str);i=0;while((c=str[i])!='\0'){i++;#ifdef LETTERif(c>='a'&&c<='z')c=c-32;#elseif(c>='A'&&c<='Z')c=c+32;#endifprintf("%c",c);printf("%d",(int)c);}}(2 )#include<stdio.h>#include "d:188011.c"#include "d:188012.c"#include "d:188013.c"int fmax(int x,int y,int z);int fmin(int x,int y,int z);int faver(int x,int y,int z);main(){int a,b,c;int max=0;int min=0;int average=0;printf("Please enter three number:");scanf("%d,%d,%d",&a,&b,&c);max=fmax(a,b,c);min=fmin(a,b,c);average=faver(a,b,c);printf("The max of the three number is: %d.\n",max);printf("The min of the three number is: %d.\n",min);printf("The average of the three number is %d.\n",average);}/*188011.c*/int fmax(int x,int y,int z){ int max;max=x;if(x<y) max=y;if(max<z)max=z;return(max);}/*188012.c*/int fmin(int x,int y,int z)...{ int min=x;if(min>y){min=y;if(min>z)min=z;}elsereturn min;}/*188013.c*/int faver(int x,int y,int z){int aver=0;aver=(x+y+z)/3;return aver;}第九章6.选择题(1)D(2)C(3)C(4)B(5)C(6)C(7)D(8)C(9)A(10)B 7.填空题(1)位逻辑运算移位运算(2)逻辑非(3)零(4)复合赋值(5)右对齐1(6)整8.程序设计题(1)#include<stdio.h>main(){unsigned a,b,c,d;puts("Please enter a:\n");...scanf("%o",&a);b=a>>4;c=~(~0<<4);d=b&c;printf("%o,%d\n%o,%d\n",a,a,d,d);}(2)struct bitsample{unsigned a: 2;unsigned b: 2;unsigned c: 2;int x:0;unsigned d: 4;unsigned f: 7;};第十章1、选择题(1)B(2)B(3)C(4)B(5)C(6)D(7)A (8)D(9)A (10)C(11)C(12)A 2、填空题(1)fputc('A',fp);fputs("Hello!",fp);(2)fscanf(fp,"%d,%d,%d",&a,&b,&c);(3)"r""w""a"3、程序填空题#include<stdio.h>score.txti+1"%s",namescanf("%d",&age);scanf("%f",&score);"%s,%d,%f\n"fclose(fp);...4、程序设计题(1 )#include<stdio.h>void main(){FILE *fp;char c;if((fp=fopen("d:\\write\\tc\\text1.txt","r"))==NULL){printf("can't open the file\n");exit(1);}else{for(c=getc(fp);c!=EOF;c=fgetc(fp))putchar(c);fclose(fp);}}(2 )#include<stdio.h>void main(){char b[10];FILE *f;int i;if((f=fopen("d:\\write\\tc\\file1.txt","rb"))==NULL)exit(0);else if(fread(b,1,10,f)!=10)printf("file read error!\n");for(i=0;i<=9;i++)printf("%c ",b[i]);fclose(f);}(3 )#include<stdio.h>void main(){char str[]="Welcome you";char display[15];FILE *fp;char c;if((fp=fopen("d:\\write\\tc\\file2.txt","w+"))==NULL) {puts("cannot open the file\n");exit(1);}else{ fputs(str,fp);rewind(fp);fgets(display,15,fp);puts(display);fclose(fp);}}(4 )#include<stdio.h>void main(){FILE *fp;char ch,filename[10];puts("please enter the filename:");scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL){puts("cannot open the file\n");exit(0);}ch=getchar();while(ch!='*'){fputc(ch,fp);putchar(ch);ch=getchar();}fclose(fp);}。
第一章1.选择题(1)B(2)C(3)C(4)D(5)B(6)D(7)D(8)C2.填空题(1)函数一个主函数函数(2)/**/(3)连接3.程序设计题(1)#include<stdio.h>main(){printf(" *\n");printf("* S *\n");printf(" *\n");}(2)#include<stdio.h>main(){printf("******************\n");printf("Your are welcome!\n");printf("------------------\n");}第二章1.选择题(1)D(2)D(3)B(4)C(5)B(6)C(7)C(8)C(9)D(10)C(11)A(12)B(13)A(14)C(15)A(16)B(17)A(18)B(19)C(20)A(21)C(22)C 2.填空题(1)①9②-2③62④44.8(2)①10.5②73.1③7④7.2(3)"%6x""%o""%3c""%10.3f""%8s"(4)int a,b,c;&a,&b,&ctemp=a;c=temp;(5)49613113.程序设计题(1)#include<stdio.h>main(){double a,b,c,d;double aver=0.0;printf("\nPlease input four double number:");scanf("%lf%lf%lf%lf",&a,&b,&c,&d);aver=(a+b+c+d)/4;printf("\nThe average of the four double number is %lf",aver);}(2)#include<stdio.h>#define PI 3.14159main(){double r;double area=0,len=0;printf("\nPlease input r:");scanf("%lf",&r);area=PI*r*r;len=2*PI*r;printf("\n area=%lf,length=%lf",area,len);}(3)#include<stdio.h>main(){float i,s;printf("\nPlease input data:");scanf("%f%f",&i,&s);s=s*(1+i);printf("\nI have %.2f yuan after one year.",s);}第三章1、选择题(1)C(2)C(3)A(4)C(5)D(6)A(7)C(8)A(9)B(10)D 2、填空题(1)&m,&nm=n;n=temp;m,n(2)①5 5 4②5 5 4③3 3 4(3)9i+1"%d",iprintf("\n");(4)73-543932013、程序设计题(1)#include<stdio.h>#include<math.h>main(){double a,b,c,d,det,a_2,real,imag,x1,x2;printf("Please enter a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);if(a==0&&b==0)printf("No root!\n");else if(a==0)printf("Line equation root is %.2lf\n",-c/b);else{d=b*b-4*a*c;det=sqrt(fabs(d));a_2=2*a;if(d<0){real=-b/a_2;imag=det/a_2;printf("The two root are:\n%.2lf+%.2lfi\n",real,imag);printf("and\n%.2lf-%.2lfi\n",real,imag);}else if(d==0)printf("Single real root is %.2lf:\n",-b/a_2);else{x1=-b/(a_2)+det/a_2;x2=-b/(a_2)+det/a_2;printf("The two real roots are :\n%.2lf\nand\n %.2lf\n",x1,x2);}}}(2)#include<stdio.h>main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}}(3)#include<stdio.h>main(){float sum,product;int i,n,j;printf("\nEnter n\(4<=n<=20):");scanf("%d",&n);while(n>20||n<4){printf("\nEnter n again:");scanf("%d",&n);}sum=0;product=1;for(i=1;i<=n;i++){product=1;for(j=1;j<=i;j++)product=product*j;sum=sum+product;}printf("1!+2!+...+%d!=%.0f\n",n,sum);}第四章1、选择题(1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B2、填空题(1)①int men[10] ;②float step[4]={1.9,-2.33,0,20.6};③_int grid[4][10] ;(2)①int m[10]={9,4,7,49,32,-5};②0 9③scanf("%d",m[1]);④m[0] =39;⑤m[0] =a[3]+a[5];(3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9(4)①int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8 (5)103、程序填空题(1)array[20]20&array[i ]20max=array[i];min=array[i];sum+array[i];sum/20(2)-5.77000021(3)ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI4、程序设计题(1)#define SIZE 100#include<stdio.h>void main(){int a[SIZE+1],i,j;for(i=2;i<=100;i++)a[i]=i;for(i=2;i<=100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%-4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}(2)#define S 14#include"stdio.h"void main(){int a[S][S],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=1;i<=n;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<=n;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=i;j++)printf(" %3d",a[i][j]);printf("\n");}}(3)#define SIZE 80#include<stdio.h>void main(){char str1[SIZE+SIZE],str2[SIZE];int i,j;puts("Please enter 2 string:");scanf("%s",str1);scanf("%s",str2);i=0;while(str1[i]!='\0')i++;j=0;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}(4)#define SIZE 80#include<stdio.h>#include<string.h>void main(){char string[SIZE];int len,i,j,flag;long number;puts("Please enter a digital string:");scanf("%s",string);len=strlen(string);if(string[0]=='-'){flag=-1;i=1;}else{flag=1;i=0;}number=string[i]-'0';for(i++;i<len;i++)number=number*10+(string[i]-'0');number=flag*number;printf("%d\n",number);}(5)#define SIZE 40#include<stdio.h>void main(){int m,n,i,j;float price[SIZE],sum;printf("\nPlease input M and N:");scanf("%d%d",&m,&n);m=m-n;printf("Please input %d price :",n);for(i=0;i<n;i++){scanf("%f",&price[i]);sum=sum+price[i];}printf("Aver are %10.2f.",sum/n); while(m>0){for(i=0;i<n-1;i++)price[i]=price[i+1];printf("\nPlease input one price:");scanf("%f",&price[n-1]);m--;sum=0;for(i=0;i<n;i++){sum=sum+price[i];printf("Aber are %10.2f",sum/n);}}第五章1.选择题(1)C(2)D(3)C(4)B(5)A(6)A(7)A(8)B(9)A(10)B(11)A(12)A2.填空题(1)整型(2)值传递地址传递(3)全局变量局部变量(4)自动变量静态变量寄存器变量外部变量(5)自动变量(6)15300(7)8121(8)x=3,y=4,n=7(9)5 63.程序设计题(1)#include<stdio.h>int gcd_recursion(int a,int b);void main(){int i,j;puts("\nPlease enter 2 integer");scanf("%d,%d",&i,&j);if(i<0||j<0){puts("\nData Error!Please enter 2 integer");scanf("%d, %d",&i,&j);}elseprintf("gcd(%d,%d)=%d",i,j,gcd_recursion(i,j)); }int gcd_recursion(int a,int b){ int c,d;if(a<b){c=a;a=b;b=c;if(a%b==0)return b;elsed=gcd_recursion(b,a%b);}else if(a%b==0)return b;elsed=gcd_recursion(b,a%b);return d;}(2)#include<stdio.h>int delete_char(char c,char str[]);void main(){char str[10],c,i;puts("\nPlease enter a string:");gets(str);puts("Please enter a char you want to delete:");c=getchar();puts("Before deleted:");puts(str);puts("After deleted:");i=delete_char(c,str);puts(str);printf("There are %d characters deleted.",i); }int delete_char(char c,char str[]){ int i,j,total,k,sum;i=0;total=0;while(str[i]!='\0'){k=i;sum=0;while(str[k]==c){ k++;sum++;}total=total+sum;if(str[i]==c){ for(j=i;str[j+sum]!='\0';j++)str[j]=str[j+sum];str[j]='\0';}i++;}return total;}(3)#include<stdio.h>int max(int a,int b);void main(){int i,j,k;puts("\nPlease enter 3 integer:");scanf("%d,%d,%d",&i,&j,&k);printf("max is %d.",max(max(i,j),k));}int max(int a,int b){ if(a>b)return a;elsereturn b;}(4)#include<stdio.h>void int_string(long a,char str[]);void reverse(char c[],int size);void insert_space(char c[],int size);void main(){long i;char str1[10];puts("\nPlease enter 1 long interger:");scanf("%d",&i);int_string(i,str1);printf("digital string is %s",str1);}void int_string(long a,char str[]){int i=0;while(a!=0)str[i]=a%10+'0';a=a/10;i++;}str[i]='\0';insert_space(str,i);}void insert_space(char c[],int size){int i;c[2*size-1]='\0';for(i=2*(size-1);i>=2;i-=2){c[i]=c[i/2];c[i-1]=' ';}}(5)#include<stdio.h>long facto(long x);main()int a;long factorial;printf("\nPlease enter a integer:");scanf("%d",&a);factorial=facto(a);printf("\nThe %d's jieceng is :%ld\n",a,factorial);}long facto(long x){if(x==1)return 1;elsereturn(x*facto(x-1));}(6)#include<stdio.h>float average(float math,float chinese,float english);main(){float score[3];float aver;printf("Please enter your score:math,chinese,english\n");scanf("%f,%f,%f",&score[0],&score[1],&score[2]);aver=average(score[0],score[1],score[2]);printf("Your average is %.2f\n",aver);}float average(float math,float chinese,float english){return(math+chinese+english)/3;}(7)#include<stdio.h>float max=0,min=0;float average(float arr[],int n){int i;float aver,sum=arr[0];max=min=arr[0];for(i=1;i<n;i++){if(arr[i]>max)max=arr[i];else if (arr[i<min])min=arr[i];sum=sum+arr[i];}aver=sum/n;return(aver);}main(){float score[10], aver;int i;printf("Please enter ten score:");for(i=0;i<10;i++)scanf("%f",&score[i]);aver=average(score,10);printf("max=%.2f\nmin=%.2f\naverage=%.2f\n",max,min,aver);}(8)#include<stdio.h>int fib(int n){if((n==1||n==2))return 1;elsereturn(fib(n-1)+fib(n-2));}void main(){int i;printf("\n");for(i=1;i<20;i++){printf("%-12d",fib(i));if(i%5==0)printf("\n");}}第六章1、选择题(1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B 2、填空题(1)a=10,b=20a=20,b=10(2)**pp=603、程序设计题(1)#include<stdio.h>char *month_name(int n);void main(){int n;printf("\nPlease enter 1 integer:");scanf("%d",&n);printf("%d month :%s\n",n,month_name(n));}char *month_name(int n){static char*name[]={"illegal month","Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"};return ((n<1||n>12)?name[0]:name[n]);}(2)#include<stdio.h>#define N 10sort(int data[]){int i,j,min_a,temp;for(i=0;i<N;i++){min_a=i;for(j=i+1;j<N;j++)if(*(data+j)<*(data+min_a))min_a=j;if(min_a!=i){temp=*(data+min_a);*(data+min_a)=*(data+i);*(data+i)=temp;}}}main(){int i,j,data[N],temp;int min_a;printf("\nPlease input %d int:\n",N);for(i=0;i<N;i++)scanf("%d",&data[i]);sort(data);printf("After sorted:\n");for(i=0;i<N;i++)printf(" %d",data[i]);}(3)#include <stdlib.h>void reverse(char *c);void main(){char str[80];puts("Please enter 1 string\n");gets(str);reverse(str) ;puts("After reversed\n");puts(str);}void reverse(char *c){char *p,*q,temp;int size=0;for(p=c;*p!='\0';p++)size++;size=size/2;for(q=c,p--;q<c+size;q++,p--) {temp=*q;*q=*p;*p=temp;}}(4)#include<stdio.h>#include<string.h>void sort(char *keyword[],int size);void print(char *keyword[],int size)void main(){char *keyword[]={"if","else","case","switch","do","whlie","for","break","continue"};sort(keyword,9);print(keyword,9);}void sort(char *keyword[],int size){int i,j,min_location;char *temp;for(i=0;i<size-1;i++){min_location=i;for(j=i+1;j<size;j++)if(strcmp(keyword[min_location],keyword[j])>0)min_location=j;if(min_location!=i){temp=keyword[i];keyword[i]=keyword[min_location];keyword[min_location]=temp;}}}void print(char *keyword[],int size){int i;for(i=0;i<size;i++)printf("\n%s",*(keyword+i));}(5)#include<stdio.h>void fun_char(char str1[],char str2[],char str3[]); void main(){char str1[80],str2[80],str3[80],c,i;printf("\nPlease enter 2 string:");scanf("%s%s",str1,str2);fun_char(str1,str2,str3);printf("Third string is %s.",str3);}void fun_char(char *str1,char *str2,char *str3) {int i,j,k,flag;i=0,k=0;while(*(str1+i)!='\0'){j=0;flag=1;while(*(str2+j)!='\0'&&flag==1){if(*(str2+j)==*(str1+i)) flag=0;j++;}if(flag){*(str3+k)=*(str1+i); k++;}i++;}*(str3+k)='\0';}(6)#include<stdio.h>int count_word(char *str);void main(){char str1[80],c,res;puts("\nPlease enter a string:");gets(str1);printf("There are %d words in this sentence",count_word(str1)); }int count_word(char *str){int count ,flag;char *p;count=0;flag=0;p=str;while(*p!='\0'){if(*p==' ')flag=0;else if(flag==0){flag=1;count++;}p++;}return count;}(7)#include<stdio.h>#include<string.h>char *encrypt(char *string);char *decrypt(char *string);main(){char item[80];char *point;char *pEncrypted;char *pDecrype;printf("Please enter the string need to encrypt:\n");gets(item);point=item;pEncrypted=encrypt(point);printf("\nThe string after encrypted is:\n%s\n",pEncrypted);pDecrype=decrypt(pEncrypted);printf("\nThe string after decrypted is:\n%s\n",pDecrype);free(pEncrypted);free(pDecrype);}char *encrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string-2;string++;q++;}*q='\0';return t;}char *decrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string+2;string++;q++;}*q='\0';return t;}第七章1、选择题(1)D(2)D(3)D(4)C(5)D(6)C(7)C(8)B(9)C(10)C(11)B(12)C(13)B(14)A(15)A(16)C 2、程序分析题(1)Ling ning:19 Langping:21Zhu jian hua:20(2)2,65,A(3)1,2(4)3.11000050(5)audition time is 08:30:00 (6)99Xiaowang90873、程序设计题(1)#include<stdio.h>struct date{int day;int month;int year;}main(){int i,flag,dayth,day71;struct date d1;int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};day71=1;for(i=1;i<7;i++)day71=day71+month_day[i];puts("\nPlease enter year/month/day:");scanf("%d/%d/%d",&d1.year,&d1.month,&d1.day);dayth=d1.day;for(i=1;i<d1.month;i++)dayth=dayth+month_day[i];printf("%d days\n",day71-dayth);}(2)#include<stdio.h>main(){enum color{red,yellow,blue,white,black};enum color i,j,k,pri;int n,loop;n=0;for(i=red;i<=black;i++)for(j=red;j<=black;j++)if(i!=j){for(k=red;k<=black;k++)if((k!=i)&&(k!=j)){n=n+1;printf("%-4d",n);for(loop=1;loop<=3;loop++){switch(loop){case 1:pri=i;break;case 2:pri=j;break;case 3:pri=k;break;default: break;}switch(pri){case red:printf("%-10s","red");break;case yellow:printf("%-10s","yellow");break;case blue:printf("%-10s","blue");break;case white:printf("%-10s","white");break;case black:printf("%-10s","black");break;default: break;}}printf("\n");}}printf("\ntotal:%5d\n",n);}(3)#include<stdio.h>#define SIZE 5main(){struct staff{char name[20];int salary;int age;}attend[SIZE];struct staff *ap;putchar('\n');for(ap=attend;ap<attend+SIZE;ap++){printf("Please enter name salary and age:\n");scanf("%s%d%d",ap->name,&(ap->salary),&(ap->age)); }for(ap=attend;ap<attend+SIZE;ap++){ap->age++;ap->salary*=(1+0.3);}for(ap=attend;ap<attend+SIZE;ap++)printf("\n%-10s %6d %3d",(ap->name),(ap->salary),(ap->age));}第八章1、选择题(1)A(2)D(3)B(4)A(5)D(6)B(7)B(8)C(9)B(10)B(11)C 2、填空题(1)#include(2)#define(3)3 5 5(4)a=4,b=13a=13,b=4(5)10(6)16(7)1000 10(8)10(9)the max value is 2(10)23、程序设计题(1)#define LETTER 1main(){ int i;char c;char str[80];printf("Please enter a string:");scanf("%s",str);i=0;while((c=str[i])!='\0'){i++;#ifdef LETTERif(c>='a'&&c<='z')c=c-32;#elseif(c>='A'&&c<='Z')c=c+32;#endifprintf("%c",c);printf("%d",(int)c);}}(2)#include<stdio.h>#include "d:188011.c"#include "d:188012.c"#include "d:188013.c"int fmax(int x,int y,int z);int fmin(int x,int y,int z);int faver(int x,int y,int z);main(){int a,b,c;int max=0;int min=0;int average=0;printf("Please enter three number:");scanf("%d,%d,%d",&a,&b,&c);max=fmax(a,b,c);min=fmin(a,b,c);average=faver(a,b,c);printf("The max of the three number is: %d.\n",max);printf("The min of the three number is: %d.\n",min);printf("The average of the three number is %d.\n",average);。
吉林大学2020年秋季《C语言程序设计》在线作业一附满分答案试卷总分:100 得分:100一、单选题 (共 10 道试题,共 40 分)1.有如下程序:long fib(int n){ if (n>2)return(fib(n-1)+fib(n-2)); else return(2); } main(){ printf("%d \n",fib(3));} 该程序的输出结果是A.2B.4C.6D.8答案:B2.以下程序有语法错误,有关错误原因的正确说法是main(){ int G=5,k; void prt_char (); ... k=prt_char(G); ... } A.语句 void prt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾更多加微boge30619,有惊喜!!!D.函数名不能使用下划线答案:C3.下面程序的运行结果是#include main(){ int y=10; do{y--;}while(--y); printf ("%d\n",y--); }A.1B.1C.8D.0答案:D4.下列程序的输出结果是int b=2; int func(int *a){ b += *a; return(b);} main (){ int a=2, res=2; res += func(&a); printf("%d\n",res); }A.4B.6C.8D.10答案:B5.执行以下程序后,a,b的值分别为main(){ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); }A.-1,5B.1,6C.0,7D.4,10答案:C6.请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A.5B.14C.8D.输出项不合法,无正常输出答案:A7.函数 rewind 的作用是A.使文件位置指针重新返回文件的开始位置B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置答案:A8.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A.22B.10C.34D.30答案:A9.若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是A.a[p-a]B.*(&a[i])C.p[i]D.a[10]答案:D10.若有以下程序#include int a[]={2,4,6,8}; main(){ int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf ("%d\n",a[2]); } 上面程序输出结果是A.6B.8C.4D.2答案:D二、多选题 (共 5 道试题,共 20 分)11.内存中供用户使用的存储空间可分为:______。
《C语言程序设计》习题李玲张海蓉黄玉兰孙大洋赵晓京温泉厉茜吉林大学通信工程学院选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.100101 4.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.57 6.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)16 8.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)16 9.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.2.5e-2 C.3e2 D.05824.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。
C语言程序设计练习题C一、单项选择题1.以下不能定义为用户标识符是D) sizeofA) Main B) _0C) _int D) sizeof2. 以下叙述中正确的是AA)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分3. 以下选项中合法的字符常量是B) '\010'A) "B" B) '\010'C) 68 D) D4. 以下合法的赋值语句是B) d--;A) x=y=100 B) d--;C) x+y; D) c=int(a+b);5. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是BA) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);6. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是CA) abs(x-y)<10 B) x-y>-10&& x-y<10C) @(x-y)<-10||!(y-x)>10 D) (x-y)*(x-y)<1007. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是BA) for(i=1,p=1;i<=5;i++) p*=i;B) for(i=1;i<=5;i++){ p=1; p*=i;}C) i=1;p=1;while(i<=5){p*=i; i++;}D) i=1;p=1;do{p*=i; i++; }while(i<=5);8. 若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是D) *(p[0]+2])A) p+1 B) *(p+3)C)*(p+1)+3 D) *(p[0]+2])9. 设有定义语句in t x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是DA) for(i=0;i<6;i++) printf("%2d",*(p++));B) for(i=0;i<6;i++) printf("%2d",*(p+i));C) for(i=0;i<6;i++) printf("%2d",*p++);D) for(i=0;i<6;i++) printf("%2d",(*p)++);10. 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则B) 称为函数的间接递归调用A)称为函数的直接递归调用B) 称为函数的间接递归调用C)称为函数的循环调用D) C语言中不允许这样的递归调用11. 以下叙述中正确的是 AA)局部变量说明为static存储数,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同12. 程序中对fun函数有如下说明 void *fun();C此说明的含义是:A) fun了数无返回值B) fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D)指针fun指向一个函数,该函数无返回值13. 有定义语句:int x, y;要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A)11 12<回车>A)11 12<回车> B)11, 12<回车>C)11,12<回车> D)11,<回车> 12<回车>14. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是CA)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;15. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是B)s=a+c;A)s=a+b; B)s=a+c;C)s=s+c; D)s=b+c;16. 已定义ch为字符型变量,以下赋值语句中错误的是A)ch='\'A)ch='\'; B)ch=62+3;C)ch=NULL; D)ch='\xaa';17. 有以下函数定义:Cvoid fun(in t n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);18. 以下不能正确定义二维数组的选项是DA)int a[2][2]={{1},{2}}; B)inta[][2]={1,2,3,4};C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};19. 以下能正确定义一维数组的选项是BA)int num[]; B)#define N 100 int num[N];C)int num[0..100]; D)int N=100; int num[N];20. 已定义函数fun(int *p){ return *p; }该函数的返回值是C形参p所指存储单元中的值A)不确定的值B)形参p中存放的值C)形参p所指存储单元中的值D)形参p的地址值二、读程序写结果1. 有以下程序main(){ int a=666,b=888;printf("%d\n",a,b);}程序运行后的输出结果是6662. 有以下程序main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。
吉林大学历年C语言程序设计试题及答案(4)98年试题答案(辅导班讲义)二。
(1)解题思想:用p,q,k分别纪录A,B,C,三个数组正在访问的位置。
如果,A[P] <=B[q],那么将A[P]赋给c[k].否则,将B[q]赋给C[k].如果A先访问完,把B的剩余部分复制到C中。
同样,如果B先访问完,把A的剩余部分复制到C中。
设计函数如下:Void fun (int a[],int b[],int c[]){ int i,p=0,q=0,k=0;while((p <=m-1)&&(q <=n-1)){ if(a[p] <=b[q]) {c[k]=a[p]; p++;}else { c[k]=b[q]; q++;}k++; }if(p==m) {for(i=q;i <=n-1;i++) { c[k]=b; k++;}}if(q==n) {for(i=p;i <=n-1;i++) { c[k]=a; k++;}}}(2)解题思想:从数组的第一个元素a[0]开始访问,用一个变量p来纪录当前平台的整数值,用length纪录最长平台的长度,用counter动态纪录每一个平台的长度。
如果某一个平台访问完以后counter >length则修改l ength.设计函数如下:int fun(int a[],int n){ int length=1,counter=1;int p=a[0];for(int k=1;k<n;K++) {if(a[k]==p) counter++;else {p=a[k];if(length <counter) length=counter;counter=1; }}if(length <counter) length=counter;return length;}(3)解题思想:从数组的第一个元素a[0]开始访问,每访问到一个零,则从后面找到一个非零元素与其交换。
选择题1.以下不正确的C语言标识符是( )。
A.ABC B.abc C.a_bc D .ab.c2.以下不正确的语句(设有int p,q)是( )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q3.下面四个选项中,均是合法整形常量的选项是( ).A.160B.-0xcdfC.-01D.-0x48a-0xffff 01a 986,012 2e5011 0xe0668 0x4. 若有代数式3ae/bc,则不正确的C语言表达式是( )A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*35.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( )。
A.2.500000B.2.750000C.3.500000D.0.0000006. 设int n=3;则n十十的结果是( )。
A.2B.3C.4D.57. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ).A. scanf(“%d%d1x,%1e”,&x,&y,&z);B. scanf(“%2d*%d%1f”,&x,&y,&z);C. scanf(“%x%*d%o”,&x,&Y);D. scanf(“%x%o%6.2f”, &x,&y,&z);8. 以下程序的执行结果是( )。
#include<stdio.h>main(){int sum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf("%d\n",pad);}A.7B.6C.5D.49. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与( )组成配对关系。
A.缩排位置相同的ifB.在其之前末配对的ifC.在其之前未配对的最近的ifD.同一行上的if10. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ).A.’x’&&’y’B.x<=yC. x||y+z&&y-zD.!((x<y=&&!z ||1=11. 以下不正确的if语句形式是( ).A.if(x>y&&x!=y);B.if(x==y)x十=y;C.if(x ! =y)scanf(“%d”,&x) e1se scanf(”%d,&y);D.if(x<y={x++;y++;}12. 阅读以下程序main(){int a=5,b=0,c=0;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}以上程序 ( ).A.语法有错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$13. 执行以下程序段后,变量a,b,c得值分别是( ).int x=10,y=9;int a,b,c;a=(--x==y++)? –x: ++y;b=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1014. 语句while(!e);中的条件!e等价于( )。
精品文档《C语言程序设计》习题李玲张海蓉黄玉兰孙大洋赵晓京温泉厉茜吉林大学通信工程学院精品文档第6章练习6-1答案一、选择题1.已知函数abc的定义为:void abc(){……}则函数定义中void的含义是( A )。
A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型 D.以上三个答案全是错误的2.已知:int p();,p是( C )。
A.int型变量B.函数p的调用C.一个函数声明,该函数的返回值是int型的值D.强制类型转换表达式中的变量3.以下正确的函数形式是( D )。
A.double fun(int x, int y) B.fun(int x, y){ z=x+y; return z; } { int z; return z; }C.fun(x, y) D.double fun(int x, int y) { int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; }4.以下说法正确的是( C )。
A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准D.如果形参与实参的类型不一致,以实参类型为准5.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。
A.float 型B.int型C.long型D.double型6.下面函数调用语句含有实参的个数为( B )。
func((exp1, exp2), (exp3, exp4, exp5));A.1 B.2 C.4 D.57.以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include <stdio.h>#include <math.h>float f(float, float);main(){float x, y, z, sum;scanf("%f%f%f", &x, &y, &z);sum=f( ①B )+f( ②C ); (注:或者选择sum=f( ①C )+f( ②B ))printf("sum=%f\n", sum);}float f(float a, float b){float value;value=a/b;return(value);}①A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y②A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y二、填空题8.以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"This is YES."与"This is NO."。
Addbc cabdb cbddc dbbdb adbcb bbcca baaaa bcacc/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:功能:定义一个结构变量(包括年、月、日)计算给定日期是该年的第几天。
-------------------------------------------------------*/ #include <stdio.h>#include <stdlib.h>main(){/***********SPACE***********/【?】 date{int y,m,d;}da;int f,n,p,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("y,m,d=");scanf("%d,%d,%d",&da.y,&da.m,&da.d);/***********SPACE***********/f=da.y%4==0&&da.y%100【?】0||da.y%400==0;/***********SPACE***********/if(da.m<1【?】da.d>12) exit(0);a[11]+=f;if(da.d<1||da.d>a[da.m-1]) exit(0);/***********SPACE***********/for(n=【?】,p=1;p<da.m;p++)n+=a[p-1];printf("n=%d\n",n);}/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目:下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。
《C语言程序设计》在线作业二满分标准答案《C语言程序设计》在线作业二1:C语言的基本数据类型是_______.A:int float double logicalB:int double float charC:int date float charD:int double float string正确答案:B2:能正确表示a和b同时为负的表达式是_______。
A:a*b>0B:a+b<0C:a<0||b<0D:a<0&&b<0正确答案:D3:设int类型的数据长度为2字节,则该类型数据的取值范围是________。
A:0至65536B:0至65535C:-32767至32768D:-32768至32767正确答案:D4:字符串的结束标志是______.A:n'B:'0'C:'"D:''正确答案:B5:对于C程序的函数,下列叙述中正确的是 ___ 。
A:函数的定义不能嵌套,但函数调用可以嵌套B:函数的定义可以嵌套,但函数调用不能嵌套C:函数的定义和调用均可以嵌套D:函数的定义和调用均不能嵌套正确答案:A6:下列二维数组初始化中,错误的是________.A:int a [ ] [3]={{3,4},{5,6,7}};B:int a [ ] [3]={2,3,4,5,6,7};C:int a [3] [3]={0};D:int a [3] []={{1,2,3},{2,3},{3,4,5}};正确答案:D7:结构化程序的三种基本结构是 _________。
A:顺序结构,分支结构,循环结构B:递归结构,循环结构,转移结构C:嵌套结构,循环结构,顺序结构D:递归结构,分支结构,顺序结构正确答案:A8:对于程序片段rninti,a [5];for(i=0;i<5;i++)scanf(“%d”,&a );rn若要使数组元素的值分别为1,2,3,4,5,正确的输入是 _________。
C语言程序设计练习题C单项选择题1.以下不能定义为用户标识符是A) Main B) _0C) _int D) sizeof2. 以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分3. 以下选项中合法的字符常量是A) "B" B) '\010'C) 68 D) D4. 以下合法的赋值语句是A) x=y=100 B) d--;C) x+y; D) c=int(a+b);5. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);6. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是A) abs(x-y)<10 B) x-y>-10&& x-y<10C) @(x-y)<-10||!(y-x)>10 D) (x-y)*(x-y)<1007. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A) for(i=1,p=1;i<=5;i++) p*=i;B) for(i=1;i<=5;i++){ p=1; p*=i;}C) i=1;p=1;while(i<=5){p*=i; i++;}D) i=1;p=1;do{p*=i; i++; }while(i<=5);8. 若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是A) p+1 B) *(p+3)C)*(p+1)+3 D) *(p[0]+2])9. 设有定义语句int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是A) for(i=0;i<6;i++) printf("%2d",*(p++));B) for(i=0;i<6;i++) printf("%2d",*(p+i));C) for(i=0;i<6;i++) printf("%2d",*p++);D) for(i=0;i<6;i++) printf("%2d",(*p)++);10. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则A) 称为函数的直接递归调用B) 称为函数的间接递归调用C) 称为函数的循环调用D) C语言中不允许这样的递归调用11. 以下叙述中正确的是A) 局部变量说明为static存储数,其生存期将得到延长B) 全局变量说明为static存储类,其作用域将被扩大C) 任何存储类的变量在未赋初值时,其值都是不确定的D) 形参可以使用的存储类说明符与局部变量完全相同12. 程序中对fun函数有如下说明void *fun();此说明的含义是:A) fun了数无返回值B) fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D) 指针fun指向一个函数,该函数无返回值13. 有定义语句:int x, y;要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y 得到数值12,下面四组输入形式中,错误的是A)11 12<回车> B)11, 12<回车>C)11,12<回车> D)11,<回车> 12<回车>14. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;15. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是A)s=a+b; B)s=a+c;C)s=s+c; D)s=b+c;16. 已定义ch为字符型变量,以下赋值语句中错误的是A)ch='\'; B)ch=62+3;C)ch=NULL; D)ch='\xaa';17. 有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);18. 以下不能正确定义二维数组的选项是A)int a[2][2]={{1},{2}}; B)inta[][2]={1,2,3,4};C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};19. 以下能正确定义一维数组的选项是A)int num[]; B)#define N 100int num[N];C)int num[0..100]; D)int N=100;int num[N];20. 已定义函数fun(int *p){ return *p; }该函数的返回值是A)不确定的值B)形参p中存放的值C)形参p所指存储单元中的值D)形参p的地址值二、读程序写结果1. 有以下程序main(){ int a=666,b=888;printf("%d\n",a,b);}程序运行后的输出结果是2. 有以下程序main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。
第一二三章:概述基本类型及操作1.存储”A\\f\n”需要的字节数是【】2.字符D的八进制转义字符的表示形式是【】1.下列运算符中优先级最高的是【】 A.< B.+ C.&& D.!=2.以下选项中合法的用户标识符是【】A.longB._2TestC.3DmaxD.a.dat3.在16位编译系统中,一个无符号型整数能取得的最大值是【】A.32767B.32768C.65535D.2554.若以下选项中的变量已正确定义,则正确的赋值语句是【】A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=35.以下叙述中正确的是【】A.在C程序中,语句之间必须要用分号分隔B.在C程序中#include行不是C语句C.可以在C程序中加上行号,方便进行跳转D.当输入数值数据时,对于实型变量只6.若变量a,i已正确定义,且i已正确赋值,合法的赋值语句是【】A.a==1B.++iC.a=a++=5D.++(i+1)7.对‘a’和“a”的描述正确的是【】。
A. ‘a’和“a”都是占一个字节。
B. ‘a’和“a”都是占两个字节C. ‘a’占两个字节和“a”占一个字节D. ‘a’占一个字节和“a”占两个字节8.若有int n1=3,n2=3;执行n2=n1++;后,n1和n2的值为【】A.3,3B.4,4C.4,3D.3,49.若有int x,y;语句组:x+=y;y=x-y;x-=y;的功能是【】A.把x和y按从大到小排列B. 把x和y按从小到大排列C.没有明确意义D.交换x和y中的值10.若变量a,i已正确定义,且i已正确赋值,合法的赋值语句是【】A.a==1B.++i;C.a=a++=5;D.++(i+1);11.若int类型变量在机器中占用两个字节,则int a=32767+1 中变量a的值为【】A.0B.-1C.-32768D.3276812.以下可用作用户标识符的符号是【】。
一、单项选择题1. 以下选项中可作为C语言合法整数的是()A)10110B B)0386 C)0Xffa D)x2a2参考答案:C2. 以下选项中非法的表达式是()A)0<=x<100 B)i=j==0 C)(char)(65+3) D)x+1=x+1参考答案:D3. 假定x和y为double型,则表达式x=2,y=x+3/2的值是()A) 3.500000 B) 3 C) 2.000000 D) 3.000000参考答案:D4. 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是()A) c1^c2 B) c1&c2 C) ~c2 D) c1|c2参考答案:A5. 以下能正确定义二维数组的是()A) int a[][3] B) int a[][3]=2{2*3};C) int a[][3]={} D) int a[2][3]={{1},{2},{3,4}};参考答案:D6. 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是()printf("%d,%d\n",x--,--y);A) 10,3 B) 9.3 C) 9.2 D)10,2参考答案:D7. 有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是()A) a=a+b=b++ B) w%((int)a+b) C) (c+w)%(int)a D) w=a= =b;参考答案:C8. 已定义c为字符型变量,则下列语句中正确的是()A)c='97' B)c="97" C)c=97 D)c="a"参考答案:C9. 下列选项中正确的语句组是()A)char s[8]; s={"Beijing"} B)char *s; s={"Beijing"};C)char s[8]; s="Beijing" D)char *s; s="Beijing";参考答案:D10.以下语句或语句组中,能正确进行字符串赋值的是()A)char *sp;*sp="right!" B)char s[10];s="right!";C)char s[10];*s="right!" D)char *sp="right!";参考答案:D11. s1和s2已正确定义并分别指向两个字符串。
《C语言程序设计》习题李玲张海蓉黄玉兰孙大洋赵晓京温泉厉茜吉林大学通信工程学院选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.100101 4.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.57 6.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)16 8.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)16 9.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.2.5e-2 C.3e2 D.05824.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。
A.0至255 B.0~65535 C.-32768~32767 D.-256~2555.下面4个选项中,均是合法转义字符的选项是( A )。
A.'\'','\\','\n' B.'\','\017','\'C.'\018','\f','xab' D.'\\0,'101','x1f6.在C语言中,数字029是一个( D )。
A.八进制数B.十六进制数 C.十进制数D.非法数.下列可以正确表示字符型常数的是( B )。
A."a" B.'\t' C."\n" D.2978.以下( C )是错误的转义字符。
A.'\\' B.'\'' C.'\81' D.'\0'9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。
A.1111 1111 1111 1000 B.1 1000C.0 1000 D.1111 1111 1111 011110.将字符g赋给字符变量c,正确的表达式是( C )。
A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。
A.8 B.7 C.6 D.512.为求出s=10!的值,则变量s的类型应当为( C )。
A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。
printf("%d\n", x);A.65535 B.1 C.无定值D.-114.下面4个选项中,均是合法整型常量的选项是( A )。
A.160,-0xffff,011 B.-0xcdf,01ª,0xeC.-01,986,012,0668 D.-0x48a,2e5,0x15.下面4个选项中,均是不合法的整型常量的选项是( D )。
A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xeC.-018,999,5e2 D.-0x48eg,-068,03f16.下面4个选项中,均是合法浮点数的选项是( B )。
A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0练习2-2答案选择题1.已知:char a; int b; float c; double d;,执行语句c=a+b+c+d;后,变量c的数据类型是( C )。
A.int B.char C.float D.double2.已知int j, i=1;,执行语句j=-i++;后,j的值是( C )。
A.1 B.2 C.-1 D.-23.已知int i, a;,执行语句i=(a=2*3, a*5), a+6;后,变量i的值是( C )。
A.6 B.12 C.30 D.364.已知int i=5;,执行语句i+=++i;,i的值是( C )。
A.10 B.11 C.12 D.A、B、C答案都不对5.已知:float x=1, y;,则表达式y=++x*++x的结果为( B )。
A.9 B.6 C.1 D.表达式是错误的6.已知:int y; float x=-3;,执行语句:y=x%2;,则变量y的结果是( D )。
A. 1 B.-1 C.0 D.语句本身是错误的7.已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是( D )。
A.float B.char C.int D.double8.已知:int x=10, y=3, z;,则下列语句的输出结果是( D )。
printf("%d\n", z=(x%y, x/y));A.1 B.0 C.4 D.39.已知:int i=6, j;,则执行语句j=(++i)+(i++);后的j的值是( B )。
A.4 B.14 C.13 D.1510.已知:int x=1, y=-1;,则语句printf("%d\n", (x--&++y));的输出结果是( B )。
A.1 B.0 C.-1 D.211.设a=2,b=3,计算表达式c=b*=a-1后,变量c的值是( B )。
A.5 B.3 C.2 D.412.若定义了int x;,则将x强制转化成双精度类型应该写成( A )。
A.(double)x B.x(double) C.double(x) D.(x)double 13.下述程序的输出是( A )。
main(){ int x=023;printf("%f", 2.5+1*7%2/4); }A.2.500000 B.2.750000 C.3.375000 D.3.000000 14.若有定义:int a=7; float x=2.5, y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A.2.500000 B.2.750000 C.3.500000 D.0.000000 15.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第3位进行四舍五入运算的表达式是( B )。
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.016.已知ch是字符型变量,下面不正确的赋值语句是( A )。
A.ch='a+b'; B.ch='\0'; C.ch='7'+'9'; D.ch=5+9;练习3-1答案一、选择题1.在C语言库函数中,可以输出double型变量x值的函数是( D )。
A.getchar B.scanf C.putchar D.printf 2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后输出是( D )。
A.The program's name is c:tools book.txtB.The program's name is c:\tools book.txtC.The program's name is c:\\tools book.txtD.The program's name is c:\toolook.txt3.以下程序的输出结果是( D )。
(注:□表示空格)main(){printf("\n*s1=%15s*", "chinabeijing");printf("\n*s2=%-5s*", "chi");}A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□*s2=**chi* *s2=chi□□*C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□*4.选择程序的运行结果,①是( B )、②是( B )、③是( D )、④是( C )。
#include<stdio.h>main(){int a=-10, b=-3;printf("%d\n", a%b); /*输出①*/printf("%d\n", a/b*b); /*输出②*/printf("%d\n", -a%b); /*输出③*/printf("%d\n", a-=b+++1); /*输出④*/}①A.-2 B.-1 C.0 D.1②A.-10 B.-9 C.-8 D.0③A.-2 B.-1 C.0 D.1④A.-10 B.-9 C.-8 D.-75.以下C程序正确的运行结果是( D )。
(注:□表示空格)main(){int y=2456;printf("y=%3o\n", y);printf("y=%8o\n", y);printf("y=%#8o\n", y);}A.y=□□□2456 B.y=□□□4630y=□□□□□□□□2456 y=□□□□□□□□4630y=#########2456 y=#########4630 C.y=2456 D.y=4630y=□□□□2456 y=□□□□4630y=□□□02456 y=□□□04630二、填空题6.以下程序的输出结果为( i:dec=-4, otc=177774, hex=fffc, unsigned=65532 )。