C语言编程:求素数与四位偶数统计

需积分: 3 9 下载量 51 浏览量 更新于2024-08-01 收藏 334KB DOC 举报
"这份文档包含了两道编程题目,均与C语言编程相关,适用于二级C上机考试。第一题要求编写一个函数`jsValue`,找出大于给定整数m的紧邻的k个素数并存储在数组中,之后将结果写入文件out.dat。第二题要求编写函数`jsVal`,从数据文件IN.DAT中找出由0、2、4、6、8组成的四位数,统计这样的数的个数并按照降序存入数组b,最终将结果写入OUT.DAT文件。提供的源代码部分包含了一些辅助函数如`isP`(判断是否为素数)以及约定不可修改的函数`main`、`readDat`和`writeDat`。" 这两道题目涉及到的C语言知识点包括: 1. **函数的定义与调用**:题目要求实现`jsValue`和`jsVal`两个函数,需要理解函数参数传递和函数返回值的概念。 2. **数组操作**:在两个题目中,都需要用到数组来存储数据,如存储素数或四位数。需要掌握数组的声明、初始化和访问数组元素的方法。 3. **循环控制**:在`jsValue`函数中,使用`for`循环来寻找素数;在`jsVal`函数中,遍历数组以统计符合条件的四位数,以及对数组进行排序。需要熟练掌握`for`循环和条件语句。 4. **文件操作**:使用`writeDat`函数将结果写入文件,涉及C语言的文件I/O操作,如`fopen`、`fprintf`和`fclose`等函数。 5. **数学运算**:在`isP`函数中,通过除法和模运算检查素数,需要理解整数除法和模运算的原理。 6. **指针和引用**:虽然题目中没有直接涉及指针,但在实际编程中可能会用到指针来传递数组的地址,以便函数能直接修改数组内容。 7. **条件判断**:在`jsVal`函数中,使用了多个`if`语句来检查四位数的每一位是否满足条件,需要熟悉条件表达式和逻辑运算符。 8. **排序算法**:在`jsVal`函数中,对满足条件的数组进行排序,这里使用了简单的冒泡排序,理解排序算法的原理和实现至关重要。 9. **常量与变量**:题目中定义了一些常量(如`MAX`)和变量(如`cnt`),需要了解常量与变量的区别和使用方法。 10. **程序设计原则**:根据题目要求,不能修改已有的`main`、`readDat`和`writeDat`函数,体现了程序设计中的模块化原则和接口稳定性。 在解答这两道题目时,考生需要具备扎实的C语言基础,理解函数、数组、循环、文件操作、条件判断等概念,并能够灵活运用这些知识来解决问题。同时,良好的编程习惯和代码组织能力也是成功解题的关键。

package 作业5; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.; import java.io.File; import java.util.HashMap; import java.util.Scanner; import java.io.File; import java.util.HashMap; import java.util.Scanner; public class Example13_7{ public static void main( String args []){ WindowWord win = new WindowWord(); win.setTitle("英﹣汉小字典"); } } class WindowWord extends JFrame{ JTextField inputText,showText; WordPolice police; public WindowWord(){ setLayout(new FlowLayout()); inputText = new JTextField(6); showText = new JTextField(6); showText.setColumns(15); add(inputText); add(showText); police = new WordPolice(); police.setView(this); inputText.addActionListener(police); setBounds(100,100,400,280); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class WordPolice implements ActionListener { WindowWord view; HashMap<String,String>hashtable; File file = new File ("E:\JAVA\上机\作业5\cet4.txt"); Scanner sc = null ; WordPolice () { hashtable = new HashMap< String,String >(); //System.out.println(hashtable.size()); try { sc = new Scanner ( file ); //System.out.println(sc); while (sc.hasNext ()) { String englishWord = sc . next (); String chineseWord = sc . next (); hashtable . put ( englishWord , chineseWord ); } HashMap<String,String> reversedHashtable = new HashMap<String,String>(); for (String key : hashtable.keySet()) { String value = hashtable.get(key); reversedHashtable.put(value, key); } hashtable.putAll(reversedHashtable); } catch(Exception e ) {} } public void setView(WindowWord view) { this.view = view; } public void actionPerformed(ActionEvent e) { String inputWord = view.inputText.getText (); if(hashtable.containsKey(inputWord)) { String outputWord = hashtable.get ( inputWord ); view.showText.setText (outputWord ); } else { String chineseWord = inputWord; for (String key : hashtable.keySet()) { String value = hashtable.get(key); if (value.equals(chineseWord)) { view.showText.setText(key); return; } } for (String value : hashtable.values()) { if (value.equals(inputWord)) { String outputWord = hashtable.get(value); view.showText.setText(outputWord); return; } } view.showText.setText ("没有此单词"); } } }我在输入框输入“书”,但结果是没有此单词,但是输入“book”,结果是“n.书,书籍”,如何解决,我想实现输入“书”,查出 book n.书;书籍;著作集;选集;簿册;

2023-05-24 上传

package 作业5; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.io.File; import java.util.HashMap; import java.util.Scanner; import java.io.File; import java.util.HashMap; import java.util.Scanner; public class Example13_7{ public static void main( String args []){ WindowWord win = new WindowWord(); win.setTitle("英﹣汉小字典"); } } class WindowWord extends JFrame{ JTextField inputText,showText; WordPolice police; public WindowWord(){ setLayout(new FlowLayout()); inputText = new JTextField(6); showText = new JTextField(6); showText.setColumns(15); add(inputText); add(showText); police = new WordPolice(); police.setView(this); inputText.addActionListener(police); setBounds(100,100,400,280); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class WordPolice implements ActionListener { WindowWord view; HashMap<String,String>hashtable; File file = new File ("E:\\JAVA\\上机\\作业5\\cet4.txt"); Scanner sc = null ; WordPolice () { hashtable = new HashMap< String,String >(); //System.out.println(hashtable.size()); try { sc = new Scanner ( file ); //System.out.println(sc); while (sc.hasNext ()) { String englishWord = sc . next (); String chineseWord = sc . next (); hashtable . put ( englishWord , chineseWord ); } HashMap<String,String> reversedHashtable = new HashMap<String,String>(); for (String key : hashtable.keySet()) { String value = hashtable.get(key); reversedHashtable.put(value, key); } hashtable.putAll(reversedHashtable); } catch(Exception e ) {} } public void setView(WindowWord view) { this.view = view; } public void actionPerformed(ActionEvent e) { String inputWord = view.inputText.getText (); if(hashtable.containsKey(inputWord)) { String outputWord = hashtable.get ( inputWord ); view.showText.setText (outputWord ); } else { String chineseWord = inputWord; for (String key : hashtable.keySet()) { String value = hashtable.get(key); if (value.equals(chineseWord)) { view.showText.setText(key); return; } } view.showText.setText ("没有此单词"); } } }把这段代码完善一下,让它能实现汉语翻译为英语,英语也能翻译为汉语,GUI界面不变

2023-05-24 上传