了解湖南/長沙365体育备用网址資訊,從365投注平台開始!365bet官网報名365bet官网本科
您當前的位置:首頁 > 365bet官网考前練習

365体育备用网址“高級語言程序設計”經典習題及答案(31)

365体育备用网址“高級語言程序設計”經典習題及答案(31)

 

  5.編程序,對上一題中名為“CCW.TXT”的磁盤文件中“@”之前的所有字符解密并顯示。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”要編寫的程序完成與上一程序功能相反的工作,將上述程序中的DALTA定義成一10即可。完整程序略。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  6.輸入100個學生的信息(含學號、姓名、年齡、七門課程成績、總分),其中學生的總分由程序計算產生。先將學生信息存入磁盤二進制數據文件student.dat中。然后再讀取該文件,尋找總分最高的學生并輸出該生的所有信息。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”程序要定義一個結構,逐一輸入學生信息,并完成學生的總分計算,將學生信息存到該結構中,然后將該結構信息存入文件。設學生信息的輸入以學生的學號為負數結束。然后,程序再用循環從這文件讀入學生信息,將其中總分更高的學生信息存入另一結構中。循環結束后,結構中存儲的就是總分最高學生的信息。最后,顯示這總分最高的學生信息。程序如下:GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # includeGcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # includeGcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # includeGcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  struct stu {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  long no;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  char name[20];GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  int age;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  int score[7];GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  int total;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  } student, maxs;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  FILE *fp;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  void main()GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  { char buf[120];int total,i,t;long lt;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  if((fp= fopen(“student.dat”,“wb”))== NULL) {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“Can‘t open file %s./n”,“student.dat” );exit(0);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“輸入學生的學號、姓名、年齡、七門課程成績(學號小于0結束) /n”);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  while(1) {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  scanf(“%ld”, <); student.no = lt;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  if(student.no< 0) break;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  scanf(“%s”, buf); strncpy( student.name, buf,19);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  scanf(“%d”, &t); student.age = t;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  for( total = 0, i = 0; i < 7;i++) {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  scanf(“%d”,&t); student.score= t;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  total+= t;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  student.total= total;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  fwrite(char *) & student,sizeof student, 1, fp);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  fclose(fp);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  if((fp = fopen(“student.dat”,“rb”))== NULL) {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“Can‘t open file %s./n”,“student.dat”);exit(0);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  maxs.total=-100;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  While( !feof(fp)) {GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  fread((char *) & student,sizeof student,l,fp);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  if( student.total> maxs.total) maxs=student;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  fclose(fp);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“總分最高的學生信息:/n”);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“學號:%ld”, maxs.no);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“ /t姓名:%s”,maxs,name);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“/t年齡::%d/n成績:”, maxs.age)GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  for( i=0; i< 7; i++)GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“m”,maxs.score);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“/nTOTAL = %d/n”, maxs. total);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  9.1 單項選擇題GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  1.在下列代碼中,正確的C代碼是( )GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ①# define MYNAME=“ABC”GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ②# include string.hGcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ③ for(i=0;i<10; i++);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ④ struct int stu { int name };GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”①是關于宏定義的,在宏的定義形式中,宏名與字符列之間至少有一個空白符,并在宏名希望代表的字符序列之間也不能有任何非空格類字符,若有也被當作是字符序列的一部分。有了宏定義,以后程序中若要有宏名后的字符序列就可簡寫成宏名。選擇①在宏名之后緊接字符=.②是關于包含命令的,在上述包含命令的格式中,被包含文件應放在一對尖括號之間,或一對雙引號之間,不可在文件名字符列的首末沒有這種符號。③是for語句,for語句的循環體可以用空語句,從語言的句法規則來說,該語句是正確的。但通常循環是為了完成某種重復計算操作,單一地讓一個變量循環增1到某個值,程序員是不會編寫這種代碼的。④是想定義結構類型,定義結構時,struct后接結構類型名,不可在結構名之前插入某些其它類型符。正確解答是③。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  2.在下列代碼中,正確的C代碼是( )GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ①# define PI=3.14159GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ② include“stdio.h”GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ③ for(i=0,i<10, i++) a++;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ④static struct { int i;} b ={2};GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”①定定義時,宏名與被定義的字符列之間不可以插入等號等其它字符。選擇答案②是包含文件預處理,所有的預處理命令都應由字符# 開始于新的一行。③在寫for語句時,其中的三個表達式必須用字符“;”分隔。④在定義結構變量時,結構的類型名可以省缺,并可為結構變量賦初值。為結構變量賦初值,必須順序給出各成分的初值,并將初值寫在一對花括號中。這里給出的結構變量定義的代碼是正確的。正確解答是④。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  3.在下列代碼中,錯誤的C代碼是( )GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ①# define PI 3.14159GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ②# include“stdio.h”;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ③ if(2);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ④ for(;;) if(1) break;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”①是正確的宏定義。②的文件包含預處理命令行不可以有多余的分號字符。③是if語句,雖沒有任何意義,但就句法來說是正確的。④是for語句,其成分語句是if語句,從for語句來說,是一個無窮循環的控制結構,但它的成分語句因條件成立,執行break語句,立即退出循環。同樣雖也是一條沒有任何意義的語句,但從句法規則來說,也是正確的。正確解答是②。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  4.設有以下定義,則執行語句“z=2*(N+Y(5+1));”后,z的值為( )GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # define N 3GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # define Y(n)((N+l)*n)GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ①出錯 ②42 ③48 ④54GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”在新的宏定義中,可以使用前面已定義的宏名。另外,宏調用是這樣被替換展開的,分別用宏調用中的實在參數字符序列替換定定義字符序列中對應所有出現的形式參數。而宏定義字符序列中的不是形式參數的其他字符則保留。這樣形成的字符序列,即為宏調用的展開替換結果。所以代碼“z=2*(N+Y(5+1));”被替換成:GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  z=2*(3+((3+1)*5+1));GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  執行該代碼,將使Z的值為48.解答為③。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  5.以下程序中的for循環執行的次數是( )GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # includeGcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # define N 2GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # define M N+1GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  # define NUM(M+l)* M/2GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  main()GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  { int i, n=0;GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  for( i= l; i<=NUM;i++) { n++; printf(“%d”,n); }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“/n”);GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  }GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  ①5 ②6 ③8 ④9GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”代碼NUM被替換成(2+1+1)*2+1/2,所以其值是8.所以程序中的臉循環執行的次數是8次。正確解答是③。GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

 GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

GcJ365投注平台_365bet官网本科_365bet官网報名_首頁

 

365体育备用网址“高級語言程序設計”經典習題及答案(31)

    365投注平台——致力于打造365投注平台第一網,以努力服務于廣大365bet官网學子、提供最全的365bet官网資訊為己任,發布365bet官网最新的新聞資訊,提供365bet官网專科365bet官网本科365bet官网報名365bet官网成績查詢等綜合信息

 

365bet官网
相關文章
    無相關信息
湖南365体育备用网址
365bet官网政策
365体育备用网址30年大事
365bet官网專業
365bet官网問答
名家訪談
365bet官网故事
365bet官网院校
365bet官网大綱
365体育备用网址復習方法
365体育备用网址筆記串講
365体育备用网址應試技巧
365bet官网真題
365bet官网就業
湖南論文指導
365bet官网實踐
365bet官网學位
365体育备用网址成績查詢
365体育备用网址考籍查詢
365体育备用网址學歷查詢


咨詢QQ:137847917
13548661633(微信同號)