2016年9月吉林大学课程机考复习题-C语言程序设计
- 格式:doc
- 大小:160.00 KB
- 文档页数:68
C语言程序设计吉大直属课程机考复习题库及答案1:根据定义和数据的输入方式,输入语句的正确形式为( )。
已有定义:float f1,f2;数据的输入方式:4.523.51.scanf(“%f,%f”,&f1,&f2);2.scanf(“%f%f”,&f1,&f2);3.scanf(“%3.2f%2.1f”,&f1,&f2);4.scanf(“%3.2f,%2.1f”,&f1,&f2);2:判断char型变量ch是否为大写字母的正确表达式是( ).1.’A’<=ch<=’Z’2.(cb>=’A’)&(ch<=’Z’)3.(ch>=’A’)&&(ch<=’Z’)4.(‘A’<=ch)AND(‘Z’>=ch)3:若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
1.22.33.44.无确定值4:有以下定义和语句,则以下引用形式不合法的是( )。
Struct s{int i1;struct s*i2,i0;};static struct sa[3 ]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]}, *ptr;ptr=a;1.ptr->i1++2.*ptr->i23.++ptr->i04.ptr->i15:以下结果为整数的表达式(设有int i;char c;float f;)( ).1.i十f2.i*c3.c十f4.i十c十f6:fwrite函数的一般调用形式是( )。
1.fwrite(buffer,count,size,fp) ;2.fwrite(fp,size,count,buffer) ;3.fwrite(fp,count,size,buffer) ;4.fwrite(buffer,size,count,fp) ;7:下面四个选项中,均是不合法转义字符的选项是( ).1.’\”’‘\\’‘\xf’2.’\1011’‘\’‘\a’3.’\011’‘\f’‘\}’4.’\abc’‘\101’‘x1f’8:若有说明:int a[][4]={0,0};则下面正确的叙述是()。
《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;char z;}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:定义结构体的关键字是()。
吉林大学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<回车>,输出结果是( )。
第一章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);}。
2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)考试时间:2012年04月班级学号姓名✧请将答案写在答题纸上,写清题号,不必抄题,字迹工整、清晰;✧答题纸和试题纸上都写上班级、学号和姓名,交卷时将试题纸、答题纸和草纸一并交上来。
✧每个题目不必给出对应的PAD图,但要添加必要的注释,程序命名和书写要规范。
一、[20分] 编写函数,实现按照如下公式计算的功能。
f(n)=0/(1*2!)+1/(2*3!)+2/(3*4!)+3/(4*5!)+…+n/((n+1)*(n+2)!),其中n为自然数。
二、[20分] 编写bool函数,判断给定的整数数组a[n]中是否存在元素a[i] (0<i<n),等于其前边的所有元素之和,即a[i]=a[0]+a[1]+…+a[i-1]。
三、[20分] 编写一个递归函数,计算组成给定正整数n的所有数字之和。
例如:输入参数为1035,则返回结果应该为9(通过1+0+3+5=9得到)。
四、[20分] 构造一个表示教师的结构体(包含3个字段:姓名、性别、年龄),编写函数,读入M个教师的信息,存入一个结构体数组中,如下图所示。
张三李四赵九男(true) 女(false) … 男(true)50 37 29图1 管理教师信息的结构体数组例如:一个教师的信息为Zhangsan、true、50,另一个教师的信息为Lisi、false、37。
五、[20分] 设有一个保存教师信息的单链表(每个结点包含4个字段:姓名、性别、年龄、后继指针),如下图所示。
构造该链表中一节的数据类型声明;编写函数,在给定链表上查找所有女教师的信息,并存储到指定文件output.txt中。
图2 管理教师信息的单链表第 1 页共 1 页2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)答案及评分标准考试时间:2012年4月一、满分20分。
int fac(int n)//阶乘函数1:循环形式(10分){int i,r=1;for(i=1;i<=n;i++)r=r*i;return r;}int fac(int n)//阶乘函数2:递归形式(10分){if(n==0)return 1;return n*fac(n-1);}//利用阶乘函数的计算函数(10分)float f(int n){float f=0;for(int i=0;i<=n;i++){f=f+i*1.0/((i+1)*fac(i+2));}return f;}参考要点:阶乘函数(10分);累加计算功能(10分)。
单项选择==================================================题号:1482执行以下程序段后,输出结果和a的值是()。
int a=10; printf("%d",a++);A、11 和 10B、11 和 11C、10 和 11D、10 和 10答案:C题号:2100已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是A、65,66B、A,BC、65,68D、A,68答案:A题号:5055相同结构体类型的变量之间,可以()。
A、比较大小B、地址相同C、赋值D、相加答案:C题号:3217int a[10];合法的数组元素的最小下标值为()。
A、1B、0C、10D、9答案:B题号:45能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是A、a>=0 | a<=10B、a>=10 or a<=0C、a>=10 && a<=0D、a>=10 || a<=0答案:D题号:157main(){int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( )A、2,2B、2,1C、1,1D、1,0答案:B题号:4784设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A、不确定B、doubleC、intD、float答案:B题号:1647以下程序中,while循环的循环次数是______main(){int i=0;while(i<10){if(i<1) continue;if(i==5) break;i++;}}A、死循环,不能确定次数B、6C、4D、1答案:A题号:191若有说明语句:char c='\72';则变量c()。
c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2.2 C语言中,用于输入数据的库函数是______。
答案:scanf2.3 C语言中,用于输出数据的库函数是______。
答案:printf3. 简答题3.1 简述C语言中数组的定义方式。
答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。
例如,定义一个整型数组可以写作:int arrayName[arraySize];。
3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
定义指针的示例:int *ptr; 这里ptr是一个整型指针。
4. 编程题4.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```4.2 编写一个C语言函数,实现字符串反转的功能。
答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。
一、单选题(共 10 道试题,共 40 分。
)1. 下面能正确进行字符串赋值操作的是. hr s[5]={""};. hr s[5]={ ′′, ′′, ′′, ′′, ′′};. hr *s;s="";. hr *s;hr ; sn("%s",&s);标准答案:2. 执行以下程序后,,的值分别为min(){ int ,,k=4,m=6,*p1=&k,*p2=&m; =p1==&m; =(*p1)/(*p2)+7; print("=%\n",); print("=%\n",); } . -1,5. 1,6. 0,7. 4,10标准答案:3. 在16位IM-P机上使用语言,若有如下定义strut t { int i; hr h; oul ; } ; 则结构变量占用内存的字节数是. 1. 2. 7. 11标准答案:4. 函数 rwin 的作用是. 使文件位置指针重新返回文件的开始位置. 将文件位置指针指向文件中所要求的特定位置. 使文件位置指针指向文件的末尾. 使文件位置指针自动移至下一个字符位置标准答案:5. 有如下程序:long i(int n){ i(n>2)rturn(i(n-1)+i(n-2)); ls rturn(2); } min(){ print("%\n",i(3));} 该程序的输出结果是. 2. 4. 6. 8标准答案:6. 以下程序有语法错误,有关错误原因的正确说法是min(){ int G=5,k; voi prt_hr(); ... k=prt_hr(G); ... }. 语句 voi prt_hr();有错,它是函数调用语句,不能用voi说明. 变量名不能使用大写字母. 函数说明和函数调用语句之间有矛盾. 函数名不能使用下划线标准答案:7. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是. p=1;. *q=2;. q=p;. *p=5;标准答案:8. 以下程序有错,错误原因是min(){ int *p,i;hr *q,h; p=&i; q=&h; *p=40; *p=*q; ...... }. p和q的类型不一致,不能执行*p=*q;语句. *p中存放的是地址值,因此不能执行*p=40;语句. q没有指向具体的存储单元,所以*q没有实际意义. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果标准答案:9. 以下不正确的定义语句是. oul x[5]={2.0,4.0,6.0,8.0,10.0};. int y[5]={0,1,3,5,7,9};. hr 1[]={′1′,′2′,′3′,′4′,′5′};. hr 2[]={′\x10′,′\x′,′\x8′};标准答案:10. 语言中,能识别处理的文件为. 文本文件和数据块文件. 文本文件和二进制文件. 流文件和文本文件. 数据文件和二进制文件标准答案:二、多选题(共 5 道试题,共 20 分。
C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
C语言程序设计1:在C语言中,文件的存取是以()为单位的,这种文件被称作()文件。
字符、流式2:设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是( )。
111100003:若a是int型变量,且a的初值为6,则计算表达式后a的值为()a+=a-=a*a -60 4:与表达式x^=y-2等价的另一书写形式是().x=x^y一2或X=x^(y一2) 5:在C 语言中,一个函数一般由两个部分组成,它们是( )和()。
函数说明部分、函数体6:以下程序的功能是将磁盘文件的内容在打印机上输出。
请在【】处填入适当的内容。
#include<stdio.h>#define SIZE 256main(int argc,char *argv[argv[1]]){char buff[SIZE];FILE *fpr, *fpd;if (argc!=2){puts(“\7Usege:type filename”);exit();}while(fgets(【】)!=NULL)fputs(【】);fclose(fpr);fclose(fpd);} buff,SIZE,fpr、buff,fpd7:若x和n均是int型变量,且x的初值为12,n的初值为5,则计算表达式后x的只为()。
x%=(n%=2) 08:若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为()。
19:若有定义:int b=7; float a=2.5,c=4.7;则下面表达式的值为().a+(int)(b/3*(int)(a+c)/2)%4 5.50000010:表达式10%3的结果是() 111:把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式( ).5X^7+3X^6-4X^5+2X^4+X^3-6X^2+X+10x*〔X *(x *(x*(x*(X*(5*x十3)一4)十2)十1)一6)十1)十1012:下面程序的运行结果是()。
#include<stdio.h>main(){int y,a;y=2;a=1;while(y--!=-1){do{a*=y; a++;}while(y--);}printf(“%d,%d”,a,y);} 1,-213:当调用函数read从磁盘文件中读数据时,若函数的返回值为10,则表明读入了10个字符;若函数的返回值为0,则是();若函数的返回值为-1,则意味着()。
遇到了文件结束符、读文件出错14:以下程序的功能是用“追加“的形式打开gg.txt查看文件指针的位置;然后向文件中写入”data”再查看文件指针的位置。
其中ftell(*FILE)返回long型的文件指针位置。
程序执行前gg.txt内容为:sample。
请在【】处填入适当的内容。
#include<stdio.h>Void main(void){【】long position;fp=fopen(【】);position=ftell(fp);printf(“position=%ld\n”,position);fprintf(【】);position=ftell(fp);printf(“position=%ld\n”,position);fclose(fp);fclose(fp);} FILE*fp、"gg.txt","a"、fp,"data"15:在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为();一个double型数据在内存中所占用的字节数为()。
4、816:执行下列语句后,a的值是()int a=12;a+=a-=a*a;-26417:以下程序的运行结果是()。
main(){ increment();increment();increment();}increment();{ int x=0;x+=1;printf(“%d”,x);}11118:以下程序的运行结果是().main(){struct EXAMPLE{struct{int x;inty;}in;int a;int b;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d,%d”,e.in.x,e.in.y);} 2,319:若a、b和c均是int型变量,则计算表达式后,a值为(),b值为(),c值为()。
a=(b=4)+(c=2) 6、4、220:设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第1位),则b的二进制数是( ). 1000001021:下面程序段的运行结果是()。
i=1;s<3;do{s+=i++;if(s%7==0) continue;else ++i;}while(s<15);printf(“%d”,i); 822:若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为( )。
8.00000023:下面程序运行结果是()。
char s[20]=”abcd”;char *ssp=s;sp++;puts(strcat(sp,”ABCD”)); bcdABCD24:下面程序段的运行结果是()。
char s[80], *sp=”HELLO!”;sp=strcpy(s,sp);s[0]=’h’;puts(sp); hELLO!25:以下程序的运行结果是( ).mian(){unsigned a,b;a=0*9a;b=a;printf(“a:%x\nb:%x\n”,a,b);} a:9a b:ff6526:假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()。
9 27:下面程序的运行结果是()。
#include<stdio.h>main()for(i=1;;i++){k++;while(k<i*j){k++;if(k%3==0) goto loop;}}loop:printf(“%d,%d,i,k”);} 2,328:以下的运行结果是()。
#include”string.h”int *P;main(){int a=1,b=2,c=3;p=&b;pp(a+c,&b);printf(“(!) %d %d %d \n”,a,b,*p); }pp(inta ,int *b){int c=4;a=*p-c;printf(“(2) %d %d %d \n”,a,*b,*p);}2 6 6,1 6 629:以下程序的运行结果是().struct n{int x;char c;};main()struct n a={10,‘x’};func(a);printf(%d,%c,a.x,a.c);}func(struct n b){b.x=20;b.c=’y’;}10,x30:以下程序的运行结果是()。
main(){ int i=2,x=5,j=7;printf(“i =%d;j=%d;x=%d\n”,i,j,x);}fun(int i,int j){ int x=7;printf(“i=%d;j=%d;x=%d\n”,i,j,x);}i=7; j=6; x=7 (打)1:下面有关for循环的正确描述是( ) 4.for循环体语句中,可以包含多条语句,但要用花括号括起来2:下面程序段的运行结果是( )。
cha r *s=”abcde”;s+=2; printf(“%d”,s); 3.字符’c’的地址3:已有程序和输入数据的形式,程序中输入语句的正确形式应当为( )。
(注:?表示空格,<CR>表示回车)main(){ int a; float f;printf(“\nInput number:”);输入语句printf(“\nf=%f,a=%d\n”,f,a);}Input number:4.5? ?2<CR>4.scanf(“%f,%d”,&f,&a);4:下面四个选项中,均是合法整形常量的选项是( ).1.160-0xffff0115:C语言共用体型变量在程序运行期间() 。
2.只有一个成员驻留在内存中6:以下程序的运行结果是().. .typedef union {long a[2];int b[4];char c[8];}TYTY our;main(){printf (“%d\n”,sizeof(our));} 3.88:在C语言中,要求运算数必须是整形的运算符是( ). 4.%9:若有说明:int a[3][4];则对a数组元素的非法引用是()。
4.a[0][4]10:若有以下定义和说明:#include“stdio.h”struct std{ char num[6];char name[8];float mark[4];}a[30];FILE *fp;设文件中以二进制形式存有10个班的学生数据,且已正确打开,文件指针定位于文件开头。
若要从文件中读出30个学生的数据放入a数组中,以下不能此功能的语句是( )。
4.for( i=0; i<30; i++ )fread( a[i], sizeof( struct std ), 1L,fp );11:设有以下结构体类型:struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是( )。
3.fwrite( student, 25*sizeof( struct st ), 25, fp );12:设有以下说明,则下面不正确的叙述是()。
Union data{ int i;char c;float f;}un;3.un可以作为函数参数13:请读程序:#define ADD(x) x+xmain(){int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是()。
2.sum=1014:fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )。
3.读或读写15:若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是( )。
4.&a,&*point,point16:C语言结构体类型变量在程序执行期间(). 1.所有成员一直驻留在内存中17:设位段的空间分配由右到左,则以下程序的运行结果是( ).struct packed_bit{unsigned a:2;unsigned b:3;unsigned c:4;int I;} data;main(){data.a=8; data.b=2;printf(“%d\n”,data.a+data.b);}18:已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是( )。