第三次上机实验的程序设计思路分析及解答

51、基于深度卷积神经网络的自闭症分类研究 本研究提出了一种基于深度卷积神经网络的自闭症分类方法,通过融合VGGNet-19和ResNet-52模型的特征,并在决策层采用SVM分类器,实现了对自闭症谱系障碍(ASD)和典型发育(TD)个体的准确区分。研究使用ABIDE数据集,结合数据增强和特征拼接技术,取得了88.12%的分类准确率和0.88的ROC曲线下面积。结果表明,该方法在自闭症自动诊断中具有良好的性能,同时研究也探讨了其局限性,并展望了未来改进方向,如多模态数据融合、迁移学习和模型可解释性的提升。 阅读详情

第三次上机实验的程序设计思路分析及解答

作者:汤伟

声明:本文档仅供菜鸟参考,高手就免了吧。

联系方式:tw0814@sina.com,QQ: 17834798,各个群中,我都加入了。

 

1、  题目

编写一个程序要求用户输入一段文字,然后按照每个单词的开头字母对这段文字分类统计单词的数量并排序输出。例如,一次运行程序情况如下:

Please input a passage:

The topic of this assignment is about array, pointer and string. In particular, the goal of the assignment is to give you experience for dividing programs into modules and using the pointer for manipulation of string data.

Words begin with t: 7

Words begin with a: 6

Words begin with i: 4

Words begin with p: 4

Words begin with o: 3

Words begin with d: 2

Words begin with f: 2

Words begin with g: 2

Words begin with m: 2

Words begin with s: 2

Words begin with e: 1

Words begin with u: 1

Words begin with y: 1

 

Total words: 37

 

2、审题,题目要求。

(1)、要求用户输入一段文字,而不仅仅指例子中的文字。

(2)、对这段文字中的开头字母进行统计计数,从例子中可以看出,是不区别大小写,也就是说,大写字母应同小写字母一样对待。

(3)、要将出现过的开头字母的数量打印输出,并且要根据数量排序,从例子中可以看出,是降序。

(4)、要统计出现过的单词总数。

 

3、  关键知识点,后面会详细论述到的。

(1)、函数gets()的用法。

(2)、字符串定义

char buffer[1024*10];

(3)、结构体定义

struct PAIR

{

       char        alpha;

       int           count;

};

(4)、结构体数组

PAIR alpha_group[PAIR_COUNT];

(5)、大写字母转换成小写字母的函数tolower()

(5)、函数strtok()的用法

(6)、排序

 

4、  解题思路及步骤

此题核心问题是:在一字符串中,有一些单词,这些单词被空格或其它标点隔开,请指出每个单词的第一个字母。比如,有一段话如下:

The topic of this assignment is about array

那么,我们都能指出符合条件的字符是其中用红色表示的字符。在C语言提供中的库中,就有这么一个函数能达到以上要求:strtok()。在MSDN中,该函数提供的示例说明如下:

 

/* STRTOK.C: In this program, a loop uses strtok
       
 * to print all the tokens (separated by commas
       
 * or blanks) in the string named "string".
       
 */
       

    
      
    
#include <string.h>
       
#include <stdio.h>
       

    
      
    
char string[] = "A string/tof ,,tokens/nand some  more tokens";
       
char seps[]   = " ,/t/n";
       
char *token;
       

    
      
    
void main( void )
       
{
       
   printf( "%s/n/nTokens:/n", string );
       
   /* Establish string and get the first token: */
       
   token = strtok( string, seps );
       
   while( token != NULL )
       
   {
       
      /* While there are tokens in "string" */
       
      printf( " %s/n", token );
       
      /* Get next token: */
       
      token = strtok( NULL, seps );
       
   }
       
}
       

    
      
    

以下是输出结果:

A string   of ,,tokens
       
and some  more tokens
       

    
      
    
Tokens:
       
 A
       
 string
       
 of
       
 tokens
       
 and
       
 some
       
 more
       
 tokens
       
该函数表示,有一个字符串(即string),包含着一些被分隔符分隔的token (可理解成单词),依次定位到每个token,而分隔符是位于一个集合(即seps)中。
       
原型:
       
char * strtok( char *strToken, const char *strDelimit );
       
strToken:         包含着token的字符串(string)
       
strDelimit:       分隔符集合(seps)
       
返回值:            指向每个token的指针
       

   
     
   
请把函数strtok用法仔细理解,最好上机实验,否则请不要往下看,这是核心中的核心。
        

   
     
   

   
     
   
从上面的例子可以看出,找每个单词的第一个字母不成问题了,下面要解决的是:对找到字母进行计数。也就是说我们有一些字母如下:
T t o t a i a a
其中,计算出有几个a,几个b,…,几个z,
注意:前面已经说过,不区分大小写,即看到A,就相当于看到a。
最直接的方法,是定义
int a_count, b_count, … z_count;
可以想像一下,这是26个字母,要是260呢?
程序设计有一种思想,就是尽可能地把有规律地一系列事物做到一个统一的结构中。
所以可以这样写:
int alpha_count [26]。
其中alpha_count[0]表示字符 'a'的数量
alpha_count[1]表示字符 'b'的数量
…
alpha_count[25]表示字符 'z'的数量
那么在实际写程序中,不可能把alpha_count [n]对应哪个字符背下来吧。这里有一个方法:
alpha_count[ch-'a']则对应ch的数量,这里ch表示'a'—'z'之间的字符。
这是因为,英文字符都对应一个整数,而且是连续分布的。实际上'a'就是97,'c'就是99,所以alpha_count['c'-'a']就是alpha_count[99-97],即'c'就是对应alpha_count[2]。
你把'a'做四则运算同97是一样的,比如:
int itest = 'a' * 100;
此时itest的值是9700,明白?
或者可以这样说,'a'就是整数97在字符上的显示。如果还不理解,就记住它。
注意:这里经常说字母和字符,它们的关系是:
       
字母表示65到65+26之间(大写),以及97到97+26之间的字符。
       
字符表示对应于0-127之间的显示,也就是说字母是字符的子集,这里字符仅指ASCII表,不针对于比较复杂的其它字符集。
       

   
     
   
好,数组定义好后,只要在每个找到字母的地方,使其相应的alpha_count[c-'a']自增就可以了。

   
     
   

   
     
   
可以将MSDN中的例子修改如下:
#include <string.h>
#include <stdio.h>

   
     
   
char string[] = "A string/tof ,,tokens/nand some  more tokens";
char seps[]   = " ,/t/n";
char *token;

   
     
   
void main( void )
{
    int alpha_count[26];
    int i;

   
     
   
    /* initialize, set to zero */
    for (i=0; i<26; i++)
    {
           alpha_count[i] = 0;
    }
    
    /* Establish string and get the first token: */
    token = strtok( string, seps );
    while( token != NULL )
    {
           /* add 1 */
           alpha_count[token[0]-'a']++;

   
     
   
           /* Get next token: */
           token = strtok( NULL, seps );
    }

   
     
   
    /* output */
    for (i=0; i<26; i++)
    {
           if (alpha_count[i] == 0)
                   continue;

   
     
   
           printf ("Words begin with %c: %d/n", 'a'+i, alpha_count[i]);
    }
}

   
     
   
这里有一个问题:
token[0]表示每个单词的第一个字母,小写的肯定正常,如果是大写字母,则token[0]-'a',总是负数,放在数组索引中,肯定不对。我们可以用一个函数tolower()将大写字母,转换成小写字母,如果本来就不是大写字母,则不变。所以将token[0]-'a'改为tolower(token[0])-'a'就行了。
注:tolower()位于ctype.h中,只要
       
#include <ctype.h>
      
就OK了
       
另外,可以增加了一个变量total_word_count,用来计算总的单词数,只要在找到时自增就可以了,最后输出,这个简单!

   
     
   

   
     
   
继续!
字符串要求用户输入,不能写死,要用字符串的输入函数。
       
C语言库中,提供了很多字符串的输入函数,但这里要求以回车做为结束的标志。只有gets()比较合适。
       
原型:
char *gets( char *buffer );
       
表示将从屏幕中得到的以回车做为结束的字符串,放到buffer中。前提是要求,这个buffer,必须首先定义好,并且有足够的大小,可容纳这些字符串。
       
所以,我们可以改下面语句:
char string[] = "A string/tof ,,tokens/nand some  more tokens";
为
char string [10240];
gets(string)

   
     
   
程序修改如下:
#include <string.h>
#include <stdio.h>
#include <ctype.h>

   
     
   
char seps[]   = " ,.?/t/n";
char *token;

   
     
   
void main( void )
{
    int alpha_count[26];
    char string[1024*10];
    int total_word_count = 0;
    int i;

   
     
   
    /* 1. initialize, set to zero */
    for (i=0; i<26; i++)
    {
           alpha_count[i] = 0;
    }
    
    /* 2. input */
    gets(string);

   
     
   
    /* 3. Establish string and get the first token: */
    token = strtok( string, seps );
    while( token != NULL )
    {
           /* add 1 */
           alpha_count[tolower(token[0])-'a']++;
           total_word_count++;

   
     
   
           /* Get next token: */
           token = strtok( NULL, seps );
    }

   
     
   
    /* 4. output */
    for (i=0; i<26; i++)
    {
           if (alpha_count[i] == 0)
                   continue;

   
     
   
           printf ("Words begin with %c: %d/n", 'a'+i, alpha_count[i]);
    }
    
    printf ("/nTolal words: %d/n", total_word_count);
}

   
     
   
好,到此为止,我们已经满足了2中的(1),(2),(4),只剩下排序了。
在这里,有两种思路:
1、  对原思路进行改进,确立字母和其数目之间在任何时间均能找到对应关系。
       
2、 建立一个alpha_count [26]的拷贝sort[26],将sort排序,通过sort的元素值,寻找在alpha_count中的位置,从而得到位于该位置所对应的字母。这条思路在题目中,已有源码。
       

   
     
   
先谈谈思路1
通过前面的论述,我们知道,字母ch对应的在alpha_count中数量是alpha_count[ch-'a'],也就是说
alpha_count[0]一定是表示'a'的数量,如果直接将alpha_count排序,则alpha_count[0]很可能不是表示'a'的数量,有没有一种方法,直接将字母和数量关联起来呢?
有!
我们可以定义一个结构
struct PAIR
{
    char           alpha;
    int            count;
};
表示两者的关联。其中alpha表示一个具体的字母,count该字母的数量。
总共有26个字母,写成数组就是
PAIR alpha_group[26];
关于语法上,可以这样理解
把PAIR看成一种自定义类型,类似于int。
PAIR alpha_group[26];就类似于int alpha_group[26];
访问方式如下:
取元素还是alpha_group[0]、alpha_group[1]等
取具体的alpha或count则可以用
alpha_group[0].alpha, alpha_group[0].count
alpha_group[1].alpha, alpha_group[1].count等。
可修改程序如下:
#include <string.h>
#include <stdio.h>
#include <ctype.h>

   
     
   
char seps[]   = " ,.?/t/n";
char *token;

   
     
   
struct PAIR
{
    char    alpha;
    int            count;
};

   
     
   
void main( void )
{
    struct PAIR alpha_group[26];
    char string[1024*10];
    int total_word_count = 0;
    int i;

   
     
   
    /* 1. initialize, set to zero */
    for (i=0; i<26; i++)
    {
           alpha_group[i].alpha = 'a'+i;
           alpha_group[i].count = 0;
    }
    
    /* 2. input */
    gets(string);

   
     
   
    /* 3. Establish string and get the first token: */
    token = strtok( string, seps );
    while( token != NULL )
    {
           /* add 1 */
           alpha_group[tolower(token[0])-'a'].count++;
           total_word_count++;

   
     
   
           /* Get next token: */
           token = strtok( NULL, seps );
    }

   
     
   
    /* 4. output */
    for (i=0; i<26; i++)
    {
           if (alpha_group[i].count == 0)
                   continue;

   
     
   
           printf ("Words begin with %c: %d/n", 
                   alpha_group[i].alpha, 
                   alpha_group[i].count);
    }
    
    printf ("/nTolal words: %d/n", total_word_count);
}

   
     
   
再来谈谈排序:
排序中,以冒泡排序最容易掌握,常见的样式如下:
for (int i=0; i<n; i++)
  for (int j=i; j<n; j++) 
  {
    if (a[i] > a[j]) /* 升序用 >,降序用 < */
    {
       temp = i;
       i = j;
       j = temp;
}  
}
注:老师在复习资料中给的样式与此不同,但实质都一样。
针对于alpha_group的排序,用上面的样式基本上也适用,大致如下:
for (i=0; i<n; i++)
{
        for (j=i; j<n; j++)
        {
               if (alpha_group[i].count < alpha_group[j].count)
               {
                       alpha = alpha_group[i].alpha;
                       itemp = alpha_group[i].count;

   
     
   
                       alpha_group[i].alpha = alpha_group[j].alpha;
                       alpha_group[i].count = alpha_group[j].count;

   
     
   
                       alpha_group[j].alpha = alpha;
                       alpha_group[j].count = itemp;
               }
        }
}

   
     
   
完整程序如下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>

   
     
   
struct PAIR
{
        char    alpha;
        int            count;
};

   
     
   
#define PAIR_COUNT 26  
/*
#define TEST
*/

   
     
   
int main(int argc, char* argv[])
{
        PAIR alpha_group[PAIR_COUNT];
        int total_word_count = 0;
        int i,j;
        char buffer[1024*10] = {0};
        char seps[] = " ,.?!/t";
        char *token;
        char alpha;
        int itemp;

   
     
   

   
     
   
        /* 1. init */
        for (i=0; i<PAIR_COUNT; i++)
        {
               alpha_group[i].alpha = 'a' + i;
               alpha_group[i].count = 0;
        }

   
     
   

   
     
   
#ifndef TEST

   
     
   
        /* 2. input */
        printf("Please input a passage:/n");
        gets(buffer);

   
     
   
#else

   
     
   
        /* 2. test */
        strcpy(buffer, "The topic of this assignment is about array, /
               pointer and string. In particular, /
               the goal of the assignment is to give you experience /
               for dividing programs into modules and using the pointer /
                       for manipulation of string data.");
        
#endif
        
        /* 3. parse string */
        token = strtok(buffer, seps);
        while(token != NULL)
        {
               alpha = token[0];
               if (isalpha(alpha))
               {
                       alpha_group[tolower(alpha)-'a'].count++;
                       total_word_count ++;
               }

   
     
   
               token = strtok(NULL, seps);
        }

   
     
   
        /* 4. sort */
        for (i=0; i<PAIR_COUNT; i++)
        {
               for (j=i; j<PAIR_COUNT; j++)
               {
                       /* swap */
                       if (alpha_group[i].count < alpha_group[j].count)
                       {
                               alpha = alpha_group[i].alpha;
                               itemp = alpha_group[i].count;

   
     
   
                               alpha_group[i].alpha = alpha_group[j].alpha;
                               alpha_group[i].count = alpha_group[j].count;

   
     
   
                               alpha_group[j].alpha = alpha;
                               alpha_group[j].count = itemp;
                       }
               }
        }

   
     
   
        /* 5. output */
        for (i=0; i<PAIR_COUNT; i++)
        {
               if (alpha_group[i].count == 0)
                       continue;

   
     
   
               printf ("Words begin with %c: %d/n", 
                       alpha_group[i].alpha, 
                       alpha_group[i].count);
        }

   
     
   
        printf ("/nTolal words: %d/n", total_word_count);
        
        return 0;
}

   
     
   
注意:这是我自己的程序,其中定义了一个TEST宏,表示测试用,以免每次都输入一大段话。只要去掉加在
#define TEST
上的注释,就可以直接看到结果了。

   
     
   

   
     
   
现在谈谈思路2
思路1中已经说明,不能将alpha_count随便排序,否则找不到对应关系,那么找一个复制品,再对其排序还是可以的。如下
int sort[26];
for (int i=0; i<26; i++)
        sort[i] = alpha_count[i];
对数组sort排序,冒泡排序的算法,在思路1中已经说明
遍历sort中的元素,找到在alpha_count中的位置n,根据n得到对应字母'a'+n
for (int i=0; i<26; i++)
{
        if (sort[i] == 0)
               continue;
        for (int j=0; j<26; j++)
        {
               if (sort[i] == alpha_count[j])
               {
                       /* 打印字母'a'+j,及其数量sort[i] */
                       …

   
     
   
                       alpha_count[j] = 0; 
                       /* 这句很重要,防止两个字母的数量相同 */
               }
        }
}

   
     
   
完整源码如下:
#include <string.h>
#include <stdio.h>
#include <ctype.h>

   
     
   
char seps[]   = " ,.?/t/n";
char *token;

   
     
   
void main( void )
{
        int alpha_count[26];
        int sort[26];
        char string[1024*10];
        int total_word_count = 0;
        int i, j, temp;

   
     
   
        /* 1. initialize, set to zero */
        printf("Please input a passage:/n");
        for (i=0; i<26; i++)
        {
               alpha_count[i] = 0;
        }
        
        /* 2. input */
        gets(string);

   
     
   
        /* 3. Establish string and get the first token: */
        token = strtok( string, seps );
        while( token != NULL )
        {
               /* add 1 */
               alpha_count[tolower(token[0])-'a']++;
               total_word_count++;

   
     
   
               /* Get next token: */
               token = strtok( NULL, seps );
        }

   
     
   
        /* 4. sort */
        for (i=0; i<26; i++)
               sort[i] = alpha_count[i];
        for (i=0; i<26; i++)
        {
               for (j=i; j<26; j++)
               {
                       /* swap */
                       if (sort[i] < sort[j])
                       {
                               temp = sort[i];
                               sort[i] = sort[j];
                               sort[j] = temp;
                       }
               }
        }

   
     
   
        /* 5. output */
        for (i=0; i<26; i++)
        {
               if (sort[i] == 0)
                       continue;
               
               for (j=0; j<26; j++)
               {
                       if (sort[i] == alpha_count[j])
                       {
                               printf ("Words begin with %c: %d/n", 'a'+j, sort[i]);
                               alpha_count[j] = 0; 
                       }
               }
        }

   
     
   
        
        printf ("/nTolal words: %d/n", total_word_count);
}

   
     
   
题目中的设计提示与思路2的总体思想一致,只是将strtok()再包装了一下,我填充的完整源码如下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>

   
     
   
char seps[] = " ,.?!/t";
char* g_token = NULL;

   
     
   
void InitScanner(char* buffer)
{
        g_token = strtok(buffer, seps);
}

   
     
   
int AtEndOfLine()
{
        if (g_token == NULL)
               return 1;
        else
               return 0;
}

   
     
   
char* GetNextToken()
{
        char* temp = g_token;
        g_token = strtok(NULL, seps);
        return temp;
}

   
     
   
void SortIntegerArray(int a[], int n)
{
        int i, j, temp;

   
     
   
        for (i=0; i<n; i++)
        {
               for (j=i; j<n; j++)
               {
                       /* swap */
                       if (a[i] < a[j])
                       {
                               temp = a[i];
                               a[i] = a[j];
                               a[j] = temp;
                       }
               }
        }
}

   
     
   
int main()
{
        char passage[500];
        int total, count[26], sort[26];
        char *token;
        int i, j;
        
        for(i=0; i<26; i++)
               count[i]=sort[i]=0;
        total = 0;
        
        printf("Please input a passage:/n");
        gets(passage);
        
        /* test */
        /*
        strcpy(passage, "The topic of this assignment is about array, /
               pointer and string. In particular, /
               the goal of the assignment is to give you experience /
               for dividing programs into modules and using the pointer /
                       for manipulation of string data.");
        */

   
     
   
        InitScanner(passage);
        while (!AtEndOfLine()) {
               token = GetNextToken();
               if(isalpha(token[0])){
                       count[tolower(token[0])-'a']++;
                       total++;
               }
        }
        
        for(i = 0; i<26; i++)
               sort[i] = count[i];
        SortIntegerArray(sort, 26);
        
        for(i = 0; i<26; i++){
               if(sort[i]!=0){
                       for(j=0; j<26; j++){
                               if(count[j]==sort[i]){
                                      printf("Words begin with %c: %d/n", j+'a', sort[i]);
                                      count[j] = 0;
                               }
                       }
               }
        }
        printf("/nTotal words: %d/n", total);
        
        return 0;
}

   
     
   
isaaclab无法识别NVIDIA显卡,如何解决? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位一线资深架构师和工程师多年实战经验沉淀,提 阅读详情

相关推荐

CYUSB3065配置CMOS

按照OG02B10的时序电路,在通过SCCB配置CMOS之前,需要三个电源上电,Xshutdown高电平和配置时钟电路。找到手册的第6章SCCB(跟IIC很像),可以看到SCCB的地址与SID引脚有关,这个需要到硬件原理图上确认下。这是Cypress的一个支持MIPI和UVC的模块,有例程支持OV5640,现在要替换替换成OG02B10。寄存器参数需要找到厂家的FAE,由他们提供,OG02B10的资料已经上传。(2)参考得宏的电路,时钟由主控提供,目前程序未实现。这里有两个重要参数需要搞定,摄像头的。

qq_40773212的博客 2947

Servlet之Request对象

文章目录Requestrequest对象和response对象的原理request对象继承体系request功能1.获取请求数据2.常用功能 Request request对象和response对象的原理 request对象和response对象是由服务器创建的,我们直接使用即可 request对象获取请求消息,response对象设置响应消息 request对象继承体系 ServletRequest 接口 HttpServletRequest 接口,继承ServletRequest org.a

ggbondd的博客 623

Robocup 仿真2D 学习笔记(二) 球队代码编译和上场

环境的一些问题 最近在使用rcssserver 和 rcssmonitor时可能会遇到./configure失败的问题,可以检查一下文件夹是否有makefile文件,如果是编译后的包直接sudo make install,如果还不行,还可以源码下载编译 rcssserver: https://sourceforge.net/projects/sserver/files/rcssserver/...

markchalse的博客 6015

Servlet学习(八):请求转发(两个servlet程序的交互)

请求转发的流程图: 具体代码: Servlet1.java package demo01; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletR.

m0_49499183的博客 1575

基于深度学习的Person Re-ID(综述)

一. 问题的提出        Person Re-ID 全称是 Person Re-Identification,又称为 行人重检测 or 行人再识别,直观上可以通过两种思路进行比对,一种是 通过 静态图像(still-image)进行特征比对,另一种是通过视频的时序特征(temporal)进行 Video Re-Id。        不管是采用 图像特征比对的方法 还是 结合时序特征比

跟随技术的脚步-linolzhang的专栏 2万+

TwinCAT3实战:从零搭建倍福PLC的Modbus-TCP Server

本文详细介绍了如何使用TwinCAT3从零搭建倍福PLC的Modbus-TCP Server,包括环境准备、工程配置、参数设置、客户端连接测试及常见问题排查。通过实战步骤和实用技巧,帮助工程师快速掌握倍福PLC与Modbus-TCP的通信实现,提升工业自动化项目的开发效率。

weixin_30797199的博客 174

[C语言编程练习][08]编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。

编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include<stdio.h> int main(void) { char f_name[40]; char l_name[40]; printf("Enter your first name: "); scanf("%s", f_name); printf("Enter your last name: "); scanf("%s", l_name); printf("%s, %s\n", l_name

A707684133的博客 5740

AirSim中图像API的应用

解析Airsim图像获取保存的api

fegxg的博客 1607

c语言实验内容设计思路,c语言实验报告书3.doc

c语言实验报告书3C语言程序设计实验报告书专 业: 班 级:姓 名: 学 号:实验地点: 任课教师:实验题目: 实验三实验环境: Visual C++6.0实验目的1.通过几个简单的程序设计实验,熟悉C语言的基本算法;...

weixin_42403100的博客 1044

RT-Thread精通PM功耗调优 - Tickless篇

背景 让别人的思想装到自己的脑袋里,这不仅需要威逼利诱,还需要讲清楚原理。喜欢才能接受。 功耗基本的调试手段,估计前面讲了很多,或许只有少数人群可以接受。 更有极少的人,了解了整个功耗管理的体系、原理,愿意接受这样的【安排】。 这里的功耗调优思路,其实只是解决功耗问题的一种思路,并不是框架。 解决问题,自古以来,都是千奇百怪,秒在【奇】。 介绍 本篇介绍下Tickless的工作原理。 Tickless 可以理解为:tick-less,tick or little tick。 tick定.

坚韧与专注 1529

流体动力学仿真软件:SU2_(3).SU2的网格生成技术

设置网格的大小、密度等参数。

kkchenjj的博客 1030

实验报告 程序的 设计思路 步骤 原则 例子

首先,我们应该进行高层设计,根据需求分析需要哪些类和方法,针对每个类,写出下列的事物: 伪码 测试码 真实码 伪码可以帮助你专注于逻辑而不需要顾虑到程序语法,它描述要做什么事而不是如何做。大致包括3部分:实例变量的声明、方法的声明和方法的逻辑,其中逻辑最重要。 测试码是测试用的程序代码,编写测试码可以帮助了解被测的程序应该要做哪些事情。先写出一点点测试码,然后只编写能通过测试的方法,如此反复,就可以保证新加入的代码不会破坏原有已经测试过的部分。 ———————————————— 版权声明:本文为CS

qnsEmma的博客 1609

⭐️VMwareWorkstation17.0虚拟机安装搭建Windows 7虚拟机(完整图文详细步骤含配置VMware Tools教程)

本教程为大家提供了从安装VMware Workstation 17.0开始,到在虚拟机上成功搭建Windows 7专业版系统的完整步骤。我们详细介绍了准备阶段所需的软件和硬件要求,以及在VMware中配置和安装Windows 7系统的每一步操作。此外,我们还特别提到了如何在虚拟机上配置VMware Tools,以便更好地与宿主机进行交互。 通过本教程的学习,读者不仅能够掌握在VMware Workstation 17.0上安装Windows 7虚拟机的技能,还能了解到如何配置虚拟机的硬件以及安装VMwar

Python老吕的博客 2万+

c语言程序设计教程南京大学出版社答案,《新编C语言程序设计教程》习题解答与实验指导...

本书是《C语言程序设计教程》第4版的配套实验指导教材,旨在使学生更好地理解和掌握程序设计的思想、方法和技巧。本书从教学实际需要出发,兼顾不同学生的实际计算机水平,共设置了三部分内容:C语言编程环境简介、知识提要及习题解析、上机指导及实验。 本书特点 叙述通俗易懂,逻辑性强,实验内容设置合理。 内容讲解详尽,归纳总结了教材中的主要知识点,详细解析了各章习题中的疑难问题和C语言程序设计中的常见问题。 ...

weixin_39653622的博客 1558

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

程序设计与c语言:题解·上机·实验,《程序设计与C语言: 题解、上机、实验》

编辑推荐:梁力、陈建明、高云鹤编著的《程序设计与C语言(第3版题解上机实验)》是与《程序设计与C语言》(第3版),西安交通大学出版社配套的教材,它包括了3部分内容:第1部分是教材中的习题和部分参考答案;第2部分是上机指导;第3部分是实验指导。在习题解答部分重点讲解了解题思路和算法构思,同时给出了参考程序供读者参考,希望读者从中体会到解题的方法和思路,逐步掌握程序设计技巧。更希望读者自己动手编写程序...

weixin_39957318的博客 330

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

熟悉和使用C语言程序设计,C语言程序设计习题解答与实验指导(21世纪全国高等院校实用规划教材)...

导语C语言程序设计是一门实践性很强的计算机基础课程,课后练习、上机实验及课程设计是对程序设计能力的综合训练。实践证明,许多初学者在学习这门课程时都会感到非常吃力,学生普遍反映上课能听懂,课后不能解题,编程无从下手。为此,编者们编写了本书,其目的是使学生进一步熟悉和掌握C语言的基本语法规则、程序结构、编程思路及解题过程,加强程序设计基本方法和技巧的训练,同时加深和巩固对所学知识及方法的理解,发现学习...

weixin_36374843的博客 267

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

c语言上机程序设计,c语言程序设计上机指导习题解答

c语言程序设计上机指导习题解答编辑锁定讨论上传视频《c语言程序设计上机指导习题解答》是人民邮电出版社出版的图书,作者是孟庆昌、牛欣源。本书既可以作为教师讲授c语言的辅导教材,又是大学和专科院校的学生以及计算机培训班学员学习c语言的助手。书名c语言程序设计上机指导习题解答作者孟庆昌牛欣源[1]ISBN9787115113375[1]页数261定价23.00元出版社出版...

weixin_39728221的博客 494

c语言程序设计考试题上机,C语言程序设计习题与上机指南

本书是《C语言程序设计》(ISBN978-7-302-16562-0)教材的配套教学用书。本书由三部分内容组成。第一部分为主教材精心选配的课外习题及解答,涵盖C语言的各种题型、各类数据类型、程序结构和典型算法,系统地概括了C语言程序设计的基本方法和思路。第二部分为上机实验指导部分,精心设计了8个实验项目,以C语言知识点为主干,由浅入深,引导学生逐渐理解C语言程序设计的基本方法和技巧。实验项目采...

weixin_30590615的博客 289

C语言程序设计实验思路,C语言程序设计实验教学探索

摘要:分析C语言程序设计课程的特点;探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力;对C语言程序设计实验教学提出一些可行的探索方法。关键词:C语言;实验教学;实践能力C语言程序设计课程是计算机和软件专业学生接触的第一门专业基础课,也是许多高等院校非计算机专业学生的一门必修公共基础课,是高等院校的重点课程之一。它的应用领域非常广泛...

weixin_32824725的博客 1229

大一上 c + +上机实验总结(五)

1、输入任一个整数,判别它是否能被3整除;若能被3整除,输出YES;不能被3整除,输出NO 【解答】 #include<iostream> using namespace std; int main() { int integer; cout<<"请输入任意一个整数:"<<endl; cin>>integer; if(integer%3==0) ...

张洪基 1589

C++语言程序设计习题与实验指导,C++语言程序设计习题与实验指导--详细介绍

任何一门程序设计课程,不上机实践是不可能学好的。学习程序设计时,很多读者会觉得看书或听课时,程序语言的各种语法要素和编程方法的叙述都非常简单,老师讲的内容基本上也能理解,但需要自己针对具体问题编程时往往又无从下手,要么编写的程序漏洞百出,要么无法利用已学知识来正确表达自己的逻辑思维,因此感到程序设计课程太难。应该说,这是学习编程过程中的一种正常现象,程序设计是一门实践性很强的课程,要把自己所学的知...

weixin_36212334的博客 609

java实验教学内容答案_清华大学出版社-图书详情-《Java语言程序设计实验指导与习题解答》...

前 言上机实践是程序设计语言教学的一个重要环节,也是学生提高编程能力的最重要途径。记得笔者参加全国精品课程师资培训研讨会时,清华大学吴文虎教授的一席话令我印象深刻,在给学生讲授C语言的课上,他问学生听懂了没有,学生回答:“听懂了。”他接着告诉学生:“我保证你不会。”意思是不亲自上机实践就不能将知识变成自己的,当然也不能算真正掌握相关内容。只有自己动手编写程序并上机调试程序才能将书本知识灵活运...

weixin_34561373的博客 234

c语言程序设计辅导书,清华大学出版社-图书详情-《C语言程序设计(第3版)学习辅导》...

C语言是国内外广泛使用的计算机语言。许多高校都开设了“C语言程序设计”课程。作者于1991年编写了《C程序设计》,由清华大学出版社出版,并于1999年、2005年和2010年先后出版了《C程序设计(第2版)》、《C程序设计(第3版)》和《C程序设计(第4版)》。该书出版后,受到了广大读者的欢迎,认为概念清晰、叙述详尽、例题丰富、深入浅出、通俗易懂,被大多数高校选为教材。至2013年底,该书已累计发...

weixin_39612228的博客 315

程序设计基础实验教程 c语言,程序设计基础教程(C语言版)实验指导--详细介绍...

“程序设计基础”是一门实践性很强的课程,学生不仅需要掌握程序设计的理论知识,还必须经过大量的实践训练,以培养其程序设计的思维能力和运用编程解决相关专业领域问题的能力。本书是《程序设计基础教程(C语言版)》(黄思先、刘必雄主编,科学出版社出版,以下简称主教材)配套的学习和实验指导书,以“提高学生的实践能力,培养学生的编程能力”为宗旨,结合一线教师的多年教学实践经验编写而成。为了更好地帮助学生系统地学...

weixin_29854111的博客 740

c语言程序设计(第二版)--谭浩强 清华大学出版的 网购,清华大学出版社-图书详情-《C语言程序设计(第2版)学习辅导》...

C语言是国内外广泛使用的计算机语言。许多高校都开设了“C语言程序设计”课程。作者于1991年编写了《C程序设计》,由清华大学出版社出版,并于1999年和2005年出版了《C程序设计(第2版)》和《C程序设计(第3版)》。该书出版后,受到了广大读者的欢迎,认为概念清晰、叙述详尽、例题丰富、深入浅出、通俗易懂,被大多数高校选为教材。至2008年7月,该书已累计发行了近1000万册,成为国内C语言教学的...

weixin_33460449的博客 748

华为三道上机题解答

华为今年笔试改为上机了,自己上机试了下,题目虽然不难,但是编程也需要注意一些细节。首先,看到题目,不要急于下手写代码,要先问题看明白理解对,把思路理清楚,。题目转自一个网友liuqiqi677:http://blog.youkuaiyun.com/liuqiqi677/article/det

success041000的专栏 1693
下一篇: 对复习大纲及C语言几个重要知识点的理解
ufool
博客等级 码龄25年 12粉丝 8原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值